r110094 MediaWiki - Code Review archive

Repository:MediaWiki
Revision:r110093‎ | r110094 | r110095 >
Date:23:26, 26 January 2012
Author:catrope
Status:ok
Tags:
Comment:
1.18wmf1: Updating MoodBar to trunk state
Modified paths:
  • /branches/wmf/1.18wmf1/extensions/MoodBar (modified) (history)
  • /branches/wmf/1.18wmf1/extensions/MoodBar/MoodBar.hooks.php (modified) (history)
  • /branches/wmf/1.18wmf1/extensions/MoodBar/MoodBar.i18n.php (modified) (history)
  • /branches/wmf/1.18wmf1/extensions/MoodBar/MoodBar.php (modified) (history)
  • /branches/wmf/1.18wmf1/extensions/MoodBar/SpecialFeedbackDashboard.php (modified) (history)
  • /branches/wmf/1.18wmf1/extensions/MoodBar/include/MoodBarHTMLEmailNotification.php (modified) (history)
  • /branches/wmf/1.18wmf1/extensions/MoodBar/include/MoodBarUtil.php (modified) (history)
  • /branches/wmf/1.18wmf1/extensions/MoodBar/modules/ext.moodBar.dashboard/ext.moodBar.dashboard.css (modified) (history)
  • /branches/wmf/1.18wmf1/extensions/MoodBar/modules/ext.moodBar.dashboard/ext.moodBar.dashboard.js (modified) (history)
  • /branches/wmf/1.18wmf1/extensions/MoodBar/modules/ext.moodBar/ext.moodBar.core.js (modified) (history)
  • /branches/wmf/1.18wmf1/extensions/MoodBar/tests (added) (history)

Diff [purge]

Index: branches/wmf/1.18wmf1/extensions/MoodBar/include/MoodBarUtil.php
@@ -92,8 +92,8 @@
9393
9494 $topResponders = iterator_to_array( $res );
9595
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 );
9898 }
9999
100100 return $topResponders;
@@ -137,4 +137,14 @@
138138
139139 }
140140
 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+
141151 }
\ No newline at end of file
Index: branches/wmf/1.18wmf1/extensions/MoodBar/include/MoodBarHTMLEmailNotification.php
@@ -157,13 +157,13 @@
158158 $targetUserName = $this->targetUser->getName();
159159 $links = $this->buildEmailLink();
160160
161 - //text version
 161+ //text version, no need to escape since client will interpret it as plain text
162162 $textBody = wfMessage( 'moodbar-enotif-body' )->params( $targetUserName,
163163 $links['feedbackPageUrl'],
164164 $links['editorTalkPageUrl'],
165165 $this->response,
166166 $links['targetUserTalkPageUrl'],
167 - $pageEditor )->escaped();
 167+ $pageEditor )->text();
168168
169169 //html version, this is a little bit ugly as we have to make wiki link clickable in emails
170170 $action = $wgRequest->getVal( 'action' );
@@ -171,7 +171,7 @@
172172 $htmlBody = wfMsgExt( 'moodbar-enotif-body', array( 'parse' ), $targetUserName,
173173 $links['feedbackPageUrl'],
174174 $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>',
176176 $links['targetUserTalkPageUrl'],
177177 $pageEditor );
178178 $wgRequest->setVal( 'action', $action );
Index: branches/wmf/1.18wmf1/extensions/MoodBar/SpecialFeedbackDashboard.php
@@ -63,10 +63,16 @@
6464
6565 // Output HTML
6666 $wgOut->setPageTitle( wfMsg( 'moodbar-feedback-title' ) );
 67+ $wgOut->setRobotPolicy( 'noindex,nofollow' );
6768 $wgOut->addHTML( $this->buildForm( $filterType ) );
6869 $wgOut->addHTML( $this->buildList( $res ) );
6970 $wgOut->addModuleStyles( 'ext.moodBar.dashboard.styles' );
7071 $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+
7177 }
7278
7379 /**
@@ -319,15 +325,25 @@
320326 $responder = User::newFromRow( $response_detail );
321327
322328 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();
324332
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+ }
332348 $showResponseBox = false;
333349
334350 $responseElements = <<<HTML
@@ -714,13 +730,13 @@
715731 }
716732
717733 /**
718 - * Get the latest response summary for a set of feedback,
 734+ * Get the latest response summary for a set of feedback
719735 * @param $res Iterator of Db row with index mbf_latest_response for feedback
720736 * @return array
721737 */
722738 public static function getResponseSummary( $res ) {
723739 $dbr = wfGetDB( DB_SLAVE );
724 -
 740+
725741 $mbfrIds = array();
726742
727743 foreach ( $res as $row ) {
@@ -732,12 +748,24 @@
733749 $response = array();
734750
735751 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 - );
741752
 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+
742770 foreach ( $res as $row ) {
743771 $response[$row->mbfr_mbf_id] = $row;
744772 }
@@ -745,5 +773,5 @@
746774
747775 return $response;
748776 }
749 -
 777+
750778 }
\ No newline at end of file
Index: branches/wmf/1.18wmf1/extensions/MoodBar/MoodBar.i18n.php
@@ -50,6 +50,7 @@
5151 'moodbar-privacy' => 'By submitting, you agree to transparency under these $1.',
5252 'moodbar-privacy-link' => 'terms',
5353 'moodbar-privacy-link-title' => 'Terms of Use',
 54+ 'moodbar-fbd-link-title' => 'feedback',
5455 'moodbar-disable-link' => "I'm not interested. Please disable this feature.",
5556 'moodbar-form-title' => 'Because...',
5657 'moodbar-form-note' => '140 character maximum',
@@ -61,7 +62,7 @@
6263 'moodbar-success-title' => 'Thanks!',
6364 'moodbar-error-title' => 'Oops!',
6465 '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.',
6667 'moodbar-error-subtitle' => 'Something went wrong! Please try sharing your feedback again later.',
6768 'moodbar-blocked-title' => 'Oops!',
6869 'moodbar-blocked-subtitle' => 'You have been blocked from editing.',
@@ -140,6 +141,7 @@
141142 'moodbar-invalid-item' => 'The system was unable to find the correct feedback item.',
142143 'moodbar-feedback-action-error' => 'An error occurred when trying to perform this action.',
143144 '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',
144146 'moodbar-feedback-edit-summary' => 'Response to [[Special:FeedbackDashboard/$1|user feedback]]: $2',
145147 'moodbar-feedback-top-responders-title' => 'Top Responders',
146148 // Mood types
@@ -180,14 +182,14 @@
181183
182184 $4
183185
184 -View this message on your [$5 talk page]
 186+View this message on your [$5 talk page].
185187
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.
188190
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.
190192
191 -Have a nice day,
 193+Thanks for being part of the community.
192194
193195 -- {{SITENAME}}',
194196 );
@@ -210,10 +212,10 @@
211213 This is a feature in development. See [[mw:MoodBar 0.1/Design]] for background information.',
212214 'moodbar-trigger-feedback' => 'Link text of the MoodBar overlay trigger. $1 is the SITENAME.',
213215 '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}}',
218220 'moodbar-close' => 'Link text of the close-button. Make sure to include parentheses.
219221
220222 See also:
@@ -251,6 +253,7 @@
252254 See [[Thread:Support/About MediaWiki:Moodbar-privacy/en (2)/reply (4)|discussion]].',
253255 'moodbar-privacy-link' => 'This is the anchor text being used in the link replacing $1 in the message {{msg-mw|moodbar-privacy}}',
254256 '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.',
255258 'moodbar-form-note-dynamic' => 'Should support plural.',
256259 'moodbar-form-policy-text' => 'Text displayed below the input area.
257260
@@ -263,7 +266,9 @@
264267 'moodbar-loading-title' => 'Title of the screen when the widget is loading.',
265268 'moodbar-success-title' => 'Title of the screen after the feedback was successfully submitted.',
266269 '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',
268273 'moodbar-error-subtitle' => 'Subtitle of screen when an error occurred. $1 is the SITENAME',
269274 'moodbar-blocked-title' => 'Title of the screen after blocked user attempts to post feedback.',
270275 'moodbar-blocked-subtitle' => 'Subtitle of screen after blocked user attempts to post feedback.',
@@ -313,7 +318,9 @@
314319 'moodbar-hidden-footer-without-log' => '* $1 is a link to restore the item displaying {{msg-mw|moodbar-feedback-restore}}',
315320 'moodbar-action-reason' => 'Text for Admin action reason',
316321 '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',
318325 'moodbar-feedback-edit-summary' => 'Auto generated Edit summary for feedback response, $1 is the feedback id and $2 is the response text',
319326 'moodbar-feedback-top-responders-title' => 'The title for Top Responders, which is located below feedback dashboard filter',
320327 'moodbar-type-happy' => '$1 is the username that can be used for GENDER. Message is used on Special:FeedbackDashboard.',
@@ -324,7 +331,8 @@
325332 'moodbar-log-name' => 'Feedback log name',
326333 'moodbar-log-header' => 'Descriptive header text for Feedback log page.',
327334 '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.',
329337 'moodbar-log-restore' => 'Log Action text for restoring feedback [[$1]] is link to feedback item',
330338 'moodbar-log-reason' => '{{optional}}
331339 Text for log reason. $1 is moodbar type, $2 is moodbar comment',
@@ -624,13 +632,17 @@
625633 /** Belarusian (Taraškievica orthography) (‪Беларуская (тарашкевіца)‬)
626634 * @author EugeneZelenko
627635 * @author Jim-by
 636+ * @author Wizardist
628637 * @author Тест
629638 */
630639 $messages['be-tarask'] = array(
631640 'moodbar-desc' => 'Дазваляе вызначаным удзельнікам дасылаць іх водгук пра вопыт у рэдагаваньні',
632641 'moodbar-trigger-feedback' => 'Водгук пра рэдагаваньне',
633642 '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|год|гады|гадоў}}',
635647 'moodbar-close' => '(зачыніць)',
636648 'moodbar-intro-feedback' => 'Рэдагаваньне {{GRAMMAR:родны|$1}} дало мне…',
637649 'moodbar-intro-share' => 'Мой вопыт на {{GRAMMAR:родны|$1}} даў мне…',
@@ -679,11 +691,12 @@
680692 'moodbar-header-own-talk' => 'Уласная старонка гутарак',
681693 'moodbar-feedback-title' => 'Дошка водгукаў',
682694 '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' => 'Смутны',
687699 'moodbar-feedback-filters-username' => 'Імя ўдзельніка:',
 700+ 'moodbar-feedback-filters-my-response' => 'Толькі мае водгукі',
688701 'moodbar-feedback-filters-button' => 'Наладзіць фільтры',
689702 'moodbar-feedback-whatis' => 'Што гэта за магчымасьць?',
690703 'moodbar-feedback-permalink' => 'спасылка сюды',
@@ -694,12 +707,14 @@
695708 'moodbar-feedback-older' => 'Старэйшыя',
696709 'moodbar-feedback-ajaxerror' => 'Узьнікла памылка падчас атрыманьня дадатковых вынікаў.',
697710 '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|Зьбянтэжаны|Зьбянтэжаная}}',
701714 'moodbar-user-anonymized' => 'Ананімны',
702715 'moodbar-user-ip' => 'ІР-адрас',
703716 'moodbar-user-user' => 'Зарэгістраваны ўдзельнік',
 717+ 'moodbar-response-terms' => 'Дасылаючы, Вы пагаджаецеся на доступ на гэтых $1.',
 718+ 'moodbar-response-link' => 'умовах',
704719 );
705720
706721 /** Bulgarian (Български)
@@ -783,6 +798,7 @@
784799 'moodbar-form-title' => 'Peogwir...',
785800 'moodbar-form-note' => "140 arouezenn d'ar muiañ",
786801 'moodbar-form-note-dynamic' => '$1 a chom',
 802+ 'moodbar-form-submit' => 'Kenrannañ an evezhiadennoù',
787803 'moodbar-form-policy-text' => 'En ur gas, $1',
788804 'moodbar-form-policy-label' => 'hor politikerezh',
789805 'moodbar-loading-title' => 'O rannañ...',
@@ -836,19 +852,26 @@
837853 'moodbar-feedback-ajaxerror' => "Ur fazi zo bet en ur glask disoc'hoù all.",
838854 'moodbar-feedback-load-record-error' => 'Ur fazi zo bet en ur gargañ un enrolladenn.',
839855 'moodbar-user-hidden' => '(implijer kuzhet)',
 856+ 'moodbar-feedback-show' => 'Diskouez an evezhiadennoù kuzhet',
 857+ 'moodbar-feedback-hide' => 'Kuzhat an evezhiadennoù',
840858 'moodbar-feedback-action-confirm' => 'Kadarnaat',
841859 'moodbar-feedback-action-cancel' => 'Nullañ',
 860+ 'moodbar-hidden-footer-without-log' => 'Evezhiadenn guzhet $1',
 861+ 'moodbar-action-item' => 'Danvez an evezhiadenn :',
842862 'moodbar-action-reason' => 'Abeg :',
843863 'moodbar-action-reason-required' => 'Merkit un abeg.',
844864 'moodbar-hide-header' => 'Kuzhat an elfenn-mañ evit na vefe ket gwelet',
845865 'moodbar-feedback-response-summary' => '[[$3|Respontet]] eo bet gant [[$1|$2]] $4 zo',
 866+ 'moodbar-feedback-top-responders-title' => 'Responterien bennañ',
846867 'moodbar-type-happy' => '{{GENDER:$1|Laouen}}',
847868 'moodbar-type-sad' => '{{GENDER:$1|Trist}}',
848869 'moodbar-type-confused' => '{{GENDER:$1|Trubuilhet}}',
849870 'moodbar-user-anonymized' => 'Dianavezet',
850871 'moodbar-user-ip' => "Chomlec'h IP",
851872 'moodbar-user-user' => 'Implijer enrollet',
 873+ 'moodbar-log-name' => 'Marilh an evezhiadennoù',
852874 'moodbar-log-hide' => 'en deus kuzhet "[[$1]]"',
 875+ 'moodbar-log-feedback' => 'Soñjoù war ar varrenn imor [[$1]]',
853876 'moodbar-log-restore' => 'zo bet assavet gweleduster [[$1]] gantañ',
854877 'moodbar-response-link' => 'termenoù',
855878 'response-back-text' => 'Distreiñ',
@@ -959,6 +982,7 @@
960983 'moodbar-privacy' => 'Mit dem Speichern erklärst du dich mit diesen $1 einverstanden.',
961984 'moodbar-privacy-link' => 'Bedingungen',
962985 'moodbar-privacy-link-title' => 'Nutzungsbedingungen',
 986+ 'moodbar-fbd-link-title' => 'Rückmeldung',
963987 'moodbar-disable-link' => 'Ich bin nicht interessiert. Bitte diese Funktion deaktivieren.',
964988 'moodbar-form-title' => 'Weil …',
965989 'moodbar-form-note' => 'Maximal 140 Zeichen',
@@ -969,7 +993,7 @@
970994 'moodbar-loading-title' => 'Am senden ...',
971995 'moodbar-success-title' => 'Vielen Dank!',
972996 '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.',
974998 'moodbar-error-subtitle' => 'Es ist ein Fehler aufgetreten. Bitte versuche es später noch einmal, uns deine Rückmeldung mitzuteilen.',
975999 'moodbar-blocked-title' => 'Hoppla!',
9761000 'moodbar-blocked-subtitle' => 'Du wurdest gesperrt und kannst daher keine Bearbeitungen machen.',
@@ -1043,6 +1067,7 @@
10441068 'moodbar-invalid-item' => 'Das System konnte den richtigen Teil der Rückmeldung nicht finden.',
10451069 'moodbar-feedback-action-error' => 'Während des Ausführens dieser Aktion ist ein Fehler aufgetreten.',
10461070 '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',
10471072 'moodbar-feedback-edit-summary' => 'Antwort zur [[Special:FeedbackDashboard/$1|Rückmeldung]]: $2',
10481073 'moodbar-feedback-top-responders-title' => 'Benutzer mit den meisten Rückmeldungen',
10491074 'moodbar-type-happy' => '{{GENDER:$1|Glücklich}}',
@@ -1072,7 +1097,7 @@
10731098 'moodbar-enotif-subject' => '$1 antwortete auf deine Rückmeldung.',
10741099 'moodbar-enotif-body' => 'Hallo $1,
10751100
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:
10771102
10781103 $4
10791104
@@ -1081,7 +1106,7 @@
10821107 Was ist eine Diskussionsseite?
10831108 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.
10841109
1085 -Wir wünschen dir noch einen schönen Tag,
 1110+Vielen Dank, das du Teil der Gemeinschaft bist.
10861111
10871112 -- {{SITENAME}}',
10881113 );
@@ -1106,7 +1131,7 @@
11071132 'moodbar-enotif-subject' => '$1 antwortete auf Ihre Rückmeldung.',
11081133 'moodbar-enotif-body' => 'Hallo $1,
11091134
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:
11111136
11121137 $4
11131138
@@ -1115,7 +1140,7 @@
11161141 Was ist eine Diskussionsseite?
11171142 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.
11181143
1119 -Wir wünschen Ihnen noch einen schönen Tag,
 1144+Vielen Dank, das Sie Teil der Gemeinschaft sind.
11201145
11211146 -- {{SITENAME}}',
11221147 );
@@ -1574,6 +1599,7 @@
15751600 'moodbar-user-ip' => 'نشانی آی‌پی',
15761601 'moodbar-user-user' => 'کاربر ثبت شده',
15771602 'moodbar-log-name' => 'سیاههٔ بازخورد',
 1603+ 'moodbar-response-link' => 'شرایط',
15781604 'response-back-text' => 'بازگشت',
15791605 'response-preview-text' => 'پیش‌نمایش',
15801606 'response-ajax-action-head' => 'در حال پاسخ...',
@@ -1778,6 +1804,7 @@
17791805 'moodbar-privacy' => 'En soumettant, vous acceptez la transparence en accord avec ces $1.',
17801806 'moodbar-privacy-link' => 'conditions',
17811807 'moodbar-privacy-link-title' => "Conditions d'utilisation",
 1808+ 'moodbar-fbd-link-title' => 'avis',
17821809 'moodbar-disable-link' => 'Je ne suis pas intéressé. Désactiver cette fonctionnalité.',
17831810 'moodbar-form-title' => 'Parce que ...',
17841811 'moodbar-form-note' => '140 caractères maximum',
@@ -1788,7 +1815,7 @@
17891816 'moodbar-loading-title' => 'Partager...',
17901817 'moodbar-success-title' => 'Merci !',
17911818 '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.',
17931820 'moodbar-error-subtitle' => "Quelque chose s'est mal passé ! Essayer de partager vos commentaires plus tard.",
17941821 'moodbar-blocked-title' => 'Oups !',
17951822 'moodbar-blocked-subtitle' => 'Vous avez été bloqué en édition.',
@@ -1862,6 +1889,7 @@
18631890 'moodbar-invalid-item' => 'Le système a été incapable de trouver le commentaire correct.',
18641891 'moodbar-feedback-action-error' => "Une erreur s'est produite lorsque vous avez essayé d'effectuer cette action.",
18651892 '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',
18661894 'moodbar-feedback-edit-summary' => 'Réponse au [[Special:FeedbackDashboard/$1|ressenti utilisateur]]: $2',
18671895 'moodbar-feedback-top-responders-title' => 'Principaux répondants',
18681896 'moodbar-type-happy' => '{{GENDER:$1|Heureux|Heureuse}}',
@@ -1894,14 +1922,14 @@
18951923
18961924 $4
18971925
1898 -Afficher ce message sur votre [$5 page de discussion]
 1926+Afficher ce message sur votre [$5 page de discussion].
18991927
19001928 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é.
19021930
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.
19041932
1905 -Bonne journée,
 1933+Merci de votre participation à cette communauté.
19061934
19071935 -- {{SITENAME}}',
19081936 );
@@ -2055,6 +2083,7 @@
20562084 'moodbar-privacy' => 'Se envía os seus comentarios, acepta publicalos baixo estes $1.',
20572085 'moodbar-privacy-link' => 'termos',
20582086 'moodbar-privacy-link-title' => 'Termos de uso',
 2087+ 'moodbar-fbd-link-title' => 'comentarios',
20592088 'moodbar-disable-link' => 'Non estou interesado. Desactivar esta característica.',
20602089 'moodbar-form-title' => 'Porque...',
20612090 'moodbar-form-note' => '140 caracteres como máximo',
@@ -2065,7 +2094,7 @@
20662095 'moodbar-loading-title' => 'Compartindo...',
20672096 'moodbar-success-title' => 'Grazas!',
20682097 '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.',
20702099 'moodbar-error-subtitle' => 'Algo foi mal! Intente compartir os seus comentarios máis tarde.',
20712100 'moodbar-blocked-title' => 'Vaites!',
20722101 'moodbar-blocked-subtitle' => 'Foi bloqueado fronte á edición.',
@@ -2139,6 +2168,7 @@
21402169 'moodbar-invalid-item' => 'O sistema non puido atopar o elemento de valoración correcto.',
21412170 'moodbar-feedback-action-error' => 'Produciuse un erro ao intentar levar a cabo esta acción.',
21422171 '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',
21432173 'moodbar-feedback-edit-summary' => 'Resposta aos [[Special:FeedbackDashboard/$1|comentarios do usuario]]: $2',
21442174 'moodbar-feedback-top-responders-title' => 'Usuarios que achegaron máis respostas',
21452175 'moodbar-type-happy' => '{{GENDER:$1|Contento|Contenta}}',
@@ -2172,14 +2202,14 @@
21732203
21742204 $4
21752205
2176 -Lea esta mensaxe na súa [$5 páxina de conversa]
 2206+Lea esta mensaxe na súa [$5 páxina de conversa].
21772207
21782208 Que é unha páxina de conversa?
21792209 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.
21802210
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.
21822212
2183 -Teña un bo día,
 2213+Grazas por formar parte da comunidade.
21842214
21852215 -- {{SITENAME}}',
21862216 );
@@ -2229,6 +2259,7 @@
22302260
22312261 /** Hebrew (עברית)
22322262 * @author Amire80
 2263+ * @author Ofekalef
22332264 * @author Ofrahod
22342265 */
22352266 $messages['he'] = array(
@@ -2260,6 +2291,7 @@
22612292 'moodbar-privacy' => 'על־ידי שליחה, אתה מסכים לשקיפות לפי $1 הבאים.',
22622293 'moodbar-privacy-link' => 'התנאים',
22632294 'moodbar-privacy-link-title' => 'תנאי שימוש',
 2295+ 'moodbar-fbd-link-title' => 'משוב',
22642296 'moodbar-disable-link' => 'אני לא רוצה. אנא כבו את האפשרות הזאת.',
22652297 'moodbar-form-title' => 'כי...',
22662298 'moodbar-form-note' => '140 תווים לכל היותר',
@@ -2270,7 +2302,7 @@
22712303 'moodbar-loading-title' => 'שיתוף...',
22722304 'moodbar-success-title' => 'תודה!',
22732305 'moodbar-error-title' => 'אוי!',
2274 - 'moodbar-success-subtitle' => 'שיתוף חוויית המשתמש שלך עוזר לנו לשפר את $1.',
 2306+ 'moodbar-success-subtitle' => 'שיתוף ה{{FBD-LINK}} שלך עוזר לנו לשפר את $1.',
22752307 'moodbar-error-subtitle' => 'משהו השתבש! נא לנסות לשתף אותנו במשוב שלך מאוחר יותר.',
22762308 'moodbar-blocked-title' => 'אוי!',
22772309 'moodbar-blocked-subtitle' => 'נחסמת מפני עריכה.',
@@ -2316,6 +2348,7 @@
23172349 'moodbar-feedback-filters-type-sad' => 'עצב',
23182350 'moodbar-feedback-filters-username' => 'שם משתמש:',
23192351 'moodbar-feedback-filters-my-response' => 'רק תשובות שלי',
 2352+ 'moodbar-feedback-filters-show-unanswered' => 'הצגת רשומות שלא נענו',
23202353 'moodbar-feedback-filters-button' => 'הגדרת מסננים',
23212354 'moodbar-feedback-whatis' => 'מהי התכונה הזו?',
23222355 'moodbar-feedback-permalink' => 'קישור לכאן',
@@ -2344,7 +2377,9 @@
23452378 'moodbar-invalid-item' => 'המערכת לא הצליחה למצא את פריט המשוב הנכון.',
23462379 'moodbar-feedback-action-error' => 'אירעה שגיאה בעת ניסיון לבצע את הפעולה הזאת.',
23472380 'moodbar-feedback-response-summary' => 'המשתמש [[$1|$2]] [[$3|ענה]] לפני $4',
 2381+ 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]] [[$3|הגיבו]] לפני $4 ו[[$5|$6]] חושבים שזה מועיל.',
23482382 'moodbar-feedback-edit-summary' => 'תשובה ל[[Special:FeedbackDashboard/$1|משוב ממשתמש]]: $2',
 2383+ 'moodbar-feedback-top-responders-title' => 'העונים הפורים ביותר',
23492384 'moodbar-type-happy' => '{{GENDER:$1|שמח|שמחה}}',
23502385 'moodbar-type-sad' => '{{GENDER:$1|עצוב|עצובה}}',
23512386 'moodbar-type-confused' => '{{GENDER:$1|מבולבל|מבולבלת}}',
@@ -2355,6 +2390,7 @@
23562391 'moodbar-log-name' => 'יומן משוב',
23572392 'moodbar-log-header' => 'זהו יומן של פעולות שנעשו על פריטי משוב שרשומים ב[[Special:FeedbackDashboard|לוח הבקרה של המשוב]].',
23582393 'moodbar-log-hide' => 'הסתיר את [[$1]]',
 2394+ 'moodbar-log-feedback' => 'משוב על סרגל מצב רוח [[$1]]',
23592395 'moodbar-log-restore' => 'שחזר את הנראוּת של [[$1]]',
23602396 'moodbar-response-terms' => 'השליחה מהווה הסכמה לשקיפות לפי ה$1 הבאים.',
23612397 'moodbar-response-link' => 'תנאים',
@@ -2366,6 +2402,7 @@
23672403 'response-ajax-success-body' => 'תשובתך הוספה.',
23682404 'response-ajax-error-head' => 'אוי!',
23692405 'response-ajax-error-body' => 'אירעה שגיאה בהוספת תשובתך.<br />נא לנסות שוב מאוחר יותר.',
 2406+ 'response-concurrency-notification' => 'מישהו התחיל לענות למשוב הזה לפני זמן קצר.',
23702407 'moodbar-enotif-subject' => 'התקבל מענה מאת $1 למשוב שלך',
23712408 'moodbar-enotif-body' => 'שלום $1!
23722409
@@ -2373,14 +2410,14 @@
23742411
23752412 $4
23762413
2377 -אפשר לראות את ההודעה הזאת ב[$5 בדף השיחה שלך]
 2414+אפשר לראות את ההודעה הזאת ב[$5 בדף השיחה שלך].
23782415
23792416 מה זה דף שיחה?
2380 -דף המשתמש שלך הוא הדף שעורכי {{SITENAME}} אחרים משתמשים בו כדי לשוחח אתך. אפשר לענות באמצעות לחיצה על "עריכה", העברת הסמן מתחת להערה, כתיבת התשובה וארבע טילדות (~~~~) כדי לחתום ושמירה. לכל הדפים בדף {{SITENAME}} יש דפי שיחה והם משמשים למטרות שונות רבות. לוקח קצת זמן להתרגל לזה, אבל זה נהיה ממש קל אחרי שמתרגלים.
 2417+דף המשתמש שלך הוא הדף שעורכי {{SITENAME}} אחרים משתמשים בו כדי לשוחח אתך. אפשר לענות באמצעות לחיצה על "עריכה", העברת הסמן מתחת להערה, כתיבת התשובה וארבע טילדות (~~~~) כדי לחתום ושמירה. לכל הדפים בדף {{SITENAME}} יש דפי שיחה והם משמשים למטרות שונות רבות. לוקח קצת זמן לקלוט את זה, אבל זה נהיה קל למדי אחרי שמתרגלים.
23812418
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 יוטיוב]) נותן מבוא צעד־אחר־צעד.
23832420
2384 -יום נעים,
 2421+תודה על היותך חלק מהקהילה,
23852422
23862423 -- {{SITENAME}}',
23872424 );
@@ -2497,6 +2534,7 @@
24982535 'moodbar-what-link' => 'stronu z funkcijemi',
24992536 'moodbar-privacy-link' => 'wuměnjenja',
25002537 'moodbar-privacy-link-title' => 'Wužiwarske wuměnjenja',
 2538+ 'moodbar-fbd-link-title' => 'komentar',
25012539 'moodbar-disable-link' => 'Njejsym zajimowany. Prošu znjemóžńće tutu funkciju.',
25022540 'moodbar-form-title' => 'Dokelž...',
25032541 'moodbar-form-note' => 'Maksimalnje 140 znamješkow',
@@ -2566,6 +2604,7 @@
25672605 'moodbar-action-reason-required' => 'Prošu podaj přičinu.',
25682606 'moodbar-feedback-action-error' => 'Při wuwjedźenju tuteje akcije je zmylk wustupił.',
25692607 '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',
25702609 'moodbar-feedback-edit-summary' => 'Wotmołwa na [[Special:FeedbackDashboard/$1|komentar wužiwarja]]: $2',
25712610 'moodbar-feedback-top-responders-title' => 'Wužiwarjo z najwjace komentarami',
25722611 'moodbar-type-happy' => '{{GENDER:$1|Zbožowny|Zbožowna}}',
@@ -2734,6 +2773,7 @@
27352774 'moodbar-privacy' => 'Per submitter, tu accepta que tu contribution essera usate publicamente sub iste $1.',
27362775 'moodbar-privacy-link' => 'conditiones',
27372776 'moodbar-privacy-link-title' => 'Conditiones de uso',
 2777+ 'moodbar-fbd-link-title' => 'retroaction',
27382778 'moodbar-disable-link' => 'Isto non me interessa. Per favor disactiva iste function.',
27392779 'moodbar-form-title' => 'Perque...',
27402780 'moodbar-form-note' => 'maximo 140 characteres',
@@ -2744,7 +2784,7 @@
27452785 'moodbar-loading-title' => 'Invio in curso...',
27462786 'moodbar-success-title' => 'Gratias!',
27472787 '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.',
27492789 'moodbar-error-subtitle' => 'Un problema ha occurrite! Per favor tenta specificar tu retroaction de novo plus tarde.',
27502790 'moodbar-blocked-title' => 'Ups!',
27512791 'moodbar-blocked-subtitle' => 'Le modification ha essite blocate pro te.',
@@ -2819,6 +2859,7 @@
28202860 'moodbar-invalid-item' => 'Le systema non poteva trovar le elemento de retroaction correcte.',
28212861 'moodbar-feedback-action-error' => 'Un error occurreva durante le tentativa de exequer iste action.',
28222862 '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',
28232864 'moodbar-feedback-edit-summary' => 'Responsa a [[Special:FeedbackDashboard/$1|retroaction de usator]]: $2',
28242865 'moodbar-feedback-top-responders-title' => 'Top de responditores',
28252866 'moodbar-type-happy' => '{{GENDER:$1|Felice}}',
@@ -2851,14 +2892,14 @@
28522893
28532894 $4
28542895
2855 -Vide iste message in tu [$5 pagina de discussion]
 2896+Vide iste message in tu [$5 pagina de discussion].
28562897
28572898 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.
28592900
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.
28612902
2862 -Con salutes,
 2903+Gratias pro facer parte del communitate.
28632904
28642905 -- {{SITENAME}}',
28652906 );
@@ -3047,6 +3088,7 @@
30483089 '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.
30493090 Fir méi Informatiounen, gitt w.e.g. op d'$1.",
30503091 '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.",
30513093 'moodbar-privacy-link' => 'Bedingungen',
30523094 'moodbar-privacy-link-title' => 'Benotzungs-Bedingungen',
30533095 'moodbar-disable-link' => 'Ech sinn net interesséiert. Schalt dës Fonctioun w.e.g. aus.',
@@ -3119,6 +3161,7 @@
31203162 'moodbar-user-ip' => 'IP-Adress',
31213163 'moodbar-user-user' => 'Registréierte Benotzer',
31223164 'moodbar-log-hide' => 'huet [[$1]] verstoppt',
 3165+ 'moodbar-log-feedback' => 'Feedback iwwer MoodBar [[$1]]',
31233166 'moodbar-response-link' => 'Bedingungen',
31243167 'response-back-text' => 'Zréck',
31253168 'response-preview-text' => 'Kucken ouni ofzespäicheren',
@@ -3264,6 +3307,7 @@
32653308 'moodbar-privacy' => 'Поднесувајќи го ова, се согласувате на транспарентност под следниве $1.',
32663309 'moodbar-privacy-link' => 'услови',
32673310 'moodbar-privacy-link-title' => 'Услови на употреба',
 3311+ 'moodbar-fbd-link-title' => 'мислења',
32683312 'moodbar-disable-link' => 'Не сум заинтересиран. Оневозможи ја функцијава.',
32693313 'moodbar-form-title' => 'Бидејќи...',
32703314 'moodbar-form-note' => 'највеќе 140 знаци',
@@ -3274,7 +3318,7 @@
32753319 'moodbar-loading-title' => 'Споделувам...',
32763320 'moodbar-success-title' => 'Благодариме!',
32773321 'moodbar-error-title' => 'Упс!',
3278 - 'moodbar-success-subtitle' => 'Споделувајќи го вашето уредувачко искуство ни помагате да ја подобриме $1.',
 3322+ 'moodbar-success-subtitle' => 'Споделувајќи го вашето {{FBD-LINK}} ни помагате да ја подобриме $1.',
32793323 'moodbar-error-subtitle' => 'Нешто не е во ред! Обидете се да го споделите вашето мислење подоцна.',
32803324 'moodbar-blocked-title' => 'Упс!',
32813325 'moodbar-blocked-subtitle' => 'Блокирани сте од уредување.',
@@ -3348,6 +3392,7 @@
33493393 'moodbar-invalid-item' => 'Системот не можеше да го најде бараното мислење',
33503394 'moodbar-feedback-action-error' => 'Настана грешка при обидот да се изврши дејството.',
33513395 'moodbar-feedback-response-summary' => '[[$1|$2]] [[$3|одговори]] пред $4',
 3396+ 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]] [[$3|одговори]] пред $4, а [[$5|$6]] го смета одговорот за корисен',
33523397 'moodbar-feedback-edit-summary' => 'Одговор на [[Special:FeedbackDashboard/$1|искажано мислење]]: $2',
33533398 'moodbar-feedback-top-responders-title' => 'Најистакнати одговарачи',
33543399 'moodbar-type-happy' => '{{GENDER:$1|Среќен|Среќна|Среќен}}',
@@ -3386,9 +3431,9 @@
33873432 Што е страница за разговор?
33883433 Вашата страница ра разговор е местото кадешто другите уредници на {{SITENAME}} општат со вас. За да одговорите, стиснете на „Уреди“, ја носите стрелката под коментарот, го пишувате одговорот, ставата четири тилди за да се потпишете (~~~~), па ја зачувувате страницата. Сите страници на {{SITENAME}} имаат свои страници за разговор, и имаат најразлични намени. Може да ви треба некое време за да се привикнете, но потоа ќе ви биде многу лесно.
33893434
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]) ќе ве воведе во страниците за разговор чекор по чекор.
33913436
3392 -Пријатен ден,
 3437+Ви благодариме што сте дел од заедницата.
33933438
33943439 -- {{SITENAME}}',
33953440 );
@@ -3399,6 +3444,9 @@
34003445 $messages['ml'] = array(
34013446 'moodbar-trigger-share' => 'താങ്കളുടെ അനുഭവം പങ്ക്‌വെയ്ക്കുക',
34023447 'moodbar-trigger-editing' => '$1 തിരുത്തുമ്പോൾ...',
 3448+ 'moodbar-weeks' => '{{PLURAL:$1|ഒരാഴ്ച്ച|$1 ആഴ്ച്ച}}',
 3449+ 'moodbar-months' => '{{PLURAL:$1|ഒരു മാസം|$1 മാസം}}',
 3450+ 'moodbar-years' => '{{PLURAL:$1|ഒരു വർഷം|$2 വർഷം}}',
34033451 'moodbar-close' => '(അടയ്ക്കുക)',
34043452 'moodbar-intro-feedback' => '$1 തിരുത്തിയപ്പോൾ എനിക്ക്...',
34053453 'moodbar-intro-share' => '$1 സംരംഭത്തിലെ എന്റെ അനുഭവം എന്നെ...',
@@ -3455,7 +3503,7 @@
34563504 'moodbar-header-own-talk' => 'സ്വന്തം സം‌വാദം താൾ',
34573505 'moodbar-feedback-filters' => 'അരിപ്പകൾ',
34583506 'moodbar-feedback-filters-type' => 'തരം:',
3459 - 'moodbar-feedback-filters-username' => 'ഉപയോക്തൃനാമം',
 3507+ 'moodbar-feedback-filters-username' => 'ഉപയോക്തൃനാമം:',
34603508 'moodbar-feedback-filters-button' => 'അരിപ്പകൾ സജ്ജീകരിക്കുക',
34613509 'moodbar-feedback-whatis' => 'ഈ സവിശേഷത എന്താണ്?',
34623510 'moodbar-feedback-permalink' => 'ഇങ്ങോട്ടുള്ള കണ്ണികൾ',
@@ -3517,6 +3565,7 @@
35183566 'moodbar-privacy' => 'Dengan penyerahan ini, anda bersetuju dengan ketelusan di bawah $1 ini.',
35193567 'moodbar-privacy-link' => 'syarat-syarat',
35203568 'moodbar-privacy-link-title' => 'Syarat-Syarat Penggunaan',
 3569+ 'moodbar-fbd-link-title' => 'maklum balas',
35213570 'moodbar-disable-link' => 'Saya tak minat. Sila matikan ciri ini.',
35223571 'moodbar-form-title' => 'Kerana...',
35233572 'moodbar-form-note' => 'maksimum 140 aksara',
@@ -3527,7 +3576,7 @@
35283577 'moodbar-loading-title' => 'Berkongsi...',
35293578 'moodbar-success-title' => 'Terima kasih!',
35303579 '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.',
35323581 'moodbar-error-subtitle' => 'Ada yang tak kena! Sila cuba berkongsi maklum balas anda kemudian.',
35333582 'moodbar-blocked-title' => 'Alamak!',
35343583 'moodbar-blocked-subtitle' => 'Anda disekat daripada menyunting.',
@@ -3601,6 +3650,7 @@
36023651 'moodbar-invalid-item' => 'Sistem tidak dapat mencari butiran maklum balas yang betul.',
36033652 'moodbar-feedback-action-error' => 'Ralat berlaku ketika cuba melakukan tindakan ini.',
36043653 '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',
36053655 'moodbar-feedback-edit-summary' => 'Jawapan kepada [[Special:FeedbackDashboard/$1|maklum balas penggun]]: $2',
36063656 'moodbar-feedback-top-responders-title' => 'Pembalas Teratas',
36073657 'moodbar-type-happy' => '{{GENDER:$1|Gembira}}',
@@ -3633,14 +3683,14 @@
36343684
36353685 $4
36363686
3637 -Baca pesanan ini dalam [$5 laman perbincangan] anda
 3687+Baca pesanan ini dalam [$5 laman perbincangan] anda.
36383688
36393689 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.
36413691
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)
36433693
3644 -Semoga ceria,
 3694+Terima kasih kerana menyertai komuniti ini.
36453695
36463696 -- {{SITENAME}}',
36473697 );
@@ -3716,6 +3766,7 @@
37173767 'moodbar-privacy' => 'Door op te slaan gaat u akkoord met transparantie onder deze $1.',
37183768 'moodbar-privacy-link' => 'voorwaarden',
37193769 'moodbar-privacy-link-title' => 'Gebruiksvoorwaarden',
 3770+ 'moodbar-fbd-link-title' => 'terugkoppeling',
37203771 'moodbar-disable-link' => 'Ik ben niet geïnteresseerd. Schakel deze functie uit.',
37213772 'moodbar-form-title' => 'Omdat...',
37223773 'moodbar-form-note' => 'Maximaal 140 tekens',
@@ -3726,7 +3777,7 @@
37273778 'moodbar-loading-title' => 'Bezig met delen...',
37283779 'moodbar-success-title' => 'Bedankt!',
37293780 '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.',
37313782 'moodbar-error-subtitle' => 'Er is iets misgegaan! Probeer later opnieuw uw terugkoppeling te delen.',
37323783 'moodbar-blocked-title' => 'Oeps!',
37333784 'moodbar-blocked-subtitle' => 'U bent geblokkeerd en kunt niet bewerken.',
@@ -3800,6 +3851,7 @@
38013852 'moodbar-invalid-item' => 'Het systeem kon het juiste terugkoppelingsitem niet vinden.',
38023853 'moodbar-feedback-action-error' => 'Er is een fout opgetreden tijdens het uitvoeren van deze handeling.',
38033854 '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',
38043856 'moodbar-feedback-edit-summary' => 'Antwoord op [[Special:FeedbackDashboard/$1|terugkoppeling]]: $2',
38053857 'moodbar-feedback-top-responders-title' => 'Topbeantwoorders',
38063858 'moodbar-type-happy' => '{{GENDER:$1|Blij}}',
@@ -3812,6 +3864,7 @@
38133865 'moodbar-log-name' => 'Terugkoppelingslogboek',
38143866 'moodbar-log-header' => 'Dit is een logboek met uitgevoerde handelingen op items uit het [[Special:FeedbackDashboard|terugkoppelingsdashboard]].',
38153867 'moodbar-log-hide' => 'heeft [[$1]] verborgen',
 3868+ 'moodbar-log-feedback' => 'MoodBar-terugkoppeling [[$1]]',
38163869 'moodbar-log-restore' => 'heeft [[$1]] weer zichtbaar gemaakt',
38173870 'moodbar-response-terms' => 'Door op te slaan gaat u akkoord met transparantie onder deze $1.',
38183871 'moodbar-response-link' => 'voorwaarden',
@@ -3836,9 +3889,9 @@
38373890 Wat is een overlegpagina?
38383891 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.
38393892
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.
38413894
3842 -Nog een fijne dag!
 3895+Bedankt om deel uit te maken van de gemeenschap.
38433896
38443897 -- {{SITENAME}}',
38453898 );
@@ -4250,6 +4303,7 @@
42514304 'moodbar-log-name' => 'Registr dij coment',
42524305 '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]].",
42534306 'moodbar-log-hide' => 'stërma [[$1]]',
 4307+ 'moodbar-log-feedback' => "Opinion an sla bara d'umor [[$1]]",
42544308 'moodbar-log-restore' => 'ripristinà la visibilità për [[$1]]',
42554309 'moodbar-response-terms' => 'An sgnacand, a aceta na trasparensa conforma a coste $1.',
42564310 'moodbar-response-link' => 'condission',
@@ -4464,7 +4518,7 @@
44654519 'moodbar-loading-title' => 'Partajare...',
44664520 'moodbar-success-title' => 'Mulțumesc!',
44674521 '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.',
44694523 'moodbar-error-subtitle' => 'Ceva nu a mers bine! Încercați din nou mai târziu.',
44704524 'moodbar-blocked-title' => 'Ups!',
44714525 'moodbar-email-title' => 'Adăugați e-mailul',
@@ -4993,6 +5047,7 @@
49945048 'moodbar-trigger-feedback' => 'Povratne informacije o urejanju',
49955049 'moodbar-trigger-share' => 'Delite svoje izkušnje',
49965050 'moodbar-trigger-editing' => 'Urejanje $1 ...',
 5051+ 'moodbar-seconds' => 'manj kot eno minuto',
49975052 'moodbar-close' => '(zapri)',
49985053 'moodbar-intro-feedback' => 'Urejanje $1 me je naredilo ...',
49995054 'moodbar-intro-share' => 'Moja izkušnja na $1 me je naredila ...',
@@ -5012,6 +5067,7 @@
50135068 'moodbar-privacy' => 'S potrditvijo se strinjate s preglednostjo pod temi $1.',
50145069 'moodbar-privacy-link' => 'pogoji',
50155070 'moodbar-privacy-link-title' => 'Pogoji uporabe',
 5071+ 'moodbar-fbd-link-title' => 'povratne informacije',
50165072 'moodbar-disable-link' => 'Me ne zanima. Prosim, onemogoči to funkcijo.',
50175073 'moodbar-form-title' => 'Ker ...',
50185074 'moodbar-form-note' => 'največ 140 znakov',
@@ -5022,7 +5078,7 @@
50235079 'moodbar-loading-title' => 'Deljenje ...',
50245080 'moodbar-success-title' => 'Hvala!',
50255081 '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.',
50275083 'moodbar-error-subtitle' => 'Nekaj je šlo narobe! Prosimo, poskusite znova deliti svojo povratno informacijo pozneje.',
50285084 'moodbar-blocked-title' => 'Ups!',
50295085 'moodbar-blocked-subtitle' => 'Urejanje vam je preprečeno.',
@@ -5068,6 +5124,7 @@
50695125 'moodbar-feedback-filters-type-sad' => 'Žalostno',
50705126 'moodbar-feedback-filters-username' => 'Uporabniško ime:',
50715127 'moodbar-feedback-filters-my-response' => 'Samo moji odgovori',
 5128+ 'moodbar-feedback-filters-show-unanswered' => 'Prikaži neodgovorjene',
50725129 'moodbar-feedback-filters-button' => 'Nastavi filtre',
50735130 'moodbar-feedback-whatis' => 'Kaj je ta funkcija?',
50745131 'moodbar-feedback-permalink' => 'povezava do sem',
@@ -5124,14 +5181,14 @@
51255182
51265183 $4
51275184
5128 -Oglejte si sporočilo na svoji [$5 pogovorni strani]
 5185+Oglejte si sporočilo na svoji [$5 pogovorni strani].
51295186
51305187 Kaj je pogovorna stran?
51315188 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.
51325189
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.
51345191
5135 -Želimo vam lep dan,
 5192+Hvala, ker ste del skupnosti,
51365193
51375194 -- {{SITENAME}}',
51385195 );
@@ -5640,6 +5697,10 @@
56415698 'moodbar-trigger-feedback' => 'Phản hồi về sửa đổi',
56425699 'moodbar-trigger-share' => 'Chia sẻ ấn tượng của bạn',
56435700 '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',
56445705 'moodbar-close' => '(đóng)',
56455706 'moodbar-intro-feedback' => 'Việc sửa đổi $1 làm cho tôi có vẻ…',
56465707 'moodbar-intro-share' => 'Việc sử dụng $1 làm cho tôi có vẻ…',
@@ -5659,6 +5720,7 @@
56605721 '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.',
56615722 'moodbar-privacy-link' => 'điều khoản',
56625723 'moodbar-privacy-link-title' => 'Điều khoản sử dụng',
 5724+ 'moodbar-fbd-link-title' => 'phản hồi',
56635725 'moodbar-disable-link' => 'Thôi, xin tắt tính năng này.',
56645726 'moodbar-form-title' => 'Bởi vì…',
56655727 'moodbar-form-note' => 'tối đa 150 ký tự nữa',
@@ -5669,7 +5731,7 @@
56705732 'moodbar-loading-title' => 'Đang chia sẻ…',
56715733 'moodbar-success-title' => 'Cám ơn!',
56725734 '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.',
56745736 '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.',
56755737 'moodbar-blocked-title' => 'Ôi!',
56765738 'moodbar-blocked-subtitle' => 'Bạn đã bị cấm không được sửa đổi.',
@@ -5715,6 +5777,7 @@
57165778 'moodbar-feedback-filters-type-sad' => 'Bực mình',
57175779 'moodbar-feedback-filters-username' => 'Tên người dùng:',
57185780 'moodbar-feedback-filters-my-response' => 'Chỉ hồi đáp của tôi',
 5781+ 'moodbar-feedback-filters-show-unanswered' => 'Hiện chưa đáp',
57195782 'moodbar-feedback-filters-button' => 'Áp dụng bộ lọc',
57205783 'moodbar-feedback-whatis' => 'Tính năng này làm gì?',
57215784 'moodbar-feedback-permalink' => 'liên kết đến đây',
@@ -5742,7 +5805,9 @@
57435806 'moodbar-invalid-item' => 'Không tìm thấy khoản mục phản hồi đúng.',
57445807 'moodbar-feedback-action-error' => 'Có lỗi khi thực hiện tác vụ này.',
57455808 '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',
57465810 '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',
57475812 'moodbar-type-happy' => '{{GENDER:$1}}Hài lòng',
57485813 'moodbar-type-sad' => '{{GENDER:$1}}Bực mình',
57495814 'moodbar-type-confused' => '{{GENDER:$1}}Bối rối',
@@ -5753,6 +5818,7 @@
57545819 'moodbar-log-name' => 'Nhật trình phản hồi',
57555820 '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]].',
57565821 'moodbar-log-hide' => 'đã ẩn [[$1]]',
 5822+ 'moodbar-log-feedback' => 'Phản hồi MoodBar [[$1]]',
57575823 'moodbar-log-restore' => 'đã phục hồi mức hiển thị của [[$1]]',
57585824 '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.',
57595825 'moodbar-response-link' => 'điều khoản',
@@ -5764,6 +5830,7 @@
57655831 'response-ajax-success-body' => 'Đã thêm hồi đáp của bạn.',
57665832 'response-ajax-error-head' => 'Oái!',
57675833 '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.',
57685835 'moodbar-enotif-subject' => '$1 đã hồi đáp phản hồi của bạn',
57695836 'moodbar-enotif-body' => 'Xin chào $1!
57705837
@@ -5778,7 +5845,7 @@
57795846
57805847 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.
57815848
5782 -Chúc vui vẻ,
 5849+Cám ơn bạn tham gia cộng đồng,
57835850
57845851 {{SITENAME}}',
57855852 );
@@ -5845,6 +5912,7 @@
58465913 'moodbar-privacy' => '提交后,您将同意在$1下的透明度。',
58475914 'moodbar-privacy-link' => '条款',
58485915 'moodbar-privacy-link-title' => '使用条款',
 5916+ 'moodbar-fbd-link-title' => '反馈',
58495917 'moodbar-disable-link' => '我不感兴趣,请禁用此功能。',
58505918 'moodbar-form-title' => '因为……',
58515919 'moodbar-form-note' => '最多140字',
@@ -5855,7 +5923,7 @@
58565924 'moodbar-loading-title' => '分享中……',
58575925 'moodbar-success-title' => '感谢!',
58585926 'moodbar-error-title' => '糟糕!',
5859 - 'moodbar-success-subtitle' => '分享您的编辑体验,帮助我们改善$1。',
 5927+ 'moodbar-success-subtitle' => '分享您的{{FBD-LINK}},帮助我们改善$1。',
58605928 'moodbar-error-subtitle' => '出错啦!请重试分享您的反馈意见。',
58615929 'moodbar-blocked-title' => '糟糕!',
58625930 'moodbar-blocked-subtitle' => '您已被封禁,不能编辑。',
@@ -5930,6 +5998,7 @@
59315999 'moodbar-invalid-item' => '本系统无法找到正确的反馈项目。',
59326000 'moodbar-feedback-action-error' => '尝试执行此操作中发生了错误。',
59336001 'moodbar-feedback-response-summary' => '[[$1|$2]]于$4前[[$3|回应]]',
 6002+ 'moodbar-feedback-response-helpful-summary' => '[[$1|$2]]于$4前发表[[$3|回应]],[[$5|$6]]觉得其有帮助',
59346003 'moodbar-feedback-edit-summary' => '回应[[Special:FeedbackDashboard/$1|用户反馈]]:$2',
59356004 'moodbar-feedback-top-responders-title' => '最高反应者',
59366005 'moodbar-type-happy' => '{{GENDER:$1|开心}}',
@@ -5942,6 +6011,7 @@
59436012 'moodbar-log-name' => '反馈日志',
59446013 'moodbar-log-header' => '这是采取列于的[[Special:FeedbackDashboard|反馈仪表板]]反馈项目行动日志。',
59456014 'moodbar-log-hide' => '隐藏[[$1]]',
 6015+ 'moodbar-log-feedback' => 'MoodBar反馈[[$1]]',
59466016 'moodbar-log-restore' => '恢复[[$1]]的可视性',
59476017 'moodbar-response-terms' => '提交后,您将同意在$1下的透明度。',
59486018 'moodbar-response-link' => '条款',
@@ -5961,14 +6031,14 @@
59626032
59636033 $4
59646034
5965 - 在您的 [$5 talk page|对话页]查看此消息。
 6035+ 请在您的[$5 对话页]查看此消息。
59666036
59676037 什么是对话页?
5968 -您的用户对话页是这样一个页,其他{{SITENAME}}编辑用来与您沟通。您可以通过点击"编辑"来回复,将光标移到建议的下面,输入您的回复和四个波浪线(~~~~)签名并保存。所有{{SITENAME}}页都有对话页,并且它们有很多不同的用途。可能需要一些时间掌握它,不过一旦习惯了以后也非常简单。
 6038+您的用户对话页是这样一个页,其他{{SITENAME}}编辑用来与您沟通。您可以通过点击“编辑”来回复,将光标移到建议的下面,输入您的回复和四个波浪线(~~~~)签名并保存。所有{{SITENAME}}页都有对话页,并且它们有很多不同的用途。可能需要一些时间掌握它,不过一旦习惯了以后也非常简单。
59696039
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]上观看)可以提供一个讨论页作用一步一步的概览。
59716041
5972 -愉快一整天,
 6042+感谢您参入本社区,
59736043
59746044 -- {{SITENAME}}',
59756045 );
@@ -6014,7 +6084,7 @@
60156085 'moodbar-loading-title' => '分享中……',
60166086 'moodbar-success-title' => '謝謝!',
60176087 'moodbar-error-title' => '糟糕!',
6018 - 'moodbar-success-subtitle' => '分享您的編輯體驗,幫助我們改善$1。',
 6088+ 'moodbar-success-subtitle' => '分享您的{{FBD-LINK}},幫助我們改善$1。',
60196089 'moodbar-error-subtitle' => '出錯了!請重試分享您的反饋意見。',
60206090 'moodbar-blocked-title' => '糟糕!',
60216091 'moodbar-blocked-subtitle' => '您已被封禁,不能編輯。',
Index: branches/wmf/1.18wmf1/extensions/MoodBar/MoodBar.hooks.php
@@ -147,7 +147,7 @@
148148 $updater->addExtensionIndex( 'moodbar_feedback_response', 'mbfr_user_id', "$dir/mbfr_user_id_index.sql" );
149149 $updater->addExtensionField( 'moodbar_feedback', 'mbf_latest_response', "$dir/mbf_latest_response.sql" );
150150 $updater->addExtensionIndex( 'moodbar_feedback', 'mbf_latest_response', "$dir/mbf_latest_response.sql" );
151 -
 151+
152152 return true;
153153 }
154154
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
1174 + 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
1106 + native
Index: branches/wmf/1.18wmf1/extensions/MoodBar/modules/ext.moodBar/ext.moodBar.core.js
@@ -379,6 +379,22 @@
380380 });
381381 },
382382
 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+
383399 prepareEmailInput: function ( overlay ) {
384400 overlay
385401 .find('#mw-moodBar-emailInput')
@@ -442,18 +458,21 @@
443459 // 52px in known margins, 58px seems to be a necessary
444460 // fudge factor, plus 30px so the close button doesn't collide
445461 // 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);
455475 }
456 -
457 - mb.ui.overlay.width(newWidth);
 476+
458477 mb.ui.overlay.hide();
459478
460479 // Bind triger
@@ -488,6 +507,9 @@
489508 if (tpl == mb.tpl.emailconfirmation) {
490509 mb.prepareEmailVerification ( mb.ui.overlay );
491510 }
 511+ if (tpl == mb.tpl.success) {
 512+ mb.prepareSuccess( mb.ui.overlay );
 513+ }
492514 return true;
493515 },
494516
Index: branches/wmf/1.18wmf1/extensions/MoodBar/modules/ext.moodBar.dashboard/ext.moodBar.dashboard.css
@@ -125,7 +125,7 @@
126126 /* Tool Tip */
127127
128128 .fbd-tooltip-overlay-wrap {
129 - width: 285px;
 129+ width: 296px;
130130 position: absolute;
131131 left: 1em;
132132 top: 5.25em;
@@ -154,14 +154,15 @@
155155 font-weight: bold;
156156 font-size: 0.75em;
157157 /* 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;
159159 line-height: 18px;
160 - padding-left: 20px;
 160+ padding-left: 26px;
161161 }
162162
163163 .fbd-tooltip-close {
164164 color: #FF9933;
165165 float: right;
 166+ margin: 0 2px;
166167 }
167168
168169 /* List */
Index: branches/wmf/1.18wmf1/extensions/MoodBar/modules/ext.moodBar.dashboard/ext.moodBar.dashboard.js
@@ -2,7 +2,7 @@
33 * AJAX code for Special:MoodBarFeedback
44 */
55 jQuery( document ).ready( function ( $ ) {
6 - var formState, filterType, $fbdFiltersCheck;
 6+ var formState, filterType, $fbdFiltersCheck, concurrencyState = [];
77
88 /**
99 * Saved form state
@@ -413,7 +413,8 @@
414414 $( '.fbd-response-preview, .fbd-response-submit' ).removeProp( 'disabled' );
415415 $( this ).find( '.fbd-response-form' ).remove();
416416 }
417 -
 417+ //remove ConcurrencyToolTip if any
 418+ $( this ).find( '.fbd-tooltip-overlay-wrap').remove();
418419 });
419420 }
420421
@@ -423,7 +424,7 @@
424425 * @param e {jQuery.Event}
425426 */
426427 function showResponseForm( e ) {
427 - var termsLink, ula, inlineForm, $item;
 428+ var termsLink, ula, inlineForm, $item, itemId;
428429
429430 if ( $(this).hasClass( 'responder-expanded' ) ) {
430431
@@ -479,7 +480,7 @@
480481 ).append(
481482 $( '<button>' ).attr( 'class', 'fbd-response-preview' ).text ( mw.msg( 'response-preview-text' ) ).prop( 'disabled', true )
482483 ).append(
483 - $( '<div>' ).attr( 'style', 'clear:both' )
 484+ $( '<div>' ).attr( 'style', 'clear: both;' )
484485 );
485486
486487 // Get the feedbackItem
@@ -488,13 +489,14 @@
489490 // Close any open responders prior to opening this one.
490491 closeAllResponders();
491492
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' )
495497 .end()
496498 .find( '.fbd-item-response-expanded' )
497499 .parent()
498 - .addClass( 'responder-expanded' );
 500+ .addClass( 'responder-expanded' );
499501
500502 $item.append(inlineForm)
501503 .find( '.fbd-response-text' )
@@ -539,6 +541,24 @@
540542 wikitext = wikitext.replace( /~{3,5}/g, '' ) + "\n\n~~~~"; // Remove and add signature for
541543 parseWikiText( $item, wikitext );
542544 });
 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+
543563 }
544564 e.preventDefault();
545565 }
@@ -598,8 +618,8 @@
599619 function inlineMessage( $el, msg, callback) {
600620 $el.empty()
601621 .text( msg )
602 - .delay(2000)
603 - .fadeOut( 'slow', callback);
 622+ .delay( 2000 )
 623+ .fadeOut( 'slow', callback );
604624 }
605625 /**
606626 * Set status message for Send Response
@@ -611,20 +631,56 @@
612632 function responseMessage( $el, type, head, body ) {
613633 $el
614634 .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' )
617637 .end()
618638 .find( '.fbd-ajax-heading' )
619 - .text( head )
 639+ .text( head )
620640 .end()
621641 .find( '.fbd-ajax-text' )
622 - .html( body )
 642+ .html( body )
623643 .end();
 644+
624645 setTimeout( function () {
625646 reloadItem( $el, true );
626 - }, 2000);
 647+ }, 2000 );
627648 }
 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 );
628671
 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+
629685 // On-load stuff
630686 $( '.fbd-item-show a' ).live( 'click', showHiddenItem );
631687 $( '.fbd-item-hide a' ).live( 'click', hideItem );
Index: branches/wmf/1.18wmf1/extensions/MoodBar/MoodBar.php
@@ -174,6 +174,7 @@
175175 'moodbar-email-confirm-desc',
176176 'moodbar-email-resend-confirmation',
177177 'moodbar-email-optout',
 178+ 'moodbar-fbd-link-title',
178179 ),
179180 'dependencies' => array(
180181 'mediawiki.util',
@@ -259,6 +260,7 @@
260261 'expires' => 30,
261262 ),
262263 'infoUrl' => 'http://www.mediawiki.org/wiki/MoodBar',
 264+ 'feedbackDashboardUrl'=> 'about:blank',
263265 'privacyUrl' => 'about:blank',
264266 'disableExpiration' => 365,
265267 );
Property changes on: branches/wmf/1.18wmf1/extensions/MoodBar
___________________________________________________________________
Added: svn:mergeinfo
266268 Merged /branches/REL1_15/phase3/extensions/MoodBar:r51646
267269 Merged /branches/REL1_18/extensions/MoodBar:r101758,103190
268270 Merged /branches/REL1_17/phase3/extensions/MoodBar:r81445,81448
269271 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
270272 Merged /branches/sqlite/extensions/MoodBar:r58211-58321
271273 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
272274 Merged /branches/new-installer/phase3/extensions/MoodBar:r43664-66004

Status & tagging log