diff --git a/EVENTS.txt b/EVENTS.txt index 7b154ec353..5fdf7b8b9d 100644 --- a/EVENTS.txt +++ b/EVENTS.txt @@ -1265,3 +1265,27 @@ StartProfileListItemTags: when showing people tags in a profile list item widget EndProfileListItemTags: after showing people tags in a profile list item widget - $widget: ProfileListItem widget + +StartActivityObjectOutputAtom: Called at start of Atom XML output generation for ActivityObject chunks, just inside the . Cancel the event to take over its output completely (you're responsible for calling the matching End event if so) +- $obj: ActivityObject +- $out: XMLOutputter to append custom output + +EndActivityObjectOutputAtom: Called at end of Atom XML output generation for ActivityObject chunks, just inside the +- $obj: ActivityObject +- $out: XMLOutputter to append custom output + +StartActivityObjectOutputJson: Called at start of JSON output generation for ActivityObject chunks: the array has not yet been filled out. Cancel the event to take over its output completely (you're responsible for calling the matching End event if so) +- $obj ActivityObject +- &$out: array to be serialized; you're free to modify it + +EndActivityObjectOutputJson: Called at end of JSON output generation for ActivityObject chunks: the array has not yet been filled out. +- $obj ActivityObject +- &$out: array to be serialized; you're free to modify it + +StartNoticeWhoGets: Called at start of inbox delivery prep; plugins can schedule notices to go to particular profiles that would otherwise not have reached them. Canceling will take over the entire addressing operation. Be aware that output can be cached or used several times, so should remain idempotent. +- $notice Notice +- &$ni: in/out array mapping profile IDs to constants: NOTICE_INBOX_SOURCE_SUB etc + +EndNoticeWhoGets: Called at end of inbox delivery prep; plugins can filter out profiles from receiving inbox delivery here. Be aware that output can be cached or used several times, so should remain idempotent. +- $notice Notice +- &$ni: in/out array mapping profile IDs to constants: NOTICE_INBOX_SOURCE_SUB etc diff --git a/actions/all.php b/actions/all.php index 2936df4599..2826319c0d 100644 --- a/actions/all.php +++ b/actions/all.php @@ -127,12 +127,6 @@ class AllAction extends ProfileAction ); } - function showLocalNav() - { - $nav = new PersonalGroupNav($this); - $nav->show(); - } - function showEmptyListMessage() { // TRANS: Empty list message. %s is a user nickname. diff --git a/actions/apigrouplist.php b/actions/apigrouplist.php index 1f6d44363f..f80fbce932 100644 --- a/actions/apigrouplist.php +++ b/actions/apigrouplist.php @@ -100,7 +100,7 @@ class ApiGroupListAction extends ApiBareAuthAction ); $subtitle = sprintf( - // TRANS: Used as subtitle in check for group membership. %1$s is a user name, %2$s is the site name. + // TRANS: Used as subtitle in check for group membership. %1$s is the site name, %2$s is a user name. _('%1$s groups %2$s is a member of.'), $sitename, $this->user->nickname diff --git a/actions/apigroupprofileupdate.php b/actions/apigroupprofileupdate.php index 6ac4b5a4b5..9a629a47d7 100644 --- a/actions/apigroupprofileupdate.php +++ b/actions/apigroupprofileupdate.php @@ -42,10 +42,8 @@ require_once INSTALLDIR . '/lib/apiauth.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class ApiGroupProfileUpdateAction extends ApiAuthAction { - /** * Take arguments for running * @@ -54,7 +52,6 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction * @return boolean success flag * */ - function prepare($args) { parent::prepare($args); @@ -82,7 +79,6 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction * * @return void */ - function handle($args) { parent::handle($args); @@ -97,6 +93,7 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction if (!in_array($this->format, array('xml', 'json'))) { $this->clientError( + // TRANS: Client error displayed when using an unsupported API format. _('API method not found.'), 404, $this->format @@ -105,16 +102,19 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction } if (empty($this->user)) { + // TRANS: Client error displayed when not providing a user or an invalid user. $this->clientError(_('No such user.'), 404, $this->format); return; } if (empty($this->group)) { + // TRANS: Client error displayed when not providing a group or an invalid group. $this->clientError(_('Group not found.'), 404, $this->format); return false; } if (!$this->user->isAdmin($this->group)) { + // TRANS: Client error displayed when trying to edit a group without being an admin. $this->clientError(_('You must be an admin to edit the group.'), 403); return false; } @@ -168,15 +168,15 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction if (!$result) { common_log_db_error($this->group, 'UPDATE', __FILE__); + // TRANS: Server error displayed when group update fails. $this->serverError(_('Could not update group.')); } $aliases = array(); try { - - if (!empty($this->aliasstring)) { - $aliases = $this->validateAliases(); + if (!empty($this->aliasstring)) { + $aliases = $this->validateAliases(); } } catch (ApiValidationException $ave) { @@ -191,6 +191,7 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction $result = $this->group->setAliases($aliases); if (!$result) { + // TRANS: Server error displayed when adding group aliases fails. $this->serverError(_('Could not create aliases.')); } @@ -210,6 +211,7 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction $this->showSingleJsonGroup($this->group); break; default: + // TRANS: Client error displayed when using an unsupported API format. $this->clientError(_('API method not found.'), 404, $this->format); break; } @@ -245,17 +247,17 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction ) ) { throw new ApiValidationException( - _( - 'Nickname must have only lowercase letters ' . - 'and numbers and no spaces.' - ) + // TRANS: API validation exception thrown when nickname does not validate. + _('Nickname must have only lowercase letters and numbers and no spaces.') ); } else if ($this->nicknameExists($this->nickname)) { throw new ApiValidationException( + // TRANS: API validation exception thrown when nickname is already used. _('Nickname already in use. Try another one.') ); } else if (!User_group::allowedNickname($this->nickname)) { throw new ApiValidationException( + // TRANS: API validation exception thrown when nickname does not validate. _('Not a valid nickname.') ); } @@ -274,6 +276,7 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction ) ) { throw new ApiValidationException( + // TRANS: API validation exception thrown when homepage URL does not validate. _('Homepage is not a valid URL.') ); } @@ -283,7 +286,8 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction { if (!is_null($this->fullname) && mb_strlen($this->fullname) > 255) { throw new ApiValidationException( - _('Full name is too long (max 255 chars).') + // TRANS: API validation exception thrown when full name does not validate. + _('Full name is too long (maximum 255 characters).') ); } } @@ -291,12 +295,12 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction function validateDescription() { if (User_group::descriptionTooLong($this->description)) { - throw new ApiValidationException( - sprintf( - _('description is too long (max %d chars).'), - User_group::maxDescription() - ) - ); + // TRANS: API validation exception thrown when description does not validate. + // TRANS: %d is the maximum description length and used for plural. + throw new ApiValidationException(sprintf(_m('Description is too long (maximum %d character).', + 'Description is too long (maximum %d characters).', + User_group::maxDescription()), + User_group::maxDescription())); } } @@ -304,7 +308,8 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction { if (!is_null($this->location) && mb_strlen($this->location) > 255) { throw new ApiValidationException( - _('Location is too long (max 255 chars).') + // TRANS: API validation exception thrown when location does not validate. + _('Location is too long (maximum 255 characters).') ); } } @@ -321,12 +326,12 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction ); if (count($aliases) > common_config('group', 'maxaliases')) { - throw new ApiValidationException( - sprintf( - _('Too many aliases! Maximum %d.'), - common_config('group', 'maxaliases') - ) - ); + // TRANS: API validation exception thrown when aliases do not validate. + // TRANS: %d is the maximum number of aliases and used for plural. + throw new ApiValidationException(sprintf(_m('Too many aliases! Maximum %d allowed.', + 'Too many aliases! Maximum %d allowed.', + common_config('group', 'maxaliases')), + common_config('group', 'maxaliases'))); } foreach ($aliases as $alias) { @@ -339,7 +344,9 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction ) { throw new ApiValidationException( sprintf( - _('Invalid alias: "%s"'), + // TRANS: API validation exception thrown when aliases does not validate. + // TRANS: %s is the invalid alias. + _('Invalid alias: "%s".'), $alias ) ); @@ -348,6 +355,8 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction if ($this->nicknameExists($alias)) { throw new ApiValidationException( sprintf( + // TRANS: API validation exception thrown when aliases is already used. + // TRANS: %s is the already used alias. _('Alias "%s" already in use. Try another one.'), $alias) ); @@ -356,12 +365,12 @@ class ApiGroupProfileUpdateAction extends ApiAuthAction // XXX assumes alphanum nicknames if (strcmp($alias, $this->nickname) == 0) { throw new ApiValidationException( - _('Alias can\'t be the same as nickname.') + // TRANS: API validation exception thrown when alias is the same as nickname. + _('Alias cannot be the same as nickname.') ); } } return $aliases; } - -} \ No newline at end of file +} diff --git a/actions/apitimelineretweetedtome.php b/actions/apitimelineretweetedtome.php index b9f9be1dda..628dc40247 100644 --- a/actions/apitimelineretweetedtome.php +++ b/actions/apitimelineretweetedtome.php @@ -95,6 +95,9 @@ class ApiTimelineRetweetedToMeAction extends ApiAuthAction // TRANS: Title for Atom feed "repeated to me". %s is the user nickname. $title = sprintf(_("Repeated to %s"), $this->auth_user->nickname); $subtitle = sprintf( + // @todo FIXME: $profile is not defined. + // TRANS: Subtitle for API action that shows most recent notices that are repeats in user's inbox. + // TRANS: %1$s is the sitename, %2$s is a user nickname, %3$s is a user profile name. _('%1$s notices that were to repeated to %2$s / %3$s.'), $sitename, $this->user->nickname, $profile->getBestName() ); diff --git a/actions/apitimelineuser.php b/actions/apitimelineuser.php index 66984b5abd..3fe73c691c 100644 --- a/actions/apitimelineuser.php +++ b/actions/apitimelineuser.php @@ -322,8 +322,11 @@ class ApiTimelineUserAction extends ApiBareAuthAction $this->clientError(_('Atom post must not be empty.')); } - $dom = DOMDocument::loadXML($xml); - if (!$dom) { + $old = error_reporting(error_reporting() & ~(E_WARNING | E_NOTICE)); + $dom = new DOMDocument(); + $ok = $dom->loadXML($xml); + error_reporting($old); + if (!$ok) { // TRANS: Client error displayed attempting to post an API that is not well-formed XML. $this->clientError(_('Atom post must be well-formed XML.')); } diff --git a/actions/atompubfavoritefeed.php b/actions/atompubfavoritefeed.php index c31fcbd72a..634bb22457 100644 --- a/actions/atompubfavoritefeed.php +++ b/actions/atompubfavoritefeed.php @@ -256,7 +256,7 @@ class AtompubfavoritefeedAction extends ApiAuthAction if (empty($notice)) { // XXX: import from listed URL or something // TRANS: Client exception thrown when trying favorite a notice without content. - throw new ClientException(_('Unknown note.')); + throw new ClientException(_('Unknown notice.')); } $old = Fave::pkeyGet(array('user_id' => $this->auth_user->id, diff --git a/actions/blockedfromgroup.php b/actions/blockedfromgroup.php index 6ff572c05d..dd916b170a 100644 --- a/actions/blockedfromgroup.php +++ b/actions/blockedfromgroup.php @@ -122,7 +122,7 @@ class BlockedfromgroupAction extends GroupDesignAction _('A list of the users blocked from joining this group.')); } - function showLocalNav() + function showObjectNav() { $nav = new GroupNav($this, $this->group); $nav->show(); diff --git a/actions/confirmaddress.php b/actions/confirmaddress.php index fd04c31307..ef4cd7cb0d 100644 --- a/actions/confirmaddress.php +++ b/actions/confirmaddress.php @@ -99,7 +99,7 @@ class ConfirmaddressAction extends Action if (in_array($type, array('email', 'sms'))) { if ($cur->$type == $confirm->address) { - // TRANS: Client error for an already confirmed email/jabber/sms address. + // TRANS: Client error for an already confirmed email/jabber/sms address. $this->clientError(_('That address has already been confirmed.')); return; } @@ -118,7 +118,8 @@ class ConfirmaddressAction extends Action if (!$result) { common_log_db_error($cur, 'UPDATE', __FILE__); - $this->serverError(_('Couldn\'t update user.')); + // TRANS: Server error displayed when confirming an e-mail address or IM address fails. + $this->serverError(_('Could not update user.')); return; } @@ -133,6 +134,7 @@ class ConfirmaddressAction extends Action $user_im_prefs->user_id = $cur->id; if ($user_im_prefs->find() && $user_im_prefs->fetch()) { if($user_im_prefs->screenname == $confirm->address){ + // TRANS: Client error for an already confirmed IM address. $this->clientError(_('That address has already been confirmed.')); return; } @@ -141,7 +143,8 @@ class ConfirmaddressAction extends Action if (!$result) { common_log_db_error($user_im_prefs, 'UPDATE', __FILE__); - $this->serverError(_('Couldn\'t update user im preferences.')); + // TRANS: Server error displayed when updating IM preferences fails. + $this->serverError(_('Could not update user IM preferences.')); return; } }else{ @@ -153,7 +156,8 @@ class ConfirmaddressAction extends Action if (!$result) { common_log_db_error($user_im_prefs, 'INSERT', __FILE__); - $this->serverError(_('Couldn\'t insert user im preferences.')); + // TRANS: Server error displayed when adding IM preferences fails. + $this->serverError(_('Could not insert user IM preferences.')); return; } } diff --git a/actions/conversationreplies.php b/actions/conversationreplies.php new file mode 100644 index 0000000000..21780fdf1d --- /dev/null +++ b/actions/conversationreplies.php @@ -0,0 +1,106 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2009, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +// XXX: not sure how to do paging yet, +// so set a 60-notice limit + +require_once INSTALLDIR.'/lib/noticelist.php'; + +/** + * Conversation tree in the browser + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + */ +class ConversationRepliesAction extends ConversationAction +{ + function handle($args) + { + if ($this->boolean('ajax')) { + $this->showAjax(); + } else { + parent::handle($args); + } + } + + /** + * Show content. + * + * Display a hierarchical unordered list in the content area. + * Uses ConversationTree to do most of the heavy lifting. + * + * @return void + */ + function showContent() + { + $notices = Notice::conversationStream($this->id, null, null); + + $ct = new FullThreadedNoticeList($notices, $this); + + $cnt = $ct->show(); + } + + function showAjax() + { + header('Content-Type: text/xml;charset=utf-8'); + $this->xw->startDocument('1.0', 'UTF-8'); + $this->elementStart('html'); + $this->elementStart('head'); + // TRANS: Title for conversation page. + $this->element('title', null, _m('TITLE','Notice')); + $this->elementEnd('head'); + $this->elementStart('body'); + $this->showContent(); + $this->elementEnd('body'); + $this->elementEnd('html'); + } +} + +class FullThreadedNoticeList extends ThreadedNoticeList +{ + function newListItem($notice) + { + return new FullThreadedNoticeListItem($notice, $this->out); + } +} + +class FullThreadedNoticeListItem extends ThreadedNoticeListItem +{ + function initialItems() + { + return 1000; // @fixme + } +} diff --git a/actions/editgroup.php b/actions/editgroup.php index 0e04170051..08a75da12c 100644 --- a/actions/editgroup.php +++ b/actions/editgroup.php @@ -139,7 +139,7 @@ class EditgroupAction extends GroupDesignAction $this->showPage(); } - function showLocalNav() + function showObjectNav() { $nav = new GroupNav($this, $this->group); $nav->show(); diff --git a/actions/favorited.php b/actions/favorited.php index c137cf424f..17c2a58c94 100644 --- a/actions/favorited.php +++ b/actions/favorited.php @@ -163,19 +163,6 @@ class FavoritedAction extends Action $this->elementEnd('div'); } - /** - * Local navigation - * - * This page is part of the public group, so show that. - * - * @return void - */ - function showLocalNav() - { - $nav = new PublicGroupNav($this); - $nav->show(); - } - /** * Content area * diff --git a/actions/featured.php b/actions/featured.php index 9a7f128b57..394cfe6a8b 100644 --- a/actions/featured.php +++ b/actions/featured.php @@ -90,12 +90,6 @@ class FeaturedAction extends Action $this->elementEnd('div'); } - function showLocalNav() - { - $nav = new PublicGroupNav($this); - $nav->show(); - } - function getInstructions() { // TRANS: Description on page displaying featured users. diff --git a/actions/groupdesignsettings.php b/actions/groupdesignsettings.php index 3ef5e20e44..798064d16c 100644 --- a/actions/groupdesignsettings.php +++ b/actions/groupdesignsettings.php @@ -163,12 +163,22 @@ class GroupDesignSettingsAction extends DesignSettingsAction * * @return nothing */ - function showLocalNav() + function showObjectNav() { $nav = new GroupNav($this, $this->group); $nav->show(); } + /** + * Override to show default nav stuff + * + * @return nothing + */ + function showLocalNav() + { + Action::showLocalNav(); + } + /** * Get the design we want to edit * diff --git a/actions/grouplogo.php b/actions/grouplogo.php index d490cd9875..db0d40ff0c 100644 --- a/actions/grouplogo.php +++ b/actions/grouplogo.php @@ -458,7 +458,7 @@ class GrouplogoAction extends GroupDesignAction $this->autofocus('avatarfile'); } - function showLocalNav() + function showObjectNav() { $nav = new GroupNav($this, $this->group); $nav->show(); diff --git a/actions/groupmembers.php b/actions/groupmembers.php index 7b1512dfab..e280fd1fd1 100644 --- a/actions/groupmembers.php +++ b/actions/groupmembers.php @@ -125,7 +125,7 @@ class GroupmembersAction extends GroupDesignAction _('A list of the users in this group.')); } - function showLocalNav() + function showObjectNav() { $nav = new GroupNav($this, $this->group); $nav->show(); diff --git a/actions/groups.php b/actions/groups.php index 958c5921bf..d1bc8d9458 100644 --- a/actions/groups.php +++ b/actions/groups.php @@ -80,12 +80,6 @@ class GroupsAction extends Action $this->showPage(); } - function showLocalNav() - { - $nav = new PublicGroupNav($this); - $nav->show(); - } - function showPageNotice() { $notice = diff --git a/actions/imsettings.php b/actions/imsettings.php index f45848a13d..b887fdb231 100644 --- a/actions/imsettings.php +++ b/actions/imsettings.php @@ -111,8 +111,8 @@ class ImsettingsAction extends SettingsAction if ($user_im_prefs = User_im_prefs::pkeyGet( array('transport' => $transport, 'user_id' => $user->id) )) { $user_im_prefs_by_transport[$transport] = $user_im_prefs; $this->element('p', 'form_confirmed', $user_im_prefs->screenname); - // TRANS: Form note in IM settings form. $this->element('p', 'form_note', + // TRANS: Form note in IM settings form. %s is the type of IM address that was confirmed. sprintf(_('Current confirmed %s address.'),$transport_info['display'])); $this->hidden('screenname', $user_im_prefs->screenname); // TRANS: Button label to remove a confirmed IM address. @@ -124,11 +124,11 @@ class ImsettingsAction extends SettingsAction // TRANS: Form note in IM settings form. $this->element('p', 'form_note', // TRANS: Form note in IM settings form. - // TRANS: %s is the IM address set for the site. + // TRANS: %s is the IM service name, %2$s is the IM address set. sprintf(_('Awaiting confirmation on this address. '. - 'Check your %s account for a '. + 'Check your %1$s account for a '. 'message with further instructions. '. - '(Did you add %s to your buddy list?)'), + '(Did you add %2$s to your buddy list?)'), $transport_info['display'], $transport_info['daemonScreenname'])); $this->hidden('screenname', $confirm->address); @@ -137,8 +137,10 @@ class ImsettingsAction extends SettingsAction } else { $this->elementStart('ul', 'form_data'); $this->elementStart('li'); + // TRANS: Field label for IM address. $this->input('screenname', _('IM address'), ($this->arg('screenname')) ? $this->arg('screenname') : null, + // TRANS: Field title for IM address. %s is the IM service name. sprintf(_('%s screenname.'), $transport_info['display'])); $this->elementEnd('li'); @@ -288,7 +290,7 @@ class ImsettingsAction extends SettingsAction if ($result === false) { common_log_db_error($user, 'UPDATE', __FILE__); // TRANS: Server error thrown on database error updating IM preferences. - $this->serverError(_('Couldn\'t update IM preferences.')); + $this->serverError(_('Could not update IM preferences.')); return; } }while($user_im_prefs->fetch()); @@ -322,6 +324,7 @@ class ImsettingsAction extends SettingsAction } if (!$transport) { + // TRANS: Form validation error when no transport is available setting an IM address. $this->showForm(_('No transport.')); return; } @@ -330,14 +333,14 @@ class ImsettingsAction extends SettingsAction if (!$screenname) { // TRANS: Message given saving IM address that cannot be normalised. - $this->showForm(_('Cannot normalize that screenname')); + $this->showForm(_('Cannot normalize that screenname.')); return; } $valid = false; Event::handle('ValidateImScreenname', array($transport, $screenname, &$valid)); if (!$valid) { // TRANS: Message given saving IM address that not valid. - $this->showForm(_('Not a valid screenname')); + $this->showForm(_('Not a valid screenname.')); return; } else if ($this->screennameExists($transport, $screenname)) { // TRANS: Message given saving IM address that is already set for another user. @@ -402,7 +405,7 @@ class ImsettingsAction extends SettingsAction if (!$result) { common_log_db_error($confirm, 'DELETE', __FILE__); // TRANS: Server error thrown on database error canceling IM address confirmation. - $this->serverError(_('Couldn\'t delete confirmation.')); + $this->serverError(_('Could not delete confirmation.')); return; } @@ -440,8 +443,7 @@ class ImsettingsAction extends SettingsAction if (!$result) { common_log_db_error($user, 'UPDATE', __FILE__); // TRANS: Server error thrown on database error removing a registered IM address. - $this->serverError(_('Couldn\'t update user im prefs.')); - $this->serverError(_('Couldn\'t update user.')); + $this->serverError(_('Could not update user IM preferences.')); return; } diff --git a/actions/invite.php b/actions/invite.php index a2a0e0714a..c64ff8adda 100644 --- a/actions/invite.php +++ b/actions/invite.php @@ -289,7 +289,7 @@ class InviteAction extends CurrentUserDesignAction mail_send($recipients, $headers, $body); } - function showLocalNav() + function showObjectNav() { $nav = new SubGroupNav($this, common_current_user()); $nav->show(); diff --git a/actions/login.php b/actions/login.php index 768bc04cef..7ec9c32139 100644 --- a/actions/login.php +++ b/actions/login.php @@ -297,4 +297,12 @@ class LoginAction extends Action $nav = new LoginGroupNav($this); $nav->show(); } + + function showNoticeForm() + { + } + + function showProfileBlock() + { + } } diff --git a/actions/newapplication.php b/actions/newapplication.php index eb13593536..a2c4f58b8d 100644 --- a/actions/newapplication.php +++ b/actions/newapplication.php @@ -22,7 +22,7 @@ * @category Applications * @package StatusNet * @author Zach Copley - * @copyright 2008-2009 StatusNet, Inc. + * @copyright 2008-2011 StatusNet, Inc. * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ @@ -290,7 +290,14 @@ class NewApplicationAction extends OwnerDesignAction $app->query('ROLLBACK'); } - $app->uploadLogo(); + try { + $app->uploadLogo(); + } catch (Exception $e) { + $app->query('ROLLBACK'); + // TRANS: Form validation error on New application page when providing an invalid image upload. + $this->showForm(_('Invalid image.')); + return; + } $app->query('COMMIT'); diff --git a/actions/noticesearch.php b/actions/noticesearch.php index 4f4c7a05ba..1f43af800d 100644 --- a/actions/noticesearch.php +++ b/actions/noticesearch.php @@ -138,11 +138,14 @@ class NoticesearchAction extends SearchAction $this->elementEnd('div'); return; } - $terms = preg_split('/[\s,]+/', $q); - $nl = new SearchNoticeList($notice, $this, $terms); - $cnt = $nl->show(); - $this->pagination($page > 1, $cnt > NOTICES_PER_PAGE, - $page, 'noticesearch', array('q' => $q)); + if (Event::handle('StartNoticeSearchShowResults', array($this, $q, $notice))) { + $terms = preg_split('/[\s,]+/', $q); + $nl = new SearchNoticeList($notice, $this, $terms); + $cnt = $nl->show(); + $this->pagination($page > 1, $cnt > NOTICES_PER_PAGE, + $page, 'noticesearch', array('q' => $q)); + Event::handle('EndNoticeSearchShowResults', array($this, $q, $notice)); + } } function showScripts() diff --git a/actions/passwordsettings.php b/actions/passwordsettings.php index 37877931ea..465cb558a4 100644 --- a/actions/passwordsettings.php +++ b/actions/passwordsettings.php @@ -55,7 +55,8 @@ class PasswordsettingsAction extends SettingsAction function title() { - return _('Change password'); + // TRANS: Title for page where to change password. + return _m('TITLE','Change password'); } /** @@ -66,6 +67,7 @@ class PasswordsettingsAction extends SettingsAction function getInstructions() { + // TRANS: Instructions for page where to change password. return _('Change your password.'); } @@ -93,6 +95,7 @@ class PasswordsettingsAction extends SettingsAction 'action' => common_local_url('passwordsettings'))); $this->elementStart('fieldset'); + // TRANS: Fieldset legend on page where to change password. $this->element('legend', null, _('Password change')); $this->hidden('token', common_session_token()); @@ -101,20 +104,26 @@ class PasswordsettingsAction extends SettingsAction // Users who logged in with OpenID won't have a pwd if ($user->password) { $this->elementStart('li'); + // TRANS: Field label on page where to change password. $this->password('oldpassword', _('Old password')); $this->elementEnd('li'); } $this->elementStart('li'); + // TRANS: Field label on page where to change password. $this->password('newpassword', _('New password'), + // TRANS: Field title on page where to change password. _('6 or more characters.')); $this->elementEnd('li'); $this->elementStart('li'); - $this->password('confirm', _('Confirm'), + // TRANS: Field label on page where to change password. In this field the new password should be typed a second time. + $this->password('confirm', _m('LABEL','Confirm'), + // TRANS: Field title on page where to change password. _('Same as password above.')); $this->elementEnd('li'); $this->elementEnd('ul'); - $this->submit('changepass', _('Change')); + // TRANS: Button text on page where to change password. + $this->submit('changepass', _m('BUTTON','Change')); $this->elementEnd('fieldset'); $this->elementEnd('form'); @@ -150,10 +159,12 @@ class PasswordsettingsAction extends SettingsAction # Some validation if (strlen($newpassword) < 6) { + // TRANS: Form validation error on page where to change password. $this->showForm(_('Password must be 6 or more characters.')); return; } else if (0 != strcmp($newpassword, $confirm)) { - $this->showForm(_('Passwords don\'t match.')); + // TRANS: Form validation error on password change when password confirmation does not match. + $this->showForm(_('Passwords do not match.')); return; } @@ -161,7 +172,8 @@ class PasswordsettingsAction extends SettingsAction $oldpassword = $this->arg('oldpassword'); if (!common_check_user($user->nickname, $oldpassword)) { - $this->showForm(_('Incorrect old password')); + // TRANS: Form validation error on page where to change password. + $this->showForm(_('Incorrect old password.')); return; } }else{ @@ -177,17 +189,21 @@ class PasswordsettingsAction extends SettingsAction $val = $user->validate(); if ($val !== true) { + // TRANS: Form validation error on page where to change password. $this->showForm(_('Error saving user; invalid.')); return; } if (!$user->update($original)) { - $this->serverError(_('Cannot save new password.')); + // TRANS: Server error displayed on page where to change password when password change + // TRANS: could not be made because of a server error. + $this->serverError(_('Cannot save new password.')); return; } Event::handle('EndChangePassword', array($user)); } + // TRANS: Form validation notice on page where to change password. $this->showForm(_('Password saved.'), true); } } diff --git a/actions/pathsadminpanel.php b/actions/pathsadminpanel.php index dd65a7a134..0b4a5ff952 100644 --- a/actions/pathsadminpanel.php +++ b/actions/pathsadminpanel.php @@ -152,7 +152,7 @@ class PathsadminpanelAction extends AdminPanelAction if (!empty($values['theme']['dir']) && !is_readable($values['theme']['dir'])) { // TRANS: Client error in Paths admin panel. // TRANS: %s is the directory that could not be read from. - $this->clientError(sprintf(_("Theme directory not readable: %s."), $values['theme']['dir'])); + $this->clientError(sprintf(_('Theme directory not readable: %s.'), $values['theme']['dir'])); } // Validate avatar dir @@ -160,7 +160,7 @@ class PathsadminpanelAction extends AdminPanelAction if (empty($values['avatar']['dir']) || !is_writable($values['avatar']['dir'])) { // TRANS: Client error in Paths admin panel. // TRANS: %s is the avatar directory that could not be written to. - $this->clientError(sprintf(_("Avatar directory not writable: %s."), $values['avatar']['dir'])); + $this->clientError(sprintf(_('Avatar directory not writable: %s.'), $values['avatar']['dir'])); } // Validate background dir @@ -168,7 +168,7 @@ class PathsadminpanelAction extends AdminPanelAction if (empty($values['background']['dir']) || !is_writable($values['background']['dir'])) { // TRANS: Client error in Paths admin panel. // TRANS: %s is the background directory that could not be written to. - $this->clientError(sprintf(_("Background directory not writable: %s."), $values['background']['dir'])); + $this->clientError(sprintf(_('Background directory not writable: %s.'), $values['background']['dir'])); } // Validate locales dir @@ -178,7 +178,7 @@ class PathsadminpanelAction extends AdminPanelAction if (!empty($values['site']['locale_path']) && !is_readable($values['site']['locale_path'])) { // TRANS: Client error in Paths admin panel. // TRANS: %s is the locales directory that could not be read from. - $this->clientError(sprintf(_("Locales directory not readable: %s."), $values['site']['locale_path'])); + $this->clientError(sprintf(_('Locales directory not readable: %s.'), $values['site']['locale_path'])); } // Validate SSL setup @@ -239,6 +239,7 @@ class PathsAdminPanelForm extends AdminForm $this->input('server', // TRANS: Field label in Paths admin panel. _('Server'), + // TRANS: Field title in Paths admin panel. _('Site\'s server hostname.')); $this->unli(); @@ -246,6 +247,7 @@ class PathsAdminPanelForm extends AdminForm $this->input('path', // TRANS: Field label in Paths admin panel. _('Path'), + // TRANS: Field title in Paths admin panel. _('Site path.')); $this->unli(); @@ -253,6 +255,7 @@ class PathsAdminPanelForm extends AdminForm $this->input('locale_path', // TRANS: Field label in Paths admin panel. _('Locale directory'), + // TRANS: Field title in Paths admin panel. _('Directory path to locales.'), 'site'); $this->unli(); @@ -262,14 +265,16 @@ class PathsAdminPanelForm extends AdminForm // TRANS: Checkbox label in Paths admin panel. _('Fancy URLs'), (bool) $this->value('fancy'), - _('Use fancy (more readable and memorable) URLs?')); + // TRANS: Field title in Paths admin panel. + _('Use fancy URLs (more readable and memorable)?')); $this->unli(); $this->out->elementEnd('ul'); $this->out->elementEnd('fieldset'); $this->out->elementStart('fieldset', array('id' => 'settings_paths_theme')); - $this->out->element('legend', null, _('Theme')); + // TRANS: Fieldset legend in Paths admin panel. + $this->out->element('legend', null, _m('LEGEND','Theme')); $this->out->elementStart('ul', 'form_data'); @@ -469,7 +474,7 @@ class PathsAdminPanelForm extends AdminForm $this->out->elementStart('fieldset', array('id' => 'settings_admin_ssl')); // TRANS: Fieldset legend in Paths admin panel. - $this->out->element('legend', null, _('SSL')); + $this->out->element('legend', null, _m('LEGEND','SSL')); $this->out->elementStart('ul', 'form_data'); $this->li(); @@ -480,8 +485,8 @@ class PathsAdminPanelForm extends AdminForm // TRANS: Drop down option in Paths admin panel (option for "When to use SSL"). 'always' => _('Always')); - // TRANS: Drop down label in Paths admin panel. $this->out->dropdown('site-ssl', + // TRANS: Drop down label in Paths admin panel. _('Use SSL'), // TRANS: Tooltip for field label in Paths admin panel. $ssl, _('When to use SSL.'), diff --git a/actions/plugindisable.php b/actions/plugindisable.php index 7f107b3335..abda2a7395 100644 --- a/actions/plugindisable.php +++ b/actions/plugindisable.php @@ -52,7 +52,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ - class PluginDisableAction extends PluginEnableAction { /** @@ -74,5 +73,3 @@ class PluginDisableAction extends PluginEnableAction return new EnablePluginForm($this, $this->plugin); } } - - diff --git a/actions/pluginenable.php b/actions/pluginenable.php index 2dbb3e3956..0f2b4ba670 100644 --- a/actions/pluginenable.php +++ b/actions/pluginenable.php @@ -52,7 +52,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ - class PluginEnableAction extends Action { var $user; @@ -65,7 +64,6 @@ class PluginEnableAction extends Action * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); @@ -75,6 +73,8 @@ class PluginEnableAction extends Action // Only allow POST requests if ($_SERVER['REQUEST_METHOD'] != 'POST') { + // TRANS: Client error displayed when trying to use another method than POST. + // TRANS: Do not translate POST. $this->clientError(_('This action only accepts POST requests.')); return false; } @@ -94,11 +94,13 @@ class PluginEnableAction extends Action $this->user = common_current_user(); if (empty($this->user)) { + // TRANS: Client error displayed when trying to enable or disable a plugin while not logged in. $this->clientError(_('Not logged in.')); return false; } if (!AdminPanelAction::canAdmin('plugins')) { + // TRANS: Client error displayed when trying to enable or disable a plugin without access rights. $this->clientError(_('You cannot administer plugins.')); return false; } @@ -106,6 +108,7 @@ class PluginEnableAction extends Action $this->plugin = $this->arg('plugin'); $defaultPlugins = common_config('plugins', 'default'); if (!array_key_exists($this->plugin, $defaultPlugins)) { + // TRANS: Client error displayed when trying to enable or disable a non-existing plugin. $this->clientError(_('No such plugin.')); return false; } @@ -122,7 +125,6 @@ class PluginEnableAction extends Action * * @return void */ - function handle($args) { $key = 'disable-' . $this->plugin; diff --git a/actions/pluginsadminpanel.php b/actions/pluginsadminpanel.php index bc400bd514..ec8aed8a22 100644 --- a/actions/pluginsadminpanel.php +++ b/actions/pluginsadminpanel.php @@ -40,20 +40,17 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class PluginsadminpanelAction extends AdminPanelAction { - /** * Returns the page title * * @return string page title */ - function title() { // TRANS: Tab and title for plugins admin panel. - return _('Plugins'); + return _m('TITLE','Plugins'); } /** @@ -61,11 +58,10 @@ class PluginsadminpanelAction extends AdminPanelAction * * @return string instructions */ - function getInstructions() { // TRANS: Instructions at top of plugin admin page. - return _('Additional plugins can be enabled and configured manually. ' . + return _('Additional plugins can be enabled and configured manually. ' . 'See the online plugin ' . 'documentation for more details.'); } @@ -75,11 +71,10 @@ class PluginsadminpanelAction extends AdminPanelAction * * @return void */ - function showForm() { $this->elementStart('fieldset', array('id' => 'settings_plugins_default')); - + // TRANS: Admin form section header $this->element('legend', null, _('Default plugins'), 'default'); @@ -103,6 +98,7 @@ class PluginsadminpanelAction extends AdminPanelAction $list->show(); } else { $this->element('p', null, + // TRANS: Text displayed on plugin admin page when no plugin are enabled. _('All default plugins have been disabled from the ' . 'site\'s configuration file.')); } diff --git a/actions/postnotice.php b/actions/postnotice.php index 694c7808d9..43c764aa63 100644 --- a/actions/postnotice.php +++ b/actions/postnotice.php @@ -92,16 +92,18 @@ class PostnoticeAction extends Action { $content = common_shorten_links($_POST['omb_notice_content']); if (Notice::contentTooLong($content)) { + // TRANS: Client error displayed if the notice posted has too many characters. $this->clientError(_('Invalid notice content.'), 400); return false; } $license = $_POST['omb_notice_license']; $site_license = common_config('license', 'url'); if ($license && !common_compatible_license($license, $site_license)) { - throw new Exception(sprintf(_('Notice license ‘%1$s’ is not ' . - 'compatible with site license ‘%2$s’.'), + // TRANS: Exception thrown if a notice's license is not compatible with the StatusNet site license. + // TRANS: %1$s is the notice license, %2$s is the StatusNet site's license. + throw new Exception(sprintf(_('Notice license "%1$s" is not ' . + 'compatible with site license "%2$s".'), $license, $site_license)); } } } -?> \ No newline at end of file diff --git a/actions/public.php b/actions/public.php index ca9af4601e..d2b0373dc6 100644 --- a/actions/public.php +++ b/actions/public.php @@ -51,7 +51,6 @@ define('MAX_PUBLIC_PAGE', 100); * @see PublicrssAction * @see PublicxrdsAction */ - class PublicAction extends Action { /** @@ -73,14 +72,15 @@ class PublicAction extends Action * * @return boolean success value */ - function prepare($args) { parent::prepare($args); $this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1; if ($this->page > MAX_PUBLIC_PAGE) { - $this->clientError(sprintf(_("Beyond the page limit (%s)."), MAX_PUBLIC_PAGE)); + // TRANS: Client error displayed when requesting a public timeline page beyond the page limit. + // TRANS: %s is the page limit. + $this->clientError(sprintf(_('Beyond the page limit (%s).'), MAX_PUBLIC_PAGE)); } common_set_returnto($this->selfUrl()); @@ -89,12 +89,13 @@ class PublicAction extends Action NOTICES_PER_PAGE + 1); if (!$this->notice) { + // TRANS: Server error displayed when a public timeline cannot be retrieved. $this->serverError(_('Could not retrieve public stream.')); return; } if($this->page > 1 && $this->notice->N == 0){ - // TRANS: Server error when page not found (404) + // TRANS: Server error when page not found (404). $this->serverError(_('No such page.'),$code=404); } @@ -110,7 +111,6 @@ class PublicAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -123,12 +123,14 @@ class PublicAction extends Action * * @return page title, including page number if over 1 */ - function title() { if ($this->page > 1) { + // TRANS: Title for all public timeline pages but the first. + // TRANS: %d is the page number. return sprintf(_('Public timeline, page %d'), $this->page); } else { + // TRANS: Title for the first public timeline page. return _('Public timeline'); } } @@ -153,48 +155,38 @@ class PublicAction extends Action * * @return void */ - function getFeeds() { return array(new Feed(Feed::RSS1, common_local_url('publicrss'), + // TRANS: Link description for public timeline feed. _('Public Stream Feed (RSS 1.0)')), new Feed(Feed::RSS2, common_local_url('ApiTimelinePublic', array('format' => 'rss')), + // TRANS: Link description for public timeline feed. _('Public Stream Feed (RSS 2.0)')), new Feed(Feed::ATOM, common_local_url('ApiTimelinePublic', array('format' => 'atom')), + // TRANS: Link description for public timeline feed. _('Public Stream Feed (Atom)'))); } - /** - * Show tabset for this page - * - * Uses the PublicGroupNav widget - * - * @return void - * @see PublicGroupNav - */ - - function showLocalNav() - { - $nav = new PublicGroupNav($this); - $nav->show(); - } - function showEmptyList() { + // TRANS: Text displayed for public feed when there are no public notices. $message = _('This is the public timeline for %%site.name%% but no one has posted anything yet.') . ' '; if (common_logged_in()) { + // TRANS: Additional text displayed for public feed when there are no public notices for a logged in user. $message .= _('Be the first to post!'); } else { if (! (common_config('site','closed') || common_config('site','inviteonly'))) { + // TRANS: Additional text displayed for public feed when there are no public notices for a not logged in user. $message .= _('Why not [register an account](%%action.register%%) and be the first to post!'); } - } + } $this->elementStart('div', 'guide'); $this->raw(common_markup_to_html($message)); @@ -209,7 +201,6 @@ class PublicAction extends Action * * @return void */ - function showContent() { $nl = new ThreadedNoticeList($this->notice, $this); @@ -241,11 +232,15 @@ class PublicAction extends Action function showAnonymousMessage() { if (! (common_config('site','closed') || common_config('site','inviteonly'))) { + // TRANS: Message for not logged in users at an invite-only site trying to view the public feed of notices. + // TRANS: This message contains Markdown links. Please mind the formatting. $m = _('This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . 'based on the Free Software [StatusNet](http://status.net/) tool. ' . '[Join now](%%action.register%%) to share notices about yourself with friends, family, and colleagues! ' . '([Read more](%%doc.help%%))'); } else { + // TRANS: Message for not logged in users at a closed site trying to view the public feed of notices. + // TRANS: This message contains Markdown links. Please mind the formatting. $m = _('This is %%site.name%%, a [micro-blogging](http://en.wikipedia.org/wiki/Micro-blogging) service ' . 'based on the Free Software [StatusNet](http://status.net/) tool.'); } diff --git a/actions/publictagcloud.php b/actions/publictagcloud.php index f6f1d31625..1432ca66a8 100644 --- a/actions/publictagcloud.php +++ b/actions/publictagcloud.php @@ -92,12 +92,6 @@ class PublictagcloudAction extends Action $this->elementEnd('div'); } - function showLocalNav() - { - $nav = new PublicGroupNav($this); - $nav->show(); - } - function handle($args) { parent::handle($args); diff --git a/actions/publicxrds.php b/actions/publicxrds.php index 8f0337e4f7..aac6f423cf 100644 --- a/actions/publicxrds.php +++ b/actions/publicxrds.php @@ -1,5 +1,4 @@ mode == 'reset') { - // TRANS: Page notice for password change page. $this->element('p', null, + // TRANS: Page notice for password change page. _('You have been identified. Enter a' . ' new password below.')); } @@ -282,7 +282,11 @@ class RecoverpasswordAction extends Action $user = User::staticGet('email', common_canonical_email($nore)); if (!$user) { - $user = User::staticGet('nickname', common_canonical_nickname($nore)); + try { + $user = User::staticGet('nickname', common_canonical_nickname($nore)); + } catch (NicknameException $e) { + // invalid + } } # See if it's an unconfirmed email address diff --git a/actions/redirecturl.php b/actions/redirecturl.php index 0a959b074f..2aca4fe02b 100644 --- a/actions/redirecturl.php +++ b/actions/redirecturl.php @@ -4,7 +4,7 @@ * Copyright (C) 2010, StatusNet, Inc. * * Redirect to the given URL - * + * * PHP version 5 * * This program is free software: you can redistribute it and/or modify @@ -59,21 +59,23 @@ class RedirecturlAction extends Action * * @return boolean true */ - function prepare($argarray) { parent::prepare($argarray); $this->id = $this->trimmed('id'); - + if (empty($this->id)) { - throw new ClientException(_('No id parameter')); + // TRANS: Client exception thrown when no ID parameter was provided. + throw new ClientException(_('No id parameter.')); } $this->file = File::staticGet('id', $this->id); - + if (empty($this->file)) { - throw new ClientException(sprintf(_('No such file "%d"'), + // TRANS: Client exception thrown when an invalid ID parameter was provided for a file. + // TRANS: %d is the provided ID for which the file is not present (number). + throw new ClientException(sprintf(_('No such file "%d".'), $this->id), 404); } @@ -88,7 +90,6 @@ class RedirecturlAction extends Action * * @return void */ - function handle($argarray=null) { common_redirect($this->file->url, 307); @@ -104,7 +105,6 @@ class RedirecturlAction extends Action * * @return boolean is read only action? */ - function isReadOnly($args) { return true; @@ -117,7 +117,6 @@ class RedirecturlAction extends Action * * @return string last modified http header */ - function lastModified() { // For comparison with If-Last-Modified @@ -133,7 +132,6 @@ class RedirecturlAction extends Action * * @return string etag http header */ - function etag() { return 'W/"' . implode(':', array($this->arg('action'), diff --git a/actions/register.php b/actions/register.php index 6b039c93f6..7b3c075156 100644 --- a/actions/register.php +++ b/actions/register.php @@ -77,6 +77,7 @@ class RegisterAction extends Action } if (common_config('site', 'inviteonly') && empty($this->code)) { + // TRANS: Client error displayed when trying to register to an invite-only site without an invitation. $this->clientError(_('Sorry, only invited people can register.')); return false; } @@ -84,6 +85,7 @@ class RegisterAction extends Action if (!empty($this->code)) { $this->invite = Invitation::staticGet('code', $this->code); if (empty($this->invite)) { + // TRANS: Client error displayed when trying to register to an invite-only site without a valid invitation. $this->clientError(_('Sorry, invalid invitation code.')); return false; } @@ -103,9 +105,11 @@ class RegisterAction extends Action function title() { if ($this->registered) { + // TRANS: Title for registration page after a succesful registration. return _('Registration successful'); } else { - return _('Register'); + // TRANS: Title for registration page. + return _m('TITLE','Register'); } } @@ -125,8 +129,10 @@ class RegisterAction extends Action parent::handle($args); if (common_config('site', 'closed')) { + // TRANS: Client error displayed when trying to register to a closed site. $this->clientError(_('Registration not allowed.')); } else if (common_logged_in()) { + // TRANS: Client error displayed when trying to register while already logged in. $this->clientError(_('Already logged in.')); } else if ($_SERVER['REQUEST_METHOD'] == 'POST') { $this->tryRegister(); @@ -178,6 +184,7 @@ class RegisterAction extends Action } if (common_config('site', 'inviteonly') && !($code && $invite)) { + // TRANS: Client error displayed when trying to register to an invite-only site without an invitation. $this->clientError(_('Sorry, only invited people can register.')); return; } @@ -191,13 +198,17 @@ class RegisterAction extends Action $email = common_canonical_email($email); if (!$this->boolean('license')) { - $this->showForm(_('You cannot register if you don\'t '. + // TRANS: Form validation error displayed when trying to register without agreeing to the site license. + $this->showForm(_('You cannot register if you do not '. 'agree to the license.')); } else if ($email && !Validate::email($email, common_config('email', 'check_domain'))) { + // TRANS: Form validation error displayed when trying to register without a valid e-mail address. $this->showForm(_('Not a valid email address.')); } else if ($this->nicknameExists($nickname)) { + // TRANS: Form validation error displayed when trying to register with an existing nickname. $this->showForm(_('Nickname already in use. Try another one.')); } else if (!User::allowed_nickname($nickname)) { + // TRANS: Form validation error displayed when trying to register with an invalid nickname. $this->showForm(_('Not a valid nickname.')); } else if ($this->emailExists($email)) { $this->showForm(_('Email address already exists.')); @@ -205,25 +216,32 @@ class RegisterAction extends Action !Validate::uri($homepage, array('allowed_schemes' => array('http', 'https')))) { + // TRANS: Form validation error displayed when trying to register with an invalid homepage URL. $this->showForm(_('Homepage is not a valid URL.')); return; } else if (!is_null($fullname) && mb_strlen($fullname) > 255) { + // TRANS: Form validation error displayed when trying to register with a too long full name. $this->showForm(_('Full name is too long (maximum 255 characters).')); return; } else if (Profile::bioTooLong($bio)) { + // TRANS: Form validation error on registration page when providing too long a bio text. + // TRANS: %d is the maximum number of characters for bio; used for plural. $this->showForm(sprintf(_m('Bio is too long (maximum %d character).', 'Bio is too long (maximum %d characters).', Profile::maxBio()), Profile::maxBio())); return; } else if (!is_null($location) && mb_strlen($location) > 255) { + // TRANS: Form validation error displayed when trying to register with a too long location. $this->showForm(_('Location is too long (maximum 255 characters).')); return; } else if (strlen($password) < 6) { + // TRANS: Form validation error displayed when trying to register with too short a password. $this->showForm(_('Password must be 6 or more characters.')); return; } else if ($password != $confirm) { - $this->showForm(_('Passwords don\'t match.')); + // TRANS: Form validation error displayed when trying to register with non-matching passwords. + $this->showForm(_('Passwords do not match.')); } else if ($user = User::register(array('nickname' => $nickname, 'password' => $password, 'email' => $email, @@ -233,11 +251,13 @@ class RegisterAction extends Action 'location' => $location, 'code' => $code))) { if (!$user) { + // TRANS: Form validation error displayed when trying to register with an invalid username or password. $this->showForm(_('Invalid username or password.')); return; } // success! if (!common_set_user($user)) { + // TRANS: Server error displayed when saving fails during user registration. $this->serverError(_('Error setting user.')); return; } @@ -255,6 +275,7 @@ class RegisterAction extends Action $this->showSuccess(); } else { + // TRANS: Form validation error displayed when trying to register with an invalid username or password. $this->showForm(_('Invalid username or password.')); } } @@ -330,6 +351,7 @@ class RegisterAction extends Action $this->element('p', 'error', $this->error); } else { $instr = + // TRANS: Page notice on registration page. common_markup_to_html(_('With this form you can create '. 'a new account. ' . 'You can then post notices and '. @@ -389,6 +411,7 @@ class RegisterAction extends Action } if (common_config('site', 'inviteonly') && !($code && $invite)) { + // TRANS: Client error displayed when trying to register to an invite-only site without an invitation. $this->clientError(_('Sorry, only invited people can register.')); return; } @@ -398,6 +421,7 @@ class RegisterAction extends Action 'class' => 'form_settings', 'action' => common_local_url('register'))); $this->elementStart('fieldset'); + // TRANS: Fieldset legend on accout registration page. $this->element('legend', null, 'Account settings'); $this->hidden('token', common_session_token()); @@ -408,66 +432,86 @@ class RegisterAction extends Action $this->elementStart('ul', 'form_data'); if (Event::handle('StartRegistrationFormData', array($this))) { $this->elementStart('li'); + // TRANS: Field label on account registration page. $this->input('nickname', _('Nickname'), $this->trimmed('nickname'), + // TRANS: Field title on account registration page. _('1-64 lowercase letters or numbers, no punctuation or spaces.')); $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label on account registration page. $this->password('password', _('Password'), + // TRANS: Field title on account registration page. _('6 or more characters.')); $this->elementEnd('li'); $this->elementStart('li'); - $this->password('confirm', _('Confirm'), - _('Same as password above.')); + // TRANS: Field label on account registration page. In this field the password has to be entered a second time. + $this->password('confirm', _m('PASSWORD','Confirm'), + // TRANS: Field title on account registration page. + _('Same as password above.')); $this->elementEnd('li'); $this->elementStart('li'); if ($this->invite && $this->invite->address_type == 'email') { - $this->input('email', _('Email'), $this->invite->address, + // TRANS: Field label on account registration page. + $this->input('email', _m('LABEL','Email'), $this->invite->address, + // TRANS: Field title on account registration page. _('Used only for updates, announcements, '. 'and password recovery.')); } else { - $this->input('email', _('Email'), $this->trimmed('email'), + // TRANS: Field label on account registration page. + $this->input('email', _m('LABEL','Email'), $this->trimmed('email'), + // TRANS: Field title on account registration page. _('Used only for updates, announcements, '. 'and password recovery.')); } $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label on account registration page. $this->input('fullname', _('Full name'), $this->trimmed('fullname'), - _('Longer name, preferably your "real" name.')); + // TRANS: Field title on account registration page. + _('Longer name, preferably your "real" name.')); $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label on account registration page. $this->input('homepage', _('Homepage'), $this->trimmed('homepage'), + // TRANS: Field title on account registration page. _('URL of your homepage, blog, '. 'or profile on another site.')); $this->elementEnd('li'); $this->elementStart('li'); $maxBio = Profile::maxBio(); if ($maxBio > 0) { - // TRANS: Tooltip for field label in form for profile settings. Plural + // TRANS: Text area title in form for account registration. Plural // TRANS: is decided by the number of characters available for the // TRANS: biography (%d). - $bioInstr = sprintf(_m('Describe yourself and your interests in %d character', - 'Describe yourself and your interests in %d characters', + $bioInstr = sprintf(_m('Describe yourself and your interests in %d character.', + 'Describe yourself and your interests in %d characters.', $maxBio), $maxBio); } else { - $bioInstr = _('Describe yourself and your interests'); + // TRANS: Text area title on account registration page. + $bioInstr = _('Describe yourself and your interests.'); } + // TRANS: Text area label on account registration page. $this->textarea('bio', _('Bio'), $this->trimmed('bio'), $bioInstr); $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label on account registration page. $this->input('location', _('Location'), $this->trimmed('location'), + // TRANS: Field title on account registration page. _('Where you are, like "City, '. 'State (or Region), Country".')); $this->elementEnd('li'); Event::handle('EndRegistrationFormData', array($this)); $this->elementStart('li', array('id' => 'settings_rememberme')); + // TRANS: Checkbox label on account registration page. $this->checkbox('rememberme', _('Remember me'), $this->boolean('rememberme'), + // TRANS: Checkbox title on account registration page. _('Automatically login in the future; '. 'not for shared computers!')); $this->elementEnd('li'); @@ -487,7 +531,8 @@ class RegisterAction extends Action $this->elementEnd('li'); } $this->elementEnd('ul'); - $this->submit('submit', _('Register')); + // TRANS: Field label on account registration page. + $this->submit('submit', _m('BUTTON','Register')); $this->elementEnd('fieldset'); $this->elementEnd('form'); } @@ -497,9 +542,9 @@ class RegisterAction extends Action $out = ''; switch (common_config('license', 'type')) { case 'private': - // TRANS: Copyright checkbox label in registration dialog, for private sites. - // TRANS: %1$s is the StatusNet sitename. $out .= htmlspecialchars(sprintf( + // TRANS: Copyright checkbox label in registration dialog, for private sites. + // TRANS: %1$s is the StatusNet sitename. _('I understand that content and data of %1$s are private and confidential.'), common_config('site', 'name'))); // fall through @@ -508,8 +553,9 @@ class RegisterAction extends Action $out .= ' '; } if (common_config('license', 'owner')) { - // TRANS: Copyright checkbox label in registration dialog, for all rights reserved with a specified copyright owner. $out .= htmlspecialchars(sprintf( + // TRANS: Copyright checkbox label in registration dialog, for all rights reserved with a specified copyright owner. + // TRANS: %1$s is the license owner. _('My text and files are copyright by %1$s.'), common_config('license', 'owner'))); } else { @@ -563,6 +609,10 @@ class RegisterAction extends Action array('nickname' => $nickname)); $this->elementStart('div', 'success'); + // TRANS: Text displayed after successful account registration. + // TRANS: %1$s is the registered nickname, %2$s is the profile URL. + // TRANS: This message contains Markdown links in the form [link text](link) + // TRANS: and variables in the form %%%%variable%%%%. Please mind the syntax. $instr = sprintf(_('Congratulations, %1$s! And welcome to %%%%site.name%%%%. '. 'From here, you may want to...'. "\n\n" . '* Go to [your profile](%2$s) '. @@ -587,6 +637,7 @@ class RegisterAction extends Action $have_email = $this->trimmed('email'); if ($have_email) { + // TRANS: Instruction text on how to deal with the e-mail address confirmation e-mail. $emailinstr = _('(You should receive a message by email '. 'momentarily, with ' . 'instructions on how to confirm '. @@ -606,4 +657,12 @@ class RegisterAction extends Action $nav = new LoginGroupNav($this); $nav->show(); } + + function showNoticeForm() + { + } + + function showProfileBlock() + { + } } diff --git a/actions/remotesubscribe.php b/actions/remotesubscribe.php index 8200659278..66cee65cab 100644 --- a/actions/remotesubscribe.php +++ b/actions/remotesubscribe.php @@ -55,6 +55,7 @@ class RemotesubscribeAction extends Action parent::prepare($args); if (common_logged_in()) { + // TRANS: Client error displayed when using remote subscribe for a local entity. $this->clientError(_('You can use the local subscription!')); return false; } @@ -94,6 +95,8 @@ class RemotesubscribeAction extends Action if ($this->err) { $this->element('div', 'error', $this->err); } else { + // TRANS: Page notice for remote subscribe. This message contains Markdown links. + // TRANS: Ensure to keep the correct markup of [link description](link). $inst = _('To subscribe, you can [login](%%action.login%%),' . ' or [register](%%action.register%%) a new ' . ' account. If you already have an account ' . @@ -108,6 +111,7 @@ class RemotesubscribeAction extends Action function title() { + // TRANS: Page title for Remote subscribe. return _('Remote subscribe'); } @@ -120,20 +124,26 @@ class RemotesubscribeAction extends Action 'class' => 'form_settings', 'action' => common_local_url('remotesubscribe'))); $this->elementStart('fieldset'); + // TRANS: Field legend on page for remote subscribe. $this->element('legend', _('Subscribe to a remote user')); $this->hidden('token', common_session_token()); $this->elementStart('ul', 'form_data'); $this->elementStart('li'); + // TRANS: Field label on page for remote subscribe. $this->input('nickname', _('User nickname'), $this->nickname, + // TRANS: Field title on page for remote subscribe. _('Nickname of the user you want to follow.')); $this->elementEnd('li'); $this->elementStart('li'); + // TRANS: Field label on page for remote subscribe. $this->input('profile_url', _('Profile URL'), $this->profile_url, + // TRANS: Field title on page for remote subscribe. _('URL of your profile on another compatible microblogging service.')); $this->elementEnd('li'); $this->elementEnd('ul'); - $this->submit('submit', _('Subscribe')); + // TRANS: Button text on page for remote subscribe. + $this->submit('submit', _m('BUTTON','Subscribe')); $this->elementEnd('fieldset'); $this->elementEnd('form'); } @@ -141,6 +151,7 @@ class RemotesubscribeAction extends Action function remoteSubscription() { if (!$this->nickname) { + // TRANS: Form validation error on page for remote subscribe when no user was provided. $this->showForm(_('No such user.')); return; } @@ -150,11 +161,13 @@ class RemotesubscribeAction extends Action $this->profile_url = $this->trimmed('profile_url'); if (!$this->profile_url) { + // TRANS: Form validation error on page for remote subscribe when no user profile was found. $this->showForm(_('No such user.')); return; } if (!common_valid_http_url($this->profile_url)) { + // TRANS: Form validation error on page for remote subscribe when an invalid profile URL was provided. $this->showForm(_('Invalid profile URL (bad format).')); return; } @@ -164,6 +177,8 @@ class RemotesubscribeAction extends Action common_root_url(), omb_oauth_datastore()); } catch (OMB_InvalidYadisException $e) { + // TRANS: Form validation error on page for remote subscribe when no the provided profile URL + // TRANS: does not contain expected data. $this->showForm(_('Not a valid profile URL (no YADIS document or ' . 'invalid XRDS defined).')); return; @@ -172,6 +187,7 @@ class RemotesubscribeAction extends Action if ($service->getServiceURI(OAUTH_ENDPOINT_REQUEST) == common_local_url('requesttoken') || User::staticGet('uri', $service->getRemoteUserURI())) { + // TRANS: Form validation error on page for remote subscribe. $this->showForm(_('That is a local profile! Login to subscribe.')); return; } @@ -179,6 +195,7 @@ class RemotesubscribeAction extends Action try { $service->requestToken(); } catch (OMB_RemoteServiceException $e) { + // TRANS: Form validation error on page for remote subscribe when the remote service is not providing a request token. $this->showForm(_('Could not get a request token.')); return; } @@ -187,6 +204,7 @@ class RemotesubscribeAction extends Action $profile = $user->getProfile(); if (!$profile) { common_log_db_error($user, 'SELECT', __FILE__); + // TRANS: Server error displayed on page for remote subscribe when user does not have a matching profile. $this->serverError(_('User without matching profile.')); return; } diff --git a/actions/repeat.php b/actions/repeat.php index 2ec641578b..869c2ddd4e 100644 --- a/actions/repeat.php +++ b/actions/repeat.php @@ -1,5 +1,4 @@ user = common_current_user(); if (empty($this->user)) { + // TRANS: Client error displayed when trying to repeat a notice while not logged in. $this->clientError(_('Only logged-in users can repeat notices.')); return false; } @@ -60,6 +60,7 @@ class RepeatAction extends Action $id = $this->trimmed('notice'); if (empty($id)) { + // TRANS: Client error displayed when trying to repeat a notice while not providing a notice ID. $this->clientError(_('No notice specified.')); return false; } @@ -67,11 +68,13 @@ class RepeatAction extends Action $this->notice = Notice::staticGet('id', $id); if (empty($this->notice)) { + // TRANS: Client error displayed when trying to repeat a non-existing notice. $this->clientError(_('No notice specified.')); return false; } if ($this->user->id == $this->notice->profile_id) { + // TRANS: Client error displayed when trying to repeat an own notice. $this->clientError(_('You cannot repeat your own notice.')); return false; } @@ -86,6 +89,7 @@ class RepeatAction extends Action $profile = $this->user->getProfile(); if ($profile->hasRepeated($id)) { + // TRANS: Client error displayed when trying to repeat an already repeated notice. $this->clientError(_('You already repeated that notice.')); return false; } @@ -104,21 +108,21 @@ class RepeatAction extends Action { $repeat = $this->notice->repeat($this->user->id, 'web'); - - if ($this->boolean('ajax')) { $this->startHTML('text/xml;charset=utf-8'); $this->elementStart('head'); + // TRANS: Title after repeating a notice. $this->element('title', null, _('Repeated')); $this->elementEnd('head'); $this->elementStart('body'); $this->element('p', array('id' => 'repeat_response', 'class' => 'repeated'), + // TRANS: Confirmation text after repeating a notice. _('Repeated!')); $this->elementEnd('body'); $this->elementEnd('html'); } else { - // FIXME! + // @todo FIXME! } } } diff --git a/actions/replies.php b/actions/replies.php index 8f2fc6c7f3..54109b7b9f 100644 --- a/actions/replies.php +++ b/actions/replies.php @@ -44,7 +44,6 @@ require_once INSTALLDIR.'/lib/feedlist.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class RepliesAction extends OwnerDesignAction { var $page = null; @@ -60,7 +59,6 @@ class RepliesAction extends OwnerDesignAction * * @return boolean success flag */ - function prepare($args) { parent::prepare($args); @@ -70,6 +68,7 @@ class RepliesAction extends OwnerDesignAction $this->user = User::staticGet('nickname', $nickname); if (!$this->user) { + // TRANS: Client error displayed when trying to reply to a non-exsting user. $this->clientError(_('No such user.')); return false; } @@ -77,6 +76,7 @@ class RepliesAction extends OwnerDesignAction $profile = $this->user->getProfile(); if (!$profile) { + // TRANS: Server error displayed when trying to reply to a user without a profile. $this->serverError(_('User has no profile.')); return false; } @@ -105,7 +105,6 @@ class RepliesAction extends OwnerDesignAction * * @return void */ - function handle($args) { parent::handle($args); @@ -119,12 +118,15 @@ class RepliesAction extends OwnerDesignAction * * @return string title of page */ - function title() { if ($this->page == 1) { + // TRANS: Title for first page of replies for a user. + // TRANS: %s is a user nickname. return sprintf(_("Replies to %s"), $this->user->nickname); } else { + // TRANS: Title for all but the first page of replies for a user. + // TRANS: %1$s is a user nickname, %2$d is a page number. return sprintf(_('Replies to %1$s, page %2$d'), $this->user->nickname, $this->page); @@ -136,12 +138,13 @@ class RepliesAction extends OwnerDesignAction * * @return void */ - function getFeeds() { return array(new Feed(Feed::RSS1, common_local_url('repliesrss', array('nickname' => $this->user->nickname)), + // TRANS: Link for feed with replies for a user. + // TRANS: %s is a user nickname. sprintf(_('Replies feed for %s (RSS 1.0)'), $this->user->nickname)), new Feed(Feed::RSS2, @@ -149,6 +152,8 @@ class RepliesAction extends OwnerDesignAction array( 'id' => $this->user->nickname, 'format' => 'rss')), + // TRANS: Link for feed with replies for a user. + // TRANS: %s is a user nickname. sprintf(_('Replies feed for %s (RSS 2.0)'), $this->user->nickname)), new Feed(Feed::ATOM, @@ -156,22 +161,12 @@ class RepliesAction extends OwnerDesignAction array( 'id' => $this->user->nickname, 'format' => 'atom')), + // TRANS: Link for feed with replies for a user. + // TRANS: %s is a user nickname. sprintf(_('Replies feed for %s (Atom)'), $this->user->nickname))); } - /** - * show the personal group nav - * - * @return void - */ - - function showLocalNav() - { - $nav = new PersonalGroupNav($this); - $nav->show(); - } - /** * Show the content * @@ -179,7 +174,6 @@ class RepliesAction extends OwnerDesignAction * * @return void */ - function showContent() { $nl = new NoticeList($this->notice, $this); @@ -196,17 +190,27 @@ class RepliesAction extends OwnerDesignAction function showEmptyListMessage() { - $message = sprintf(_('This is the timeline showing replies to %1$s but %2$s hasn\'t received a notice to them yet.'), $this->user->nickname, $this->user->nickname) . ' '; + // TRANS: Empty list message for page with replies for a user. + // TRANS: %1$s and %s$s are the user nickname. + $message = sprintf(_('This is the timeline showing replies to %1$s but %2$s hasn\'t received a notice to them yet.'), + $this->user->nickname, + $this->user->nickname) . ' '; if (common_logged_in()) { $current_user = common_current_user(); if ($this->user->id === $current_user->id) { + // TRANS: Empty list message for page with replies for a user for the logged in user. + // TRANS: This message contains a Markdown link in the form [link text](link). $message .= _('You can engage other users in a conversation, subscribe to more people or [join groups](%%action.groups%%).'); } else { + // TRANS: Empty list message for page with replies for a user for all logged in users but the user themselves. + // TRANS: %1$s, %2$s and %3$s are a user nickname. This message contains a Markdown link in the form [link text](link). $message .= sprintf(_('You can try to [nudge %1$s](../%2$s) or [post something to them](%%%%action.newnotice%%%%?status_textarea=%3$s).'), $this->user->nickname, $this->user->nickname, '@' . $this->user->nickname); } } else { + // TRANS: Empty list message for page with replies for a user for not logged in users. + // TRANS: %1$s is a user nickname. This message contains a Markdown link in the form [link text](link). $message .= sprintf(_('Why not [register an account](%%%%action.register%%%%) and then nudge %s or post a notice to them.'), $this->user->nickname); } diff --git a/actions/revokerole.php b/actions/revokerole.php index c67b70fdaf..1218c9e923 100644 --- a/actions/revokerole.php +++ b/actions/revokerole.php @@ -40,7 +40,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 * @link http://status.net/ */ - class RevokeRoleAction extends ProfileFormAction { /** @@ -50,19 +49,20 @@ class RevokeRoleAction extends ProfileFormAction * * @return boolean success flag */ - function prepare($args) { if (!parent::prepare($args)) { return false; } - + $this->role = $this->arg('role'); if (!Profile_role::isValid($this->role)) { + // TRANS: Client error displayed when trying to revoke an invalid role. $this->clientError(_('Invalid role.')); return false; } if (!Profile_role::isSettable($this->role)) { + // TRANS: Client error displayed when trying to revoke a reserved role. $this->clientError(_('This role is reserved and cannot be set.')); return false; } @@ -72,6 +72,7 @@ class RevokeRoleAction extends ProfileFormAction assert(!empty($cur)); // checked by parent if (!$cur->hasRight(Right::REVOKEROLE)) { + // TRANS: Client error displayed when trying to revoke a role without having the right to do that. $this->clientError(_('You cannot revoke user roles on this site.')); return false; } @@ -79,7 +80,8 @@ class RevokeRoleAction extends ProfileFormAction assert(!empty($this->profile)); // checked by parent if (!$this->profile->hasRole($this->role)) { - $this->clientError(_("User doesn't have this role.")); + // TRANS: Client error displayed when trying to revoke a role that is not set. + $this->clientError(_('User does not have this role.')); return false; } @@ -91,7 +93,6 @@ class RevokeRoleAction extends ProfileFormAction * * @return void */ - function handlePost() { $this->profile->revokeRole($this->role); diff --git a/actions/rsd.php b/actions/rsd.php index 0a70117498..f99b86e1a4 100644 --- a/actions/rsd.php +++ b/actions/rsd.php @@ -110,6 +110,7 @@ class RsdAction extends Action $this->user = User::staticGet('nickname', $nickname); if (empty($this->user)) { + // TRANS: Client error. $this->clientError(_('No such user.'), 404); return false; } @@ -139,6 +140,7 @@ class RsdAction extends Action $this->elementStart('rsd', array('version' => '1.0', 'xmlns' => $rsdNS)); $this->elementStart('service'); + // TRANS: Engine name for RSD. $this->element('engineName', null, _('StatusNet')); $this->element('engineLink', null, 'http://status.net/'); $this->elementStart('apis'); diff --git a/actions/selftag.php b/actions/selftag.php index 0efb896f6b..b0b4981f10 100644 --- a/actions/selftag.php +++ b/actions/selftag.php @@ -44,7 +44,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { * * @see Action */ - class SelftagAction extends Action { @@ -65,6 +64,8 @@ class SelftagAction extends Action $this->tag = $this->trimmed('tag'); if (!common_valid_profile_tag($this->tag)) { + // TRANS: Client error displayed when trying to tag a profile with an invalid tag. + // TRANS: %s is the invalid tag. $this->clientError(sprintf(_('Not a valid people tag: %s.'), $this->tag)); return; diff --git a/actions/showfavorites.php b/actions/showfavorites.php index eda2cf38eb..67ee914a91 100644 --- a/actions/showfavorites.php +++ b/actions/showfavorites.php @@ -189,17 +189,6 @@ class ShowfavoritesAction extends OwnerDesignAction $this->user->nickname))); } - /** - * show the personal group nav - * - * @return void - */ - function showLocalNav() - { - $nav = new PersonalGroupNav($this); - $nav->show(); - } - function showEmptyListMessage() { if (common_logged_in()) { diff --git a/actions/showgroup.php b/actions/showgroup.php index a38945c131..aa1f620880 100644 --- a/actions/showgroup.php +++ b/actions/showgroup.php @@ -167,7 +167,7 @@ class ShowgroupAction extends GroupDesignAction * * @return void */ - function showLocalNav() + function showObjectNav() { $nav = new GroupNav($this, $this->group); $nav->show(); @@ -180,8 +180,6 @@ class ShowgroupAction extends GroupDesignAction */ function showContent() { - $this->showGroupProfile(); - $this->showGroupActions(); $this->showGroupNotices(); } @@ -205,121 +203,6 @@ class ShowgroupAction extends GroupDesignAction array('nickname' => $this->group->nickname)); } - /** - * Show the group profile - * - * Information about the group - * - * @return void - */ - function showGroupProfile() - { - $this->elementStart('div', array('id' => 'i', - 'class' => 'entity_profile vcard author')); - - $logo = ($this->group->homepage_logo) ? - $this->group->homepage_logo : User_group::defaultLogo(AVATAR_PROFILE_SIZE); - - $this->element('img', array('src' => $logo, - 'class' => 'photo avatar entity_depiction', - 'width' => AVATAR_PROFILE_SIZE, - 'height' => AVATAR_PROFILE_SIZE, - 'alt' => $this->group->nickname)); - - $hasFN = ($this->group->fullname) ? 'entity_nickname nickname url uid' : - 'entity_nickname fn org nickname url uid'; - $this->element('a', array('href' => $this->group->homeUrl(), - 'rel' => 'me', 'class' => $hasFN), - $this->group->nickname); - - if ($this->group->fullname) { - $this->element('div', 'entity_fn fn org', $this->group->fullname); - } - - if ($this->group->location) { - $this->element('div', 'entity_location label', $this->group->location); - } - - if ($this->group->homepage) { - $this->element('a', array('href' => $this->group->homepage, - 'rel' => 'me', - 'class' => 'url entity_url'), - $this->group->homepage); - } - - if ($this->group->description) { - $this->element('div', 'note entity_note', $this->group->description); - } - - if (common_config('group', 'maxaliases') > 0) { - $aliases = $this->group->getAliases(); - - if (!empty($aliases)) { - $this->element('div', - 'aliases entity_aliases', - implode(' ', $aliases)); - } - - if ($this->group->description) { - $this->elementStart('dl', 'entity_note'); - // TRANS: Label for group description or group note (dt). Text hidden by default. - $this->element('dt', null, _('Note')); - $this->element('dd', 'note', $this->group->description); - $this->elementEnd('dl'); - } - - if (common_config('group', 'maxaliases') > 0) { - $aliases = $this->group->getAliases(); - - if (!empty($aliases)) { - $this->elementStart('dl', 'entity_aliases'); - // TRANS: Label for group aliases (dt). Text hidden by default. - $this->element('dt', null, _('Aliases')); - $this->element('dd', 'aliases', implode(' ', $aliases)); - $this->elementEnd('dl'); - } - } - - Event::handle('EndGroupProfileElements', array($this, $this->group)); - } - - $this->elementEnd('div'); - } - - function showGroupActions() - { - $cur = common_current_user(); - $this->elementStart('div', 'entity_actions'); - // TRANS: Group actions header (h2). Text hidden by default. - $this->element('h2', null, _('Group actions')); - $this->elementStart('ul'); - if (Event::handle('StartGroupActionsList', array($this, $this->group))) { - $this->elementStart('li', 'entity_subscribe'); - if (Event::handle('StartGroupSubscribe', array($this, $this->group))) { - if ($cur) { - if ($cur->isMember($this->group)) { - $lf = new LeaveForm($this, $this->group); - $lf->show(); - } else if (!Group_block::isBlocked($this->group, $cur->getProfile())) { - $jf = new JoinForm($this, $this->group); - $jf->show(); - } - } - Event::handle('EndGroupSubscribe', array($this, $this->group)); - } - $this->elementEnd('li'); - if ($cur && $cur->hasRight(Right::DELETEGROUP)) { - $this->elementStart('li', 'entity_delete'); - $df = new DeleteGroupForm($this, $this->group); - $df->show(); - $this->elementEnd('li'); - } - Event::handle('EndGroupActionsList', array($this, $this->group)); - } - $this->elementEnd('ul'); - $this->elementEnd('div'); - } - /** * Get a list of the feeds for this page * @@ -440,7 +323,7 @@ class ShowgroupAction extends GroupDesignAction // TRANS: Header for group statistics on a group page (h2). $this->element('h2', null, _('Statistics')); - $this->elementEnd('dl'); + $this->elementStart('dl'); $this->element('dt', null, _m('LABEL','Created')); $this->element('dd', 'entity_created', date('j M Y', strtotime($this->group->created))); diff --git a/actions/shownotice.php b/actions/shownotice.php index 3978f03ea9..b8927372bb 100644 --- a/actions/shownotice.php +++ b/actions/shownotice.php @@ -78,6 +78,9 @@ class ShownoticeAction extends OwnerDesignAction function prepare($args) { parent::prepare($args); + if ($this->boolean('ajax')) { + StatusNet::setApi(true); + } $id = $this->arg('notice'); @@ -188,22 +191,26 @@ class ShownoticeAction extends OwnerDesignAction { parent::handle($args); - if ($this->notice->is_local == Notice::REMOTE_OMB) { - if (!empty($this->notice->url)) { - $target = $this->notice->url; - } else if (!empty($this->notice->uri) && preg_match('/^https?:/', $this->notice->uri)) { - // Old OMB posts saved the remote URL only into the URI field. - $target = $this->notice->uri; - } else { - // Shouldn't happen. - $target = false; - } - if ($target && $target != $this->selfUrl()) { - common_redirect($target, 301); - return false; + if ($this->boolean('ajax')) { + $this->showAjax(); + } else { + if ($this->notice->is_local == Notice::REMOTE_OMB) { + if (!empty($this->notice->url)) { + $target = $this->notice->url; + } else if (!empty($this->notice->uri) && preg_match('/^https?:/', $this->notice->uri)) { + // Old OMB posts saved the remote URL only into the URI field. + $target = $this->notice->uri; + } else { + // Shouldn't happen. + $target = false; + } + if ($target && $target != $this->selfUrl()) { + common_redirect($target, 301); + return false; + } } + $this->showPage(); } - $this->showPage(); } /** @@ -232,6 +239,21 @@ class ShownoticeAction extends OwnerDesignAction $this->elementEnd('ol'); } + function showAjax() + { + header('Content-Type: text/xml;charset=utf-8'); + $this->xw->startDocument('1.0', 'UTF-8'); + $this->elementStart('html'); + $this->elementStart('head'); + $this->element('title', null, _('Notice')); + $this->elementEnd('head'); + $this->elementStart('body'); + $nli = new NoticeListItem($this->notice, $this); + $nli->show(); + $this->elementEnd('body'); + $this->elementEnd('html'); + } + /** * Don't show page notice * diff --git a/actions/showstream.php b/actions/showstream.php index 0fd1c2c29f..10085d94d7 100644 --- a/actions/showstream.php +++ b/actions/showstream.php @@ -33,7 +33,6 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { } require_once INSTALLDIR.'/lib/personalgroupnav.php'; -require_once INSTALLDIR.'/lib/userprofile.php'; require_once INSTALLDIR.'/lib/noticelist.php'; require_once INSTALLDIR.'/lib/profileminilist.php'; require_once INSTALLDIR.'/lib/groupminilist.php'; @@ -100,16 +99,21 @@ class ShowstreamAction extends ProfileAction function showContent() { - $this->showProfile(); $this->showNotices(); } - function showLocalNav() + function showObjectNav() { $nav = new SubGroupNav($this, $this->user); $nav->show(); } + function showProfileBlock() + { + $block = new AccountProfileBlock($this, $this->profile); + $block->show(); + } + function showPageNoticeBlock() { return; @@ -193,12 +197,6 @@ class ShowstreamAction extends ProfileAction 'href' => $rsd)); } - function showProfile() - { - $profile = new UserProfile($this, $this->user, $this->profile); - $profile->show(); - } - function showEmptyListMessage() { // TRANS: First sentence of empty list message for a stream. $1%s is a user nickname. @@ -281,6 +279,18 @@ class ShowstreamAction extends ProfileAction // We don't show the author for a profile, since we already know who it is! +/** + * Slightly modified from standard list; the author & avatar are hidden + * in CSS. We used to remove them here too, but as it turns out that + * confuses the inline reply code... and we hide them in CSS anyway + * since realtime updates come through in original form. + * + * Remaining customization right now is for the repeat marker, where + * it'll list who the original poster was instead of who did the repeat + * (since the repeater is you, and the repeatee isn't shown!) + * This will remain inconsistent if realtime updates come through, + * since those'll get rendered as a regular NoticeListItem. + */ class ProfileNoticeList extends NoticeList { function newListItem($notice) @@ -291,11 +301,6 @@ class ProfileNoticeList extends NoticeList class ProfileNoticeListItem extends DoFollowListItem { - function showAuthor() - { - return; - } - /** * show a link to the author of repeat * diff --git a/actions/smssettings.php b/actions/smssettings.php index cdf99a56d9..1545679c17 100644 --- a/actions/smssettings.php +++ b/actions/smssettings.php @@ -409,7 +409,7 @@ class SmssettingsAction extends SettingsAction if (!$result) { common_log_db_error($confirm, 'DELETE', __FILE__); // TRANS: Server error thrown on database error canceling SMS phone number confirmation. - $this->serverError(_('Could not delete email confirmation.')); + $this->serverError(_('Could not delete SMS confirmation.')); return; } diff --git a/actions/userauthorization.php b/actions/userauthorization.php index c86f4cdaa1..d9cdc660fd 100644 --- a/actions/userauthorization.php +++ b/actions/userauthorization.php @@ -142,6 +142,7 @@ class UserauthorizationAction extends Action 'alt' => $nickname)); } + // TRANS: Label for nickname on user authorisation page. $this->element('div', 'entity_nickname', _('Nickname')); $hasFN = ($fullname !== '') ? 'nickname' : 'fn nickname'; @@ -196,12 +197,14 @@ class UserauthorizationAction extends Action 'userauthorization'))); $this->hidden('token', common_session_token()); - // TRANS: Button text on Authorise Subscription page. - $this->submit('accept', _m('BUTTON','Accept'), 'submit accept', null, + $this->submit('accept', + // TRANS: Button text on Authorise Subscription page. + _m('BUTTON','Accept'), 'submit accept', null, // TRANS: Title for button on Authorise Subscription page. _('Subscribe to this user.')); - // TRANS: Button text on Authorise Subscription page. - $this->submit('reject', _m('BUTTON','Reject'), 'submit reject', null, + $this->submit('reject', + // TRANS: Button text on Authorise Subscription page. + _m('BUTTON','Reject'), 'submit reject', null, // TRANS: Title for button on Authorise Subscription page. _('Reject this subscription.')); $this->elementEnd('form'); diff --git a/actions/userdesignsettings.php b/actions/userdesignsettings.php index 8ce5e1f8f3..c83815412a 100644 --- a/actions/userdesignsettings.php +++ b/actions/userdesignsettings.php @@ -71,6 +71,7 @@ class UserDesignSettingsAction extends DesignSettingsAction */ function title() { + // TRANS: Title for profile design page. return _('Profile design'); } @@ -81,6 +82,7 @@ class UserDesignSettingsAction extends DesignSettingsAction */ function getInstructions() { + // TRANS: Instructions for Profile design page. return _('Customize the way your profile looks ' . 'with a background image and a colour palette of your choice.'); } @@ -193,6 +195,7 @@ class UserDesignSettingsAction extends DesignSettingsAction if ($result === false) { common_log_db_error($design, 'UPDATE', __FILE__); + // TRANS: Form validation error on Profile design page when updating design settings has failed. $this->showForm(_('Could not update your design.')); return; } @@ -215,6 +218,7 @@ class UserDesignSettingsAction extends DesignSettingsAction if (empty($id)) { common_log_db_error($id, 'INSERT', __FILE__); + // TRANS: Form validation error on Profile design page when saving design settings has failed. $this->showForm(_('Unable to save your design settings.')); return; } @@ -225,6 +229,7 @@ class UserDesignSettingsAction extends DesignSettingsAction if (empty($result)) { common_log_db_error($original, 'UPDATE', __FILE__); + // TRANS: Form validation error on Profile design page when saving design settings has failed. $this->showForm(_('Unable to save your design settings.')); $user->query('ROLLBACK'); return; @@ -236,6 +241,7 @@ class UserDesignSettingsAction extends DesignSettingsAction $this->saveBackgroundImage($design); + // TRANS: Confirmation message on Profile design page when saving design settings has succeeded. $this->showForm(_('Design preferences saved.'), true); } @@ -246,7 +252,6 @@ class UserDesignSettingsAction extends DesignSettingsAction */ function sethd() { - $user = common_current_user(); $design = $user->getDesign(); @@ -267,6 +272,7 @@ class UserDesignSettingsAction extends DesignSettingsAction if (empty($id)) { common_log_db_error($id, 'INSERT', __FILE__); + // TRANS: Form validation error on Profile design page when saving design settings has failed. $this->showForm(_('Unable to save your design settings.')); return; } @@ -277,6 +283,7 @@ class UserDesignSettingsAction extends DesignSettingsAction if (empty($result)) { common_log_db_error($original, 'UPDATE', __FILE__); + // TRANS: Form validation error on Profile design page when updating design settings has failed. $this->showForm(_('Unable to save your design settings.')); $user->query('ROLLBACK'); return; @@ -286,6 +293,7 @@ class UserDesignSettingsAction extends DesignSettingsAction $this->saveBackgroundImage($design); + // TRANS: Succes message on Profile design page when finding an easter egg. $this->showForm(_('Enjoy your hotdog!'), true); } @@ -303,7 +311,8 @@ class UserDesignSettingsAction extends DesignSettingsAction if ($result === false) { common_log_db_error($user, 'UPDATE', __FILE__); - throw new ServerException(_('Couldn\'t update user.')); + // TRANS: Server exception thrown on Profile design page when updating design settings fails. + throw new ServerException(_('Could not update user.')); } } } @@ -322,6 +331,7 @@ class UserDesignForm extends DesignForm */ function formLegend() { + // TRANS: Form legend on Profile design page. $this->out->element('legend', null, _('Design settings')); } @@ -337,7 +347,9 @@ class UserDesignForm extends DesignForm $this->out->elementStart('ul', 'form_data'); $this->out->elementStart('li'); + // TRANS: Checkbox label on Profile design page. $this->out->checkbox('viewdesigns', _('View profile designs'), + // TRANS: Title for checkbox on Profile design page. - $user->viewdesigns, _('Show or hide profile designs.')); $this->out->elementEnd('li'); $this->out->elementEnd('ul'); @@ -345,6 +357,7 @@ class UserDesignForm extends DesignForm $this->out->elementEnd('fieldset'); $this->out->elementStart('fieldset'); + // TRANS: Form legend on Profile design page for form to choose a background image. $this->out->element('legend', null, _('Background file')); parent::formData(); diff --git a/actions/usergroups.php b/actions/usergroups.php index 6606e76cdb..f9063d8867 100644 --- a/actions/usergroups.php +++ b/actions/usergroups.php @@ -45,7 +45,6 @@ require_once INSTALLDIR.'/lib/grouplist.php'; * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link http://status.net/ */ - class UsergroupsAction extends OwnerDesignAction { var $page = null; @@ -59,10 +58,12 @@ class UsergroupsAction extends OwnerDesignAction function title() { if ($this->page == 1) { - // TRANS: Message is used as a page title. %s is a nick name. + // TRANS: Page title for first page of groups for a user. + // TRANS: %s is a nickname. return sprintf(_('%s groups'), $this->user->nickname); } else { - // TRANS: Message is used as a page title. %1$s is a nick name, %2$d is a page number. + // TRANS: Page title for all but the first page of groups for a user. + // TRANS: %1$s is a nickname, %2$d is a page number. return sprintf(_('%1$s groups, page %2$d'), $this->user->nickname, $this->page); @@ -90,6 +91,7 @@ class UsergroupsAction extends OwnerDesignAction $this->user = User::staticGet('nickname', $nickname); if (!$this->user) { + // TRANS: Client error displayed requesting groups for a non-existing user. $this->clientError(_('No such user.'), 404); return false; } @@ -97,6 +99,7 @@ class UsergroupsAction extends OwnerDesignAction $this->profile = $this->user->getProfile(); if (!$this->profile) { + // TRANS: Server error displayed requesting groups for a user without a profile. $this->serverError(_('User has no profile.')); return false; } @@ -112,7 +115,7 @@ class UsergroupsAction extends OwnerDesignAction $this->showPage(); } - function showLocalNav() + function showObjectNav() { $nav = new SubGroupNav($this, $this->user); $nav->show(); @@ -123,12 +126,14 @@ class UsergroupsAction extends OwnerDesignAction $this->elementStart('p', array('id' => 'new_group')); $this->element('a', array('href' => common_local_url('newgroup'), 'class' => 'more'), + // TRANS: Link text on group page to create a new group. _('Create a new group')); $this->elementEnd('p'); $this->elementStart('p', array('id' => 'group_search')); $this->element('a', array('href' => common_local_url('groupsearch'), 'class' => 'more'), + // TRANS: Link text on group page to search for groups. _('Search for more groups')); $this->elementEnd('p'); @@ -156,11 +161,15 @@ class UsergroupsAction extends OwnerDesignAction function showEmptyListMessage() { + // TRANS: Text on group page for a user that is not a member of any group. + // TRANS: %s is a user nickname. $message = sprintf(_('%s is not a member of any group.'), $this->user->nickname) . ' '; if (common_logged_in()) { $current_user = common_current_user(); if ($this->user->id === $current_user->id) { + // TRANS: Text on group page for a user that is not a member of any group. This message contains + // TRANS: a Markdown link in the form [link text](link) and a variable that should not be changed. $message .= _('Try [searching for groups](%%action.groupsearch%%) and joining them.'); } } @@ -168,4 +177,10 @@ class UsergroupsAction extends OwnerDesignAction $this->raw(common_markup_to_html($message)); $this->elementEnd('div'); } + + function showProfileBlock() + { + $block = new AccountProfileBlock($this, $this->profile); + $block->show(); + } } diff --git a/actions/version.php b/actions/version.php index 9e4e836d24..37555652c7 100644 --- a/actions/version.php +++ b/actions/version.php @@ -46,7 +46,6 @@ if (!defined('STATUSNET')) { * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 * @link http://status.net/ */ - class VersionAction extends Action { var $pluginVersions = array(); @@ -58,7 +57,6 @@ class VersionAction extends Action * * @return boolean is read only action? */ - function isReadOnly($args) { return true; @@ -69,9 +67,9 @@ class VersionAction extends Action * * @return string page title */ - function title() { + // TRANS: Title for version page. %s is the StatusNet version. return sprintf(_("StatusNet %s"), STATUSNET_VERSION); } @@ -85,7 +83,6 @@ class VersionAction extends Action * * @return boolean true */ - function prepare($args) { parent::prepare($args); @@ -105,7 +102,6 @@ class VersionAction extends Action * * @return void */ - function handle($args) { parent::handle($args); @@ -131,7 +127,6 @@ class VersionAction extends Action $this->elementEnd('div'); } - /* * Overrride to add entry-title class * @@ -147,38 +142,46 @@ class VersionAction extends Action * * @return void */ - function showContent() { $this->elementStart('p'); + // TRANS: Content part of StatusNet version page. + // TRANS: %1$s is the engine name (StatusNet) and %2$s is the StatusNet version. $this->raw(sprintf(_('This site is powered by %1$s version %2$s, '. 'Copyright 2008-2010 StatusNet, Inc. '. 'and contributors.'), XMLStringer::estring('a', array('href' => 'http://status.net/'), + // TRANS: Engine name. _('StatusNet')), STATUSNET_VERSION)); $this->elementEnd('p'); + // TRANS: Header for StatusNet contributors section on the version page. $this->element('h2', null, _('Contributors')); $this->element('p', null, implode(', ', $this->contributors)); + // TRANS: Header for StatusNet license section on the version page. $this->element('h2', null, _('License')); $this->element('p', null, + // TRANS: Content part of StatusNet version page. _('StatusNet is free software: you can redistribute it and/or modify '. 'it under the terms of the GNU Affero General Public License as published by '. 'the Free Software Foundation, either version 3 of the License, or '. '(at your option) any later version. ')); $this->element('p', null, + // TRANS: Content part of StatusNet version page. _('This program is distributed in the hope that it will be useful, '. 'but WITHOUT ANY WARRANTY; without even the implied warranty of '. 'MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the '. 'GNU Affero General Public License for more details. ')); $this->elementStart('p'); + // TRANS: Content part of StatusNet version page. + // TRANS: %s is a link to the AGPL license with link description "http://www.gnu.org/licenses/agpl.html". $this->raw(sprintf(_('You should have received a copy of the GNU Affero General Public License '. 'along with this program. If not, see %s.'), XMLStringer::estring('a', array('href' => 'http://www.gnu.org/licenses/agpl.html'), @@ -188,16 +191,21 @@ class VersionAction extends Action // XXX: Theme information? if (count($this->pluginVersions)) { + // TRANS: Header for StatusNet plugins section on the version page. $this->element('h2', null, _('Plugins')); $this->elementStart('table', array('id' => 'plugins_enabled')); $this->elementStart('thead'); $this->elementStart('tr'); - $this->element('th', array('id' => 'plugin_name'), _('Name')); - $this->element('th', array('id' => 'plugin_version'), _('Version')); - $this->element('th', array('id' => 'plugin_authors'), _('Author(s)')); - $this->element('th', array('id' => 'plugin_description'), _('Description')); + // TRANS: Column header for plugins table on version page. + $this->element('th', array('id' => 'plugin_name'), _m('HEADER','Name')); + // TRANS: Column header for plugins table on version page. + $this->element('th', array('id' => 'plugin_version'), _m('HEADER','Version')); + // TRANS: Column header for plugins table on version page. + $this->element('th', array('id' => 'plugin_authors'), _m('HEADER','Author(s)')); + // TRANS: Column header for plugins table on version page. + $this->element('th', array('id' => 'plugin_description'), _m('HEADER','Description')); $this->elementEnd('tr'); $this->elementEnd('thead'); @@ -269,5 +277,6 @@ class VersionAction extends Action 'mEDI', 'Brett Taylor', 'Brigitte Schuster', - 'Brion Vibber'); + 'Brion Vibber', + 'Siebrand Mazeland'); } diff --git a/classes/Fave.php b/classes/Fave.php index 4a9cfaae06..efbceee6a8 100644 --- a/classes/Fave.php +++ b/classes/Fave.php @@ -44,6 +44,7 @@ class Fave extends Memcached_DataObject common_log_db_error($fave, 'INSERT', __FILE__); return false; } + self::blow('fave:by_notice:%d', $fave->notice_id); Event::handle('EndFavorNotice', array($profile, $notice)); } @@ -61,6 +62,7 @@ class Fave extends Memcached_DataObject if (Event::handle('StartDisfavorNotice', array($profile, $notice, &$result))) { $result = parent::delete(); + self::blow('fave:by_notice:%d', $this->notice_id); if ($result) { Event::handle('EndDisfavorNotice', array($profile, $notice)); @@ -208,4 +210,31 @@ class Fave extends Memcached_DataObject return $fav; } + + /** + * Grab a list of profile who have favored this notice. + * + * @return ArrayWrapper masquerading as a Fave + */ + static function byNotice($noticeId) + { + $c = self::memcache(); + $key = Cache::key('fave:by_notice:' . $noticeId); + + $wrapper = $c->get($key); + if (!$wrapper) { + // @fixme caching & scalability! + $fave = new Fave(); + $fave->notice_id = $noticeId; + $fave->find(); + + $list = array(); + while ($fave->fetch()) { + $list[] = clone($fave); + } + $wrapper = new ArrayWrapper($list); + $c->set($key, $wrapper); + } + return $wrapper; + } } diff --git a/classes/Notice.php b/classes/Notice.php index 21795ae21b..79b034e76f 100644 --- a/classes/Notice.php +++ b/classes/Notice.php @@ -72,6 +72,7 @@ class Notice extends Memcached_DataObject public $location_id; // int(4) public $location_ns; // int(4) public $repeat_of; // int(4) + public $object_type; // varchar(255) /* Static get */ function staticGet($k,$v=NULL) @@ -241,6 +242,7 @@ class Notice extends Memcached_DataObject * array 'urls' list of attached/referred URLs to save with the * notice in place of extracting links from content * boolean 'distribute' whether to distribute the notice, default true + * string 'object_type' URL of the associated object type (default ActivityObject::NOTE) * * @fixme tag override * @@ -360,6 +362,12 @@ class Notice extends Memcached_DataObject $notice->rendered = common_render_content($final, $notice); } + if (empty($object_type)) { + $notice->object_type = (empty($notice->reply_to)) ? ActivityObject::NOTE : ActivityObject::COMMENT; + } else { + $notice->object_type = $object_type; + } + if (Event::handle('StartNoticeSave', array(&$notice))) { // XXX: some of these functions write to the DB @@ -494,6 +502,13 @@ class Notice extends Memcached_DataObject if ($this->isPublic()) { self::blow('public;last'); } + + self::blow('fave:by_notice', $this->id); + + if ($this->conversation) { + // In case we're the first, will need to calc a new root. + self::blow('notice:conversation_root:%d', $this->conversation); + } } /** save all urls in the notice to the db @@ -772,6 +787,35 @@ class Notice extends Memcached_DataObject return false; } + /** + * Grab the earliest notice from this conversation. + * + * @return Notice or null + */ + function conversationRoot() + { + if (!empty($this->conversation)) { + $c = self::memcache(); + + $key = Cache::key('notice:conversation_root:' . $this->conversation); + $notice = $c->get($key); + if ($notice) { + return $notice; + } + + $notice = new Notice(); + $notice->conversation = $this->conversation; + $notice->orderBy('CREATED'); + $notice->limit(1); + $notice->find(true); + + if ($notice->N) { + $c->set($key, $notice); + return $notice; + } + } + return null; + } /** * Pull up a full list of local recipients who will be getting * this notice in their inbox. Results will be cached, so don't @@ -811,18 +855,21 @@ class Notice extends Memcached_DataObject $ni = array(); - foreach ($users as $id) { - $ni[$id] = NOTICE_INBOX_SOURCE_SUB; - } + // Give plugins a chance to add folks in at start... + if (Event::handle('StartNoticeWhoGets', array($this, &$ni))) { - foreach ($groups as $group) { - $users = $group->getUserMembers(); foreach ($users as $id) { - if (!array_key_exists($id, $ni)) { - $ni[$id] = NOTICE_INBOX_SOURCE_GROUP; + $ni[$id] = NOTICE_INBOX_SOURCE_SUB; + } + + foreach ($groups as $group) { + $users = $group->getUserMembers(); + foreach ($users as $id) { + if (!array_key_exists($id, $ni)) { + $ni[$id] = NOTICE_INBOX_SOURCE_GROUP; + } } } - } foreach ($ptags as $ptag) { $users = $ptag->getUserSubscribers(); @@ -840,24 +887,27 @@ class Notice extends Memcached_DataObject if (!array_key_exists($recipient, $ni)) { $ni[$recipient] = NOTICE_INBOX_SOURCE_REPLY; } - } - // Exclude any deleted, non-local, or blocking recipients. - $profile = $this->getProfile(); - $originalProfile = null; - if ($this->repeat_of) { - // Check blocks against the original notice's poster as well. - $original = Notice::staticGet('id', $this->repeat_of); - if ($original) { - $originalProfile = $original->getProfile(); + // Exclude any deleted, non-local, or blocking recipients. + $profile = $this->getProfile(); + $originalProfile = null; + if ($this->repeat_of) { + // Check blocks against the original notice's poster as well. + $original = Notice::staticGet('id', $this->repeat_of); + if ($original) { + $originalProfile = $original->getProfile(); + } } - } - foreach ($ni as $id => $source) { - $user = User::staticGet('id', $id); - if (empty($user) || $user->hasBlocked($profile) || - ($originalProfile && $user->hasBlocked($originalProfile))) { - unset($ni[$id]); + foreach ($ni as $id => $source) { + $user = User::staticGet('id', $id); + if (empty($user) || $user->hasBlocked($profile) || + ($originalProfile && $user->hasBlocked($originalProfile))) { + unset($ni[$id]); + } } + + // Give plugins a chance to filter out... + Event::handle('EndNoticeWhoGets', array($this, &$ni)); } if (!empty($c)) { @@ -2106,6 +2156,11 @@ class Notice extends Memcached_DataObject $this->is_local == Notice::LOCAL_NONPUBLIC); } + /** + * Get the list of hash tags saved with this notice. + * + * @return array of strings + */ public function getTags() { $tags = array(); diff --git a/classes/statusnet.ini b/classes/statusnet.ini index 6b68dfe713..da37dcaffd 100644 --- a/classes/statusnet.ini +++ b/classes/statusnet.ini @@ -336,6 +336,7 @@ lon = 1 location_id = 1 location_ns = 1 repeat_of = 1 +object_type = 2 [notice__keys] id = N diff --git a/db/core.php b/db/core.php index 9f9c7a24bb..cfed063a59 100644 --- a/db/core.php +++ b/db/core.php @@ -201,6 +201,7 @@ $schema['notice'] = array( 'location_id' => array('type' => 'int', 'description' => 'location id if possible'), 'location_ns' => array('type' => 'int', 'description' => 'namespace for location'), 'repeat_of' => array('type' => 'int', 'description' => 'notice this is a repeat of'), + 'object_type' => array('type' => 'varchar', 'length' => 255, 'description' => 'URI representing activity streams object type', 'default' => 'http://activitystrea.ms/schema/1.0/note'), ), 'primary key' => array('id'), 'unique keys' => array( diff --git a/favicon.ico b/favicon.ico index 74ff52bd6d..e2c6fb5008 100644 Binary files a/favicon.ico and b/favicon.ico differ diff --git a/js/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png b/js/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000000..5b5dab2ab7 Binary files /dev/null and b/js/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png differ diff --git a/js/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png b/js/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png new file mode 100644 index 0000000000..ac8b229af9 Binary files /dev/null and b/js/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png differ diff --git a/js/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png b/js/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000000..ad3d6346e0 Binary files /dev/null and b/js/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png differ diff --git a/js/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png b/js/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000000..42ccba269b Binary files /dev/null and b/js/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png differ diff --git a/js/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png b/js/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000000..5a46b47cb1 Binary files /dev/null and b/js/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png differ diff --git a/js/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png b/js/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png new file mode 100644 index 0000000000..86c2baa655 Binary files /dev/null and b/js/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png differ diff --git a/js/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png b/js/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png new file mode 100644 index 0000000000..4443fdc1a1 Binary files /dev/null and b/js/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png differ diff --git a/js/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png b/js/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png new file mode 100644 index 0000000000..7c9fa6c6ed Binary files /dev/null and b/js/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png differ diff --git a/js/css/smoothness/images/ui-icons_222222_256x240.png b/js/css/smoothness/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000000..b273ff111d Binary files /dev/null and b/js/css/smoothness/images/ui-icons_222222_256x240.png differ diff --git a/js/css/smoothness/images/ui-icons_2e83ff_256x240.png b/js/css/smoothness/images/ui-icons_2e83ff_256x240.png new file mode 100644 index 0000000000..09d1cdc856 Binary files /dev/null and b/js/css/smoothness/images/ui-icons_2e83ff_256x240.png differ diff --git a/js/css/smoothness/images/ui-icons_454545_256x240.png b/js/css/smoothness/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000000..59bd45b907 Binary files /dev/null and b/js/css/smoothness/images/ui-icons_454545_256x240.png differ diff --git a/js/css/smoothness/images/ui-icons_888888_256x240.png b/js/css/smoothness/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000000..6d02426c11 Binary files /dev/null and b/js/css/smoothness/images/ui-icons_888888_256x240.png differ diff --git a/js/css/smoothness/images/ui-icons_cd0a0a_256x240.png b/js/css/smoothness/images/ui-icons_cd0a0a_256x240.png new file mode 100644 index 0000000000..2ab019b73e Binary files /dev/null and b/js/css/smoothness/images/ui-icons_cd0a0a_256x240.png differ diff --git a/js/css/smoothness/jquery-ui.css b/js/css/smoothness/jquery-ui.css new file mode 100644 index 0000000000..cd935e2c81 --- /dev/null +++ b/js/css/smoothness/jquery-ui.css @@ -0,0 +1,573 @@ +/* + * jQuery UI CSS Framework 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { display: none; } +.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); } +.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; } +.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } +.ui-helper-clearfix { display: inline-block; } +/* required comment for clearfix to work in Opera \*/ +* html .ui-helper-clearfix { height:1%; } +.ui-helper-clearfix { display:block; } +/* end clearfix */ +.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); } + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { cursor: default !important; } + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; } + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } + + +/* + * jQuery UI CSS Framework 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Theming/API + * + * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px + */ + + +/* Component containers +----------------------------------*/ +.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; } +.ui-widget .ui-widget { font-size: 1em; } +.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; } +.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; } +.ui-widget-content a { color: #222222; } +.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; } +.ui-widget-header a { color: #222222; } + +/* Interaction states +----------------------------------*/ +.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; } +.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; } +.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; } +.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; } +.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; } +.ui-widget :active { outline: none; } + +/* Interaction Cues +----------------------------------*/ +.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; } +.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; } +.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; } +.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; } +.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; } +.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; } +.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; } +.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; } + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); } +.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); } +.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); } +.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); } +.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); } + +/* positioning */ +.ui-icon-carat-1-n { background-position: 0 0; } +.ui-icon-carat-1-ne { background-position: -16px 0; } +.ui-icon-carat-1-e { background-position: -32px 0; } +.ui-icon-carat-1-se { background-position: -48px 0; } +.ui-icon-carat-1-s { background-position: -64px 0; } +.ui-icon-carat-1-sw { background-position: -80px 0; } +.ui-icon-carat-1-w { background-position: -96px 0; } +.ui-icon-carat-1-nw { background-position: -112px 0; } +.ui-icon-carat-2-n-s { background-position: -128px 0; } +.ui-icon-carat-2-e-w { background-position: -144px 0; } +.ui-icon-triangle-1-n { background-position: 0 -16px; } +.ui-icon-triangle-1-ne { background-position: -16px -16px; } +.ui-icon-triangle-1-e { background-position: -32px -16px; } +.ui-icon-triangle-1-se { background-position: -48px -16px; } +.ui-icon-triangle-1-s { background-position: -64px -16px; } +.ui-icon-triangle-1-sw { background-position: -80px -16px; } +.ui-icon-triangle-1-w { background-position: -96px -16px; } +.ui-icon-triangle-1-nw { background-position: -112px -16px; } +.ui-icon-triangle-2-n-s { background-position: -128px -16px; } +.ui-icon-triangle-2-e-w { background-position: -144px -16px; } +.ui-icon-arrow-1-n { background-position: 0 -32px; } +.ui-icon-arrow-1-ne { background-position: -16px -32px; } +.ui-icon-arrow-1-e { background-position: -32px -32px; } +.ui-icon-arrow-1-se { background-position: -48px -32px; } +.ui-icon-arrow-1-s { background-position: -64px -32px; } +.ui-icon-arrow-1-sw { background-position: -80px -32px; } +.ui-icon-arrow-1-w { background-position: -96px -32px; } +.ui-icon-arrow-1-nw { background-position: -112px -32px; } +.ui-icon-arrow-2-n-s { background-position: -128px -32px; } +.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; } +.ui-icon-arrow-2-e-w { background-position: -160px -32px; } +.ui-icon-arrow-2-se-nw { background-position: -176px -32px; } +.ui-icon-arrowstop-1-n { background-position: -192px -32px; } +.ui-icon-arrowstop-1-e { background-position: -208px -32px; } +.ui-icon-arrowstop-1-s { background-position: -224px -32px; } +.ui-icon-arrowstop-1-w { background-position: -240px -32px; } +.ui-icon-arrowthick-1-n { background-position: 0 -48px; } +.ui-icon-arrowthick-1-ne { background-position: -16px -48px; } +.ui-icon-arrowthick-1-e { background-position: -32px -48px; } +.ui-icon-arrowthick-1-se { background-position: -48px -48px; } +.ui-icon-arrowthick-1-s { background-position: -64px -48px; } +.ui-icon-arrowthick-1-sw { background-position: -80px -48px; } +.ui-icon-arrowthick-1-w { background-position: -96px -48px; } +.ui-icon-arrowthick-1-nw { background-position: -112px -48px; } +.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; } +.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; } +.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; } +.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; } +.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; } +.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; } +.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; } +.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; } +.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; } +.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; } +.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; } +.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; } +.ui-icon-arrowreturn-1-w { background-position: -64px -64px; } +.ui-icon-arrowreturn-1-n { background-position: -80px -64px; } +.ui-icon-arrowreturn-1-e { background-position: -96px -64px; } +.ui-icon-arrowreturn-1-s { background-position: -112px -64px; } +.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; } +.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; } +.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; } +.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; } +.ui-icon-arrow-4 { background-position: 0 -80px; } +.ui-icon-arrow-4-diag { background-position: -16px -80px; } +.ui-icon-extlink { background-position: -32px -80px; } +.ui-icon-newwin { background-position: -48px -80px; } +.ui-icon-refresh { background-position: -64px -80px; } +.ui-icon-shuffle { background-position: -80px -80px; } +.ui-icon-transfer-e-w { background-position: -96px -80px; } +.ui-icon-transferthick-e-w { background-position: -112px -80px; } +.ui-icon-folder-collapsed { background-position: 0 -96px; } +.ui-icon-folder-open { background-position: -16px -96px; } +.ui-icon-document { background-position: -32px -96px; } +.ui-icon-document-b { background-position: -48px -96px; } +.ui-icon-note { background-position: -64px -96px; } +.ui-icon-mail-closed { background-position: -80px -96px; } +.ui-icon-mail-open { background-position: -96px -96px; } +.ui-icon-suitcase { background-position: -112px -96px; } +.ui-icon-comment { background-position: -128px -96px; } +.ui-icon-person { background-position: -144px -96px; } +.ui-icon-print { background-position: -160px -96px; } +.ui-icon-trash { background-position: -176px -96px; } +.ui-icon-locked { background-position: -192px -96px; } +.ui-icon-unlocked { background-position: -208px -96px; } +.ui-icon-bookmark { background-position: -224px -96px; } +.ui-icon-tag { background-position: -240px -96px; } +.ui-icon-home { background-position: 0 -112px; } +.ui-icon-flag { background-position: -16px -112px; } +.ui-icon-calendar { background-position: -32px -112px; } +.ui-icon-cart { background-position: -48px -112px; } +.ui-icon-pencil { background-position: -64px -112px; } +.ui-icon-clock { background-position: -80px -112px; } +.ui-icon-disk { background-position: -96px -112px; } +.ui-icon-calculator { background-position: -112px -112px; } +.ui-icon-zoomin { background-position: -128px -112px; } +.ui-icon-zoomout { background-position: -144px -112px; } +.ui-icon-search { background-position: -160px -112px; } +.ui-icon-wrench { background-position: -176px -112px; } +.ui-icon-gear { background-position: -192px -112px; } +.ui-icon-heart { background-position: -208px -112px; } +.ui-icon-star { background-position: -224px -112px; } +.ui-icon-link { background-position: -240px -112px; } +.ui-icon-cancel { background-position: 0 -128px; } +.ui-icon-plus { background-position: -16px -128px; } +.ui-icon-plusthick { background-position: -32px -128px; } +.ui-icon-minus { background-position: -48px -128px; } +.ui-icon-minusthick { background-position: -64px -128px; } +.ui-icon-close { background-position: -80px -128px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-key { background-position: -112px -128px; } +.ui-icon-lightbulb { background-position: -128px -128px; } +.ui-icon-scissors { background-position: -144px -128px; } +.ui-icon-clipboard { background-position: -160px -128px; } +.ui-icon-copy { background-position: -176px -128px; } +.ui-icon-contact { background-position: -192px -128px; } +.ui-icon-image { background-position: -208px -128px; } +.ui-icon-video { background-position: -224px -128px; } +.ui-icon-script { background-position: -240px -128px; } +.ui-icon-alert { background-position: 0 -144px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-notice { background-position: -32px -144px; } +.ui-icon-help { background-position: -48px -144px; } +.ui-icon-check { background-position: -64px -144px; } +.ui-icon-bullet { background-position: -80px -144px; } +.ui-icon-radio-off { background-position: -96px -144px; } +.ui-icon-radio-on { background-position: -112px -144px; } +.ui-icon-pin-w { background-position: -128px -144px; } +.ui-icon-pin-s { background-position: -144px -144px; } +.ui-icon-play { background-position: 0 -160px; } +.ui-icon-pause { background-position: -16px -160px; } +.ui-icon-seek-next { background-position: -32px -160px; } +.ui-icon-seek-prev { background-position: -48px -160px; } +.ui-icon-seek-end { background-position: -64px -160px; } +.ui-icon-seek-start { background-position: -80px -160px; } +/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */ +.ui-icon-seek-first { background-position: -80px -160px; } +.ui-icon-stop { background-position: -96px -160px; } +.ui-icon-eject { background-position: -112px -160px; } +.ui-icon-volume-off { background-position: -128px -160px; } +.ui-icon-volume-on { background-position: -144px -160px; } +.ui-icon-power { background-position: 0 -176px; } +.ui-icon-signal-diag { background-position: -16px -176px; } +.ui-icon-signal { background-position: -32px -176px; } +.ui-icon-battery-0 { background-position: -48px -176px; } +.ui-icon-battery-1 { background-position: -64px -176px; } +.ui-icon-battery-2 { background-position: -80px -176px; } +.ui-icon-battery-3 { background-position: -96px -176px; } +.ui-icon-circle-plus { background-position: 0 -192px; } +.ui-icon-circle-minus { background-position: -16px -192px; } +.ui-icon-circle-close { background-position: -32px -192px; } +.ui-icon-circle-triangle-e { background-position: -48px -192px; } +.ui-icon-circle-triangle-s { background-position: -64px -192px; } +.ui-icon-circle-triangle-w { background-position: -80px -192px; } +.ui-icon-circle-triangle-n { background-position: -96px -192px; } +.ui-icon-circle-arrow-e { background-position: -112px -192px; } +.ui-icon-circle-arrow-s { background-position: -128px -192px; } +.ui-icon-circle-arrow-w { background-position: -144px -192px; } +.ui-icon-circle-arrow-n { background-position: -160px -192px; } +.ui-icon-circle-zoomin { background-position: -176px -192px; } +.ui-icon-circle-zoomout { background-position: -192px -192px; } +.ui-icon-circle-check { background-position: -208px -192px; } +.ui-icon-circlesmall-plus { background-position: 0 -208px; } +.ui-icon-circlesmall-minus { background-position: -16px -208px; } +.ui-icon-circlesmall-close { background-position: -32px -208px; } +.ui-icon-squaresmall-plus { background-position: -48px -208px; } +.ui-icon-squaresmall-minus { background-position: -64px -208px; } +.ui-icon-squaresmall-close { background-position: -80px -208px; } +.ui-icon-grip-dotted-vertical { background-position: 0 -224px; } +.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; } +.ui-icon-grip-solid-vertical { background-position: -32px -224px; } +.ui-icon-grip-solid-horizontal { background-position: -48px -224px; } +.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; } +.ui-icon-grip-diagonal-se { background-position: -80px -224px; } + + +/* Misc visuals +----------------------------------*/ + +/* Corner radius */ +.ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; } +.ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-top { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; } +.ui-corner-bottom { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-right { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; border-top-right-radius: 4px; -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; } +.ui-corner-left { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; border-top-left-radius: 4px; -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; } +.ui-corner-all { -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; } + +/* Overlays */ +.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); } +.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/* + * jQuery UI Resizable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizable#theming + */ +.ui-resizable { position: relative;} +.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;} +.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; } +.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; } +.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; } +.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; } +.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; } +.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; } +.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; } +.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; } +.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/* + * jQuery UI Selectable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectable#theming + */ +.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } +/* + * jQuery UI Accordion 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion#theming + */ +/* IE/Win - Fix animation bug - #4615 */ +.ui-accordion { width: 100%; } +.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; } +.ui-accordion .ui-accordion-li-fix { display: inline; } +.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; } +.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; } +.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; } +.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; } +.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; } +.ui-accordion .ui-accordion-content-active { display: block; } +/* + * jQuery UI Autocomplete 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete#theming + */ +.ui-autocomplete { position: absolute; cursor: default; } + +/* workarounds */ +* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */ + +/* + * jQuery UI Menu 1.8.10 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Menu#theming + */ +.ui-menu { + list-style:none; + padding: 2px; + margin: 0; + display:block; + float: left; +} +.ui-menu .ui-menu { + margin-top: -3px; +} +.ui-menu .ui-menu-item { + margin:0; + padding: 0; + zoom: 1; + float: left; + clear: left; + width: 100%; +} +.ui-menu .ui-menu-item a { + text-decoration:none; + display:block; + padding:.2em .4em; + line-height:1.5; + zoom:1; +} +.ui-menu .ui-menu-item a.ui-state-hover, +.ui-menu .ui-menu-item a.ui-state-active { + font-weight: normal; + margin: -1px; +} +/* + * jQuery UI Button 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button#theming + */ +.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */ +.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */ +button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */ +.ui-button-icons-only { width: 3.4em; } +button.ui-button-icons-only { width: 3.7em; } + +/*button text element */ +.ui-button .ui-button-text { display: block; line-height: 1.4; } +.ui-button-text-only .ui-button-text { padding: .4em 1em; } +.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; } +.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; } +.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; } +.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; } +/* no icon support for input elements, provide padding by default */ +input.ui-button { padding: .4em 1em; } + +/*button icon element(s) */ +.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; } +.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; } +.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; } +.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } +.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; } + +/*button sets*/ +.ui-buttonset { margin-right: 7px; } +.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; } + +/* workarounds */ +button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */ +/* + * jQuery UI Dialog 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog#theming + */ +.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; } +.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; } +.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; } +.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; } +.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-draggable .ui-dialog-titlebar { cursor: move; } +/* + * jQuery UI Slider 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider#theming + */ +.ui-slider { position: relative; text-align: left; } +.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; } +.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; } + +.ui-slider-horizontal { height: .8em; } +.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; } +.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; } +.ui-slider-horizontal .ui-slider-range-min { left: 0; } +.ui-slider-horizontal .ui-slider-range-max { right: 0; } + +.ui-slider-vertical { width: .8em; height: 100px; } +.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; } +.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; } +.ui-slider-vertical .ui-slider-range-min { bottom: 0; } +.ui-slider-vertical .ui-slider-range-max { top: 0; }/* + * jQuery UI Tabs 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs#theming + */ +.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */ +.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; } +.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; } +.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; } +.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; } +.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */ +.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; } +.ui-tabs .ui-tabs-hide { display: none !important; } +/* + * jQuery UI Datepicker 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker#theming + */ +.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; } +.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; } +.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; } +.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; } +.ui-datepicker .ui-datepicker-prev { left:2px; } +.ui-datepicker .ui-datepicker-next { right:2px; } +.ui-datepicker .ui-datepicker-prev-hover { left:1px; } +.ui-datepicker .ui-datepicker-next-hover { right:1px; } +.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px; } +.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; } +.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; } +.ui-datepicker select.ui-datepicker-month-year {width: 100%;} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { width: 49%;} +.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; } +.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0; } +.ui-datepicker td { border: 0; padding: 1px; } +.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; } +.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; } +.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; } +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; } + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { width:auto; } +.ui-datepicker-multi .ui-datepicker-group { float:left; } +.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; } +.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; } +.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; } +.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; } +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; } +.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; } +.ui-datepicker-row-break { clear:both; width:100%; } + +/* RTL support */ +.ui-datepicker-rtl { direction: rtl; } +.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; } +.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; } +.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; } +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; } +.ui-datepicker-rtl .ui-datepicker-group { float:right; } +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; } +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; } + +/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */ +.ui-datepicker-cover { + display: none; /*sorry for IE5*/ + display/**/: block; /*sorry for IE5*/ + position: absolute; /*must have*/ + z-index: -1; /*must have*/ + filter: mask(); /*must have*/ + top: -4px; /*must have*/ + left: -4px; /*must have*/ + width: 200px; /*must have*/ + height: 200px; /*must have*/ +}/* + * jQuery UI Progressbar 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar#theming + */ +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } \ No newline at end of file diff --git a/js/jquery-ui.min.js b/js/jquery-ui.min.js new file mode 100644 index 0000000000..7d4ff1cec1 --- /dev/null +++ b/js/jquery-ui.min.js @@ -0,0 +1,782 @@ +/*! + * jQuery UI 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.10",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, +NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this, +"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position"); +if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"),10);if(!isNaN(b)&&b!==0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind((c.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f, +"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c(this).css(h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c(this).css(h, +d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}}); +c(function(){var a=document.body,b=a.appendChild(b=document.createElement("div"));c.extend(b.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.offsetHeight===100;c.support.selectstart="onselectstart"in b;a.removeChild(b).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=9)&&!a.button)return this._mouseUp(a);if(this._mouseStarted){this._mouseDrag(a); +return a.preventDefault()}if(this._mouseDistanceMet(a)&&this._mouseDelayMet(a))(this._mouseStarted=this._mouseStart(this._mouseDownEvent,a)!==false)?this._mouseDrag(a):this._mouseUp(a);return!this._mouseStarted},_mouseUp:function(a){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;a.target==this._mouseDownEvent.target&&c.data(a.target,this.widgetName+".preventClickEvent", +true);this._mouseStop(a)}return false},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +;/* + * jQuery UI Position 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Position + */ +(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.setTimeout){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j={top:b.of.pageY, +left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/2;if(b.at[1]==="bottom")j.top+= +k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+(parseInt(c.curCSS(this,"marginRight",true))||0),w=m+q+(parseInt(c.curCSS(this,"marginBottom",true))||0),i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]==="center")i.top-= +m/2;i.left=Math.round(i.left);i.top=Math.round(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();b.left= +d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0];b.left+= +a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d=c(b), +g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); +;/* + * jQuery UI Draggable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== +"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= +this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- +this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions(); +d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| +this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if((!this.element[0]||!this.element[0].parentNode)&&this.options.helper=="original")return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&& +this.options.revert.call(this.element,b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== +a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]|| +0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], +this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top- +(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment== +"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[(a.containment=="document"?0:d(window).scrollLeft())-this.offset.relative.left-this.offset.parent.left,(a.containment=="document"?0:d(window).scrollTop())-this.offset.relative.top-this.offset.parent.top,(a.containment=="document"?0:d(window).scrollLeft())+d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a.containment=="document"? +0:d(window).scrollTop())+(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&&a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"), +10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor== +Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop(): +f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY; +if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.leftthis.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/ +b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?e:!(e-this.offset.click.left').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})}, +stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options;if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!= +document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>= +i&&e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), +top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= +this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", +nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== +String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; +if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(), +d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset= +this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio: +this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize", +b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height; +f=f?0:c.sizeDiff.width;f={width:c.helper.width()-f,height:c.helper.height()-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing"); +this._propagate("stop",b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top= +null}if(d=="nw"){b.top=a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidthb.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+ +this.size.height,k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b, +a){return{width:this.originalSize.width+a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a, +c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize, +originalPosition:this.originalPosition}}});e.extend(e.ui.resizable,{version:"1.8.10"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize= +b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize,function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width", +"height","top","left"];e.each(r,function(n,o){if((n=(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})}; +if(b._revertToRelativePosition){b._revertToRelativePosition=false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height- +g};g=parseInt(a.element.css("left"),10)+(a.position.left-a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width, +height:i.height});a._updateCache(i);a._propagate("resize",b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d= +e(a),f=[];e(["Top","Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options, +d=a.containerOffset,f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper? +d.top:0}a.offset.left=a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height= +a.size.width/a.aspectRatio}if(d+a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&& +/static/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable"); +b.ghost&&b.ghost.css({position:"relative",height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/ +(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery); +;/* + * jQuery UI Selectable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), +selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, +c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", +c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= +this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable"); +this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this, +arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem= +c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset, +{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment(); +if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start", +a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute"); +if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a, +c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]== +document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp({target:null});this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length- +1;b>=0;b--){this.containers[b]._trigger("deactivate",null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}if(this.placeholder){this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null}); +this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem):d(this.domPosition.parent).prepend(this.currentItem)}return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&& +a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute||"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h= +d.data(f[g],"sortable");if(h&&h!=this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)}); +return d(b)},_removeCurrentsFromItems:function(){for(var a=this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g= +d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable");if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h=0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top= +e.top;this.containers[b].containerCache.width=this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0]; +if(!e)f.style.visibility="hidden";return f},update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder); +c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b=null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length=== +1){this.containers[c]._trigger("over",a,this._uiHash(this));this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.top< +this.containment[1]||g-this.offset.click.top>this.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0], +this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive",g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out", +g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over=0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:false,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var a=this,b=a.options;a.running=0;a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"); +a.headers=a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){b.disabled||c(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){b.disabled||c(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){b.disabled||c(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){b.disabled||c(this).removeClass("ui-state-focus")});a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"); +if(b.navigation){var d=a.element.find("a").filter(b.navigationFilter).eq(0);if(d.length){var h=d.closest(".ui-accordion-header");a.active=h.length?h:d.closest(".ui-accordion-content").prev()}}a.active=a._findActive(a.active||b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");a.active.next().addClass("ui-accordion-content-active");a._createIcons();a.resize();a.element.attr("role","tablist");a.headers.attr("role","tab").bind("keydown.accordion", +function(f){return a._keydown(f)}).next().attr("role","tabpanel");a.headers.not(a.active||"").attr({"aria-expanded":"false",tabIndex:-1}).next().hide();a.active.length?a.active.attr({"aria-expanded":"true",tabIndex:0}):a.headers.eq(0).attr("tabIndex",0);c.browser.safari||a.headers.find("a").attr("tabIndex",-1);b.event&&a.headers.bind(b.event.split(" ").join(".accordion ")+".accordion",function(f){a._clickHandler.call(a,f,this);f.preventDefault()})},_createIcons:function(){var a=this.options;if(a.icons){c("").addClass("ui-icon "+ +a.icons.header).prependTo(this.headers);this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected);this.element.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.children(".ui-icon").remove();this.element.removeClass("ui-accordion-icons")},destroy:function(){var a=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex"); +this.headers.find("a").removeAttr("tabIndex");this._destroyIcons();var b=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");if(a.autoHeight||a.fillHeight)b.css("height","");return c.Widget.prototype.destroy.call(this)},_setOption:function(a,b){c.Widget.prototype._setOption.apply(this,arguments);a=="active"&&this.activate(b);if(a=="icons"){this._destroyIcons(); +b&&this._createIcons()}if(a=="disabled")this.headers.add(this.headers.next())[b?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(a){if(!(this.options.disabled||a.altKey||a.ctrlKey)){var b=c.ui.keyCode,d=this.headers.length,h=this.headers.index(a.target),f=false;switch(a.keyCode){case b.RIGHT:case b.DOWN:f=this.headers[(h+1)%d];break;case b.LEFT:case b.UP:f=this.headers[(h-1+d)%d];break;case b.SPACE:case b.ENTER:this._clickHandler({target:a.target},a.target); +a.preventDefault()}if(f){c(a.target).attr("tabIndex",-1);c(f).attr("tabIndex",0);f.focus();return false}return true}},resize:function(){var a=this.options,b;if(a.fillSpace){if(c.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}b=this.element.parent().height();c.browser.msie&&this.element.parent().css("overflow",d);this.headers.each(function(){b-=c(this).outerHeight(true)});this.headers.next().each(function(){c(this).height(Math.max(0,b-c(this).innerHeight()+ +c(this).height()))}).css("overflow","auto")}else if(a.autoHeight){b=0;this.headers.next().each(function(){b=Math.max(b,c(this).height("").height())}).height(b)}return this},activate:function(a){this.options.active=a;a=this._findActive(a)[0];this._clickHandler({target:a},a);return this},_findActive:function(a){return a?typeof a==="number"?this.headers.filter(":eq("+a+")"):this.headers.not(this.headers.not(a)):a===false?c([]):this.headers.filter(":eq(0)")},_clickHandler:function(a,b){var d=this.options; +if(!d.disabled)if(a.target){a=c(a.currentTarget||b);b=a[0]===this.active[0];d.active=d.collapsible&&b?false:this.headers.index(a);if(!(this.running||!d.collapsible&&b)){var h=this.active;j=a.next();g=this.active.next();e={options:d,newHeader:b&&d.collapsible?c([]):a,oldHeader:this.active,newContent:b&&d.collapsible?c([]):j,oldContent:g};var f=this.headers.index(this.active[0])>this.headers.index(a[0]);this.active=b?c([]):a;this._toggle(j,g,e,b,f);h.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); +if(!b){a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);a.next().addClass("ui-accordion-content-active")}}}else if(d.collapsible){this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);this.active.next().addClass("ui-accordion-content-active");var g=this.active.next(), +e={options:d,newHeader:c([]),oldHeader:d.active,newContent:c([]),oldContent:g},j=this.active=c([]);this._toggle(j,g,e)}},_toggle:function(a,b,d,h,f){var g=this,e=g.options;g.toShow=a;g.toHide=b;g.data=d;var j=function(){if(g)return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data);g.running=b.size()===0?a.size():b.size();if(e.animated){d={};d=e.collapsible&&h?{toShow:c([]),toHide:b,complete:j,down:f,autoHeight:e.autoHeight||e.fillSpace}:{toShow:a,toHide:b,complete:j,down:f,autoHeight:e.autoHeight|| +e.fillSpace};if(!e.proxied)e.proxied=e.animated;if(!e.proxiedDuration)e.proxiedDuration=e.duration;e.animated=c.isFunction(e.proxied)?e.proxied(d):e.proxied;e.duration=c.isFunction(e.proxiedDuration)?e.proxiedDuration(d):e.proxiedDuration;h=c.ui.accordion.animations;var i=e.duration,k=e.animated;if(k&&!h[k]&&!c.easing[k])k="slide";h[k]||(h[k]=function(l){this.slide(l,{easing:k,duration:i||700})});h[k](d)}else{if(e.collapsible&&h)a.toggle();else{b.hide();a.show()}j(true)}b.prev().attr({"aria-expanded":"false", +tabIndex:-1}).blur();a.prev().attr({"aria-expanded":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(!this.running){this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""});this.toHide.removeClass("ui-accordion-content-active");if(this.toHide.length)this.toHide.parent()[0].className=this.toHide.parent()[0].className;this._trigger("change",null,this.data)}}});c.extend(c.ui.accordion,{version:"1.8.10",animations:{slide:function(a,b){a= +c.extend({easing:"swing",duration:300},a,b);if(a.toHide.size())if(a.toShow.size()){var d=a.toShow.css("overflow"),h=0,f={},g={},e;b=a.toShow;e=b[0].style.width;b.width(parseInt(b.parent().width(),10)-parseInt(b.css("paddingLeft"),10)-parseInt(b.css("paddingRight"),10)-(parseInt(b.css("borderLeftWidth"),10)||0)-(parseInt(b.css("borderRightWidth"),10)||0));c.each(["height","paddingTop","paddingBottom"],function(j,i){g[i]="hide";j=(""+c.css(a.toShow[0],i)).match(/^([\d+-.]+)(.*)$/);f[i]={value:j[1], +unit:j[2]||"px"}});a.toShow.css({height:0,overflow:"hidden"}).show();a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(g,{step:function(j,i){if(i.prop=="height")h=i.end-i.start===0?0:(i.now-i.start)/(i.end-i.start);a.toShow[0].style[i.prop]=h*f[i.prop].value+f[i.prop].unit},duration:a.duration,easing:a.easing,complete:function(){a.autoHeight||a.toShow.css("height","");a.toShow.css({width:e,overflow:d});a.complete()}})}else a.toHide.animate({height:"hide",paddingTop:"hide", +paddingBottom:"hide"},a);else a.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},a)},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1E3:200})}}})})(jQuery); +;/* + * jQuery UI Autocomplete 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.position.js + */ +(function(d){var e=0;d.widget("ui.autocomplete",{options:{appendTo:"body",delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var a=this,b=this.element[0].ownerDocument,g;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(!(a.options.disabled||a.element.attr("readonly"))){g=false;var f=d.ui.keyCode; +switch(c.keyCode){case f.PAGE_UP:a._move("previousPage",c);break;case f.PAGE_DOWN:a._move("nextPage",c);break;case f.UP:a._move("previous",c);c.preventDefault();break;case f.DOWN:a._move("next",c);c.preventDefault();break;case f.ENTER:case f.NUMPAD_ENTER:if(a.menu.active){g=true;c.preventDefault()}case f.TAB:if(!a.menu.active)return;a.menu.select(c);break;case f.ESCAPE:a.element.val(a.term);a.close(c);break;default:clearTimeout(a.searching);a.searching=setTimeout(function(){if(a.term!=a.element.val()){a.selectedItem= +null;a.search(null,c)}},a.options.delay);break}}}).bind("keypress.autocomplete",function(c){if(g){g=false;c.preventDefault()}}).bind("focus.autocomplete",function(){if(!a.options.disabled){a.selectedItem=null;a.previous=a.element.val()}}).bind("blur.autocomplete",function(c){if(!a.options.disabled){clearTimeout(a.searching);a.closing=setTimeout(function(){a.close(c);a._change(c)},150)}});this._initSource();this.response=function(){return a._response.apply(a,arguments)};this.menu=d("
    ").addClass("ui-autocomplete").appendTo(d(this.options.appendTo|| +"body",b)[0]).mousedown(function(c){var f=a.menu.element[0];d(c.target).closest(".ui-menu-item").length||setTimeout(function(){d(document).one("mousedown",function(h){h.target!==a.element[0]&&h.target!==f&&!d.ui.contains(f,h.target)&&a.close()})},1);setTimeout(function(){clearTimeout(a.closing)},13)}).menu({focus:function(c,f){f=f.item.data("item.autocomplete");false!==a._trigger("focus",c,{item:f})&&/^key/.test(c.originalEvent.type)&&a.element.val(f.value)},selected:function(c,f){var h=f.item.data("item.autocomplete"), +i=a.previous;if(a.element[0]!==b.activeElement){a.element.focus();a.previous=i;setTimeout(function(){a.previous=i;a.selectedItem=h},1)}false!==a._trigger("select",c,{item:h})&&a.element.val(h.value);a.term=a.element.val();a.close(c);a.selectedItem=h},blur:function(){a.menu.element.is(":visible")&&a.element.val()!==a.term&&a.element.val(a.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu");d.fn.bgiframe&&this.menu.element.bgiframe()},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"); +this.menu.element.remove();d.Widget.prototype.destroy.call(this)},_setOption:function(a,b){d.Widget.prototype._setOption.apply(this,arguments);a==="source"&&this._initSource();if(a==="appendTo")this.menu.element.appendTo(d(b||"body",this.element[0].ownerDocument)[0]);a==="disabled"&&b&&this.xhr&&this.xhr.abort()},_initSource:function(){var a=this,b,g;if(d.isArray(this.options.source)){b=this.options.source;this.source=function(c,f){f(d.ui.autocomplete.filter(b,c.term))}}else if(typeof this.options.source=== +"string"){g=this.options.source;this.source=function(c,f){a.xhr&&a.xhr.abort();a.xhr=d.ajax({url:g,data:c,dataType:"json",autocompleteRequest:++e,success:function(h){this.autocompleteRequest===e&&f(h)},error:function(){this.autocompleteRequest===e&&f([])}})}}else this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val();this.term=this.element.val();if(a.length").data("item.autocomplete",b).append(d("").text(b.label)).appendTo(a)},_move:function(a,b){if(this.menu.element.is(":visible"))if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term);this.menu.deactivate()}else this.menu[a](b); +else this.search(null,b)},widget:function(){return this.menu.element}});d.extend(d.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(a,b){var g=new RegExp(d.ui.autocomplete.escapeRegex(b),"i");return d.grep(a,function(c){return g.test(c.label||c.value||c)})}})})(jQuery); +(function(d){d.widget("ui.menu",{_create:function(){var e=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(a){if(d(a.target).closest(".ui-menu-item a").length){a.preventDefault();e.select(a)}});this.refresh()},refresh:function(){var e=this;this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem").children("a").addClass("ui-corner-all").attr("tabindex", +-1).mouseenter(function(a){e.activate(a,d(this).parent())}).mouseleave(function(){e.deactivate()})},activate:function(e,a){this.deactivate();if(this.hasScroll()){var b=a.offset().top-this.element.offset().top,g=this.element.attr("scrollTop"),c=this.element.height();if(b<0)this.element.attr("scrollTop",g+b);else b>=c&&this.element.attr("scrollTop",g+b-c+a.height())}this.active=a.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end();this._trigger("focus",e,{item:a})}, +deactivate:function(){if(this.active){this.active.children("a").removeClass("ui-state-hover").removeAttr("id");this._trigger("blur");this.active=null}},next:function(e){this.move("next",".ui-menu-item:first",e)},previous:function(e){this.move("prev",".ui-menu-item:last",e)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(e,a,b){if(this.active){e=this.active[e+"All"](".ui-menu-item").eq(0); +e.length?this.activate(b,e):this.activate(b,this.element.children(a))}else this.activate(b,this.element.children(a))},nextPage:function(e){if(this.hasScroll())if(!this.active||this.last())this.activate(e,this.element.children(".ui-menu-item:first"));else{var a=this.active.offset().top,b=this.element.height(),g=this.element.children(".ui-menu-item").filter(function(){var c=d(this).offset().top-a-b+d(this).height();return c<10&&c>-10});g.length||(g=this.element.children(".ui-menu-item:last"));this.activate(e, +g)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(e){if(this.hasScroll())if(!this.active||this.first())this.activate(e,this.element.children(".ui-menu-item:last"));else{var a=this.active.offset().top,b=this.element.height();result=this.element.children(".ui-menu-item").filter(function(){var g=d(this).offset().top-a+b-d(this).height();return g<10&&g>-10});result.length||(result=this.element.children(".ui-menu-item:first")); +this.activate(e,result)}else this.activate(e,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,f=d.primary&&d.secondary,e=[];if(d.primary||d.secondary){e.push("ui-button-text-icon"+(f?"s":d.primary?"-primary":"-secondary"));d.primary&&b.prepend("");d.secondary&&b.append("");if(!this.options.text){e.push(f?"ui-button-icons-only":"ui-button-icon-only"); +b.removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary");this.hasTitle||b.attr("title",c)}}else e.push("ui-button-text-only");b.addClass(e.join(" "))}}});a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c);a.Widget.prototype._setOption.apply(this, +arguments)},refresh:function(){this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); +a.Widget.prototype.destroy.call(this)}})})(jQuery); +;/* + * jQuery UI Dialog 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.button.js + * jquery.ui.draggable.js + * jquery.ui.mouse.js + * jquery.ui.position.js + * jquery.ui.resizable.js + */ +(function(c,j){var k={buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},l={maxHeight:true,maxWidth:true,minHeight:true,minWidth:true};c.widget("ui.dialog",{options:{autoOpen:true,buttons:{},closeOnEscape:true,closeText:"close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:false,maxWidth:false,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",collision:"fit",using:function(a){var b=c(this).css(a).offset().top;b<0&& +c(this).css("top",a.top-b)}},resizable:true,show:null,stack:true,title:"",width:300,zIndex:1E3},_create:function(){this.originalTitle=this.element.attr("title");if(typeof this.originalTitle!=="string")this.originalTitle="";this.options.title=this.options.title||this.originalTitle;var a=this,b=a.options,d=b.title||" ",e=c.ui.dialog.getTitleId(a.element),g=(a.uiDialog=c("
    ")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b.dialogClass).css({zIndex:b.zIndex}).attr("tabIndex", +-1).css("outline",0).keydown(function(i){if(b.closeOnEscape&&i.keyCode&&i.keyCode===c.ui.keyCode.ESCAPE){a.close(i);i.preventDefault()}}).attr({role:"dialog","aria-labelledby":e}).mousedown(function(i){a.moveToTop(false,i)});a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g);var f=(a.uiDialogTitlebar=c("
    ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),h=c('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", +"button").hover(function(){h.addClass("ui-state-hover")},function(){h.removeClass("ui-state-hover")}).focus(function(){h.addClass("ui-state-focus")}).blur(function(){h.removeClass("ui-state-focus")}).click(function(i){a.close(i);return false}).appendTo(f);(a.uiDialogTitlebarCloseText=c("")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h);c("").addClass("ui-dialog-title").attr("id",e).html(d).prependTo(f);if(c.isFunction(b.beforeclose)&&!c.isFunction(b.beforeClose))b.beforeClose= +b.beforeclose;f.find("*").add(f).disableSelection();b.draggable&&c.fn.draggable&&a._makeDraggable();b.resizable&&c.fn.resizable&&a._makeResizable();a._createButtons(b.buttons);a._isOpen=false;c.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;a.overlay&&a.overlay.destroy();a.uiDialog.hide();a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body");a.uiDialog.remove();a.originalTitle&& +a.element.attr("title",a.originalTitle);return a},widget:function(){return this.uiDialog},close:function(a){var b=this,d,e;if(false!==b._trigger("beforeClose",a)){b.overlay&&b.overlay.destroy();b.uiDialog.unbind("keypress.ui-dialog");b._isOpen=false;if(b.options.hide)b.uiDialog.hide(b.options.hide,function(){b._trigger("close",a)});else{b.uiDialog.hide();b._trigger("close",a)}c.ui.dialog.overlay.resize();if(b.options.modal){d=0;c(".ui-dialog").each(function(){if(this!==b.uiDialog[0]){e=c(this).css("z-index"); +isNaN(e)||(d=Math.max(d,e))}});c.ui.dialog.maxZ=d}return b}},isOpen:function(){return this._isOpen},moveToTop:function(a,b){var d=this,e=d.options;if(e.modal&&!a||!e.stack&&!e.modal)return d._trigger("focus",b);if(e.zIndex>c.ui.dialog.maxZ)c.ui.dialog.maxZ=e.zIndex;if(d.overlay){c.ui.dialog.maxZ+=1;d.overlay.$el.css("z-index",c.ui.dialog.overlay.maxZ=c.ui.dialog.maxZ)}a={scrollTop:d.element.attr("scrollTop"),scrollLeft:d.element.attr("scrollLeft")};c.ui.dialog.maxZ+=1;d.uiDialog.css("z-index",c.ui.dialog.maxZ); +d.element.attr(a);d._trigger("focus",b);return d},open:function(){if(!this._isOpen){var a=this,b=a.options,d=a.uiDialog;a.overlay=b.modal?new c.ui.dialog.overlay(a):null;a._size();a._position(b.position);d.show(b.show);a.moveToTop(true);b.modal&&d.bind("keypress.ui-dialog",function(e){if(e.keyCode===c.ui.keyCode.TAB){var g=c(":tabbable",this),f=g.filter(":first");g=g.filter(":last");if(e.target===g[0]&&!e.shiftKey){f.focus(1);return false}else if(e.target===f[0]&&e.shiftKey){g.focus(1);return false}}}); +c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus();a._isOpen=true;a._trigger("open");return a}},_createButtons:function(a){var b=this,d=false,e=c("
    ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=c("
    ").addClass("ui-dialog-buttonset").appendTo(e);b.uiDialog.find(".ui-dialog-buttonpane").remove();typeof a==="object"&&a!==null&&c.each(a,function(){return!(d=true)});if(d){c.each(a,function(f, +h){h=c.isFunction(h)?{click:h,text:f}:h;f=c('').attr(h,true).unbind("click").click(function(){h.click.apply(b.element[0],arguments)}).appendTo(g);c.fn.button&&f.button()});e.appendTo(b.uiDialog)}},_makeDraggable:function(){function a(f){return{position:f.position,offset:f.offset}}var b=this,d=b.options,e=c(document),g;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(f,h){g= +d.height==="auto"?"auto":c(this).height();c(this).height(c(this).height()).addClass("ui-dialog-dragging");b._trigger("dragStart",f,a(h))},drag:function(f,h){b._trigger("drag",f,a(h))},stop:function(f,h){d.position=[h.position.left-e.scrollLeft(),h.position.top-e.scrollTop()];c(this).removeClass("ui-dialog-dragging").height(g);b._trigger("dragStop",f,a(h));c.ui.dialog.overlay.resize()}})},_makeResizable:function(a){function b(f){return{originalPosition:f.originalPosition,originalSize:f.originalSize, +position:f.position,size:f.size}}a=a===j?this.options.resizable:a;var d=this,e=d.options,g=d.uiDialog.css("position");a=typeof a==="string"?a:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:a,start:function(f,h){c(this).addClass("ui-dialog-resizing");d._trigger("resizeStart",f,b(h))},resize:function(f,h){d._trigger("resize",f,b(h))},stop:function(f, +h){c(this).removeClass("ui-dialog-resizing");e.height=c(this).height();e.width=c(this).width();d._trigger("resizeStop",f,b(h));c.ui.dialog.overlay.resize()}}).css("position",g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(a){var b=[],d=[0,0],e;if(a){if(typeof a==="string"||typeof a==="object"&&"0"in a){b=a.split?a.split(" "):[a[0],a[1]];if(b.length=== +1)b[1]=b[0];c.each(["left","top"],function(g,f){if(+b[g]===b[g]){d[g]=b[g];b[g]=f}});a={my:b.join(" "),at:b.join(" "),offset:d.join(" ")}}a=c.extend({},c.ui.dialog.prototype.options.position,a)}else a=c.ui.dialog.prototype.options.position;(e=this.uiDialog.is(":visible"))||this.uiDialog.show();this.uiDialog.css({top:0,left:0}).position(c.extend({of:window},a));e||this.uiDialog.hide()},_setOptions:function(a){var b=this,d={},e=false;c.each(a,function(g,f){b._setOption(g,f);if(g in k)e=true;if(g in +l)d[g]=f});e&&this._size();this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",d)},_setOption:function(a,b){var d=this,e=d.uiDialog;switch(a){case "beforeclose":a="beforeClose";break;case "buttons":d._createButtons(b);break;case "closeText":d.uiDialogTitlebarCloseText.text(""+b);break;case "dialogClass":e.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all "+b);break;case "disabled":b?e.addClass("ui-dialog-disabled"):e.removeClass("ui-dialog-disabled"); +break;case "draggable":var g=e.is(":data(draggable)");g&&!b&&e.draggable("destroy");!g&&b&&d._makeDraggable();break;case "position":d._position(b);break;case "resizable":(g=e.is(":data(resizable)"))&&!b&&e.resizable("destroy");g&&typeof b==="string"&&e.resizable("option","handles",b);!g&&b!==false&&d._makeResizable(b);break;case "title":c(".ui-dialog-title",d.uiDialogTitlebar).html(""+(b||" "));break}c.Widget.prototype._setOption.apply(d,arguments)},_size:function(){var a=this.options,b,d,e= +this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0});if(a.minWidth>a.width)a.width=a.minWidth;b=this.uiDialog.css({height:"auto",width:a.width}).height();d=Math.max(0,a.minHeight-b);if(a.height==="auto")if(c.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();a=this.element.css("height","auto").height();e||this.uiDialog.hide();this.element.height(Math.max(a,d))}else this.element.height(Math.max(a.height-b,0));this.uiDialog.is(":data(resizable)")&& +this.uiDialog.resizable("option","minHeight",this._minHeight())}});c.extend(c.ui.dialog,{version:"1.8.10",uuid:0,maxZ:0,getTitleId:function(a){a=a.attr("id");if(!a){this.uuid+=1;a=this.uuid}return"ui-dialog-title-"+a},overlay:function(a){this.$el=c.ui.dialog.overlay.create(a)}});c.extend(c.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(a){if(this.instances.length=== +0){setTimeout(function(){c.ui.dialog.overlay.instances.length&&c(document).bind(c.ui.dialog.overlay.events,function(d){if(c(d.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(), +height:this.height()});c.fn.bgiframe&&b.bgiframe();this.instances.push(b);return b},destroy:function(a){var b=c.inArray(a,this.instances);b!=-1&&this.oldInstances.push(this.instances.splice(b,1)[0]);this.instances.length===0&&c([document,window]).unbind(".dialog-overlay");a.remove();var d=0;c.each(this.instances,function(){d=Math.max(d,this.css("z-index"))});this.maxZ=d},height:function(){var a,b;if(c.browser.msie&&c.browser.version<7){a=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight); +b=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight);return a");if(!a.values)a.values=[this._valueMin(),this._valueMin()];if(a.values.length&&a.values.length!==2)a.values=[a.values[0],a.values[0]]}else this.range=d("
    ");this.range.appendTo(this.element).addClass("ui-slider-range");if(a.range==="min"||a.range==="max")this.range.addClass("ui-slider-range-"+a.range);this.range.addClass("ui-widget-header")}d(".ui-slider-handle",this.element).length===0&&d("").appendTo(this.element).addClass("ui-slider-handle"); +if(a.values&&a.values.length)for(;d(".ui-slider-handle",this.element).length").appendTo(this.element).addClass("ui-slider-handle");this.handles=d(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(c){c.preventDefault()}).hover(function(){a.disabled||d(this).addClass("ui-state-hover")},function(){d(this).removeClass("ui-state-hover")}).focus(function(){if(a.disabled)d(this).blur(); +else{d(".ui-slider .ui-state-focus").removeClass("ui-state-focus");d(this).addClass("ui-state-focus")}}).blur(function(){d(this).removeClass("ui-state-focus")});this.handles.each(function(c){d(this).data("index.ui-slider-handle",c)});this.handles.keydown(function(c){var e=true,f=d(this).data("index.ui-slider-handle"),h,g,i;if(!b.options.disabled){switch(c.keyCode){case d.ui.keyCode.HOME:case d.ui.keyCode.END:case d.ui.keyCode.PAGE_UP:case d.ui.keyCode.PAGE_DOWN:case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:e= +false;if(!b._keySliding){b._keySliding=true;d(this).addClass("ui-state-active");h=b._start(c,f);if(h===false)return}break}i=b.options.step;h=b.options.values&&b.options.values.length?(g=b.values(f)):(g=b.value());switch(c.keyCode){case d.ui.keyCode.HOME:g=b._valueMin();break;case d.ui.keyCode.END:g=b._valueMax();break;case d.ui.keyCode.PAGE_UP:g=b._trimAlignValue(h+(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.PAGE_DOWN:g=b._trimAlignValue(h-(b._valueMax()-b._valueMin())/5);break;case d.ui.keyCode.UP:case d.ui.keyCode.RIGHT:if(h=== +b._valueMax())return;g=b._trimAlignValue(h+i);break;case d.ui.keyCode.DOWN:case d.ui.keyCode.LEFT:if(h===b._valueMin())return;g=b._trimAlignValue(h-i);break}b._slide(c,f,g);return e}}).keyup(function(c){var e=d(this).data("index.ui-slider-handle");if(b._keySliding){b._keySliding=false;b._stop(c,e);b._change(c,e);d(this).removeClass("ui-state-active")}});this._refreshValue();this._animateOff=false},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"); +this._mouseDestroy();return this},_mouseCapture:function(b){var a=this.options,c,e,f,h,g;if(a.disabled)return false;this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();c=this._normValueFromMouse({x:b.pageX,y:b.pageY});e=this._valueMax()-this._valueMin()+1;h=this;this.handles.each(function(i){var j=Math.abs(c-h.values(i));if(e>j){e=j;f=d(this);g=i}});if(a.range===true&&this.values(1)===a.min){g+=1;f=d(this.handles[g])}if(this._start(b, +g)===false)return false;this._mouseSliding=true;h._handleIndex=g;f.addClass("ui-state-active").focus();a=f.offset();this._clickOffset=!d(b.target).parents().andSelf().is(".ui-slider-handle")?{left:0,top:0}:{left:b.pageX-a.left-f.width()/2,top:b.pageY-a.top-f.height()/2-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};this.handles.hasClass("ui-state-hover")||this._slide(b,g,c);return this._animateOff=true},_mouseStart:function(){return true}, +_mouseDrag:function(b){var a=this._normValueFromMouse({x:b.pageX,y:b.pageY});this._slide(b,this._handleIndex,a);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._clickOffset=this._handleIndex=null;return this._animateOff=false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(b){var a; +if(this.orientation==="horizontal"){a=this.elementSize.width;b=b.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{a=this.elementSize.height;b=b.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}a=b/a;if(a>1)a=1;if(a<0)a=0;if(this.orientation==="vertical")a=1-a;b=this._valueMax()-this._valueMin();return this._trimAlignValue(this._valueMin()+a*b)},_start:function(b,a){var c={handle:this.handles[a],value:this.value()};if(this.options.values&&this.options.values.length){c.value= +this.values(a);c.values=this.values()}return this._trigger("start",b,c)},_slide:function(b,a,c){var e;if(this.options.values&&this.options.values.length){e=this.values(a?0:1);if(this.options.values.length===2&&this.options.range===true&&(a===0&&c>e||a===1&&c1){this.options.values[b]=this._trimAlignValue(a);this._refreshValue();this._change(null,b)}if(arguments.length)if(d.isArray(arguments[0])){c=this.options.values;e=arguments[0];for(f=0;f=this._valueMax())return this._valueMax();var a=this.options.step>0?this.options.step:1,c=(b-this._valueMin())%a;alignValue=b-c;if(Math.abs(c)*2>=a)alignValue+=c>0?a:-a;return parseFloat(alignValue.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max}, +_refreshValue:function(){var b=this.options.range,a=this.options,c=this,e=!this._animateOff?a.animate:false,f,h={},g,i,j,l;if(this.options.values&&this.options.values.length)this.handles.each(function(k){f=(c.values(k)-c._valueMin())/(c._valueMax()-c._valueMin())*100;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";d(this).stop(1,1)[e?"animate":"css"](h,a.animate);if(c.options.range===true)if(c.orientation==="horizontal"){if(k===0)c.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},a.animate); +if(k===1)c.range[e?"animate":"css"]({width:f-g+"%"},{queue:false,duration:a.animate})}else{if(k===0)c.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},a.animate);if(k===1)c.range[e?"animate":"css"]({height:f-g+"%"},{queue:false,duration:a.animate})}g=f});else{i=this.value();j=this._valueMin();l=this._valueMax();f=l!==j?(i-j)/(l-j)*100:0;h[c.orientation==="horizontal"?"left":"bottom"]=f+"%";this.handle.stop(1,1)[e?"animate":"css"](h,a.animate);if(b==="min"&&this.orientation==="horizontal")this.range.stop(1, +1)[e?"animate":"css"]({width:f+"%"},a.animate);if(b==="max"&&this.orientation==="horizontal")this.range[e?"animate":"css"]({width:100-f+"%"},{queue:false,duration:a.animate});if(b==="min"&&this.orientation==="vertical")this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},a.animate);if(b==="max"&&this.orientation==="vertical")this.range[e?"animate":"css"]({height:100-f+"%"},{queue:false,duration:a.animate})}}});d.extend(d.ui.slider,{version:"1.8.10"})})(jQuery); +;/* + * jQuery UI Tabs 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(d,p){function u(){return++v}function w(){return++x}var v=0,x=0;d.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:false,cookie:null,collapsible:false,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
    ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
  • #{label}
  • "},_create:function(){this._tabify(true)},_setOption:function(b,e){if(b=="selected")this.options.collapsible&& +e==this.options.selected||this.select(e);else{this.options[b]=e;this._tabify()}},_tabId:function(b){return b.title&&b.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+u()},_sanitizeSelector:function(b){return b.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+w());return d.cookie.apply(null,[b].concat(d.makeArray(arguments)))},_ui:function(b,e){return{tab:b,panel:e,index:this.anchors.index(b)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b= +d(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(b){function e(g,f){g.css("display","");!d.support.opacity&&f.opacity&&g[0].style.removeAttribute("filter")}var a=this,c=this.options,h=/^#.+/;this.list=this.element.find("ol,ul").eq(0);this.lis=d(" > li:has(a[href])",this.list);this.anchors=this.lis.map(function(){return d("a",this)[0]});this.panels=d([]);this.anchors.each(function(g,f){var i=d(f).attr("href"),l=i.split("#")[0],q;if(l&&(l===location.toString().split("#")[0]|| +(q=d("base")[0])&&l===q.href)){i=f.hash;f.href=i}if(h.test(i))a.panels=a.panels.add(a.element.find(a._sanitizeSelector(i)));else if(i&&i!=="#"){d.data(f,"href.tabs",i);d.data(f,"load.tabs",i.replace(/#.*$/,""));i=a._tabId(f);f.href="#"+i;f=a.element.find("#"+i);if(!f.length){f=d(c.panelTemplate).attr("id",i).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(a.panels[g-1]||a.list);f.data("destroy.tabs",true)}a.panels=a.panels.add(f)}else c.disabled.push(g)});if(b){this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"); +this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.lis.addClass("ui-state-default ui-corner-top");this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom");if(c.selected===p){location.hash&&this.anchors.each(function(g,f){if(f.hash==location.hash){c.selected=g;return false}});if(typeof c.selected!=="number"&&c.cookie)c.selected=parseInt(a._cookie(),10);if(typeof c.selected!=="number"&&this.lis.filter(".ui-tabs-selected").length)c.selected= +this.lis.index(this.lis.filter(".ui-tabs-selected"));c.selected=c.selected||(this.lis.length?0:-1)}else if(c.selected===null)c.selected=-1;c.selected=c.selected>=0&&this.anchors[c.selected]||c.selected<0?c.selected:0;c.disabled=d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"),function(g){return a.lis.index(g)}))).sort();d.inArray(c.selected,c.disabled)!=-1&&c.disabled.splice(d.inArray(c.selected,c.disabled),1);this.panels.addClass("ui-tabs-hide");this.lis.removeClass("ui-tabs-selected ui-state-active"); +if(c.selected>=0&&this.anchors.length){a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash)).removeClass("ui-tabs-hide");this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active");a.element.queue("tabs",function(){a._trigger("show",null,a._ui(a.anchors[c.selected],a.element.find(a._sanitizeSelector(a.anchors[c.selected].hash))[0]))});this.load(c.selected)}d(window).bind("unload",function(){a.lis.add(a.anchors).unbind(".tabs");a.lis=a.anchors=a.panels=null})}else c.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")); +this.element[c.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible");c.cookie&&this._cookie(c.selected,c.cookie);b=0;for(var j;j=this.lis[b];b++)d(j)[d.inArray(b,c.disabled)!=-1&&!d(j).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");c.cache===false&&this.anchors.removeData("cache.tabs");this.lis.add(this.anchors).unbind(".tabs");if(c.event!=="mouseover"){var k=function(g,f){f.is(":not(.ui-state-disabled)")&&f.addClass("ui-state-"+g)},n=function(g,f){f.removeClass("ui-state-"+ +g)};this.lis.bind("mouseover.tabs",function(){k("hover",d(this))});this.lis.bind("mouseout.tabs",function(){n("hover",d(this))});this.anchors.bind("focus.tabs",function(){k("focus",d(this).closest("li"))});this.anchors.bind("blur.tabs",function(){n("focus",d(this).closest("li"))})}var m,o;if(c.fx)if(d.isArray(c.fx)){m=c.fx[0];o=c.fx[1]}else m=o=c.fx;var r=o?function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.hide().removeClass("ui-tabs-hide").animate(o,o.duration||"normal", +function(){e(f,o);a._trigger("show",null,a._ui(g,f[0]))})}:function(g,f){d(g).closest("li").addClass("ui-tabs-selected ui-state-active");f.removeClass("ui-tabs-hide");a._trigger("show",null,a._ui(g,f[0]))},s=m?function(g,f){f.animate(m,m.duration||"normal",function(){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");e(f,m);a.element.dequeue("tabs")})}:function(g,f){a.lis.removeClass("ui-tabs-selected ui-state-active");f.addClass("ui-tabs-hide");a.element.dequeue("tabs")}; +this.anchors.bind(c.event+".tabs",function(){var g=this,f=d(g).closest("li"),i=a.panels.filter(":not(.ui-tabs-hide)"),l=a.element.find(a._sanitizeSelector(g.hash));if(f.hasClass("ui-tabs-selected")&&!c.collapsible||f.hasClass("ui-state-disabled")||f.hasClass("ui-state-processing")||a.panels.filter(":animated").length||a._trigger("select",null,a._ui(this,l[0]))===false){this.blur();return false}c.selected=a.anchors.index(this);a.abort();if(c.collapsible)if(f.hasClass("ui-tabs-selected")){c.selected= +-1;c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){s(g,i)}).dequeue("tabs");this.blur();return false}else if(!i.length){c.cookie&&a._cookie(c.selected,c.cookie);a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this));this.blur();return false}c.cookie&&a._cookie(c.selected,c.cookie);if(l.length){i.length&&a.element.queue("tabs",function(){s(g,i)});a.element.queue("tabs",function(){r(g,l)});a.load(a.anchors.index(this))}else throw"jQuery UI Tabs: Mismatching fragment identifier."; +d.browser.msie&&this.blur()});this.anchors.bind("click.tabs",function(){return false})},_getIndex:function(b){if(typeof b=="string")b=this.anchors.index(this.anchors.filter("[href$="+b+"]"));return b},destroy:function(){var b=this.options;this.abort();this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs");this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all");this.anchors.each(function(){var e= +d.data(this,"href.tabs");if(e)this.href=e;var a=d(this).unbind(".tabs");d.each(["href","load","cache"],function(c,h){a.removeData(h+".tabs")})});this.lis.unbind(".tabs").add(this.panels).each(function(){d.data(this,"destroy.tabs")?d(this).remove():d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide")});b.cookie&&this._cookie(null,b.cookie);return this},add:function(b, +e,a){if(a===p)a=this.anchors.length;var c=this,h=this.options;e=d(h.tabTemplate.replace(/#\{href\}/g,b).replace(/#\{label\}/g,e));b=!b.indexOf("#")?b.replace("#",""):this._tabId(d("a",e)[0]);e.addClass("ui-state-default ui-corner-top").data("destroy.tabs",true);var j=c.element.find("#"+b);j.length||(j=d(h.panelTemplate).attr("id",b).data("destroy.tabs",true));j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide");if(a>=this.lis.length){e.appendTo(this.list);j.appendTo(this.list[0].parentNode)}else{e.insertBefore(this.lis[a]); +j.insertBefore(this.panels[a])}h.disabled=d.map(h.disabled,function(k){return k>=a?++k:k});this._tabify();if(this.anchors.length==1){h.selected=0;e.addClass("ui-tabs-selected ui-state-active");j.removeClass("ui-tabs-hide");this.element.queue("tabs",function(){c._trigger("show",null,c._ui(c.anchors[0],c.panels[0]))});this.load(0)}this._trigger("add",null,this._ui(this.anchors[a],this.panels[a]));return this},remove:function(b){b=this._getIndex(b);var e=this.options,a=this.lis.eq(b).remove(),c=this.panels.eq(b).remove(); +if(a.hasClass("ui-tabs-selected")&&this.anchors.length>1)this.select(b+(b+1=b?--h:h});this._tabify();this._trigger("remove",null,this._ui(a.find("a")[0],c[0]));return this},enable:function(b){b=this._getIndex(b);var e=this.options;if(d.inArray(b,e.disabled)!=-1){this.lis.eq(b).removeClass("ui-state-disabled");e.disabled=d.grep(e.disabled,function(a){return a!=b});this._trigger("enable",null, +this._ui(this.anchors[b],this.panels[b]));return this}},disable:function(b){b=this._getIndex(b);var e=this.options;if(b!=e.selected){this.lis.eq(b).addClass("ui-state-disabled");e.disabled.push(b);e.disabled.sort();this._trigger("disable",null,this._ui(this.anchors[b],this.panels[b]))}return this},select:function(b){b=this._getIndex(b);if(b==-1)if(this.options.collapsible&&this.options.selected!=-1)b=this.options.selected;else return this;this.anchors.eq(b).trigger(this.options.event+".tabs");return this}, +load:function(b){b=this._getIndex(b);var e=this,a=this.options,c=this.anchors.eq(b)[0],h=d.data(c,"load.tabs");this.abort();if(!h||this.element.queue("tabs").length!==0&&d.data(c,"cache.tabs"))this.element.dequeue("tabs");else{this.lis.eq(b).addClass("ui-state-processing");if(a.spinner){var j=d("span",c);j.data("label.tabs",j.html()).html(a.spinner)}this.xhr=d.ajax(d.extend({},a.ajaxOptions,{url:h,success:function(k,n){e.element.find(e._sanitizeSelector(c.hash)).html(k);e._cleanup();a.cache&&d.data(c, +"cache.tabs",true);e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.success(k,n)}catch(m){}},error:function(k,n){e._cleanup();e._trigger("load",null,e._ui(e.anchors[b],e.panels[b]));try{a.ajaxOptions.error(k,n,b,c)}catch(m){}}}));e.element.dequeue("tabs");return this}},abort:function(){this.element.queue([]);this.panels.stop(false,true);this.element.queue("tabs",this.element.queue("tabs").splice(-2,2));if(this.xhr){this.xhr.abort();delete this.xhr}this._cleanup();return this}, +url:function(b,e){this.anchors.eq(b).removeData("cache.tabs").data("load.tabs",e);return this},length:function(){return this.anchors.length}});d.extend(d.ui.tabs,{version:"1.8.10"});d.extend(d.ui.tabs.prototype,{rotation:null,rotate:function(b,e){var a=this,c=this.options,h=a._rotate||(a._rotate=function(j){clearTimeout(a.rotation);a.rotation=setTimeout(function(){var k=c.selected;a.select(++k')}function E(a,b){d.extend(a,b);for(var c in b)if(b[c]== +null||b[c]==G)a[c]=b[c];return a}d.extend(d.ui,{datepicker:{version:"1.8.10"}});var y=(new Date).getTime();d.extend(K.prototype,{markerClassName:"hasDatepicker",log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){E(this._defaults,a||{});return this},_attachDatepicker:function(a,b){var c=null;for(var e in this._defaults){var f=a.getAttribute("date:"+e);if(f){c=c||{};try{c[e]=eval(f)}catch(h){c[e]=f}}}e=a.nodeName.toLowerCase(); +f=e=="div"||e=="span";if(!a.id){this.uuid+=1;a.id="dp"+this.uuid}var i=this._newInst(d(a),f);i.settings=d.extend({},b||{},c||{});if(e=="input")this._connectDatepicker(a,i);else f&&this._inlineDatepicker(a,i)},_newInst:function(a,b){return{id:a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1"),input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:!b?this.dpDiv:d('
    ')}}, +_connectDatepicker:function(a,b){var c=d(a);b.append=d([]);b.trigger=d([]);if(!c.hasClass(this.markerClassName)){this._attachments(c,b);c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});this._autoSize(b);d.data(a,"datepicker",b)}},_attachments:function(a,b){var c=this._get(b,"appendText"),e=this._get(b,"isRTL");b.append&& +b.append.remove();if(c){b.append=d(''+c+"");a[e?"before":"after"](b.append)}a.unbind("focus",this._showDatepicker);b.trigger&&b.trigger.remove();c=this._get(b,"showOn");if(c=="focus"||c=="both")a.focus(this._showDatepicker);if(c=="button"||c=="both"){c=this._get(b,"buttonText");var f=this._get(b,"buttonImage");b.trigger=d(this._get(b,"buttonImageOnly")?d("").addClass(this._triggerClass).attr({src:f,alt:c,title:c}):d('').addClass(this._triggerClass).html(f== +""?c:d("").attr({src:f,alt:c,title:c})));a[e?"before":"after"](b.trigger);b.trigger.click(function(){d.datepicker._datepickerShowing&&d.datepicker._lastInput==a[0]?d.datepicker._hideDatepicker():d.datepicker._showDatepicker(a[0]);return false})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var e=function(f){for(var h=0,i=0,g=0;gh){h=f[g].length;i=g}return i};b.setMonth(e(this._get(a, +c.match(/MM/)?"monthNames":"monthNamesShort")));b.setDate(e(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=d(a);if(!c.hasClass(this.markerClassName)){c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(e,f,h){b.settings[f]=h}).bind("getData.datepicker",function(e,f){return this._get(b,f)});d.data(a,"datepicker",b);this._setDate(b,this._getDefaultDate(b), +true);this._updateDatepicker(b);this._updateAlternate(b);b.dpDiv.show()}},_dialogDatepicker:function(a,b,c,e,f){a=this._dialogInst;if(!a){this.uuid+=1;this._dialogInput=d('');this._dialogInput.keydown(this._doKeyDown);d("body").append(this._dialogInput);a=this._dialogInst=this._newInst(this._dialogInput,false);a.settings={};d.data(this._dialogInput[0],"datepicker",a)}E(a.settings,e||{}); +b=b&&b.constructor==Date?this._formatDate(a,b):b;this._dialogInput.val(b);this._pos=f?f.length?f:[f.pageX,f.pageY]:null;if(!this._pos)this._pos=[document.documentElement.clientWidth/2-100+(document.documentElement.scrollLeft||document.body.scrollLeft),document.documentElement.clientHeight/2-150+(document.documentElement.scrollTop||document.body.scrollTop)];this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");a.settings.onSelect=c;this._inDialog=true;this.dpDiv.addClass(this._dialogClass); +this._showDatepicker(this._dialogInput[0]);d.blockUI&&d.blockUI(this.dpDiv);d.data(this._dialogInput[0],"datepicker",a);return this},_destroyDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();d.removeData(a,"datepicker");if(e=="input"){c.append.remove();c.trigger.remove();b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup", +this._doKeyUp)}else if(e=="div"||e=="span")b.removeClass(this.markerClassName).empty()}},_enableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=false;c.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().removeClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs, +function(f){return f==a?null:f})}},_disableDatepicker:function(a){var b=d(a),c=d.data(a,"datepicker");if(b.hasClass(this.markerClassName)){var e=a.nodeName.toLowerCase();if(e=="input"){a.disabled=true;c.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(e=="div"||e=="span")b.children("."+this._inlineClass).children().addClass("ui-state-disabled");this._disabledInputs=d.map(this._disabledInputs,function(f){return f==a?null: +f});this._disabledInputs[this._disabledInputs.length]=a}},_isDisabledDatepicker:function(a){if(!a)return false;for(var b=0;b-1}},_doKeyUp:function(a){a=d.datepicker._getInst(a.target);if(a.input.val()!=a.lastVal)try{if(d.datepicker.parseDate(d.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,d.datepicker._getFormatConfig(a))){d.datepicker._setDateFromField(a);d.datepicker._updateAlternate(a);d.datepicker._updateDatepicker(a)}}catch(b){d.datepicker.log(b)}return true}, +_showDatepicker:function(a){a=a.target||a;if(a.nodeName.toLowerCase()!="input")a=d("input",a.parentNode)[0];if(!(d.datepicker._isDisabledDatepicker(a)||d.datepicker._lastInput==a)){var b=d.datepicker._getInst(a);d.datepicker._curInst&&d.datepicker._curInst!=b&&d.datepicker._curInst.dpDiv.stop(true,true);var c=d.datepicker._get(b,"beforeShow");E(b.settings,c?c.apply(a,[a,b]):{});b.lastVal=null;d.datepicker._lastInput=a;d.datepicker._setDateFromField(b);if(d.datepicker._inDialog)a.value="";if(!d.datepicker._pos){d.datepicker._pos= +d.datepicker._findPos(a);d.datepicker._pos[1]+=a.offsetHeight}var e=false;d(a).parents().each(function(){e|=d(this).css("position")=="fixed";return!e});if(e&&d.browser.opera){d.datepicker._pos[0]-=document.documentElement.scrollLeft;d.datepicker._pos[1]-=document.documentElement.scrollTop}c={left:d.datepicker._pos[0],top:d.datepicker._pos[1]};d.datepicker._pos=null;b.dpDiv.empty();b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});d.datepicker._updateDatepicker(b);c=d.datepicker._checkOffset(b, +c,e);b.dpDiv.css({position:d.datepicker._inDialog&&d.blockUI?"static":e?"fixed":"absolute",display:"none",left:c.left+"px",top:c.top+"px"});if(!b.inline){c=d.datepicker._get(b,"showAnim");var f=d.datepicker._get(b,"duration"),h=function(){d.datepicker._datepickerShowing=true;var i=b.dpDiv.find("iframe.ui-datepicker-cover");if(i.length){var g=d.datepicker._getBorders(b.dpDiv);i.css({left:-g[0],top:-g[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex(d(a).zIndex()+1);d.effects&& +d.effects[c]?b.dpDiv.show(c,d.datepicker._get(b,"showOptions"),f,h):b.dpDiv[c||"show"](c?f:null,h);if(!c||!f)h();b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus();d.datepicker._curInst=b}}},_updateDatepicker:function(a){var b=this,c=d.datepicker._getBorders(a.dpDiv);a.dpDiv.empty().append(this._generateHTML(a));var e=a.dpDiv.find("iframe.ui-datepicker-cover");e.length&&e.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()});a.dpDiv.find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout", +function(){d(this).removeClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!=-1&&d(this).removeClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).removeClass("ui-datepicker-next-hover")}).bind("mouseover",function(){if(!b._isDisabledDatepicker(a.inline?a.dpDiv.parent()[0]:a.input[0])){d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");d(this).addClass("ui-state-hover");this.className.indexOf("ui-datepicker-prev")!= +-1&&d(this).addClass("ui-datepicker-prev-hover");this.className.indexOf("ui-datepicker-next")!=-1&&d(this).addClass("ui-datepicker-next-hover")}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();c=this._getNumberOfMonths(a);e=c[1];e>1?a.dpDiv.addClass("ui-datepicker-multi-"+e).css("width",17*e+"em"):a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");a.dpDiv[(c[0]!=1||c[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");a.dpDiv[(this._get(a, +"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");a==d.datepicker._curInst&&d.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var f=a.yearshtml;setTimeout(function(){f===a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml);f=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(c){return{thin:1,medium:2,thick:3}[c]||c};return[parseFloat(b(a.css("border-left-width"))), +parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var e=a.dpDiv.outerWidth(),f=a.dpDiv.outerHeight(),h=a.input?a.input.outerWidth():0,i=a.input?a.input.outerHeight():0,g=document.documentElement.clientWidth+d(document).scrollLeft(),j=document.documentElement.clientHeight+d(document).scrollTop();b.left-=this._get(a,"isRTL")?e-h:0;b.left-=c&&b.left==a.input.offset().left?d(document).scrollLeft():0;b.top-=c&&b.top==a.input.offset().top+i?d(document).scrollTop():0;b.left-=Math.min(b.left, +b.left+e>g&&g>e?Math.abs(b.left+e-g):0);b.top-=Math.min(b.top,b.top+f>j&&j>f?Math.abs(f+i):0);return b},_findPos:function(a){for(var b=this._get(this._getInst(a),"isRTL");a&&(a.type=="hidden"||a.nodeType!=1||d.expr.filters.hidden(a));)a=a[b?"previousSibling":"nextSibling"];a=d(a).offset();return[a.left,a.top]},_hideDatepicker:function(a){var b=this._curInst;if(!(!b||a&&b!=d.data(a,"datepicker")))if(this._datepickerShowing){a=this._get(b,"showAnim");var c=this._get(b,"duration"),e=function(){d.datepicker._tidyDialog(b); +this._curInst=null};d.effects&&d.effects[a]?b.dpDiv.hide(a,d.datepicker._get(b,"showOptions"),c,e):b.dpDiv[a=="slideDown"?"slideUp":a=="fadeIn"?"fadeOut":"hide"](a?c:null,e);a||e();if(a=this._get(b,"onClose"))a.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]);this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if(d.blockUI){d.unblockUI();d("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")}, +_checkExternalClick:function(a){if(d.datepicker._curInst){a=d(a.target);a[0].id!=d.datepicker._mainDivId&&a.parents("#"+d.datepicker._mainDivId).length==0&&!a.hasClass(d.datepicker.markerClassName)&&!a.hasClass(d.datepicker._triggerClass)&&d.datepicker._datepickerShowing&&!(d.datepicker._inDialog&&d.blockUI)&&d.datepicker._hideDatepicker()}},_adjustDate:function(a,b,c){a=d(a);var e=this._getInst(a[0]);if(!this._isDisabledDatepicker(a[0])){this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"): +0),c);this._updateDatepicker(e)}},_gotoToday:function(a){a=d(a);var b=this._getInst(a[0]);if(this._get(b,"gotoCurrent")&&b.currentDay){b.selectedDay=b.currentDay;b.drawMonth=b.selectedMonth=b.currentMonth;b.drawYear=b.selectedYear=b.currentYear}else{var c=new Date;b.selectedDay=c.getDate();b.drawMonth=b.selectedMonth=c.getMonth();b.drawYear=b.selectedYear=c.getFullYear()}this._notifyChange(b);this._adjustDate(a)},_selectMonthYear:function(a,b,c){a=d(a);var e=this._getInst(a[0]);e._selectingMonthYear= +false;e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10);this._notifyChange(e);this._adjustDate(a)},_clickMonthYear:function(a){var b=this._getInst(d(a)[0]);b.input&&b._selectingMonthYear&&setTimeout(function(){b.input.focus()},0);b._selectingMonthYear=!b._selectingMonthYear},_selectDay:function(a,b,c,e){var f=d(a);if(!(d(e).hasClass(this._unselectableClass)||this._isDisabledDatepicker(f[0]))){f=this._getInst(f[0]);f.selectedDay=f.currentDay= +d("a",e).html();f.selectedMonth=f.currentMonth=b;f.selectedYear=f.currentYear=c;this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))}},_clearDate:function(a){a=d(a);this._getInst(a[0]);this._selectDate(a,"")},_selectDate:function(a,b){a=this._getInst(d(a)[0]);b=b!=null?b:this._formatDate(a);a.input&&a.input.val(b);this._updateAlternate(a);var c=this._get(a,"onSelect");if(c)c.apply(a.input?a.input[0]:null,[b,a]);else a.input&&a.input.trigger("change");if(a.inline)this._updateDatepicker(a); +else{this._hideDatepicker();this._lastInput=a.input[0];typeof a.input[0]!="object"&&a.input.focus();this._lastInput=null}},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),e=this._getDate(a),f=this.formatDate(c,e,this._getFormatConfig(a));d(b).each(function(){d(this).val(f)})}},noWeekends:function(a){a=a.getDay();return[a>0&&a<6,""]},iso8601Week:function(a){a=new Date(a.getTime());a.setDate(a.getDate()+4-(a.getDay()||7));var b= +a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var e=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;e=typeof e!="string"?e:(new Date).getFullYear()%100+parseInt(e,10);for(var f=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,h=(c?c.dayNames:null)||this._defaults.dayNames,i=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort, +g=(c?c.monthNames:null)||this._defaults.monthNames,j=c=-1,l=-1,u=-1,k=false,o=function(p){(p=z+1-1){j=1;l=u;do{e=this._getDaysInMonth(c,j-1);if(l<=e)break;j++;l-=e}while(1)}w=this._daylightSavingAdjust(new Date(c,j-1,l));if(w.getFullYear()!=c||w.getMonth()+1!=j||w.getDate()!=l)throw"Invalid date";return w},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y", +RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1E7,formatDate:function(a,b,c){if(!b)return"";var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,h=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort;c=(c?c.monthNames:null)||this._defaults.monthNames;var i=function(o){(o=k+112?a.getHours()+2:0);return a},_setDate:function(a,b,c){var e=!b,f=a.selectedMonth,h=a.selectedYear;b=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay= +a.currentDay=b.getDate();a.drawMonth=a.selectedMonth=a.currentMonth=b.getMonth();a.drawYear=a.selectedYear=a.currentYear=b.getFullYear();if((f!=a.selectedMonth||h!=a.selectedYear)&&!c)this._notifyChange(a);this._adjustInstDate(a);if(a.input)a.input.val(e?"":this._formatDate(a))},_getDate:function(a){return!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay))},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(), +b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),e=this._get(a,"showButtonPanel"),f=this._get(a,"hideIfNoPrevNext"),h=this._get(a,"navigationAsDateFormat"),i=this._getNumberOfMonths(a),g=this._get(a,"showCurrentAtPos"),j=this._get(a,"stepMonths"),l=i[0]!=1||i[1]!=1,u=this._daylightSavingAdjust(!a.currentDay?new Date(9999,9,9):new Date(a.currentYear,a.currentMonth,a.currentDay)),k=this._getMinMaxDate(a,"min"),o=this._getMinMaxDate(a,"max");g=a.drawMonth-g;var m=a.drawYear;if(g<0){g+=12;m--}if(o){var n= +this._daylightSavingAdjust(new Date(o.getFullYear(),o.getMonth()-i[0]*i[1]+1,o.getDate()));for(n=k&&nn;){g--;if(g<0){g=11;m--}}}a.drawMonth=g;a.drawYear=m;n=this._get(a,"prevText");n=!h?n:this.formatDate(n,this._daylightSavingAdjust(new Date(m,g-j,1)),this._getFormatConfig(a));n=this._canAdjustMonth(a,-1,m,g)?''+n+"":f?"":''+n+"";var r=this._get(a,"nextText");r=!h?r:this.formatDate(r,this._daylightSavingAdjust(new Date(m,g+j,1)),this._getFormatConfig(a));f=this._canAdjustMonth(a,+1,m,g)?''+r+"":f?"":''+r+"";j=this._get(a,"currentText");r=this._get(a,"gotoCurrent")&&a.currentDay?u:b;j=!h?j:this.formatDate(j,r,this._getFormatConfig(a));h=!a.inline?'":"";e=e?'
    '+(c?h:"")+(this._isInRange(a,r)?'":"")+(c?"":h)+"
    ":"";h=parseInt(this._get(a,"firstDay"),10);h=isNaN(h)?0:h;j=this._get(a,"showWeek");r=this._get(a,"dayNames");this._get(a,"dayNamesShort");var s=this._get(a,"dayNamesMin"),z= +this._get(a,"monthNames"),w=this._get(a,"monthNamesShort"),p=this._get(a,"beforeShowDay"),v=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths");this._get(a,"calculateWeek");for(var L=this._getDefaultDate(a),I="",C=0;C1)switch(D){case 0:x+=" ui-datepicker-group-first";t=" ui-corner-"+(c?"right":"left");break;case i[1]- +1:x+=" ui-datepicker-group-last";t=" ui-corner-"+(c?"left":"right");break;default:x+=" ui-datepicker-group-middle";t="";break}x+='">'}x+='
    '+(/all|left/.test(t)&&C==0?c?f:n:"")+(/all|right/.test(t)&&C==0?c?n:f:"")+this._generateMonthYearHeader(a,g,m,k,o,C>0||D>0,z,w)+'
    ';var A=j?'":"";for(t=0;t<7;t++){var q= +(t+h)%7;A+="=5?' class="ui-datepicker-week-end"':"")+'>'+s[q]+""}x+=A+"";A=this._getDaysInMonth(m,g);if(m==a.selectedYear&&g==a.selectedMonth)a.selectedDay=Math.min(a.selectedDay,A);t=(this._getFirstDayOfMonth(m,g)-h+7)%7;A=l?6:Math.ceil((t+A)/7);q=this._daylightSavingAdjust(new Date(m,g,1-t));for(var O=0;O";var P=!j?"":'";for(t=0;t<7;t++){var F= +p?p.apply(a.input?a.input[0]:null,[q]):[true,""],B=q.getMonth()!=g,J=B&&!H||!F[0]||k&&qo;P+='";q.setDate(q.getDate()+1);q=this._daylightSavingAdjust(q)}x+= +P+""}g++;if(g>11){g=0;m++}x+="
    '+this._get(a,"weekHeader")+"
    '+this._get(a,"calculateWeek")(q)+""+(B&&!v?" ":J?''+q.getDate()+"":''+q.getDate()+"")+"
    "+(l?""+(i[0]>0&&D==i[1]-1?'
    ':""):"");M+=x}I+=M}I+=e+(d.browser.msie&&parseInt(d.browser.version,10)<7&&!a.inline?'':"");a._keyEvent=false;return I},_generateMonthYearHeader:function(a,b,c,e,f,h,i,g){var j=this._get(a,"changeMonth"),l=this._get(a,"changeYear"),u=this._get(a,"showMonthAfterYear"),k='
    ', +o="";if(h||!j)o+=''+i[b]+"";else{i=e&&e.getFullYear()==c;var m=f&&f.getFullYear()==c;o+='"}u||(k+=o+(h||!(j&& +l)?" ":""));a.yearshtml="";if(h||!l)k+=''+c+"";else{g=this._get(a,"yearRange").split(":");var r=(new Date).getFullYear();i=function(s){s=s.match(/c[+-].*/)?c+parseInt(s.substring(1),10):s.match(/[+-].*/)?r+parseInt(s,10):parseInt(s,10);return isNaN(s)?r:s};b=i(g[0]);g=Math.max(b,i(g[1]||""));b=e?Math.max(b,e.getFullYear()):b;g=f?Math.min(g,f.getFullYear()):g;for(a.yearshtml+='";if(d.browser.mozilla)k+='";else{k+=a.yearshtml;a.yearshtml=null}}k+=this._get(a,"yearSuffix");if(u)k+=(h||!(j&&l)?" ":"")+o;k+="
    ";return k},_adjustInstDate:function(a,b,c){var e= +a.drawYear+(c=="Y"?b:0),f=a.drawMonth+(c=="M"?b:0);b=Math.min(a.selectedDay,this._getDaysInMonth(e,f))+(c=="D"?b:0);e=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(e,f,b)));a.selectedDay=e.getDate();a.drawMonth=a.selectedMonth=e.getMonth();a.drawYear=a.selectedYear=e.getFullYear();if(c=="M"||c=="Y")this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");b=c&&ba?a:b},_notifyChange:function(a){var b=this._get(a, +"onChangeMonthYear");if(b)b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){a=this._get(a,"numberOfMonths");return a==null?[1,1]:typeof a=="number"?[1,a]:a},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,e){var f=this._getNumberOfMonths(a); +c=this._daylightSavingAdjust(new Date(c,e+(b<0?b:f[0]*f[1]),1));b<0&&c.setDate(this._getDaysInMonth(c.getFullYear(),c.getMonth()));return this._isInRange(a,c)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min");a=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!a||b.getTime()<=a.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10);return{shortYearCutoff:b,dayNamesShort:this._get(a, +"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,e){if(!b){a.currentDay=a.selectedDay;a.currentMonth=a.selectedMonth;a.currentYear=a.selectedYear}b=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(e,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),b,this._getFormatConfig(a))}});d.fn.datepicker= +function(a){if(!this.length)return this;if(!d.datepicker.initialized){d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv);d.datepicker.initialized=true}var b=Array.prototype.slice.call(arguments,1);if(typeof a=="string"&&(a=="isDisabled"||a=="getDate"||a=="widget"))return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this[0]].concat(b));if(a=="option"&&arguments.length==2&&typeof arguments[1]=="string")return d.datepicker["_"+a+"Datepicker"].apply(d.datepicker, +[this[0]].concat(b));return this.each(function(){typeof a=="string"?d.datepicker["_"+a+"Datepicker"].apply(d.datepicker,[this].concat(b)):d.datepicker._attachDatepicker(this,a)})};d.datepicker=new K;d.datepicker.initialized=false;d.datepicker.uuid=(new Date).getTime();d.datepicker.version="1.8.10";window["DP_jQuery_"+y]=d})(jQuery); +;/* + * jQuery UI Progressbar 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function(b,d){b.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()});this.valueDiv=b("
    ").appendTo(this.element);this.oldValue=this._value();this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"); +this.valueDiv.remove();b.Widget.prototype.destroy.apply(this,arguments)},value:function(a){if(a===d)return this._value();this._setOption("value",a);return this},_setOption:function(a,c){if(a==="value"){this.options.value=c;this._refreshValue();this._value()===this.options.max&&this._trigger("complete")}b.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;if(typeof a!=="number")a=0;return Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100* +this._value()/this.options.max},_refreshValue:function(){var a=this.value(),c=this._percentage();if(this.oldValue!==a){this.oldValue=a;this._trigger("change")}this.valueDiv.toggleClass("ui-corner-right",a===this.options.max).width(c.toFixed(0)+"%");this.element.attr("aria-valuenow",a)}});b.extend(b.ui.progressbar,{version:"1.8.10"})})(jQuery); +;/* + * jQuery UI Effects 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/ + */ +jQuery.effects||function(f,j){function n(c){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10)];if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt(a[1], +16),parseInt(a[2],16),parseInt(a[3],16)];if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)];if(/rgba\(0, 0, 0, 0\)/.exec(c))return o.transparent;return o[f.trim(c).toLowerCase()]}function s(c,a){var b;do{b=f.curCSS(c,a);if(b!=""&&b!="transparent"||f.nodeName(c,"body"))break;a="backgroundColor"}while(c=c.parentNode);return n(b)}function p(){var c=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle, +a={},b,d;if(c&&c.length&&c[0]&&c[c[0]])for(var e=c.length;e--;){b=c[e];if(typeof c[b]=="string"){d=b.replace(/\-(\w)/g,function(g,h){return h.toUpperCase()});a[d]=c[b]}}else for(b in c)if(typeof c[b]==="string")a[b]=c[b];return a}function q(c){var a,b;for(a in c){b=c[a];if(b==null||f.isFunction(b)||a in t||/scrollbar/.test(a)||!/color/i.test(a)&&isNaN(parseFloat(b)))delete c[a]}return c}function u(c,a){var b={_:0},d;for(d in a)if(c[d]!=a[d])b[d]=a[d];return b}function k(c,a,b,d){if(typeof c=="object"){d= +a;b=null;a=c;c=a.effect}if(f.isFunction(a)){d=a;b=null;a={}}if(typeof a=="number"||f.fx.speeds[a]){d=b;b=a;a={}}if(f.isFunction(b)){d=b;b=null}a=a||{};b=b||a.duration;b=f.fx.off?0:typeof b=="number"?b:b in f.fx.speeds?f.fx.speeds[b]:f.fx.speeds._default;d=d||a.complete;return[c,a,b,d]}function m(c){if(!c||typeof c==="number"||f.fx.speeds[c])return true;if(typeof c==="string"&&!f.effects[c])return true;return false}f.effects={};f.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor", +"borderTopColor","borderColor","color","outlineColor"],function(c,a){f.fx.step[a]=function(b){if(!b.colorInit){b.start=s(b.elem,a);b.end=n(b.end);b.colorInit=true}b.elem.style[a]="rgb("+Math.max(Math.min(parseInt(b.pos*(b.end[0]-b.start[0])+b.start[0],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[1]-b.start[1])+b.start[1],10),255),0)+","+Math.max(Math.min(parseInt(b.pos*(b.end[2]-b.start[2])+b.start[2],10),255),0)+")"}});var o={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, +0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, +211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},r=["add","remove","toggle"],t={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};f.effects.animateClass=function(c,a,b, +d){if(f.isFunction(b)){d=b;b=null}return this.queue("fx",function(){var e=f(this),g=e.attr("style")||" ",h=q(p.call(this)),l,v=e.attr("className");f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});l=q(p.call(this));e.attr("className",v);e.animate(u(h,l),a,b,function(){f.each(r,function(w,i){c[i]&&e[i+"Class"](c[i])});if(typeof e.attr("style")=="object"){e.attr("style").cssText="";e.attr("style").cssText=g}else e.attr("style",g);d&&d.apply(this,arguments)});h=f.queue(this);l=h.splice(h.length-1,1)[0]; +h.splice(1,0,l);f.dequeue(this)})};f.fn.extend({_addClass:f.fn.addClass,addClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{add:c},a,b,d]):this._addClass(c)},_removeClass:f.fn.removeClass,removeClass:function(c,a,b,d){return a?f.effects.animateClass.apply(this,[{remove:c},a,b,d]):this._removeClass(c)},_toggleClass:f.fn.toggleClass,toggleClass:function(c,a,b,d,e){return typeof a=="boolean"||a===j?b?f.effects.animateClass.apply(this,[a?{add:c}:{remove:c},b,d,e]):this._toggleClass(c, +a):f.effects.animateClass.apply(this,[{toggle:c},a,b,d])},switchClass:function(c,a,b,d,e){return f.effects.animateClass.apply(this,[{add:a,remove:c},b,d,e])}});f.extend(f.effects,{version:"1.8.10",save:function(c,a){for(var b=0;b").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent", +border:"none",margin:0,padding:0});c.wrap(b);b=c.parent();if(c.css("position")=="static"){b.css({position:"relative"});c.css({position:"relative"})}else{f.extend(a,{position:c.css("position"),zIndex:c.css("z-index")});f.each(["top","left","bottom","right"],function(d,e){a[e]=c.css(e);if(isNaN(parseInt(a[e],10)))a[e]="auto"});c.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}return b.css(a).show()},removeWrapper:function(c){if(c.parent().is(".ui-effects-wrapper"))return c.parent().replaceWith(c); +return c},setTransition:function(c,a,b,d){d=d||{};f.each(a,function(e,g){unit=c.cssUnit(g);if(unit[0]>0)d[g]=unit[0]*b+unit[1]});return d}});f.fn.extend({effect:function(c){var a=k.apply(this,arguments),b={options:a[1],duration:a[2],callback:a[3]};a=b.options.mode;var d=f.effects[c];if(f.fx.off||!d)return a?this[a](b.duration,b.callback):this.each(function(){b.callback&&b.callback.call(this)});return d.call(this,b)},_show:f.fn.show,show:function(c){if(m(c))return this._show.apply(this,arguments); +else{var a=k.apply(this,arguments);a[1].mode="show";return this.effect.apply(this,a)}},_hide:f.fn.hide,hide:function(c){if(m(c))return this._hide.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="hide";return this.effect.apply(this,a)}},__toggle:f.fn.toggle,toggle:function(c){if(m(c)||typeof c==="boolean"||f.isFunction(c))return this.__toggle.apply(this,arguments);else{var a=k.apply(this,arguments);a[1].mode="toggle";return this.effect.apply(this,a)}},cssUnit:function(c){var a=this.css(c), +b=[];f.each(["em","px","%","pt"],function(d,e){if(a.indexOf(e)>0)b=[parseFloat(a),e]});return b}});f.easing.jswing=f.easing.swing;f.extend(f.easing,{def:"easeOutQuad",swing:function(c,a,b,d,e){return f.easing[f.easing.def](c,a,b,d,e)},easeInQuad:function(c,a,b,d,e){return d*(a/=e)*a+b},easeOutQuad:function(c,a,b,d,e){return-d*(a/=e)*(a-2)+b},easeInOutQuad:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a+b;return-d/2*(--a*(a-2)-1)+b},easeInCubic:function(c,a,b,d,e){return d*(a/=e)*a*a+b},easeOutCubic:function(c, +a,b,d,e){return d*((a=a/e-1)*a*a+1)+b},easeInOutCubic:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a+b;return d/2*((a-=2)*a*a+2)+b},easeInQuart:function(c,a,b,d,e){return d*(a/=e)*a*a*a+b},easeOutQuart:function(c,a,b,d,e){return-d*((a=a/e-1)*a*a*a-1)+b},easeInOutQuart:function(c,a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a+b;return-d/2*((a-=2)*a*a*a-2)+b},easeInQuint:function(c,a,b,d,e){return d*(a/=e)*a*a*a*a+b},easeOutQuint:function(c,a,b,d,e){return d*((a=a/e-1)*a*a*a*a+1)+b},easeInOutQuint:function(c, +a,b,d,e){if((a/=e/2)<1)return d/2*a*a*a*a*a+b;return d/2*((a-=2)*a*a*a*a+2)+b},easeInSine:function(c,a,b,d,e){return-d*Math.cos(a/e*(Math.PI/2))+d+b},easeOutSine:function(c,a,b,d,e){return d*Math.sin(a/e*(Math.PI/2))+b},easeInOutSine:function(c,a,b,d,e){return-d/2*(Math.cos(Math.PI*a/e)-1)+b},easeInExpo:function(c,a,b,d,e){return a==0?b:d*Math.pow(2,10*(a/e-1))+b},easeOutExpo:function(c,a,b,d,e){return a==e?b+d:d*(-Math.pow(2,-10*a/e)+1)+b},easeInOutExpo:function(c,a,b,d,e){if(a==0)return b;if(a== +e)return b+d;if((a/=e/2)<1)return d/2*Math.pow(2,10*(a-1))+b;return d/2*(-Math.pow(2,-10*--a)+2)+b},easeInCirc:function(c,a,b,d,e){return-d*(Math.sqrt(1-(a/=e)*a)-1)+b},easeOutCirc:function(c,a,b,d,e){return d*Math.sqrt(1-(a=a/e-1)*a)+b},easeInOutCirc:function(c,a,b,d,e){if((a/=e/2)<1)return-d/2*(Math.sqrt(1-a*a)-1)+b;return d/2*(Math.sqrt(1-(a-=2)*a)+1)+b},easeInElastic:function(c,a,b,d,e){c=1.70158;var g=0,h=d;if(a==0)return b;if((a/=e)==1)return b+d;g||(g=e*0.3);if(h").css({position:"absolute",visibility:"visible",left:-f*(h/d),top:-e*(i/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:h/d,height:i/c,left:g.left+f*(h/d)+(a.options.mode=="show"?(f-Math.floor(d/2))*(h/d):0),top:g.top+e*(i/c)+(a.options.mode=="show"?(e-Math.floor(c/2))*(i/c):0),opacity:a.options.mode=="show"?0:1}).animate({left:g.left+f*(h/d)+(a.options.mode=="show"?0:(f-Math.floor(d/2))*(h/d)),top:g.top+ +e*(i/c)+(a.options.mode=="show"?0:(e-Math.floor(c/2))*(i/c)),opacity:a.options.mode=="show"?1:0},a.duration||500);setTimeout(function(){a.options.mode=="show"?b.css({visibility:"visible"}):b.css({visibility:"visible"}).hide();a.callback&&a.callback.apply(b[0]);b.dequeue();j("div.ui-effects-explode").remove()},a.duration||500)})}})(jQuery); +;/* + * jQuery UI Effects Fade 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fade + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.fade=function(a){return this.queue(function(){var c=b(this),d=b.effects.setMode(c,a.options.mode||"hide");c.animate({opacity:d},{queue:false,duration:a.duration,easing:a.options.easing,complete:function(){a.callback&&a.callback.apply(this,arguments);c.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Fold 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * jquery.effects.core.js + */ +(function(c){c.effects.fold=function(a){return this.queue(function(){var b=c(this),j=["position","top","bottom","left","right"],d=c.effects.setMode(b,a.options.mode||"hide"),g=a.options.size||15,h=!!a.options.horizFirst,k=a.duration?a.duration/2:c.fx.speeds._default/2;c.effects.save(b,j);b.show();var e=c.effects.createWrapper(b).css({overflow:"hidden"}),f=d=="show"!=h,l=f?["width","height"]:["height","width"];f=f?[e.width(),e.height()]:[e.height(),e.width()];var i=/([0-9]+)%/.exec(g);if(i)g=parseInt(i[1], +10)/100*f[d=="hide"?0:1];if(d=="show")e.css(h?{height:0,width:g}:{height:g,width:0});h={};i={};h[l[0]]=d=="show"?f[0]:g;i[l[1]]=d=="show"?f[1]:0;e.animate(h,k,a.options.easing).animate(i,k,a.options.easing,function(){d=="hide"&&b.hide();c.effects.restore(b,j);c.effects.removeWrapper(b);a.callback&&a.callback.apply(b[0],arguments);b.dequeue()})})}})(jQuery); +;/* + * jQuery UI Effects Highlight 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * jquery.effects.core.js + */ +(function(b){b.effects.highlight=function(c){return this.queue(function(){var a=b(this),e=["backgroundImage","backgroundColor","opacity"],d=b.effects.setMode(a,c.options.mode||"show"),f={backgroundColor:a.css("backgroundColor")};if(d=="hide")f.opacity=0;b.effects.save(a,e);a.show().css({backgroundImage:"none",backgroundColor:c.options.color||"#ffff99"}).animate(f,{queue:false,duration:c.duration,easing:c.options.easing,complete:function(){d=="hide"&&a.hide();b.effects.restore(a,e);d=="show"&&!b.support.opacity&& +this.style.removeAttribute("filter");c.callback&&c.callback.apply(this,arguments);a.dequeue()}})})}})(jQuery); +;/* + * jQuery UI Effects Pulsate 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * jquery.effects.core.js + */ +(function(d){d.effects.pulsate=function(a){return this.queue(function(){var b=d(this),c=d.effects.setMode(b,a.options.mode||"show");times=(a.options.times||5)*2-1;duration=a.duration?a.duration/2:d.fx.speeds._default/2;isVisible=b.is(":visible");animateTo=0;if(!isVisible){b.css("opacity",0).show();animateTo=1}if(c=="hide"&&isVisible||c=="show"&&!isVisible)times--;for(c=0;c').appendTo(document.body).addClass(a.options.className).css({top:d.top,left:d.left,height:b.innerHeight(),width:b.innerWidth(),position:"absolute"}).animate(c,a.duration,a.options.easing,function(){f.remove();a.callback&&a.callback.apply(b[0],arguments); +b.dequeue()})})}})(jQuery); +; \ No newline at end of file diff --git a/js/ui/i18n/jquery-ui-i18n.js b/js/ui/i18n/jquery-ui-i18n.js new file mode 100644 index 0000000000..7d207d976d --- /dev/null +++ b/js/ui/i18n/jquery-ui-i18n.js @@ -0,0 +1,1357 @@ +/* Afrikaans initialisation for the jQuery UI date picker plugin. */ +/* Written by Renier Pretorius. */ +jQuery(function($){ + $.datepicker.regional['af'] = { + closeText: 'Selekteer', + prevText: 'Vorige', + nextText: 'Volgende', + currentText: 'Vandag', + monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie', + 'Julie','Augustus','September','Oktober','November','Desember'], + monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', + 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], + dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'], + dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'], + dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['af']); +}); +/* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/ +/* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */ + +jQuery(function($){ + $.datepicker.regional['ar-DZ'] = { + closeText: 'إغلاق', + prevText: '<السابق', + nextText: 'التالي>', + currentText: 'اليوم', + monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', + 'جويلية', 'أوت', 'سبتمبر','أكتوبر', 'نوفمبر', 'ديسمبر'], + monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + weekHeader: 'أسبوع', + dateFormat: 'dd/mm/yy', + firstDay: 6, + isRTL: true, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ar-DZ']); +}); +/* Arabic Translation for jQuery UI date picker plugin. */ +/* Khaled Alhourani -- me@khaledalhourani.com */ +/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */ +jQuery(function($){ + $.datepicker.regional['ar'] = { + closeText: 'إغلاق', + prevText: '<السابق', + nextText: 'التالي>', + currentText: 'اليوم', + monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'آذار', 'حزيران', + 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + weekHeader: 'أسبوع', + dateFormat: 'dd/mm/yy', + firstDay: 6, + isRTL: true, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ar']); +});/* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Jamil Najafov (necefov33@gmail.com). */ +jQuery(function($) { + $.datepicker.regional['az'] = { + closeText: 'Bağla', + prevText: '<Geri', + nextText: 'İrəli>', + currentText: 'Bugün', + monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun', + 'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'], + monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun', + 'İyul','Avq','Sen','Okt','Noy','Dek'], + dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'], + dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'], + dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'], + weekHeader: 'Hf', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['az']); +});/* Bulgarian initialisation for the jQuery UI date picker plugin. */ +/* Written by Stoyan Kyosev (http://svest.org). */ +jQuery(function($){ + $.datepicker.regional['bg'] = { + closeText: 'затвори', + prevText: '<назад', + nextText: 'напред>', + nextBigText: '>>', + currentText: 'днес', + monthNames: ['Януари','Февруари','Март','Април','Май','Юни', + 'Юли','Август','Септември','Октомври','Ноември','Декември'], + monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни', + 'Юли','Авг','Сеп','Окт','Нов','Дек'], + dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'], + dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'], + dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'], + weekHeader: 'Wk', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['bg']); +}); +/* Bosnian i18n for the jQuery UI date picker plugin. */ +/* Written by Kenan Konjo. */ +jQuery(function($){ + $.datepicker.regional['bs'] = { + closeText: 'Zatvori', + prevText: '<', + nextText: '>', + currentText: 'Danas', + monthNames: ['Januar','Februar','Mart','April','Maj','Juni', + 'Juli','August','Septembar','Oktobar','Novembar','Decembar'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], + dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + weekHeader: 'Wk', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['bs']); +});/* Inicialització en català per a l'extenció 'calendar' per jQuery. */ +/* Writers: (joan.leon@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['ca'] = { + closeText: 'Tancar', + prevText: '<Ant', + nextText: 'Seg>', + currentText: 'Avui', + monthNames: ['Gener','Febrer','Març','Abril','Maig','Juny', + 'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'], + monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun', + 'Jul','Ago','Set','Oct','Nov','Des'], + dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'], + dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'], + dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'], + weekHeader: 'Sm', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ca']); +});/* Czech initialisation for the jQuery UI date picker plugin. */ +/* Written by Tomas Muller (tomas@tomas-muller.net). */ +jQuery(function($){ + $.datepicker.regional['cs'] = { + closeText: 'Zavřít', + prevText: '<Dříve', + nextText: 'Později>', + currentText: 'Nyní', + monthNames: ['leden','únor','březen','duben','květen','červen', + 'červenec','srpen','září','říjen','listopad','prosinec'], + monthNamesShort: ['led','úno','bře','dub','kvě','čer', + 'čvc','srp','zář','říj','lis','pro'], + dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'], + dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], + dayNamesMin: ['ne','po','út','st','čt','pá','so'], + weekHeader: 'Týd', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['cs']); +}); +/* Danish initialisation for the jQuery UI date picker plugin. */ +/* Written by Jan Christensen ( deletestuff@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['da'] = { + closeText: 'Luk', + prevText: '<Forrige', + nextText: 'Næste>', + currentText: 'Idag', + monthNames: ['Januar','Februar','Marts','April','Maj','Juni', + 'Juli','August','September','Oktober','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], + dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], + dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], + weekHeader: 'Uge', + dateFormat: 'dd-mm-yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['da']); +}); +/* German initialisation for the jQuery UI date picker plugin. */ +/* Written by Milian Wolff (mail@milianw.de). */ +jQuery(function($){ + $.datepicker.regional['de'] = { + closeText: 'schließen', + prevText: '<zurück', + nextText: 'Vor>', + currentText: 'heute', + monthNames: ['Januar','Februar','März','April','Mai','Juni', + 'Juli','August','September','Oktober','November','Dezember'], + monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dez'], + dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], + dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], + dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], + weekHeader: 'Wo', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['de']); +}); +/* Greek (el) initialisation for the jQuery UI date picker plugin. */ +/* Written by Alex Cicovic (http://www.alexcicovic.com) */ +jQuery(function($){ + $.datepicker.regional['el'] = { + closeText: 'Κλείσιμο', + prevText: 'Προηγούμενος', + nextText: 'Επόμενος', + currentText: 'Τρέχων Μήνας', + monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος', + 'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'], + monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν', + 'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'], + dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'], + dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'], + dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'], + weekHeader: 'Εβδ', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['el']); +});/* English/Australia initialisation for the jQuery UI date picker plugin. */ +/* Based on the en-GB initialisation. */ +jQuery(function($){ + $.datepicker.regional['en-AU'] = { + closeText: 'Done', + prevText: 'Prev', + nextText: 'Next', + currentText: 'Today', + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['en-AU']); +}); +/* English/UK initialisation for the jQuery UI date picker plugin. */ +/* Written by Stuart. */ +jQuery(function($){ + $.datepicker.regional['en-GB'] = { + closeText: 'Done', + prevText: 'Prev', + nextText: 'Next', + currentText: 'Today', + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['en-GB']); +}); +/* English/New Zealand initialisation for the jQuery UI date picker plugin. */ +/* Based on the en-GB initialisation. */ +jQuery(function($){ + $.datepicker.regional['en-NZ'] = { + closeText: 'Done', + prevText: 'Prev', + nextText: 'Next', + currentText: 'Today', + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['en-NZ']); +}); +/* Esperanto initialisation for the jQuery UI date picker plugin. */ +/* Written by Olivier M. (olivierweb@ifrance.com). */ +jQuery(function($){ + $.datepicker.regional['eo'] = { + closeText: 'Fermi', + prevText: '<Anta', + nextText: 'Sekv>', + currentText: 'Nuna', + monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio', + 'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aŭg','Sep','Okt','Nov','Dec'], + dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'], + dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'], + dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'], + weekHeader: 'Sb', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['eo']); +}); +/* Inicialización en español para la extensión 'UI date picker' para jQuery. */ +/* Traducido por Vester (xvester@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['es'] = { + closeText: 'Cerrar', + prevText: '<Ant', + nextText: 'Sig>', + currentText: 'Hoy', + monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', + 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], + monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', + 'Jul','Ago','Sep','Oct','Nov','Dic'], + dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'], + dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'], + dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'], + weekHeader: 'Sm', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['es']); +});/* Estonian initialisation for the jQuery UI date picker plugin. */ +/* Written by Mart Sõmermaa (mrts.pydev at gmail com). */ +jQuery(function($){ + $.datepicker.regional['et'] = { + closeText: 'Sulge', + prevText: 'Eelnev', + nextText: 'Järgnev', + currentText: 'Täna', + monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni', + 'Juuli','August','September','Oktoober','November','Detsember'], + monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni', + 'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'], + dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'], + dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'], + dayNamesMin: ['P','E','T','K','N','R','L'], + weekHeader: 'Sm', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['et']); +}); /* Euskarako oinarria 'UI date picker' jquery-ko extentsioarentzat */ +/* Karrikas-ek itzulia (karrikas@karrikas.com) */ +jQuery(function($){ + $.datepicker.regional['eu'] = { + closeText: 'Egina', + prevText: '<Aur', + nextText: 'Hur>', + currentText: 'Gaur', + monthNames: ['Urtarrila','Otsaila','Martxoa','Apirila','Maiatza','Ekaina', + 'Uztaila','Abuztua','Iraila','Urria','Azaroa','Abendua'], + monthNamesShort: ['Urt','Ots','Mar','Api','Mai','Eka', + 'Uzt','Abu','Ira','Urr','Aza','Abe'], + dayNames: ['Igandea','Astelehena','Asteartea','Asteazkena','Osteguna','Ostirala','Larunbata'], + dayNamesShort: ['Iga','Ast','Ast','Ast','Ost','Ost','Lar'], + dayNamesMin: ['Ig','As','As','As','Os','Os','La'], + weekHeader: 'Wk', + dateFormat: 'yy/mm/dd', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['eu']); +});/* Persian (Farsi) Translation for the jQuery UI date picker plugin. */ +/* Javad Mowlanezhad -- jmowla@gmail.com */ +/* Jalali calendar should supported soon! (Its implemented but I have to test it) */ +jQuery(function($) { + $.datepicker.regional['fa'] = { + closeText: 'بستن', + prevText: '<قبلي', + nextText: 'بعدي>', + currentText: 'امروز', + monthNames: ['فروردين','ارديبهشت','خرداد','تير','مرداد','شهريور', + 'مهر','آبان','آذر','دي','بهمن','اسفند'], + monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], + dayNames: ['يکشنبه','دوشنبه','سه‌شنبه','چهارشنبه','پنجشنبه','جمعه','شنبه'], + dayNamesShort: ['ي','د','س','چ','پ','ج', 'ش'], + dayNamesMin: ['ي','د','س','چ','پ','ج', 'ش'], + weekHeader: 'هف', + dateFormat: 'yy/mm/dd', + firstDay: 6, + isRTL: true, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['fa']); +});/* Finnish initialisation for the jQuery UI date picker plugin. */ +/* Written by Harri Kilpi� (harrikilpio@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['fi'] = { + closeText: 'Sulje', + prevText: '«Edellinen', + nextText: 'Seuraava»', + currentText: 'Tänään', + monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kesäkuu', + 'Heinäkuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'], + monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kesä', + 'Heinä','Elo','Syys','Loka','Marras','Joulu'], + dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','Su'], + dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'], + dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'], + weekHeader: 'Vk', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['fi']); +}); +/* Faroese initialisation for the jQuery UI date picker plugin */ +/* Written by Sverri Mohr Olsen, sverrimo@gmail.com */ +jQuery(function($){ + $.datepicker.regional['fo'] = { + closeText: 'Lat aftur', + prevText: '<Fyrra', + nextText: 'Næsta>', + currentText: 'Í dag', + monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni', + 'Juli','August','September','Oktober','November','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', + 'Jul','Aug','Sep','Okt','Nov','Des'], + dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'], + dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'], + dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'], + weekHeader: 'Vk', + dateFormat: 'dd-mm-yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['fo']); +}); +/* Swiss-French initialisation for the jQuery UI date picker plugin. */ +/* Written Martin Voelkle (martin.voelkle@e-tc.ch). */ +jQuery(function($){ + $.datepicker.regional['fr-CH'] = { + closeText: 'Fermer', + prevText: '<Préc', + nextText: 'Suiv>', + currentText: 'Courant', + monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', + 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], + monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun', + 'Jul','Aoû','Sep','Oct','Nov','Déc'], + dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], + dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], + dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'], + weekHeader: 'Sm', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['fr-CH']); +});/* French initialisation for the jQuery UI date picker plugin. */ +/* Written by Keith Wood (kbwood{at}iinet.com.au), + Stéphane Nahmani (sholby@sholby.net), + Stéphane Raimbault */ +jQuery(function($){ + $.datepicker.regional['fr'] = { + closeText: 'Fermer', + prevText: 'Précédent', + nextText: 'Suivant', + currentText: 'Aujourd\'hui', + monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', + 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], + monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin', + 'Juil.','Août','Sept.','Oct.','Nov.','Déc.'], + dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], + dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'], + dayNamesMin: ['D','L','M','M','J','V','S'], + weekHeader: 'Sem.', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['fr']); +}); +/* Galician localization for 'UI date picker' jQuery extension. */ +/* Translated by Jorge Barreiro . */ +jQuery(function($){ + $.datepicker.regional['gl'] = { + closeText: 'Pechar', + prevText: '<Ant', + nextText: 'Seg>', + currentText: 'Hoxe', + monthNames: ['Xaneiro','Febreiro','Marzo','Abril','Maio','Xuño', + 'Xullo','Agosto','Setembro','Outubro','Novembro','Decembro'], + monthNamesShort: ['Xan','Feb','Mar','Abr','Mai','Xuñ', + 'Xul','Ago','Set','Out','Nov','Dec'], + dayNames: ['Domingo','Luns','Martes','Mércores','Xoves','Venres','Sábado'], + dayNamesShort: ['Dom','Lun','Mar','Mér','Xov','Ven','Sáb'], + dayNamesMin: ['Do','Lu','Ma','Mé','Xo','Ve','Sá'], + weekHeader: 'Sm', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['gl']); +});/* Hebrew initialisation for the UI Datepicker extension. */ +/* Written by Amir Hardon (ahardon at gmail dot com). */ +jQuery(function($){ + $.datepicker.regional['he'] = { + closeText: 'סגור', + prevText: '<הקודם', + nextText: 'הבא>', + currentText: 'היום', + monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני', + 'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'], + monthNamesShort: ['1','2','3','4','5','6', + '7','8','9','10','11','12'], + dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'], + dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], + dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: true, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['he']); +}); +/* Croatian i18n for the jQuery UI date picker plugin. */ +/* Written by Vjekoslav Nesek. */ +jQuery(function($){ + $.datepicker.regional['hr'] = { + closeText: 'Zatvori', + prevText: '<', + nextText: '>', + currentText: 'Danas', + monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj', + 'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'], + monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip', + 'Srp','Kol','Ruj','Lis','Stu','Pro'], + dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], + dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + weekHeader: 'Tje', + dateFormat: 'dd.mm.yy.', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['hr']); +});/* Hungarian initialisation for the jQuery UI date picker plugin. */ +/* Written by Istvan Karaszi (jquery@spam.raszi.hu). */ +jQuery(function($){ + $.datepicker.regional['hu'] = { + closeText: 'bezárás', + prevText: '« vissza', + nextText: 'előre »', + currentText: 'ma', + monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június', + 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'], + monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún', + 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'], + dayNames: ['Vasárnap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'], + dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'], + dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'], + weekHeader: 'Hé', + dateFormat: 'yy-mm-dd', + firstDay: 1, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['hu']); +}); +/* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/ +jQuery(function($){ + $.datepicker.regional['hy'] = { + closeText: 'Փակել', + prevText: '<Նախ.', + nextText: 'Հաջ.>', + currentText: 'Այսօր', + monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս', + 'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'], + monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս', + 'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'], + dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'], + dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], + dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], + weekHeader: 'ՇԲՏ', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['hy']); +});/* Indonesian initialisation for the jQuery UI date picker plugin. */ +/* Written by Deden Fathurahman (dedenf@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['id'] = { + closeText: 'Tutup', + prevText: '<mundur', + nextText: 'maju>', + currentText: 'hari ini', + monthNames: ['Januari','Februari','Maret','April','Mei','Juni', + 'Juli','Agustus','September','Oktober','Nopember','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', + 'Jul','Agus','Sep','Okt','Nop','Des'], + dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'], + dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'], + dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'], + weekHeader: 'Mg', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['id']); +});/* Icelandic initialisation for the jQuery UI date picker plugin. */ +/* Written by Haukur H. Thorsson (haukur@eskill.is). */ +jQuery(function($){ + $.datepicker.regional['is'] = { + closeText: 'Loka', + prevText: '< Fyrri', + nextText: 'Næsti >', + currentText: 'Í dag', + monthNames: ['Janúar','Febrúar','Mars','Apríl','Maí','Júní', + 'Júlí','Ágúst','September','Október','Nóvember','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maí','Jún', + 'Júl','Ágú','Sep','Okt','Nóv','Des'], + dayNames: ['Sunnudagur','Mánudagur','Þriðjudagur','Miðvikudagur','Fimmtudagur','Föstudagur','Laugardagur'], + dayNamesShort: ['Sun','Mán','Þri','Mið','Fim','Fös','Lau'], + dayNamesMin: ['Su','Má','Þr','Mi','Fi','Fö','La'], + weekHeader: 'Vika', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['is']); +});/* Italian initialisation for the jQuery UI date picker plugin. */ +/* Written by Antonello Pasella (antonello.pasella@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['it'] = { + closeText: 'Chiudi', + prevText: '<Prec', + nextText: 'Succ>', + currentText: 'Oggi', + monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno', + 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'], + monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu', + 'Lug','Ago','Set','Ott','Nov','Dic'], + dayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'], + dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'], + dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'], + weekHeader: 'Sm', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['it']); +}); +/* Japanese initialisation for the jQuery UI date picker plugin. */ +/* Written by Kentaro SATO (kentaro@ranvis.com). */ +jQuery(function($){ + $.datepicker.regional['ja'] = { + closeText: '閉じる', + prevText: '<前', + nextText: '次>', + currentText: '今日', + monthNames: ['1月','2月','3月','4月','5月','6月', + '7月','8月','9月','10月','11月','12月'], + monthNamesShort: ['1月','2月','3月','4月','5月','6月', + '7月','8月','9月','10月','11月','12月'], + dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'], + dayNamesShort: ['日','月','火','水','木','金','土'], + dayNamesMin: ['日','月','火','水','木','金','土'], + weekHeader: '週', + dateFormat: 'yy/mm/dd', + firstDay: 0, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: '年'}; + $.datepicker.setDefaults($.datepicker.regional['ja']); +});/* Korean initialisation for the jQuery calendar extension. */ +/* Written by DaeKwon Kang (ncrash.dk@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['ko'] = { + closeText: '닫기', + prevText: '이전달', + nextText: '다음달', + currentText: '오늘', + monthNames: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)', + '7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'], + monthNamesShort: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)', + '7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'], + dayNames: ['일','월','화','수','목','금','토'], + dayNamesShort: ['일','월','화','수','목','금','토'], + dayNamesMin: ['일','월','화','수','목','금','토'], + weekHeader: 'Wk', + dateFormat: 'yy-mm-dd', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '년'}; + $.datepicker.setDefaults($.datepicker.regional['ko']); +});/* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Dmitriy Karasyov (dmitriy.karasyov@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['kz'] = { + closeText: 'Жабу', + prevText: '<Алдыңғы', + nextText: 'Келесі>', + currentText: 'Бүгін', + monthNames: ['Қаңтар','Ақпан','Наурыз','Сәуір','Мамыр','Маусым', + 'Шілде','Тамыз','Қыркүйек','Қазан','Қараша','Желтоқсан'], + monthNamesShort: ['Қаң','Ақп','Нау','Сәу','Мам','Мау', + 'Шіл','Там','Қыр','Қаз','Қар','Жел'], + dayNames: ['Жексенбі','Дүйсенбі','Сейсенбі','Сәрсенбі','Бейсенбі','Жұма','Сенбі'], + dayNamesShort: ['жкс','дсн','ссн','срс','бсн','жма','снб'], + dayNamesMin: ['Жк','Дс','Сс','Ср','Бс','Жм','Сн'], + weekHeader: 'Не', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['kz']); +}); +/* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* @author Arturas Paleicikas */ +jQuery(function($){ + $.datepicker.regional['lt'] = { + closeText: 'Uždaryti', + prevText: '<Atgal', + nextText: 'Pirmyn>', + currentText: 'Šiandien', + monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis', + 'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'], + monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir', + 'Lie','Rugp','Rugs','Spa','Lap','Gru'], + dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'], + dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'], + dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'], + weekHeader: 'Wk', + dateFormat: 'yy-mm-dd', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['lt']); +});/* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* @author Arturas Paleicikas */ +jQuery(function($){ + $.datepicker.regional['lv'] = { + closeText: 'Aizvērt', + prevText: 'Iepr', + nextText: 'Nāka', + currentText: 'Šodien', + monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs', + 'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn', + 'Jūl','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'], + dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'], + dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'], + weekHeader: 'Nav', + dateFormat: 'dd-mm-yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['lv']); +});/* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Saji Nediyanchath (saji89@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['ml'] = { + closeText: 'ശരി', + prevText: 'മുന്നത്തെ', + nextText: 'അടുത്തത് ', + currentText: 'ഇന്ന്', + monthNames: ['ജനുവരി','ഫെബ്രുവരി','മാര്‍ച്ച്','ഏപ്രില്‍','മേയ്','ജൂണ്‍', + 'ജൂലൈ','ആഗസ്റ്റ്','സെപ്റ്റംബര്‍','ഒക്ടോബര്‍','നവംബര്‍','ഡിസംബര്‍'], + monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്‍', 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍', + 'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'], + dayNames: ['ഞായര്‍', 'തിങ്കള്‍', 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], + dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], + dayNamesMin: ['ഞാ','തി','ചൊ','ബു','വ്യാ','വെ','ശ'], + weekHeader: 'ആ', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ml']); +}); +/* Malaysian initialisation for the jQuery UI date picker plugin. */ +/* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */ +jQuery(function($){ + $.datepicker.regional['ms'] = { + closeText: 'Tutup', + prevText: '<Sebelum', + nextText: 'Selepas>', + currentText: 'hari ini', + monthNames: ['Januari','Februari','Mac','April','Mei','Jun', + 'Julai','Ogos','September','Oktober','November','Disember'], + monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun', + 'Jul','Ogo','Sep','Okt','Nov','Dis'], + dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'], + dayNamesShort: ['Aha','Isn','Sel','Rab','kha','Jum','Sab'], + dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'], + weekHeader: 'Mg', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ms']); +});/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Mathias Bynens */ +jQuery(function($){ + $.datepicker.regional.nl = { + closeText: 'Sluiten', + prevText: '←', + nextText: '→', + currentText: 'Vandaag', + monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', + 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun', + 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], + dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], + dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], + dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional.nl); +});/* Norwegian initialisation for the jQuery UI date picker plugin. */ +/* Written by Naimdjon Takhirov (naimdjon@gmail.com). */ + +jQuery(function($){ + $.datepicker.regional['no'] = { + closeText: 'Lukk', + prevText: '«Forrige', + nextText: 'Neste»', + currentText: 'I dag', + monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'], + monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'], + dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'], + dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'], + dayNamesMin: ['sø','ma','ti','on','to','fr','lø'], + weekHeader: 'Uke', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '' + }; + $.datepicker.setDefaults($.datepicker.regional['no']); +}); +/* Polish initialisation for the jQuery UI date picker plugin. */ +/* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['pl'] = { + closeText: 'Zamknij', + prevText: '<Poprzedni', + nextText: 'Następny>', + currentText: 'Dziś', + monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec', + 'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'], + monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze', + 'Lip','Sie','Wrz','Pa','Lis','Gru'], + dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'], + dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'], + dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'], + weekHeader: 'Tydz', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['pl']); +}); +/* Brazilian initialisation for the jQuery UI date picker plugin. */ +/* Written by Leonildo Costa Silva (leocsilva@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['pt-BR'] = { + closeText: 'Fechar', + prevText: '<Anterior', + nextText: 'Próximo>', + currentText: 'Hoje', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', + 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', + 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + weekHeader: 'Sm', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['pt-BR']); +});/* Portuguese initialisation for the jQuery UI date picker plugin. */ +jQuery(function($){ + $.datepicker.regional['pt'] = { + closeText: 'Fechar', + prevText: '<Anterior', + nextText: 'Seguinte', + currentText: 'Hoje', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', + 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', + 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + weekHeader: 'Sem', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['pt']); +});/* Romansh initialisation for the jQuery UI date picker plugin. */ +/* Written by Yvonne Gienal (yvonne.gienal@educa.ch). */ +jQuery(function($){ + $.datepicker.regional['rm'] = { + closeText: 'Serrar', + prevText: '<Suandant', + nextText: 'Precedent>', + currentText: 'Actual', + monthNames: ['Schaner','Favrer','Mars','Avrigl','Matg','Zercladur', 'Fanadur','Avust','Settember','October','November','December'], + monthNamesShort: ['Scha','Fev','Mar','Avr','Matg','Zer', 'Fan','Avu','Sett','Oct','Nov','Dec'], + dayNames: ['Dumengia','Glindesdi','Mardi','Mesemna','Gievgia','Venderdi','Sonda'], + dayNamesShort: ['Dum','Gli','Mar','Mes','Gie','Ven','Som'], + dayNamesMin: ['Du','Gl','Ma','Me','Gi','Ve','So'], + weekHeader: 'emna', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['rm']); +}); +/* Romanian initialisation for the jQuery UI date picker plugin. + * + * Written by Edmond L. (ll_edmond@walla.com) + * and Ionut G. Stan (ionut.g.stan@gmail.com) + */ +jQuery(function($){ + $.datepicker.regional['ro'] = { + closeText: 'Închide', + prevText: '« Luna precedentă', + nextText: 'Luna următoare »', + currentText: 'Azi', + monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie', + 'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'], + monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun', + 'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'], + dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'], + dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'], + weekHeader: 'Săpt', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ro']); +}); +/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Andrew Stromnov (stromnov@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['ru'] = { + closeText: 'Закрыть', + prevText: '<Пред', + nextText: 'След>', + currentText: 'Сегодня', + monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь', + 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], + monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', + 'Июл','Авг','Сен','Окт','Ноя','Дек'], + dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'], + dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'], + dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'], + weekHeader: 'Нед', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ru']); +});/* Slovak initialisation for the jQuery UI date picker plugin. */ +/* Written by Vojtech Rinik (vojto@hmm.sk). */ +jQuery(function($){ + $.datepicker.regional['sk'] = { + closeText: 'Zavrieť', + prevText: '<Predchádzajúci', + nextText: 'Nasledujúci>', + currentText: 'Dnes', + monthNames: ['Január','Február','Marec','Apríl','Máj','Jún', + 'Júl','August','September','Október','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún', + 'Júl','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Nedel\'a','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'], + dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'], + dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'], + weekHeader: 'Ty', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['sk']); +}); +/* Slovenian initialisation for the jQuery UI date picker plugin. */ +/* Written by Jaka Jancar (jaka@kubje.org). */ +/* c = č, s = š z = ž C = Č S = Š Z = Ž */ +jQuery(function($){ + $.datepicker.regional['sl'] = { + closeText: 'Zapri', + prevText: '<Prejšnji', + nextText: 'Naslednji>', + currentText: 'Trenutni', + monthNames: ['Januar','Februar','Marec','April','Maj','Junij', + 'Julij','Avgust','September','Oktober','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Avg','Sep','Okt','Nov','Dec'], + dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','Četrtek','Petek','Sobota'], + dayNamesShort: ['Ned','Pon','Tor','Sre','Čet','Pet','Sob'], + dayNamesMin: ['Ne','Po','To','Sr','Če','Pe','So'], + weekHeader: 'Teden', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['sl']); +}); +/* Albanian initialisation for the jQuery UI date picker plugin. */ +/* Written by Flakron Bytyqi (flakron@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['sq'] = { + closeText: 'mbylle', + prevText: '<mbrapa', + nextText: 'Përpara>', + currentText: 'sot', + monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor', + 'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'], + monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer', + 'Kor','Gus','Sht','Tet','Nën','Dhj'], + dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'], + dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'], + dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'], + weekHeader: 'Ja', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['sq']); +}); +/* Serbian i18n for the jQuery UI date picker plugin. */ +/* Written by Dejan Dimić. */ +jQuery(function($){ + $.datepicker.regional['sr-SR'] = { + closeText: 'Zatvori', + prevText: '<', + nextText: '>', + currentText: 'Danas', + monthNames: ['Januar','Februar','Mart','April','Maj','Jun', + 'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Avg','Sep','Okt','Nov','Dec'], + dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'], + dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + weekHeader: 'Sed', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['sr-SR']); +}); +/* Serbian i18n for the jQuery UI date picker plugin. */ +/* Written by Dejan Dimić. */ +jQuery(function($){ + $.datepicker.regional['sr'] = { + closeText: 'Затвори', + prevText: '<', + nextText: '>', + currentText: 'Данас', + monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун', + 'Јул','Август','Септембар','Октобар','Новембар','Децембар'], + monthNamesShort: ['Јан','Феб','Мар','Апр','Мај','Јун', + 'Јул','Авг','Сеп','Окт','Нов','Дец'], + dayNames: ['Недеља','Понедељак','Уторак','Среда','Четвртак','Петак','Субота'], + dayNamesShort: ['Нед','Пон','Уто','Сре','Чет','Пет','Суб'], + dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'], + weekHeader: 'Сед', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['sr']); +}); +/* Swedish initialisation for the jQuery UI date picker plugin. */ +/* Written by Anders Ekdahl ( anders@nomadiz.se). */ +jQuery(function($){ + $.datepicker.regional['sv'] = { + closeText: 'Stäng', + prevText: '«Förra', + nextText: 'Nästa»', + currentText: 'Idag', + monthNames: ['Januari','Februari','Mars','April','Maj','Juni', + 'Juli','Augusti','September','Oktober','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dec'], + dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'], + dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'], + dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'], + weekHeader: 'Ve', + dateFormat: 'yy-mm-dd', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['sv']); +}); +/* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by S A Sureshkumar (saskumar@live.com). */ +jQuery(function($){ + $.datepicker.regional['ta'] = { + closeText: 'மூடு', + prevText: 'முன்னையது', + nextText: 'அடுத்தது', + currentText: 'இன்று', + monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி', + 'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'], + monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி', + 'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'], + dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'], + dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'], + dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'], + weekHeader: 'Не', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ta']); +}); +/* Thai initialisation for the jQuery UI date picker plugin. */ +/* Written by pipo (pipo@sixhead.com). */ +jQuery(function($){ + $.datepicker.regional['th'] = { + closeText: 'ปิด', + prevText: '« ย้อน', + nextText: 'ถัดไป »', + currentText: 'วันนี้', + monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน', + 'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'], + monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.', + 'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'], + dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'], + dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], + dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['th']); +});/* Turkish initialisation for the jQuery UI date picker plugin. */ +/* Written by Izzet Emre Erkan (kara@karalamalar.net). */ +jQuery(function($){ + $.datepicker.regional['tr'] = { + closeText: 'kapat', + prevText: '<geri', + nextText: 'ileri>', + currentText: 'bugün', + monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran', + 'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'], + monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz', + 'Tem','Ağu','Eyl','Eki','Kas','Ara'], + dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'], + dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], + dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], + weekHeader: 'Hf', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['tr']); +});/* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Maxim Drogobitskiy (maxdao@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['uk'] = { + closeText: 'Закрити', + prevText: '<', + nextText: '>', + currentText: 'Сьогодні', + monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень', + 'Липень','Серпень','Вересень','Жовтень','Листопад','Грудень'], + monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер', + 'Лип','Сер','Вер','Жов','Лис','Гру'], + dayNames: ['неділя','понеділок','вівторок','середа','четвер','п’ятниця','субота'], + dayNamesShort: ['нед','пнд','вів','срд','чтв','птн','сбт'], + dayNamesMin: ['Нд','Пн','Вт','Ср','Чт','Пт','Сб'], + weekHeader: 'Не', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['uk']); +});/* Vietnamese initialisation for the jQuery UI date picker plugin. */ +/* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */ +jQuery(function($){ + $.datepicker.regional['vi'] = { + closeText: 'Đóng', + prevText: '<Trước', + nextText: 'Tiếp>', + currentText: 'Hôm nay', + monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu', + 'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'], + monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', + 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'], + dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'], + dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], + dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], + weekHeader: 'Tu', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['vi']); +}); +/* Chinese initialisation for the jQuery UI date picker plugin. */ +/* Written by Cloudream (cloudream@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['zh-CN'] = { + closeText: '关闭', + prevText: '<上月', + nextText: '下月>', + currentText: '今天', + monthNames: ['一月','二月','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'], + monthNamesShort: ['一','二','三','四','五','六', + '七','八','九','十','十一','十二'], + dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], + dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], + dayNamesMin: ['日','一','二','三','四','五','六'], + weekHeader: '周', + dateFormat: 'yy-mm-dd', + firstDay: 1, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: '年'}; + $.datepicker.setDefaults($.datepicker.regional['zh-CN']); +}); +/* Chinese initialisation for the jQuery UI date picker plugin. */ +/* Written by SCCY (samuelcychan@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['zh-HK'] = { + closeText: '關閉', + prevText: '<上月', + nextText: '下月>', + currentText: '今天', + monthNames: ['一月','二月','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'], + monthNamesShort: ['一','二','三','四','五','六', + '七','八','九','十','十一','十二'], + dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], + dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], + dayNamesMin: ['日','一','二','三','四','五','六'], + weekHeader: '周', + dateFormat: 'dd-mm-yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: '年'}; + $.datepicker.setDefaults($.datepicker.regional['zh-HK']); +}); +/* Chinese initialisation for the jQuery UI date picker plugin. */ +/* Written by Ressol (ressol@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['zh-TW'] = { + closeText: '關閉', + prevText: '<上月', + nextText: '下月>', + currentText: '今天', + monthNames: ['一月','二月','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'], + monthNamesShort: ['一','二','三','四','五','六', + '七','八','九','十','十一','十二'], + dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], + dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], + dayNamesMin: ['日','一','二','三','四','五','六'], + weekHeader: '周', + dateFormat: 'yy/mm/dd', + firstDay: 1, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: '年'}; + $.datepicker.setDefaults($.datepicker.regional['zh-TW']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-af.js b/js/ui/i18n/jquery.ui.datepicker-af.js new file mode 100644 index 0000000000..43fbf6cd8e --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-af.js @@ -0,0 +1,23 @@ +/* Afrikaans initialisation for the jQuery UI date picker plugin. */ +/* Written by Renier Pretorius. */ +jQuery(function($){ + $.datepicker.regional['af'] = { + closeText: 'Selekteer', + prevText: 'Vorige', + nextText: 'Volgende', + currentText: 'Vandag', + monthNames: ['Januarie','Februarie','Maart','April','Mei','Junie', + 'Julie','Augustus','September','Oktober','November','Desember'], + monthNamesShort: ['Jan', 'Feb', 'Mrt', 'Apr', 'Mei', 'Jun', + 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Des'], + dayNames: ['Sondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrydag', 'Saterdag'], + dayNamesShort: ['Son', 'Maa', 'Din', 'Woe', 'Don', 'Vry', 'Sat'], + dayNamesMin: ['So','Ma','Di','Wo','Do','Vr','Sa'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['af']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-ar-DZ.js b/js/ui/i18n/jquery.ui.datepicker-ar-DZ.js new file mode 100644 index 0000000000..e0e1685d84 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-ar-DZ.js @@ -0,0 +1,23 @@ +/* Algerian Arabic Translation for jQuery UI date picker plugin. (can be used for Tunisia)*/ +/* Mohamed Cherif BOUCHELAGHEM -- cherifbouchelaghem@yahoo.fr */ + +jQuery(function($){ + $.datepicker.regional['ar-DZ'] = { + closeText: 'إغلاق', + prevText: '<السابق', + nextText: 'التالي>', + currentText: 'اليوم', + monthNames: ['جانفي', 'فيفري', 'مارس', 'أفريل', 'ماي', 'جوان', + 'جويلية', 'أوت', 'سبتمبر','أكتوبر', 'نوفمبر', 'ديسمبر'], + monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + weekHeader: 'أسبوع', + dateFormat: 'dd/mm/yy', + firstDay: 6, + isRTL: true, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ar-DZ']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-ar.js b/js/ui/i18n/jquery.ui.datepicker-ar.js new file mode 100644 index 0000000000..9e37911c26 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-ar.js @@ -0,0 +1,23 @@ +/* Arabic Translation for jQuery UI date picker plugin. */ +/* Khaled Alhourani -- me@khaledalhourani.com */ +/* NOTE: monthNames are the original months names and they are the Arabic names, not the new months name فبراير - يناير and there isn't any Arabic roots for these months */ +jQuery(function($){ + $.datepicker.regional['ar'] = { + closeText: 'إغلاق', + prevText: '<السابق', + nextText: 'التالي>', + currentText: 'اليوم', + monthNames: ['كانون الثاني', 'شباط', 'آذار', 'نيسان', 'آذار', 'حزيران', + 'تموز', 'آب', 'أيلول', 'تشرين الأول', 'تشرين الثاني', 'كانون الأول'], + monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], + dayNames: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesShort: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + dayNamesMin: ['الأحد', 'الاثنين', 'الثلاثاء', 'الأربعاء', 'الخميس', 'الجمعة', 'السبت'], + weekHeader: 'أسبوع', + dateFormat: 'dd/mm/yy', + firstDay: 6, + isRTL: true, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ar']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-az.js b/js/ui/i18n/jquery.ui.datepicker-az.js new file mode 100644 index 0000000000..b5434057b7 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-az.js @@ -0,0 +1,23 @@ +/* Azerbaijani (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Jamil Najafov (necefov33@gmail.com). */ +jQuery(function($) { + $.datepicker.regional['az'] = { + closeText: 'Bağla', + prevText: '<Geri', + nextText: 'İrəli>', + currentText: 'Bugün', + monthNames: ['Yanvar','Fevral','Mart','Aprel','May','İyun', + 'İyul','Avqust','Sentyabr','Oktyabr','Noyabr','Dekabr'], + monthNamesShort: ['Yan','Fev','Mar','Apr','May','İyun', + 'İyul','Avq','Sen','Okt','Noy','Dek'], + dayNames: ['Bazar','Bazar ertəsi','Çərşənbə axşamı','Çərşənbə','Cümə axşamı','Cümə','Şənbə'], + dayNamesShort: ['B','Be','Ça','Ç','Ca','C','Ş'], + dayNamesMin: ['B','B','Ç','С','Ç','C','Ş'], + weekHeader: 'Hf', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['az']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-bg.js b/js/ui/i18n/jquery.ui.datepicker-bg.js new file mode 100644 index 0000000000..b5113f7817 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-bg.js @@ -0,0 +1,24 @@ +/* Bulgarian initialisation for the jQuery UI date picker plugin. */ +/* Written by Stoyan Kyosev (http://svest.org). */ +jQuery(function($){ + $.datepicker.regional['bg'] = { + closeText: 'затвори', + prevText: '<назад', + nextText: 'напред>', + nextBigText: '>>', + currentText: 'днес', + monthNames: ['Януари','Февруари','Март','Април','Май','Юни', + 'Юли','Август','Септември','Октомври','Ноември','Декември'], + monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни', + 'Юли','Авг','Сеп','Окт','Нов','Дек'], + dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'], + dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'], + dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'], + weekHeader: 'Wk', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['bg']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-bs.js b/js/ui/i18n/jquery.ui.datepicker-bs.js new file mode 100644 index 0000000000..30ab826b0f --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-bs.js @@ -0,0 +1,23 @@ +/* Bosnian i18n for the jQuery UI date picker plugin. */ +/* Written by Kenan Konjo. */ +jQuery(function($){ + $.datepicker.regional['bs'] = { + closeText: 'Zatvori', + prevText: '<', + nextText: '>', + currentText: 'Danas', + monthNames: ['Januar','Februar','Mart','April','Maj','Juni', + 'Juli','August','Septembar','Oktobar','Novembar','Decembar'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Nedelja','Ponedeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], + dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + weekHeader: 'Wk', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['bs']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-ca.js b/js/ui/i18n/jquery.ui.datepicker-ca.js new file mode 100644 index 0000000000..b128e699ef --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-ca.js @@ -0,0 +1,23 @@ +/* Inicialització en català per a l'extenció 'calendar' per jQuery. */ +/* Writers: (joan.leon@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['ca'] = { + closeText: 'Tancar', + prevText: '<Ant', + nextText: 'Seg>', + currentText: 'Avui', + monthNames: ['Gener','Febrer','Març','Abril','Maig','Juny', + 'Juliol','Agost','Setembre','Octubre','Novembre','Desembre'], + monthNamesShort: ['Gen','Feb','Mar','Abr','Mai','Jun', + 'Jul','Ago','Set','Oct','Nov','Des'], + dayNames: ['Diumenge','Dilluns','Dimarts','Dimecres','Dijous','Divendres','Dissabte'], + dayNamesShort: ['Dug','Dln','Dmt','Dmc','Djs','Dvn','Dsb'], + dayNamesMin: ['Dg','Dl','Dt','Dc','Dj','Dv','Ds'], + weekHeader: 'Sm', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ca']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-cs.js b/js/ui/i18n/jquery.ui.datepicker-cs.js new file mode 100644 index 0000000000..c3c07ea672 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-cs.js @@ -0,0 +1,23 @@ +/* Czech initialisation for the jQuery UI date picker plugin. */ +/* Written by Tomas Muller (tomas@tomas-muller.net). */ +jQuery(function($){ + $.datepicker.regional['cs'] = { + closeText: 'Zavřít', + prevText: '<Dříve', + nextText: 'Později>', + currentText: 'Nyní', + monthNames: ['leden','únor','březen','duben','květen','červen', + 'červenec','srpen','září','říjen','listopad','prosinec'], + monthNamesShort: ['led','úno','bře','dub','kvě','čer', + 'čvc','srp','zář','říj','lis','pro'], + dayNames: ['neděle', 'pondělí', 'úterý', 'středa', 'čtvrtek', 'pátek', 'sobota'], + dayNamesShort: ['ne', 'po', 'út', 'st', 'čt', 'pá', 'so'], + dayNamesMin: ['ne','po','út','st','čt','pá','so'], + weekHeader: 'Týd', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['cs']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-da.js b/js/ui/i18n/jquery.ui.datepicker-da.js new file mode 100644 index 0000000000..4a99a5833b --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-da.js @@ -0,0 +1,23 @@ +/* Danish initialisation for the jQuery UI date picker plugin. */ +/* Written by Jan Christensen ( deletestuff@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['da'] = { + closeText: 'Luk', + prevText: '<Forrige', + nextText: 'Næste>', + currentText: 'Idag', + monthNames: ['Januar','Februar','Marts','April','Maj','Juni', + 'Juli','August','September','Oktober','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Søndag','Mandag','Tirsdag','Onsdag','Torsdag','Fredag','Lørdag'], + dayNamesShort: ['Søn','Man','Tir','Ons','Tor','Fre','Lør'], + dayNamesMin: ['Sø','Ma','Ti','On','To','Fr','Lø'], + weekHeader: 'Uge', + dateFormat: 'dd-mm-yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['da']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-de.js b/js/ui/i18n/jquery.ui.datepicker-de.js new file mode 100644 index 0000000000..ac2d516aa9 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-de.js @@ -0,0 +1,23 @@ +/* German initialisation for the jQuery UI date picker plugin. */ +/* Written by Milian Wolff (mail@milianw.de). */ +jQuery(function($){ + $.datepicker.regional['de'] = { + closeText: 'schließen', + prevText: '<zurück', + nextText: 'Vor>', + currentText: 'heute', + monthNames: ['Januar','Februar','März','April','Mai','Juni', + 'Juli','August','September','Oktober','November','Dezember'], + monthNamesShort: ['Jan','Feb','Mär','Apr','Mai','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dez'], + dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'], + dayNamesShort: ['So','Mo','Di','Mi','Do','Fr','Sa'], + dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'], + weekHeader: 'Wo', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['de']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-el.js b/js/ui/i18n/jquery.ui.datepicker-el.js new file mode 100644 index 0000000000..9542769d9a --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-el.js @@ -0,0 +1,23 @@ +/* Greek (el) initialisation for the jQuery UI date picker plugin. */ +/* Written by Alex Cicovic (http://www.alexcicovic.com) */ +jQuery(function($){ + $.datepicker.regional['el'] = { + closeText: 'Κλείσιμο', + prevText: 'Προηγούμενος', + nextText: 'Επόμενος', + currentText: 'Τρέχων Μήνας', + monthNames: ['Ιανουάριος','Φεβρουάριος','Μάρτιος','Απρίλιος','Μάιος','Ιούνιος', + 'Ιούλιος','Αύγουστος','Σεπτέμβριος','Οκτώβριος','Νοέμβριος','Δεκέμβριος'], + monthNamesShort: ['Ιαν','Φεβ','Μαρ','Απρ','Μαι','Ιουν', + 'Ιουλ','Αυγ','Σεπ','Οκτ','Νοε','Δεκ'], + dayNames: ['Κυριακή','Δευτέρα','Τρίτη','Τετάρτη','Πέμπτη','Παρασκευή','Σάββατο'], + dayNamesShort: ['Κυρ','Δευ','Τρι','Τετ','Πεμ','Παρ','Σαβ'], + dayNamesMin: ['Κυ','Δε','Τρ','Τε','Πε','Πα','Σα'], + weekHeader: 'Εβδ', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['el']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-en-AU.js b/js/ui/i18n/jquery.ui.datepicker-en-AU.js new file mode 100644 index 0000000000..c1a1020a14 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-en-AU.js @@ -0,0 +1,23 @@ +/* English/Australia initialisation for the jQuery UI date picker plugin. */ +/* Based on the en-GB initialisation. */ +jQuery(function($){ + $.datepicker.regional['en-AU'] = { + closeText: 'Done', + prevText: 'Prev', + nextText: 'Next', + currentText: 'Today', + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['en-AU']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-en-GB.js b/js/ui/i18n/jquery.ui.datepicker-en-GB.js new file mode 100644 index 0000000000..aac7b6195c --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-en-GB.js @@ -0,0 +1,23 @@ +/* English/UK initialisation for the jQuery UI date picker plugin. */ +/* Written by Stuart. */ +jQuery(function($){ + $.datepicker.regional['en-GB'] = { + closeText: 'Done', + prevText: 'Prev', + nextText: 'Next', + currentText: 'Today', + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['en-GB']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-en-NZ.js b/js/ui/i18n/jquery.ui.datepicker-en-NZ.js new file mode 100644 index 0000000000..7819df0528 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-en-NZ.js @@ -0,0 +1,23 @@ +/* English/New Zealand initialisation for the jQuery UI date picker plugin. */ +/* Based on the en-GB initialisation. */ +jQuery(function($){ + $.datepicker.regional['en-NZ'] = { + closeText: 'Done', + prevText: 'Prev', + nextText: 'Next', + currentText: 'Today', + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['en-NZ']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-eo.js b/js/ui/i18n/jquery.ui.datepicker-eo.js new file mode 100644 index 0000000000..ba5715687b --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-eo.js @@ -0,0 +1,23 @@ +/* Esperanto initialisation for the jQuery UI date picker plugin. */ +/* Written by Olivier M. (olivierweb@ifrance.com). */ +jQuery(function($){ + $.datepicker.regional['eo'] = { + closeText: 'Fermi', + prevText: '<Anta', + nextText: 'Sekv>', + currentText: 'Nuna', + monthNames: ['Januaro','Februaro','Marto','Aprilo','Majo','Junio', + 'Julio','Aŭgusto','Septembro','Oktobro','Novembro','Decembro'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aŭg','Sep','Okt','Nov','Dec'], + dayNames: ['Dimanĉo','Lundo','Mardo','Merkredo','Ĵaŭdo','Vendredo','Sabato'], + dayNamesShort: ['Dim','Lun','Mar','Mer','Ĵaŭ','Ven','Sab'], + dayNamesMin: ['Di','Lu','Ma','Me','Ĵa','Ve','Sa'], + weekHeader: 'Sb', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['eo']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-es.js b/js/ui/i18n/jquery.ui.datepicker-es.js new file mode 100644 index 0000000000..a02133de3f --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-es.js @@ -0,0 +1,23 @@ +/* Inicialización en español para la extensión 'UI date picker' para jQuery. */ +/* Traducido por Vester (xvester@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['es'] = { + closeText: 'Cerrar', + prevText: '<Ant', + nextText: 'Sig>', + currentText: 'Hoy', + monthNames: ['Enero','Febrero','Marzo','Abril','Mayo','Junio', + 'Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre'], + monthNamesShort: ['Ene','Feb','Mar','Abr','May','Jun', + 'Jul','Ago','Sep','Oct','Nov','Dic'], + dayNames: ['Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado'], + dayNamesShort: ['Dom','Lun','Mar','Mié','Juv','Vie','Sáb'], + dayNamesMin: ['Do','Lu','Ma','Mi','Ju','Vi','Sá'], + weekHeader: 'Sm', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['es']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-et.js b/js/ui/i18n/jquery.ui.datepicker-et.js new file mode 100644 index 0000000000..f97311f31a --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-et.js @@ -0,0 +1,23 @@ +/* Estonian initialisation for the jQuery UI date picker plugin. */ +/* Written by Mart Sõmermaa (mrts.pydev at gmail com). */ +jQuery(function($){ + $.datepicker.regional['et'] = { + closeText: 'Sulge', + prevText: 'Eelnev', + nextText: 'Järgnev', + currentText: 'Täna', + monthNames: ['Jaanuar','Veebruar','Märts','Aprill','Mai','Juuni', + 'Juuli','August','September','Oktoober','November','Detsember'], + monthNamesShort: ['Jaan', 'Veebr', 'Märts', 'Apr', 'Mai', 'Juuni', + 'Juuli', 'Aug', 'Sept', 'Okt', 'Nov', 'Dets'], + dayNames: ['Pühapäev', 'Esmaspäev', 'Teisipäev', 'Kolmapäev', 'Neljapäev', 'Reede', 'Laupäev'], + dayNamesShort: ['Pühap', 'Esmasp', 'Teisip', 'Kolmap', 'Neljap', 'Reede', 'Laup'], + dayNamesMin: ['P','E','T','K','N','R','L'], + weekHeader: 'Sm', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['et']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-eu.js b/js/ui/i18n/jquery.ui.datepicker-eu.js new file mode 100644 index 0000000000..9ba6ee22e3 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-eu.js @@ -0,0 +1,23 @@ +/* Euskarako oinarria 'UI date picker' jquery-ko extentsioarentzat */ +/* Karrikas-ek itzulia (karrikas@karrikas.com) */ +jQuery(function($){ + $.datepicker.regional['eu'] = { + closeText: 'Egina', + prevText: '<Aur', + nextText: 'Hur>', + currentText: 'Gaur', + monthNames: ['Urtarrila','Otsaila','Martxoa','Apirila','Maiatza','Ekaina', + 'Uztaila','Abuztua','Iraila','Urria','Azaroa','Abendua'], + monthNamesShort: ['Urt','Ots','Mar','Api','Mai','Eka', + 'Uzt','Abu','Ira','Urr','Aza','Abe'], + dayNames: ['Igandea','Astelehena','Asteartea','Asteazkena','Osteguna','Ostirala','Larunbata'], + dayNamesShort: ['Iga','Ast','Ast','Ast','Ost','Ost','Lar'], + dayNamesMin: ['Ig','As','As','As','Os','Os','La'], + weekHeader: 'Wk', + dateFormat: 'yy/mm/dd', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['eu']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-fa.js b/js/ui/i18n/jquery.ui.datepicker-fa.js new file mode 100644 index 0000000000..adb3709fed --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-fa.js @@ -0,0 +1,23 @@ +/* Persian (Farsi) Translation for the jQuery UI date picker plugin. */ +/* Javad Mowlanezhad -- jmowla@gmail.com */ +/* Jalali calendar should supported soon! (Its implemented but I have to test it) */ +jQuery(function($) { + $.datepicker.regional['fa'] = { + closeText: 'بستن', + prevText: '<قبلي', + nextText: 'بعدي>', + currentText: 'امروز', + monthNames: ['فروردين','ارديبهشت','خرداد','تير','مرداد','شهريور', + 'مهر','آبان','آذر','دي','بهمن','اسفند'], + monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'], + dayNames: ['يکشنبه','دوشنبه','سه‌شنبه','چهارشنبه','پنجشنبه','جمعه','شنبه'], + dayNamesShort: ['ي','د','س','چ','پ','ج', 'ش'], + dayNamesMin: ['ي','د','س','چ','پ','ج', 'ش'], + weekHeader: 'هف', + dateFormat: 'yy/mm/dd', + firstDay: 6, + isRTL: true, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['fa']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-fi.js b/js/ui/i18n/jquery.ui.datepicker-fi.js new file mode 100644 index 0000000000..e1f25fd84c --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-fi.js @@ -0,0 +1,23 @@ +/* Finnish initialisation for the jQuery UI date picker plugin. */ +/* Written by Harri Kilpi� (harrikilpio@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['fi'] = { + closeText: 'Sulje', + prevText: '«Edellinen', + nextText: 'Seuraava»', + currentText: 'Tänään', + monthNames: ['Tammikuu','Helmikuu','Maaliskuu','Huhtikuu','Toukokuu','Kesäkuu', + 'Heinäkuu','Elokuu','Syyskuu','Lokakuu','Marraskuu','Joulukuu'], + monthNamesShort: ['Tammi','Helmi','Maalis','Huhti','Touko','Kesä', + 'Heinä','Elo','Syys','Loka','Marras','Joulu'], + dayNamesShort: ['Su','Ma','Ti','Ke','To','Pe','Su'], + dayNames: ['Sunnuntai','Maanantai','Tiistai','Keskiviikko','Torstai','Perjantai','Lauantai'], + dayNamesMin: ['Su','Ma','Ti','Ke','To','Pe','La'], + weekHeader: 'Vk', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['fi']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-fo.js b/js/ui/i18n/jquery.ui.datepicker-fo.js new file mode 100644 index 0000000000..c14362216e --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-fo.js @@ -0,0 +1,23 @@ +/* Faroese initialisation for the jQuery UI date picker plugin */ +/* Written by Sverri Mohr Olsen, sverrimo@gmail.com */ +jQuery(function($){ + $.datepicker.regional['fo'] = { + closeText: 'Lat aftur', + prevText: '<Fyrra', + nextText: 'Næsta>', + currentText: 'Í dag', + monthNames: ['Januar','Februar','Mars','Apríl','Mei','Juni', + 'Juli','August','September','Oktober','November','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', + 'Jul','Aug','Sep','Okt','Nov','Des'], + dayNames: ['Sunnudagur','Mánadagur','Týsdagur','Mikudagur','Hósdagur','Fríggjadagur','Leyardagur'], + dayNamesShort: ['Sun','Mán','Týs','Mik','Hós','Frí','Ley'], + dayNamesMin: ['Su','Má','Tý','Mi','Hó','Fr','Le'], + weekHeader: 'Vk', + dateFormat: 'dd-mm-yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['fo']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-fr-CH.js b/js/ui/i18n/jquery.ui.datepicker-fr-CH.js new file mode 100644 index 0000000000..38212d5482 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-fr-CH.js @@ -0,0 +1,23 @@ +/* Swiss-French initialisation for the jQuery UI date picker plugin. */ +/* Written Martin Voelkle (martin.voelkle@e-tc.ch). */ +jQuery(function($){ + $.datepicker.regional['fr-CH'] = { + closeText: 'Fermer', + prevText: '<Préc', + nextText: 'Suiv>', + currentText: 'Courant', + monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', + 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], + monthNamesShort: ['Jan','Fév','Mar','Avr','Mai','Jun', + 'Jul','Aoû','Sep','Oct','Nov','Déc'], + dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], + dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'], + dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'], + weekHeader: 'Sm', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['fr-CH']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-fr.js b/js/ui/i18n/jquery.ui.datepicker-fr.js new file mode 100644 index 0000000000..74ea1c231a --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-fr.js @@ -0,0 +1,25 @@ +/* French initialisation for the jQuery UI date picker plugin. */ +/* Written by Keith Wood (kbwood{at}iinet.com.au), + Stéphane Nahmani (sholby@sholby.net), + Stéphane Raimbault */ +jQuery(function($){ + $.datepicker.regional['fr'] = { + closeText: 'Fermer', + prevText: 'Précédent', + nextText: 'Suivant', + currentText: 'Aujourd\'hui', + monthNames: ['Janvier','Février','Mars','Avril','Mai','Juin', + 'Juillet','Août','Septembre','Octobre','Novembre','Décembre'], + monthNamesShort: ['Janv.','Févr.','Mars','Avril','Mai','Juin', + 'Juil.','Août','Sept.','Oct.','Nov.','Déc.'], + dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'], + dayNamesShort: ['Dim.','Lun.','Mar.','Mer.','Jeu.','Ven.','Sam.'], + dayNamesMin: ['D','L','M','M','J','V','S'], + weekHeader: 'Sem.', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['fr']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-gl.js b/js/ui/i18n/jquery.ui.datepicker-gl.js new file mode 100644 index 0000000000..278403e8f1 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-gl.js @@ -0,0 +1,23 @@ +/* Galician localization for 'UI date picker' jQuery extension. */ +/* Translated by Jorge Barreiro . */ +jQuery(function($){ + $.datepicker.regional['gl'] = { + closeText: 'Pechar', + prevText: '<Ant', + nextText: 'Seg>', + currentText: 'Hoxe', + monthNames: ['Xaneiro','Febreiro','Marzo','Abril','Maio','Xuño', + 'Xullo','Agosto','Setembro','Outubro','Novembro','Decembro'], + monthNamesShort: ['Xan','Feb','Mar','Abr','Mai','Xuñ', + 'Xul','Ago','Set','Out','Nov','Dec'], + dayNames: ['Domingo','Luns','Martes','Mércores','Xoves','Venres','Sábado'], + dayNamesShort: ['Dom','Lun','Mar','Mér','Xov','Ven','Sáb'], + dayNamesMin: ['Do','Lu','Ma','Mé','Xo','Ve','Sá'], + weekHeader: 'Sm', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['gl']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-he.js b/js/ui/i18n/jquery.ui.datepicker-he.js new file mode 100644 index 0000000000..3b3dc387f2 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-he.js @@ -0,0 +1,23 @@ +/* Hebrew initialisation for the UI Datepicker extension. */ +/* Written by Amir Hardon (ahardon at gmail dot com). */ +jQuery(function($){ + $.datepicker.regional['he'] = { + closeText: 'סגור', + prevText: '<הקודם', + nextText: 'הבא>', + currentText: 'היום', + monthNames: ['ינואר','פברואר','מרץ','אפריל','מאי','יוני', + 'יולי','אוגוסט','ספטמבר','אוקטובר','נובמבר','דצמבר'], + monthNamesShort: ['1','2','3','4','5','6', + '7','8','9','10','11','12'], + dayNames: ['ראשון','שני','שלישי','רביעי','חמישי','שישי','שבת'], + dayNamesShort: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], + dayNamesMin: ['א\'','ב\'','ג\'','ד\'','ה\'','ו\'','שבת'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: true, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['he']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-hr.js b/js/ui/i18n/jquery.ui.datepicker-hr.js new file mode 100644 index 0000000000..0285c1aa9b --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-hr.js @@ -0,0 +1,23 @@ +/* Croatian i18n for the jQuery UI date picker plugin. */ +/* Written by Vjekoslav Nesek. */ +jQuery(function($){ + $.datepicker.regional['hr'] = { + closeText: 'Zatvori', + prevText: '<', + nextText: '>', + currentText: 'Danas', + monthNames: ['Siječanj','Veljača','Ožujak','Travanj','Svibanj','Lipanj', + 'Srpanj','Kolovoz','Rujan','Listopad','Studeni','Prosinac'], + monthNamesShort: ['Sij','Velj','Ožu','Tra','Svi','Lip', + 'Srp','Kol','Ruj','Lis','Stu','Pro'], + dayNames: ['Nedjelja','Ponedjeljak','Utorak','Srijeda','Četvrtak','Petak','Subota'], + dayNamesShort: ['Ned','Pon','Uto','Sri','Čet','Pet','Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + weekHeader: 'Tje', + dateFormat: 'dd.mm.yy.', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['hr']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-hu.js b/js/ui/i18n/jquery.ui.datepicker-hu.js new file mode 100644 index 0000000000..46e63f59b2 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-hu.js @@ -0,0 +1,23 @@ +/* Hungarian initialisation for the jQuery UI date picker plugin. */ +/* Written by Istvan Karaszi (jquery@spam.raszi.hu). */ +jQuery(function($){ + $.datepicker.regional['hu'] = { + closeText: 'bezárás', + prevText: '« vissza', + nextText: 'előre »', + currentText: 'ma', + monthNames: ['Január', 'Február', 'Március', 'Április', 'Május', 'Június', + 'Július', 'Augusztus', 'Szeptember', 'Október', 'November', 'December'], + monthNamesShort: ['Jan', 'Feb', 'Már', 'Ápr', 'Máj', 'Jún', + 'Júl', 'Aug', 'Szep', 'Okt', 'Nov', 'Dec'], + dayNames: ['Vasárnap', 'Hétfö', 'Kedd', 'Szerda', 'Csütörtök', 'Péntek', 'Szombat'], + dayNamesShort: ['Vas', 'Hét', 'Ked', 'Sze', 'Csü', 'Pén', 'Szo'], + dayNamesMin: ['V', 'H', 'K', 'Sze', 'Cs', 'P', 'Szo'], + weekHeader: 'Hé', + dateFormat: 'yy-mm-dd', + firstDay: 1, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['hu']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-hy.js b/js/ui/i18n/jquery.ui.datepicker-hy.js new file mode 100644 index 0000000000..c6cc1946c4 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-hy.js @@ -0,0 +1,23 @@ +/* Armenian(UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Levon Zakaryan (levon.zakaryan@gmail.com)*/ +jQuery(function($){ + $.datepicker.regional['hy'] = { + closeText: 'Փակել', + prevText: '<Նախ.', + nextText: 'Հաջ.>', + currentText: 'Այսօր', + monthNames: ['Հունվար','Փետրվար','Մարտ','Ապրիլ','Մայիս','Հունիս', + 'Հուլիս','Օգոստոս','Սեպտեմբեր','Հոկտեմբեր','Նոյեմբեր','Դեկտեմբեր'], + monthNamesShort: ['Հունվ','Փետր','Մարտ','Ապր','Մայիս','Հունիս', + 'Հուլ','Օգս','Սեպ','Հոկ','Նոյ','Դեկ'], + dayNames: ['կիրակի','եկուշաբթի','երեքշաբթի','չորեքշաբթի','հինգշաբթի','ուրբաթ','շաբաթ'], + dayNamesShort: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], + dayNamesMin: ['կիր','երկ','երք','չրք','հնգ','ուրբ','շբթ'], + weekHeader: 'ՇԲՏ', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['hy']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-id.js b/js/ui/i18n/jquery.ui.datepicker-id.js new file mode 100644 index 0000000000..c626fbb7b8 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-id.js @@ -0,0 +1,23 @@ +/* Indonesian initialisation for the jQuery UI date picker plugin. */ +/* Written by Deden Fathurahman (dedenf@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['id'] = { + closeText: 'Tutup', + prevText: '<mundur', + nextText: 'maju>', + currentText: 'hari ini', + monthNames: ['Januari','Februari','Maret','April','Mei','Juni', + 'Juli','Agustus','September','Oktober','Nopember','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mei','Jun', + 'Jul','Agus','Sep','Okt','Nop','Des'], + dayNames: ['Minggu','Senin','Selasa','Rabu','Kamis','Jumat','Sabtu'], + dayNamesShort: ['Min','Sen','Sel','Rab','kam','Jum','Sab'], + dayNamesMin: ['Mg','Sn','Sl','Rb','Km','jm','Sb'], + weekHeader: 'Mg', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['id']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-is.js b/js/ui/i18n/jquery.ui.datepicker-is.js new file mode 100644 index 0000000000..c53235a49e --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-is.js @@ -0,0 +1,23 @@ +/* Icelandic initialisation for the jQuery UI date picker plugin. */ +/* Written by Haukur H. Thorsson (haukur@eskill.is). */ +jQuery(function($){ + $.datepicker.regional['is'] = { + closeText: 'Loka', + prevText: '< Fyrri', + nextText: 'Næsti >', + currentText: 'Í dag', + monthNames: ['Janúar','Febrúar','Mars','Apríl','Maí','Júní', + 'Júlí','Ágúst','September','Október','Nóvember','Desember'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maí','Jún', + 'Júl','Ágú','Sep','Okt','Nóv','Des'], + dayNames: ['Sunnudagur','Mánudagur','Þriðjudagur','Miðvikudagur','Fimmtudagur','Föstudagur','Laugardagur'], + dayNamesShort: ['Sun','Mán','Þri','Mið','Fim','Fös','Lau'], + dayNamesMin: ['Su','Má','Þr','Mi','Fi','Fö','La'], + weekHeader: 'Vika', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['is']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-it.js b/js/ui/i18n/jquery.ui.datepicker-it.js new file mode 100644 index 0000000000..59da2df671 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-it.js @@ -0,0 +1,23 @@ +/* Italian initialisation for the jQuery UI date picker plugin. */ +/* Written by Antonello Pasella (antonello.pasella@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['it'] = { + closeText: 'Chiudi', + prevText: '<Prec', + nextText: 'Succ>', + currentText: 'Oggi', + monthNames: ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno', + 'Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'], + monthNamesShort: ['Gen','Feb','Mar','Apr','Mag','Giu', + 'Lug','Ago','Set','Ott','Nov','Dic'], + dayNames: ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'], + dayNamesShort: ['Dom','Lun','Mar','Mer','Gio','Ven','Sab'], + dayNamesMin: ['Do','Lu','Ma','Me','Gi','Ve','Sa'], + weekHeader: 'Sm', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['it']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-ja.js b/js/ui/i18n/jquery.ui.datepicker-ja.js new file mode 100644 index 0000000000..79cd827c76 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-ja.js @@ -0,0 +1,23 @@ +/* Japanese initialisation for the jQuery UI date picker plugin. */ +/* Written by Kentaro SATO (kentaro@ranvis.com). */ +jQuery(function($){ + $.datepicker.regional['ja'] = { + closeText: '閉じる', + prevText: '<前', + nextText: '次>', + currentText: '今日', + monthNames: ['1月','2月','3月','4月','5月','6月', + '7月','8月','9月','10月','11月','12月'], + monthNamesShort: ['1月','2月','3月','4月','5月','6月', + '7月','8月','9月','10月','11月','12月'], + dayNames: ['日曜日','月曜日','火曜日','水曜日','木曜日','金曜日','土曜日'], + dayNamesShort: ['日','月','火','水','木','金','土'], + dayNamesMin: ['日','月','火','水','木','金','土'], + weekHeader: '週', + dateFormat: 'yy/mm/dd', + firstDay: 0, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: '年'}; + $.datepicker.setDefaults($.datepicker.regional['ja']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-ko.js b/js/ui/i18n/jquery.ui.datepicker-ko.js new file mode 100644 index 0000000000..5b3531652d --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-ko.js @@ -0,0 +1,23 @@ +/* Korean initialisation for the jQuery calendar extension. */ +/* Written by DaeKwon Kang (ncrash.dk@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['ko'] = { + closeText: '닫기', + prevText: '이전달', + nextText: '다음달', + currentText: '오늘', + monthNames: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)', + '7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'], + monthNamesShort: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)', + '7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'], + dayNames: ['일','월','화','수','목','금','토'], + dayNamesShort: ['일','월','화','수','목','금','토'], + dayNamesMin: ['일','월','화','수','목','금','토'], + weekHeader: 'Wk', + dateFormat: 'yy-mm-dd', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '년'}; + $.datepicker.setDefaults($.datepicker.regional['ko']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-kz.js b/js/ui/i18n/jquery.ui.datepicker-kz.js new file mode 100644 index 0000000000..f1f897b006 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-kz.js @@ -0,0 +1,23 @@ +/* Kazakh (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Dmitriy Karasyov (dmitriy.karasyov@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['kz'] = { + closeText: 'Жабу', + prevText: '<Алдыңғы', + nextText: 'Келесі>', + currentText: 'Бүгін', + monthNames: ['Қаңтар','Ақпан','Наурыз','Сәуір','Мамыр','Маусым', + 'Шілде','Тамыз','Қыркүйек','Қазан','Қараша','Желтоқсан'], + monthNamesShort: ['Қаң','Ақп','Нау','Сәу','Мам','Мау', + 'Шіл','Там','Қыр','Қаз','Қар','Жел'], + dayNames: ['Жексенбі','Дүйсенбі','Сейсенбі','Сәрсенбі','Бейсенбі','Жұма','Сенбі'], + dayNamesShort: ['жкс','дсн','ссн','срс','бсн','жма','снб'], + dayNamesMin: ['Жк','Дс','Сс','Ср','Бс','Жм','Сн'], + weekHeader: 'Не', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['kz']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-lt.js b/js/ui/i18n/jquery.ui.datepicker-lt.js new file mode 100644 index 0000000000..67d5119ca7 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-lt.js @@ -0,0 +1,23 @@ +/* Lithuanian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* @author Arturas Paleicikas */ +jQuery(function($){ + $.datepicker.regional['lt'] = { + closeText: 'Uždaryti', + prevText: '<Atgal', + nextText: 'Pirmyn>', + currentText: 'Šiandien', + monthNames: ['Sausis','Vasaris','Kovas','Balandis','Gegužė','Birželis', + 'Liepa','Rugpjūtis','Rugsėjis','Spalis','Lapkritis','Gruodis'], + monthNamesShort: ['Sau','Vas','Kov','Bal','Geg','Bir', + 'Lie','Rugp','Rugs','Spa','Lap','Gru'], + dayNames: ['sekmadienis','pirmadienis','antradienis','trečiadienis','ketvirtadienis','penktadienis','šeštadienis'], + dayNamesShort: ['sek','pir','ant','tre','ket','pen','šeš'], + dayNamesMin: ['Se','Pr','An','Tr','Ke','Pe','Še'], + weekHeader: 'Wk', + dateFormat: 'yy-mm-dd', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['lt']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-lv.js b/js/ui/i18n/jquery.ui.datepicker-lv.js new file mode 100644 index 0000000000..003934e721 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-lv.js @@ -0,0 +1,23 @@ +/* Latvian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* @author Arturas Paleicikas */ +jQuery(function($){ + $.datepicker.regional['lv'] = { + closeText: 'Aizvērt', + prevText: 'Iepr', + nextText: 'Nāka', + currentText: 'Šodien', + monthNames: ['Janvāris','Februāris','Marts','Aprīlis','Maijs','Jūnijs', + 'Jūlijs','Augusts','Septembris','Oktobris','Novembris','Decembris'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jūn', + 'Jūl','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['svētdiena','pirmdiena','otrdiena','trešdiena','ceturtdiena','piektdiena','sestdiena'], + dayNamesShort: ['svt','prm','otr','tre','ctr','pkt','sst'], + dayNamesMin: ['Sv','Pr','Ot','Tr','Ct','Pk','Ss'], + weekHeader: 'Nav', + dateFormat: 'dd-mm-yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['lv']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-ml.js b/js/ui/i18n/jquery.ui.datepicker-ml.js new file mode 100644 index 0000000000..753dba411d --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-ml.js @@ -0,0 +1,23 @@ +/* Malayalam (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Saji Nediyanchath (saji89@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['ml'] = { + closeText: 'ശരി', + prevText: 'മുന്നത്തെ', + nextText: 'അടുത്തത് ', + currentText: 'ഇന്ന്', + monthNames: ['ജനുവരി','ഫെബ്രുവരി','മാര്‍ച്ച്','ഏപ്രില്‍','മേയ്','ജൂണ്‍', + 'ജൂലൈ','ആഗസ്റ്റ്','സെപ്റ്റംബര്‍','ഒക്ടോബര്‍','നവംബര്‍','ഡിസംബര്‍'], + monthNamesShort: ['ജനു', 'ഫെബ്', 'മാര്‍', 'ഏപ്രി', 'മേയ്', 'ജൂണ്‍', + 'ജൂലാ', 'ആഗ', 'സെപ്', 'ഒക്ടോ', 'നവം', 'ഡിസ'], + dayNames: ['ഞായര്‍', 'തിങ്കള്‍', 'ചൊവ്വ', 'ബുധന്‍', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], + dayNamesShort: ['ഞായ', 'തിങ്ക', 'ചൊവ്വ', 'ബുധ', 'വ്യാഴം', 'വെള്ളി', 'ശനി'], + dayNamesMin: ['ഞാ','തി','ചൊ','ബു','വ്യാ','വെ','ശ'], + weekHeader: 'ആ', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ml']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-ms.js b/js/ui/i18n/jquery.ui.datepicker-ms.js new file mode 100644 index 0000000000..e953ac04f1 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-ms.js @@ -0,0 +1,23 @@ +/* Malaysian initialisation for the jQuery UI date picker plugin. */ +/* Written by Mohd Nawawi Mohamad Jamili (nawawi@ronggeng.net). */ +jQuery(function($){ + $.datepicker.regional['ms'] = { + closeText: 'Tutup', + prevText: '<Sebelum', + nextText: 'Selepas>', + currentText: 'hari ini', + monthNames: ['Januari','Februari','Mac','April','Mei','Jun', + 'Julai','Ogos','September','Oktober','November','Disember'], + monthNamesShort: ['Jan','Feb','Mac','Apr','Mei','Jun', + 'Jul','Ogo','Sep','Okt','Nov','Dis'], + dayNames: ['Ahad','Isnin','Selasa','Rabu','Khamis','Jumaat','Sabtu'], + dayNamesShort: ['Aha','Isn','Sel','Rab','kha','Jum','Sab'], + dayNamesMin: ['Ah','Is','Se','Ra','Kh','Ju','Sa'], + weekHeader: 'Mg', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ms']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-nl.js b/js/ui/i18n/jquery.ui.datepicker-nl.js new file mode 100644 index 0000000000..663d6bb26b --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-nl.js @@ -0,0 +1,23 @@ +/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Mathias Bynens */ +jQuery(function($){ + $.datepicker.regional.nl = { + closeText: 'Sluiten', + prevText: '←', + nextText: '→', + currentText: 'Vandaag', + monthNames: ['januari', 'februari', 'maart', 'april', 'mei', 'juni', + 'juli', 'augustus', 'september', 'oktober', 'november', 'december'], + monthNamesShort: ['jan', 'feb', 'maa', 'apr', 'mei', 'jun', + 'jul', 'aug', 'sep', 'okt', 'nov', 'dec'], + dayNames: ['zondag', 'maandag', 'dinsdag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'], + dayNamesShort: ['zon', 'maa', 'din', 'woe', 'don', 'vri', 'zat'], + dayNamesMin: ['zo', 'ma', 'di', 'wo', 'do', 'vr', 'za'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional.nl); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-no.js b/js/ui/i18n/jquery.ui.datepicker-no.js new file mode 100644 index 0000000000..2507043a3f --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-no.js @@ -0,0 +1,23 @@ +/* Norwegian initialisation for the jQuery UI date picker plugin. */ +/* Written by Naimdjon Takhirov (naimdjon@gmail.com). */ + +jQuery(function($){ + $.datepicker.regional['no'] = { + closeText: 'Lukk', + prevText: '«Forrige', + nextText: 'Neste»', + currentText: 'I dag', + monthNames: ['januar','februar','mars','april','mai','juni','juli','august','september','oktober','november','desember'], + monthNamesShort: ['jan','feb','mar','apr','mai','jun','jul','aug','sep','okt','nov','des'], + dayNamesShort: ['søn','man','tir','ons','tor','fre','lør'], + dayNames: ['søndag','mandag','tirsdag','onsdag','torsdag','fredag','lørdag'], + dayNamesMin: ['sø','ma','ti','on','to','fr','lø'], + weekHeader: 'Uke', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '' + }; + $.datepicker.setDefaults($.datepicker.regional['no']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-pl.js b/js/ui/i18n/jquery.ui.datepicker-pl.js new file mode 100644 index 0000000000..61fa29ccd8 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-pl.js @@ -0,0 +1,23 @@ +/* Polish initialisation for the jQuery UI date picker plugin. */ +/* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['pl'] = { + closeText: 'Zamknij', + prevText: '<Poprzedni', + nextText: 'Następny>', + currentText: 'Dziś', + monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec', + 'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'], + monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze', + 'Lip','Sie','Wrz','Pa','Lis','Gru'], + dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'], + dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'], + dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'], + weekHeader: 'Tydz', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['pl']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-pt-BR.js b/js/ui/i18n/jquery.ui.datepicker-pt-BR.js new file mode 100644 index 0000000000..3cc8c796c8 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-pt-BR.js @@ -0,0 +1,23 @@ +/* Brazilian initialisation for the jQuery UI date picker plugin. */ +/* Written by Leonildo Costa Silva (leocsilva@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['pt-BR'] = { + closeText: 'Fechar', + prevText: '<Anterior', + nextText: 'Próximo>', + currentText: 'Hoje', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', + 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', + 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + weekHeader: 'Sm', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['pt-BR']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-pt.js b/js/ui/i18n/jquery.ui.datepicker-pt.js new file mode 100644 index 0000000000..f09f5aeb00 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-pt.js @@ -0,0 +1,22 @@ +/* Portuguese initialisation for the jQuery UI date picker plugin. */ +jQuery(function($){ + $.datepicker.regional['pt'] = { + closeText: 'Fechar', + prevText: '<Anterior', + nextText: 'Seguinte', + currentText: 'Hoje', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho', + 'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', + 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda-feira','Terça-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + weekHeader: 'Sem', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['pt']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-rm.js b/js/ui/i18n/jquery.ui.datepicker-rm.js new file mode 100644 index 0000000000..cf03cd4c1a --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-rm.js @@ -0,0 +1,21 @@ +/* Romansh initialisation for the jQuery UI date picker plugin. */ +/* Written by Yvonne Gienal (yvonne.gienal@educa.ch). */ +jQuery(function($){ + $.datepicker.regional['rm'] = { + closeText: 'Serrar', + prevText: '<Suandant', + nextText: 'Precedent>', + currentText: 'Actual', + monthNames: ['Schaner','Favrer','Mars','Avrigl','Matg','Zercladur', 'Fanadur','Avust','Settember','October','November','December'], + monthNamesShort: ['Scha','Fev','Mar','Avr','Matg','Zer', 'Fan','Avu','Sett','Oct','Nov','Dec'], + dayNames: ['Dumengia','Glindesdi','Mardi','Mesemna','Gievgia','Venderdi','Sonda'], + dayNamesShort: ['Dum','Gli','Mar','Mes','Gie','Ven','Som'], + dayNamesMin: ['Du','Gl','Ma','Me','Gi','Ve','So'], + weekHeader: 'emna', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['rm']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-ro.js b/js/ui/i18n/jquery.ui.datepicker-ro.js new file mode 100644 index 0000000000..4fe95aeac1 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-ro.js @@ -0,0 +1,26 @@ +/* Romanian initialisation for the jQuery UI date picker plugin. + * + * Written by Edmond L. (ll_edmond@walla.com) + * and Ionut G. Stan (ionut.g.stan@gmail.com) + */ +jQuery(function($){ + $.datepicker.regional['ro'] = { + closeText: 'Închide', + prevText: '« Luna precedentă', + nextText: 'Luna următoare »', + currentText: 'Azi', + monthNames: ['Ianuarie','Februarie','Martie','Aprilie','Mai','Iunie', + 'Iulie','August','Septembrie','Octombrie','Noiembrie','Decembrie'], + monthNamesShort: ['Ian', 'Feb', 'Mar', 'Apr', 'Mai', 'Iun', + 'Iul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], + dayNames: ['Duminică', 'Luni', 'Marţi', 'Miercuri', 'Joi', 'Vineri', 'Sâmbătă'], + dayNamesShort: ['Dum', 'Lun', 'Mar', 'Mie', 'Joi', 'Vin', 'Sâm'], + dayNamesMin: ['Du','Lu','Ma','Mi','Jo','Vi','Sâ'], + weekHeader: 'Săpt', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ro']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-ru.js b/js/ui/i18n/jquery.ui.datepicker-ru.js new file mode 100644 index 0000000000..50a4613523 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-ru.js @@ -0,0 +1,23 @@ +/* Russian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Andrew Stromnov (stromnov@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['ru'] = { + closeText: 'Закрыть', + prevText: '<Пред', + nextText: 'След>', + currentText: 'Сегодня', + monthNames: ['Январь','Февраль','Март','Апрель','Май','Июнь', + 'Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'], + monthNamesShort: ['Янв','Фев','Мар','Апр','Май','Июн', + 'Июл','Авг','Сен','Окт','Ноя','Дек'], + dayNames: ['воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'], + dayNamesShort: ['вск','пнд','втр','срд','чтв','птн','сбт'], + dayNamesMin: ['Вс','Пн','Вт','Ср','Чт','Пт','Сб'], + weekHeader: 'Нед', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ru']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-sk.js b/js/ui/i18n/jquery.ui.datepicker-sk.js new file mode 100644 index 0000000000..8a6771c1e0 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-sk.js @@ -0,0 +1,23 @@ +/* Slovak initialisation for the jQuery UI date picker plugin. */ +/* Written by Vojtech Rinik (vojto@hmm.sk). */ +jQuery(function($){ + $.datepicker.regional['sk'] = { + closeText: 'Zavrieť', + prevText: '<Predchádzajúci', + nextText: 'Nasledujúci>', + currentText: 'Dnes', + monthNames: ['Január','Február','Marec','Apríl','Máj','Jún', + 'Júl','August','September','Október','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Máj','Jún', + 'Júl','Aug','Sep','Okt','Nov','Dec'], + dayNames: ['Nedel\'a','Pondelok','Utorok','Streda','Štvrtok','Piatok','Sobota'], + dayNamesShort: ['Ned','Pon','Uto','Str','Štv','Pia','Sob'], + dayNamesMin: ['Ne','Po','Ut','St','Št','Pia','So'], + weekHeader: 'Ty', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['sk']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-sl.js b/js/ui/i18n/jquery.ui.datepicker-sl.js new file mode 100644 index 0000000000..516550192a --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-sl.js @@ -0,0 +1,24 @@ +/* Slovenian initialisation for the jQuery UI date picker plugin. */ +/* Written by Jaka Jancar (jaka@kubje.org). */ +/* c = č, s = š z = ž C = Č S = Š Z = Ž */ +jQuery(function($){ + $.datepicker.regional['sl'] = { + closeText: 'Zapri', + prevText: '<Prejšnji', + nextText: 'Naslednji>', + currentText: 'Trenutni', + monthNames: ['Januar','Februar','Marec','April','Maj','Junij', + 'Julij','Avgust','September','Oktober','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Avg','Sep','Okt','Nov','Dec'], + dayNames: ['Nedelja','Ponedeljek','Torek','Sreda','Četrtek','Petek','Sobota'], + dayNamesShort: ['Ned','Pon','Tor','Sre','Čet','Pet','Sob'], + dayNamesMin: ['Ne','Po','To','Sr','Če','Pe','So'], + weekHeader: 'Teden', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['sl']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-sq.js b/js/ui/i18n/jquery.ui.datepicker-sq.js new file mode 100644 index 0000000000..be84104c09 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-sq.js @@ -0,0 +1,23 @@ +/* Albanian initialisation for the jQuery UI date picker plugin. */ +/* Written by Flakron Bytyqi (flakron@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['sq'] = { + closeText: 'mbylle', + prevText: '<mbrapa', + nextText: 'Përpara>', + currentText: 'sot', + monthNames: ['Janar','Shkurt','Mars','Prill','Maj','Qershor', + 'Korrik','Gusht','Shtator','Tetor','Nëntor','Dhjetor'], + monthNamesShort: ['Jan','Shk','Mar','Pri','Maj','Qer', + 'Kor','Gus','Sht','Tet','Nën','Dhj'], + dayNames: ['E Diel','E Hënë','E Martë','E Mërkurë','E Enjte','E Premte','E Shtune'], + dayNamesShort: ['Di','Hë','Ma','Më','En','Pr','Sh'], + dayNamesMin: ['Di','Hë','Ma','Më','En','Pr','Sh'], + weekHeader: 'Ja', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['sq']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-sr-SR.js b/js/ui/i18n/jquery.ui.datepicker-sr-SR.js new file mode 100644 index 0000000000..8f8ea5e630 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-sr-SR.js @@ -0,0 +1,23 @@ +/* Serbian i18n for the jQuery UI date picker plugin. */ +/* Written by Dejan Dimić. */ +jQuery(function($){ + $.datepicker.regional['sr-SR'] = { + closeText: 'Zatvori', + prevText: '<', + nextText: '>', + currentText: 'Danas', + monthNames: ['Januar','Februar','Mart','April','Maj','Jun', + 'Jul','Avgust','Septembar','Oktobar','Novembar','Decembar'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Avg','Sep','Okt','Nov','Dec'], + dayNames: ['Nedelja','Ponedeljak','Utorak','Sreda','Četvrtak','Petak','Subota'], + dayNamesShort: ['Ned','Pon','Uto','Sre','Čet','Pet','Sub'], + dayNamesMin: ['Ne','Po','Ut','Sr','Če','Pe','Su'], + weekHeader: 'Sed', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['sr-SR']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-sr.js b/js/ui/i18n/jquery.ui.datepicker-sr.js new file mode 100644 index 0000000000..49c9b4a303 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-sr.js @@ -0,0 +1,23 @@ +/* Serbian i18n for the jQuery UI date picker plugin. */ +/* Written by Dejan Dimić. */ +jQuery(function($){ + $.datepicker.regional['sr'] = { + closeText: 'Затвори', + prevText: '<', + nextText: '>', + currentText: 'Данас', + monthNames: ['Јануар','Фебруар','Март','Април','Мај','Јун', + 'Јул','Август','Септембар','Октобар','Новембар','Децембар'], + monthNamesShort: ['Јан','Феб','Мар','Апр','Мај','Јун', + 'Јул','Авг','Сеп','Окт','Нов','Дец'], + dayNames: ['Недеља','Понедељак','Уторак','Среда','Четвртак','Петак','Субота'], + dayNamesShort: ['Нед','Пон','Уто','Сре','Чет','Пет','Суб'], + dayNamesMin: ['Не','По','Ут','Ср','Че','Пе','Су'], + weekHeader: 'Сед', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['sr']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-sv.js b/js/ui/i18n/jquery.ui.datepicker-sv.js new file mode 100644 index 0000000000..8236b62b53 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-sv.js @@ -0,0 +1,23 @@ +/* Swedish initialisation for the jQuery UI date picker plugin. */ +/* Written by Anders Ekdahl ( anders@nomadiz.se). */ +jQuery(function($){ + $.datepicker.regional['sv'] = { + closeText: 'Stäng', + prevText: '«Förra', + nextText: 'Nästa»', + currentText: 'Idag', + monthNames: ['Januari','Februari','Mars','April','Maj','Juni', + 'Juli','Augusti','September','Oktober','November','December'], + monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun', + 'Jul','Aug','Sep','Okt','Nov','Dec'], + dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'], + dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'], + dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'], + weekHeader: 'Ve', + dateFormat: 'yy-mm-dd', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['sv']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-ta.js b/js/ui/i18n/jquery.ui.datepicker-ta.js new file mode 100644 index 0000000000..91116d3877 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-ta.js @@ -0,0 +1,23 @@ +/* Tamil (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by S A Sureshkumar (saskumar@live.com). */ +jQuery(function($){ + $.datepicker.regional['ta'] = { + closeText: 'மூடு', + prevText: 'முன்னையது', + nextText: 'அடுத்தது', + currentText: 'இன்று', + monthNames: ['தை','மாசி','பங்குனி','சித்திரை','வைகாசி','ஆனி', + 'ஆடி','ஆவணி','புரட்டாசி','ஐப்பசி','கார்த்திகை','மார்கழி'], + monthNamesShort: ['தை','மாசி','பங்','சித்','வைகா','ஆனி', + 'ஆடி','ஆவ','புர','ஐப்','கார்','மார்'], + dayNames: ['ஞாயிற்றுக்கிழமை','திங்கட்கிழமை','செவ்வாய்க்கிழமை','புதன்கிழமை','வியாழக்கிழமை','வெள்ளிக்கிழமை','சனிக்கிழமை'], + dayNamesShort: ['ஞாயிறு','திங்கள்','செவ்வாய்','புதன்','வியாழன்','வெள்ளி','சனி'], + dayNamesMin: ['ஞா','தி','செ','பு','வி','வெ','ச'], + weekHeader: 'Не', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['ta']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-th.js b/js/ui/i18n/jquery.ui.datepicker-th.js new file mode 100644 index 0000000000..c090c6b81c --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-th.js @@ -0,0 +1,23 @@ +/* Thai initialisation for the jQuery UI date picker plugin. */ +/* Written by pipo (pipo@sixhead.com). */ +jQuery(function($){ + $.datepicker.regional['th'] = { + closeText: 'ปิด', + prevText: '« ย้อน', + nextText: 'ถัดไป »', + currentText: 'วันนี้', + monthNames: ['มกราคม','กุมภาพันธ์','มีนาคม','เมษายน','พฤษภาคม','มิถุนายน', + 'กรกฎาคม','สิงหาคม','กันยายน','ตุลาคม','พฤศจิกายน','ธันวาคม'], + monthNamesShort: ['ม.ค.','ก.พ.','มี.ค.','เม.ย.','พ.ค.','มิ.ย.', + 'ก.ค.','ส.ค.','ก.ย.','ต.ค.','พ.ย.','ธ.ค.'], + dayNames: ['อาทิตย์','จันทร์','อังคาร','พุธ','พฤหัสบดี','ศุกร์','เสาร์'], + dayNamesShort: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], + dayNamesMin: ['อา.','จ.','อ.','พ.','พฤ.','ศ.','ส.'], + weekHeader: 'Wk', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['th']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-tr.js b/js/ui/i18n/jquery.ui.datepicker-tr.js new file mode 100644 index 0000000000..dedfc7ff99 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-tr.js @@ -0,0 +1,23 @@ +/* Turkish initialisation for the jQuery UI date picker plugin. */ +/* Written by Izzet Emre Erkan (kara@karalamalar.net). */ +jQuery(function($){ + $.datepicker.regional['tr'] = { + closeText: 'kapat', + prevText: '<geri', + nextText: 'ileri>', + currentText: 'bugün', + monthNames: ['Ocak','Şubat','Mart','Nisan','Mayıs','Haziran', + 'Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'], + monthNamesShort: ['Oca','Şub','Mar','Nis','May','Haz', + 'Tem','Ağu','Eyl','Eki','Kas','Ara'], + dayNames: ['Pazar','Pazartesi','Salı','Çarşamba','Perşembe','Cuma','Cumartesi'], + dayNamesShort: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], + dayNamesMin: ['Pz','Pt','Sa','Ça','Pe','Cu','Ct'], + weekHeader: 'Hf', + dateFormat: 'dd.mm.yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['tr']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-uk.js b/js/ui/i18n/jquery.ui.datepicker-uk.js new file mode 100644 index 0000000000..112b40e7f8 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-uk.js @@ -0,0 +1,23 @@ +/* Ukrainian (UTF-8) initialisation for the jQuery UI date picker plugin. */ +/* Written by Maxim Drogobitskiy (maxdao@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['uk'] = { + closeText: 'Закрити', + prevText: '<', + nextText: '>', + currentText: 'Сьогодні', + monthNames: ['Січень','Лютий','Березень','Квітень','Травень','Червень', + 'Липень','Серпень','Вересень','Жовтень','Листопад','Грудень'], + monthNamesShort: ['Січ','Лют','Бер','Кві','Тра','Чер', + 'Лип','Сер','Вер','Жов','Лис','Гру'], + dayNames: ['неділя','понеділок','вівторок','середа','четвер','п’ятниця','субота'], + dayNamesShort: ['нед','пнд','вів','срд','чтв','птн','сбт'], + dayNamesMin: ['Нд','Пн','Вт','Ср','Чт','Пт','Сб'], + weekHeader: 'Не', + dateFormat: 'dd/mm/yy', + firstDay: 1, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['uk']); +}); \ No newline at end of file diff --git a/js/ui/i18n/jquery.ui.datepicker-vi.js b/js/ui/i18n/jquery.ui.datepicker-vi.js new file mode 100644 index 0000000000..9813a59e01 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-vi.js @@ -0,0 +1,23 @@ +/* Vietnamese initialisation for the jQuery UI date picker plugin. */ +/* Translated by Le Thanh Huy (lthanhhuy@cit.ctu.edu.vn). */ +jQuery(function($){ + $.datepicker.regional['vi'] = { + closeText: 'Đóng', + prevText: '<Trước', + nextText: 'Tiếp>', + currentText: 'Hôm nay', + monthNames: ['Tháng Một', 'Tháng Hai', 'Tháng Ba', 'Tháng Tư', 'Tháng Năm', 'Tháng Sáu', + 'Tháng Bảy', 'Tháng Tám', 'Tháng Chín', 'Tháng Mười', 'Tháng Mười Một', 'Tháng Mười Hai'], + monthNamesShort: ['Tháng 1', 'Tháng 2', 'Tháng 3', 'Tháng 4', 'Tháng 5', 'Tháng 6', + 'Tháng 7', 'Tháng 8', 'Tháng 9', 'Tháng 10', 'Tháng 11', 'Tháng 12'], + dayNames: ['Chủ Nhật', 'Thứ Hai', 'Thứ Ba', 'Thứ Tư', 'Thứ Năm', 'Thứ Sáu', 'Thứ Bảy'], + dayNamesShort: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], + dayNamesMin: ['CN', 'T2', 'T3', 'T4', 'T5', 'T6', 'T7'], + weekHeader: 'Tu', + dateFormat: 'dd/mm/yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: ''}; + $.datepicker.setDefaults($.datepicker.regional['vi']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-zh-CN.js b/js/ui/i18n/jquery.ui.datepicker-zh-CN.js new file mode 100644 index 0000000000..6c4883f536 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-zh-CN.js @@ -0,0 +1,23 @@ +/* Chinese initialisation for the jQuery UI date picker plugin. */ +/* Written by Cloudream (cloudream@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['zh-CN'] = { + closeText: '关闭', + prevText: '<上月', + nextText: '下月>', + currentText: '今天', + monthNames: ['一月','二月','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'], + monthNamesShort: ['一','二','三','四','五','六', + '七','八','九','十','十一','十二'], + dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], + dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], + dayNamesMin: ['日','一','二','三','四','五','六'], + weekHeader: '周', + dateFormat: 'yy-mm-dd', + firstDay: 1, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: '年'}; + $.datepicker.setDefaults($.datepicker.regional['zh-CN']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-zh-HK.js b/js/ui/i18n/jquery.ui.datepicker-zh-HK.js new file mode 100644 index 0000000000..06c4c628c4 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-zh-HK.js @@ -0,0 +1,23 @@ +/* Chinese initialisation for the jQuery UI date picker plugin. */ +/* Written by SCCY (samuelcychan@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['zh-HK'] = { + closeText: '關閉', + prevText: '<上月', + nextText: '下月>', + currentText: '今天', + monthNames: ['一月','二月','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'], + monthNamesShort: ['一','二','三','四','五','六', + '七','八','九','十','十一','十二'], + dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], + dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], + dayNamesMin: ['日','一','二','三','四','五','六'], + weekHeader: '周', + dateFormat: 'dd-mm-yy', + firstDay: 0, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: '年'}; + $.datepicker.setDefaults($.datepicker.regional['zh-HK']); +}); diff --git a/js/ui/i18n/jquery.ui.datepicker-zh-TW.js b/js/ui/i18n/jquery.ui.datepicker-zh-TW.js new file mode 100644 index 0000000000..d211573c67 --- /dev/null +++ b/js/ui/i18n/jquery.ui.datepicker-zh-TW.js @@ -0,0 +1,23 @@ +/* Chinese initialisation for the jQuery UI date picker plugin. */ +/* Written by Ressol (ressol@gmail.com). */ +jQuery(function($){ + $.datepicker.regional['zh-TW'] = { + closeText: '關閉', + prevText: '<上月', + nextText: '下月>', + currentText: '今天', + monthNames: ['一月','二月','三月','四月','五月','六月', + '七月','八月','九月','十月','十一月','十二月'], + monthNamesShort: ['一','二','三','四','五','六', + '七','八','九','十','十一','十二'], + dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'], + dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'], + dayNamesMin: ['日','一','二','三','四','五','六'], + weekHeader: '周', + dateFormat: 'yy/mm/dd', + firstDay: 1, + isRTL: false, + showMonthAfterYear: true, + yearSuffix: '年'}; + $.datepicker.setDefaults($.datepicker.regional['zh-TW']); +}); diff --git a/js/ui/jquery-ui-1.8.10.custom.js b/js/ui/jquery-ui-1.8.10.custom.js new file mode 100644 index 0000000000..8219acdf28 --- /dev/null +++ b/js/ui/jquery-ui-1.8.10.custom.js @@ -0,0 +1,11544 @@ +/*! + * jQuery UI 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function( $, undefined ) { + +// prevent duplicate loading +// this is only a problem because we proxy existing functions +// and we don't want to double proxy them +$.ui = $.ui || {}; +if ( $.ui.version ) { + return; +} + +$.extend( $.ui, { + version: "1.8.10", + + keyCode: { + ALT: 18, + BACKSPACE: 8, + CAPS_LOCK: 20, + COMMA: 188, + COMMAND: 91, + COMMAND_LEFT: 91, // COMMAND + COMMAND_RIGHT: 93, + CONTROL: 17, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + INSERT: 45, + LEFT: 37, + MENU: 93, // COMMAND_RIGHT + NUMPAD_ADD: 107, + NUMPAD_DECIMAL: 110, + NUMPAD_DIVIDE: 111, + NUMPAD_ENTER: 108, + NUMPAD_MULTIPLY: 106, + NUMPAD_SUBTRACT: 109, + PAGE_DOWN: 34, + PAGE_UP: 33, + PERIOD: 190, + RIGHT: 39, + SHIFT: 16, + SPACE: 32, + TAB: 9, + UP: 38, + WINDOWS: 91 // COMMAND + } +}); + +// plugins +$.fn.extend({ + _focus: $.fn.focus, + focus: function( delay, fn ) { + return typeof delay === "number" ? + this.each(function() { + var elem = this; + setTimeout(function() { + $( elem ).focus(); + if ( fn ) { + fn.call( elem ); + } + }, delay ); + }) : + this._focus.apply( this, arguments ); + }, + + scrollParent: function() { + var scrollParent; + if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) { + scrollParent = this.parents().filter(function() { + return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); + }).eq(0); + } else { + scrollParent = this.parents().filter(function() { + return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); + }).eq(0); + } + + return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent; + }, + + zIndex: function( zIndex ) { + if ( zIndex !== undefined ) { + return this.css( "zIndex", zIndex ); + } + + if ( this.length ) { + var elem = $( this[ 0 ] ), position, value; + while ( elem.length && elem[ 0 ] !== document ) { + // Ignore z-index if position is set to a value where z-index is ignored by the browser + // This makes behavior of this function consistent across browsers + // WebKit always returns auto if the element is positioned + position = elem.css( "position" ); + if ( position === "absolute" || position === "relative" || position === "fixed" ) { + // IE returns 0 when zIndex is not specified + // other browsers return a string + // we ignore the case of nested elements with an explicit value of 0 + //
    + value = parseInt( elem.css( "zIndex" ), 10 ); + if ( !isNaN( value ) && value !== 0 ) { + return value; + } + } + elem = elem.parent(); + } + } + + return 0; + }, + + disableSelection: function() { + return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) + + ".ui-disableSelection", function( event ) { + event.preventDefault(); + }); + }, + + enableSelection: function() { + return this.unbind( ".ui-disableSelection" ); + } +}); + +$.each( [ "Width", "Height" ], function( i, name ) { + var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], + type = name.toLowerCase(), + orig = { + innerWidth: $.fn.innerWidth, + innerHeight: $.fn.innerHeight, + outerWidth: $.fn.outerWidth, + outerHeight: $.fn.outerHeight + }; + + function reduce( elem, size, border, margin ) { + $.each( side, function() { + size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0; + if ( border ) { + size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0; + } + if ( margin ) { + size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0; + } + }); + return size; + } + + $.fn[ "inner" + name ] = function( size ) { + if ( size === undefined ) { + return orig[ "inner" + name ].call( this ); + } + + return this.each(function() { + $( this ).css( type, reduce( this, size ) + "px" ); + }); + }; + + $.fn[ "outer" + name] = function( size, margin ) { + if ( typeof size !== "number" ) { + return orig[ "outer" + name ].call( this, size ); + } + + return this.each(function() { + $( this).css( type, reduce( this, size, true, margin ) + "px" ); + }); + }; +}); + +// selectors +function visible( element ) { + return !$( element ).parents().andSelf().filter(function() { + return $.curCSS( this, "visibility" ) === "hidden" || + $.expr.filters.hidden( this ); + }).length; +} + +$.extend( $.expr[ ":" ], { + data: function( elem, i, match ) { + return !!$.data( elem, match[ 3 ] ); + }, + + focusable: function( element ) { + var nodeName = element.nodeName.toLowerCase(), + tabIndex = $.attr( element, "tabindex" ); + if ( "area" === nodeName ) { + var map = element.parentNode, + mapName = map.name, + img; + if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { + return false; + } + img = $( "img[usemap=#" + mapName + "]" )[0]; + return !!img && visible( img ); + } + return ( /input|select|textarea|button|object/.test( nodeName ) + ? !element.disabled + : "a" == nodeName + ? element.href || !isNaN( tabIndex ) + : !isNaN( tabIndex )) + // the element and all of its ancestors must be visible + && visible( element ); + }, + + tabbable: function( element ) { + var tabIndex = $.attr( element, "tabindex" ); + return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" ); + } +}); + +// support +$(function() { + var body = document.body, + div = body.appendChild( div = document.createElement( "div" ) ); + + $.extend( div.style, { + minHeight: "100px", + height: "auto", + padding: 0, + borderWidth: 0 + }); + + $.support.minHeight = div.offsetHeight === 100; + $.support.selectstart = "onselectstart" in div; + + // set display to none to avoid a layout bug in IE + // http://dev.jquery.com/ticket/4014 + body.removeChild( div ).style.display = "none"; +}); + + + + + +// deprecated +$.extend( $.ui, { + // $.ui.plugin is deprecated. Use the proxy pattern instead. + plugin: { + add: function( module, option, set ) { + var proto = $.ui[ module ].prototype; + for ( var i in set ) { + proto.plugins[ i ] = proto.plugins[ i ] || []; + proto.plugins[ i ].push( [ option, set[ i ] ] ); + } + }, + call: function( instance, name, args ) { + var set = instance.plugins[ name ]; + if ( !set || !instance.element[ 0 ].parentNode ) { + return; + } + + for ( var i = 0; i < set.length; i++ ) { + if ( instance.options[ set[ i ][ 0 ] ] ) { + set[ i ][ 1 ].apply( instance.element, args ); + } + } + } + }, + + // will be deprecated when we switch to jQuery 1.4 - use jQuery.contains() + contains: function( a, b ) { + return document.compareDocumentPosition ? + a.compareDocumentPosition( b ) & 16 : + a !== b && a.contains( b ); + }, + + // only used by resizable + hasScroll: function( el, a ) { + + //If overflow is hidden, the element might have extra content, but the user wants to hide it + if ( $( el ).css( "overflow" ) === "hidden") { + return false; + } + + var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", + has = false; + + if ( el[ scroll ] > 0 ) { + return true; + } + + // TODO: determine which cases actually cause this to happen + // if the element doesn't have the scroll set, see if it's possible to + // set the scroll + el[ scroll ] = 1; + has = ( el[ scroll ] > 0 ); + el[ scroll ] = 0; + return has; + }, + + // these are odd functions, fix the API or move into individual plugins + isOverAxis: function( x, reference, size ) { + //Determines when x coordinate is over "b" element axis + return ( x > reference ) && ( x < ( reference + size ) ); + }, + isOver: function( y, x, top, left, height, width ) { + //Determines when x, y coordinates is over "b" element + return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width ); + } +}); + +})( jQuery ); +/*! + * jQuery UI Widget 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function( $, undefined ) { + +// jQuery 1.4+ +if ( $.cleanData ) { + var _cleanData = $.cleanData; + $.cleanData = function( elems ) { + for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { + $( elem ).triggerHandler( "remove" ); + } + _cleanData( elems ); + }; +} else { + var _remove = $.fn.remove; + $.fn.remove = function( selector, keepData ) { + return this.each(function() { + if ( !keepData ) { + if ( !selector || $.filter( selector, [ this ] ).length ) { + $( "*", this ).add( [ this ] ).each(function() { + $( this ).triggerHandler( "remove" ); + }); + } + } + return _remove.call( $(this), selector, keepData ); + }); + }; +} + +$.widget = function( name, base, prototype ) { + var namespace = name.split( "." )[ 0 ], + fullName; + name = name.split( "." )[ 1 ]; + fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + // create selector for plugin + $.expr[ ":" ][ fullName ] = function( elem ) { + return !!$.data( elem, name ); + }; + + $[ namespace ] = $[ namespace ] || {}; + $[ namespace ][ name ] = function( options, element ) { + // allow instantiation without initializing for simple inheritance + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + + var basePrototype = new base(); + // we need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from +// $.each( basePrototype, function( key, val ) { +// if ( $.isPlainObject(val) ) { +// basePrototype[ key ] = $.extend( {}, val ); +// } +// }); + basePrototype.options = $.extend( true, {}, basePrototype.options ); + $[ namespace ][ name ].prototype = $.extend( true, basePrototype, { + namespace: namespace, + widgetName: name, + widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name, + widgetBaseClass: fullName + }, prototype ); + + $.widget.bridge( name, $[ namespace ][ name ] ); +}; + +$.widget.bridge = function( name, object ) { + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string", + args = Array.prototype.slice.call( arguments, 1 ), + returnValue = this; + + // allow multiple hashes to be passed on init + options = !isMethodCall && args.length ? + $.extend.apply( null, [ true, options ].concat(args) ) : + options; + + // prevent calls to internal methods + if ( isMethodCall && options.charAt( 0 ) === "_" ) { + return returnValue; + } + + if ( isMethodCall ) { + this.each(function() { + var instance = $.data( this, name ), + methodValue = instance && $.isFunction( instance[options] ) ? + instance[ options ].apply( instance, args ) : + instance; + // TODO: add this back in 1.9 and use $.error() (see #5972) +// if ( !instance ) { +// throw "cannot call methods on " + name + " prior to initialization; " + +// "attempted to call method '" + options + "'"; +// } +// if ( !$.isFunction( instance[options] ) ) { +// throw "no such method '" + options + "' for " + name + " widget instance"; +// } +// var methodValue = instance[ options ].apply( instance, args ); + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue; + return false; + } + }); + } else { + this.each(function() { + var instance = $.data( this, name ); + if ( instance ) { + instance.option( options || {} )._init(); + } else { + $.data( this, name, new object( options, this ) ); + } + }); + } + + return returnValue; + }; +}; + +$.Widget = function( options, element ) { + // allow instantiation without initializing for simple inheritance + if ( arguments.length ) { + this._createWidget( options, element ); + } +}; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + options: { + disabled: false + }, + _createWidget: function( options, element ) { + // $.widget.bridge stores the plugin instance, but we do it anyway + // so that it's stored even before the _create function runs + $.data( element, this.widgetName, this ); + this.element = $( element ); + this.options = $.extend( true, {}, + this.options, + this._getCreateOptions(), + options ); + + var self = this; + this.element.bind( "remove." + this.widgetName, function() { + self.destroy(); + }); + + this._create(); + this._trigger( "create" ); + this._init(); + }, + _getCreateOptions: function() { + return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ]; + }, + _create: function() {}, + _init: function() {}, + + destroy: function() { + this.element + .unbind( "." + this.widgetName ) + .removeData( this.widgetName ); + this.widget() + .unbind( "." + this.widgetName ) + .removeAttr( "aria-disabled" ) + .removeClass( + this.widgetBaseClass + "-disabled " + + "ui-state-disabled" ); + }, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key; + + if ( arguments.length === 0 ) { + // don't return a reference to the internal hash + return $.extend( {}, this.options ); + } + + if (typeof key === "string" ) { + if ( value === undefined ) { + return this.options[ key ]; + } + options = {}; + options[ key ] = value; + } + + this._setOptions( options ); + + return this; + }, + _setOptions: function( options ) { + var self = this; + $.each( options, function( key, value ) { + self._setOption( key, value ); + }); + + return this; + }, + _setOption: function( key, value ) { + this.options[ key ] = value; + + if ( key === "disabled" ) { + this.widget() + [ value ? "addClass" : "removeClass"]( + this.widgetBaseClass + "-disabled" + " " + + "ui-state-disabled" ) + .attr( "aria-disabled", value ); + } + + return this; + }, + + enable: function() { + return this._setOption( "disabled", false ); + }, + disable: function() { + return this._setOption( "disabled", true ); + }, + + _trigger: function( type, event, data ) { + var callback = this.options[ type ]; + + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + data = data || {}; + + // copy original event properties over to the new event + // this would happen if we could call $.event.fix instead of $.Event + // but we don't have a way to force an event to be fixed multiple times + if ( event.originalEvent ) { + for ( var i = $.event.props.length, prop; i; ) { + prop = $.event.props[ --i ]; + event[ prop ] = event.originalEvent[ prop ]; + } + } + + this.element.trigger( event, data ); + + return !( $.isFunction(callback) && + callback.call( this.element[0], event, data ) === false || + event.isDefaultPrevented() ); + } +}; + +})( jQuery ); +/*! + * jQuery UI Mouse 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget("ui.mouse", { + options: { + cancel: ':input,option', + distance: 1, + delay: 0 + }, + _mouseInit: function() { + var self = this; + + this.element + .bind('mousedown.'+this.widgetName, function(event) { + return self._mouseDown(event); + }) + .bind('click.'+this.widgetName, function(event) { + if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) { + $.removeData(event.target, self.widgetName + '.preventClickEvent'); + event.stopImmediatePropagation(); + return false; + } + }); + + this.started = false; + }, + + // TODO: make sure destroying one instance of mouse doesn't mess with + // other instances of mouse + _mouseDestroy: function() { + this.element.unbind('.'+this.widgetName); + }, + + _mouseDown: function(event) { + // don't let more than one widget handle mouseStart + // TODO: figure out why we have to use originalEvent + event.originalEvent = event.originalEvent || {}; + if (event.originalEvent.mouseHandled) { return; } + + // we may have missed mouseup (out of window) + (this._mouseStarted && this._mouseUp(event)); + + this._mouseDownEvent = event; + + var self = this, + btnIsLeft = (event.which == 1), + elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false); + if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { + return true; + } + + this.mouseDelayMet = !this.options.delay; + if (!this.mouseDelayMet) { + this._mouseDelayTimer = setTimeout(function() { + self.mouseDelayMet = true; + }, this.options.delay); + } + + if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { + this._mouseStarted = (this._mouseStart(event) !== false); + if (!this._mouseStarted) { + event.preventDefault(); + return true; + } + } + + // these delegates are required to keep context + this._mouseMoveDelegate = function(event) { + return self._mouseMove(event); + }; + this._mouseUpDelegate = function(event) { + return self._mouseUp(event); + }; + $(document) + .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate) + .bind('mouseup.'+this.widgetName, this._mouseUpDelegate); + + event.preventDefault(); + event.originalEvent.mouseHandled = true; + return true; + }, + + _mouseMove: function(event) { + // IE mouseup check - mouseup happened when mouse was out of window + if ($.browser.msie && !(document.documentMode >= 9) && !event.button) { + return this._mouseUp(event); + } + + if (this._mouseStarted) { + this._mouseDrag(event); + return event.preventDefault(); + } + + if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { + this._mouseStarted = + (this._mouseStart(this._mouseDownEvent, event) !== false); + (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); + } + + return !this._mouseStarted; + }, + + _mouseUp: function(event) { + $(document) + .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate) + .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate); + + if (this._mouseStarted) { + this._mouseStarted = false; + + if (event.target == this._mouseDownEvent.target) { + $.data(event.target, this.widgetName + '.preventClickEvent', true); + } + + this._mouseStop(event); + } + + return false; + }, + + _mouseDistanceMet: function(event) { + return (Math.max( + Math.abs(this._mouseDownEvent.pageX - event.pageX), + Math.abs(this._mouseDownEvent.pageY - event.pageY) + ) >= this.options.distance + ); + }, + + _mouseDelayMet: function(event) { + return this.mouseDelayMet; + }, + + // These are placeholder methods, to be overriden by extending plugin + _mouseStart: function(event) {}, + _mouseDrag: function(event) {}, + _mouseStop: function(event) {}, + _mouseCapture: function(event) { return true; } +}); + +})(jQuery); +/* + * jQuery UI Position 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Position + */ +(function( $, undefined ) { + +$.ui = $.ui || {}; + +var horizontalPositions = /left|center|right/, + verticalPositions = /top|center|bottom/, + center = "center", + _position = $.fn.position, + _offset = $.fn.offset; + +$.fn.position = function( options ) { + if ( !options || !options.of ) { + return _position.apply( this, arguments ); + } + + // make a copy, we don't want to modify arguments + options = $.extend( {}, options ); + + var target = $( options.of ), + targetElem = target[0], + collision = ( options.collision || "flip" ).split( " " ), + offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ], + targetWidth, + targetHeight, + basePosition; + + if ( targetElem.nodeType === 9 ) { + targetWidth = target.width(); + targetHeight = target.height(); + basePosition = { top: 0, left: 0 }; + // TODO: use $.isWindow() in 1.9 + } else if ( targetElem.setTimeout ) { + targetWidth = target.width(); + targetHeight = target.height(); + basePosition = { top: target.scrollTop(), left: target.scrollLeft() }; + } else if ( targetElem.preventDefault ) { + // force left top to allow flipping + options.at = "left top"; + targetWidth = targetHeight = 0; + basePosition = { top: options.of.pageY, left: options.of.pageX }; + } else { + targetWidth = target.outerWidth(); + targetHeight = target.outerHeight(); + basePosition = target.offset(); + } + + // force my and at to have valid horizontal and veritcal positions + // if a value is missing or invalid, it will be converted to center + $.each( [ "my", "at" ], function() { + var pos = ( options[this] || "" ).split( " " ); + if ( pos.length === 1) { + pos = horizontalPositions.test( pos[0] ) ? + pos.concat( [center] ) : + verticalPositions.test( pos[0] ) ? + [ center ].concat( pos ) : + [ center, center ]; + } + pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center; + pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center; + options[ this ] = pos; + }); + + // normalize collision option + if ( collision.length === 1 ) { + collision[ 1 ] = collision[ 0 ]; + } + + // normalize offset option + offset[ 0 ] = parseInt( offset[0], 10 ) || 0; + if ( offset.length === 1 ) { + offset[ 1 ] = offset[ 0 ]; + } + offset[ 1 ] = parseInt( offset[1], 10 ) || 0; + + if ( options.at[0] === "right" ) { + basePosition.left += targetWidth; + } else if ( options.at[0] === center ) { + basePosition.left += targetWidth / 2; + } + + if ( options.at[1] === "bottom" ) { + basePosition.top += targetHeight; + } else if ( options.at[1] === center ) { + basePosition.top += targetHeight / 2; + } + + basePosition.left += offset[ 0 ]; + basePosition.top += offset[ 1 ]; + + return this.each(function() { + var elem = $( this ), + elemWidth = elem.outerWidth(), + elemHeight = elem.outerHeight(), + marginLeft = parseInt( $.curCSS( this, "marginLeft", true ) ) || 0, + marginTop = parseInt( $.curCSS( this, "marginTop", true ) ) || 0, + collisionWidth = elemWidth + marginLeft + + ( parseInt( $.curCSS( this, "marginRight", true ) ) || 0 ), + collisionHeight = elemHeight + marginTop + + ( parseInt( $.curCSS( this, "marginBottom", true ) ) || 0 ), + position = $.extend( {}, basePosition ), + collisionPosition; + + if ( options.my[0] === "right" ) { + position.left -= elemWidth; + } else if ( options.my[0] === center ) { + position.left -= elemWidth / 2; + } + + if ( options.my[1] === "bottom" ) { + position.top -= elemHeight; + } else if ( options.my[1] === center ) { + position.top -= elemHeight / 2; + } + + // prevent fractions (see #5280) + position.left = Math.round( position.left ); + position.top = Math.round( position.top ); + + collisionPosition = { + left: position.left - marginLeft, + top: position.top - marginTop + }; + + $.each( [ "left", "top" ], function( i, dir ) { + if ( $.ui.position[ collision[i] ] ) { + $.ui.position[ collision[i] ][ dir ]( position, { + targetWidth: targetWidth, + targetHeight: targetHeight, + elemWidth: elemWidth, + elemHeight: elemHeight, + collisionPosition: collisionPosition, + collisionWidth: collisionWidth, + collisionHeight: collisionHeight, + offset: offset, + my: options.my, + at: options.at + }); + } + }); + + if ( $.fn.bgiframe ) { + elem.bgiframe(); + } + elem.offset( $.extend( position, { using: options.using } ) ); + }); +}; + +$.ui.position = { + fit: { + left: function( position, data ) { + var win = $( window ), + over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(); + position.left = over > 0 ? position.left - over : Math.max( position.left - data.collisionPosition.left, position.left ); + }, + top: function( position, data ) { + var win = $( window ), + over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(); + position.top = over > 0 ? position.top - over : Math.max( position.top - data.collisionPosition.top, position.top ); + } + }, + + flip: { + left: function( position, data ) { + if ( data.at[0] === center ) { + return; + } + var win = $( window ), + over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(), + myOffset = data.my[ 0 ] === "left" ? + -data.elemWidth : + data.my[ 0 ] === "right" ? + data.elemWidth : + 0, + atOffset = data.at[ 0 ] === "left" ? + data.targetWidth : + -data.targetWidth, + offset = -2 * data.offset[ 0 ]; + position.left += data.collisionPosition.left < 0 ? + myOffset + atOffset + offset : + over > 0 ? + myOffset + atOffset + offset : + 0; + }, + top: function( position, data ) { + if ( data.at[1] === center ) { + return; + } + var win = $( window ), + over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(), + myOffset = data.my[ 1 ] === "top" ? + -data.elemHeight : + data.my[ 1 ] === "bottom" ? + data.elemHeight : + 0, + atOffset = data.at[ 1 ] === "top" ? + data.targetHeight : + -data.targetHeight, + offset = -2 * data.offset[ 1 ]; + position.top += data.collisionPosition.top < 0 ? + myOffset + atOffset + offset : + over > 0 ? + myOffset + atOffset + offset : + 0; + } + } +}; + +// offset setter from jQuery 1.4 +if ( !$.offset.setOffset ) { + $.offset.setOffset = function( elem, options ) { + // set position first, in-case top/left are set even on static elem + if ( /static/.test( $.curCSS( elem, "position" ) ) ) { + elem.style.position = "relative"; + } + var curElem = $( elem ), + curOffset = curElem.offset(), + curTop = parseInt( $.curCSS( elem, "top", true ), 10 ) || 0, + curLeft = parseInt( $.curCSS( elem, "left", true ), 10) || 0, + props = { + top: (options.top - curOffset.top) + curTop, + left: (options.left - curOffset.left) + curLeft + }; + + if ( 'using' in options ) { + options.using.call( elem, props ); + } else { + curElem.css( props ); + } + }; + + $.fn.offset = function( options ) { + var elem = this[ 0 ]; + if ( !elem || !elem.ownerDocument ) { return null; } + if ( options ) { + return this.each(function() { + $.offset.setOffset( this, options ); + }); + } + return _offset.call( this ); + }; +} + +}( jQuery )); +/* + * jQuery UI Draggable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget("ui.draggable", $.ui.mouse, { + widgetEventPrefix: "drag", + options: { + addClasses: true, + appendTo: "parent", + axis: false, + connectToSortable: false, + containment: false, + cursor: "auto", + cursorAt: false, + grid: false, + handle: false, + helper: "original", + iframeFix: false, + opacity: false, + refreshPositions: false, + revert: false, + revertDuration: 500, + scope: "default", + scroll: true, + scrollSensitivity: 20, + scrollSpeed: 20, + snap: false, + snapMode: "both", + snapTolerance: 20, + stack: false, + zIndex: false + }, + _create: function() { + + if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position"))) + this.element[0].style.position = 'relative'; + + (this.options.addClasses && this.element.addClass("ui-draggable")); + (this.options.disabled && this.element.addClass("ui-draggable-disabled")); + + this._mouseInit(); + + }, + + destroy: function() { + if(!this.element.data('draggable')) return; + this.element + .removeData("draggable") + .unbind(".draggable") + .removeClass("ui-draggable" + + " ui-draggable-dragging" + + " ui-draggable-disabled"); + this._mouseDestroy(); + + return this; + }, + + _mouseCapture: function(event) { + + var o = this.options; + + // among others, prevent a drag on a resizable-handle + if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle')) + return false; + + //Quit if we're not on a valid handle + this.handle = this._getHandle(event); + if (!this.handle) + return false; + + return true; + + }, + + _mouseStart: function(event) { + + var o = this.options; + + //Create and append the visible helper + this.helper = this._createHelper(event); + + //Cache the helper size + this._cacheHelperProportions(); + + //If ddmanager is used for droppables, set the global draggable + if($.ui.ddmanager) + $.ui.ddmanager.current = this; + + /* + * - Position generation - + * This block generates everything position related - it's the core of draggables. + */ + + //Cache the margins of the original element + this._cacheMargins(); + + //Store the helper's css position + this.cssPosition = this.helper.css("position"); + this.scrollParent = this.helper.scrollParent(); + + //The element's absolute position on the page minus margins + this.offset = this.positionAbs = this.element.offset(); + this.offset = { + top: this.offset.top - this.margins.top, + left: this.offset.left - this.margins.left + }; + + $.extend(this.offset, { + click: { //Where the click happened, relative to the element + left: event.pageX - this.offset.left, + top: event.pageY - this.offset.top + }, + parent: this._getParentOffset(), + relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper + }); + + //Generate the original position + this.originalPosition = this.position = this._generatePosition(event); + this.originalPageX = event.pageX; + this.originalPageY = event.pageY; + + //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied + (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); + + //Set a containment if given in the options + if(o.containment) + this._setContainment(); + + //Trigger event + callbacks + if(this._trigger("start", event) === false) { + this._clear(); + return false; + } + + //Recache the helper size + this._cacheHelperProportions(); + + //Prepare the droppable offsets + if ($.ui.ddmanager && !o.dropBehaviour) + $.ui.ddmanager.prepareOffsets(this, event); + + this.helper.addClass("ui-draggable-dragging"); + this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position + return true; + }, + + _mouseDrag: function(event, noPropagation) { + + //Compute the helpers position + this.position = this._generatePosition(event); + this.positionAbs = this._convertPositionTo("absolute"); + + //Call plugins and callbacks and use the resulting position if something is returned + if (!noPropagation) { + var ui = this._uiHash(); + if(this._trigger('drag', event, ui) === false) { + this._mouseUp({}); + return false; + } + this.position = ui.position; + } + + if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px'; + if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px'; + if($.ui.ddmanager) $.ui.ddmanager.drag(this, event); + + return false; + }, + + _mouseStop: function(event) { + + //If we are using droppables, inform the manager about the drop + var dropped = false; + if ($.ui.ddmanager && !this.options.dropBehaviour) + dropped = $.ui.ddmanager.drop(this, event); + + //if a drop comes from outside (a sortable) + if(this.dropped) { + dropped = this.dropped; + this.dropped = false; + } + + //if the original element is removed, don't bother to continue if helper is set to "original" + if((!this.element[0] || !this.element[0].parentNode) && this.options.helper == "original") + return false; + + if((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) { + var self = this; + $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { + if(self._trigger("stop", event) !== false) { + self._clear(); + } + }); + } else { + if(this._trigger("stop", event) !== false) { + this._clear(); + } + } + + return false; + }, + + cancel: function() { + + if(this.helper.is(".ui-draggable-dragging")) { + this._mouseUp({}); + } else { + this._clear(); + } + + return this; + + }, + + _getHandle: function(event) { + + var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false; + $(this.options.handle, this.element) + .find("*") + .andSelf() + .each(function() { + if(this == event.target) handle = true; + }); + + return handle; + + }, + + _createHelper: function(event) { + + var o = this.options; + var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone() : this.element); + + if(!helper.parents('body').length) + helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo)); + + if(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) + helper.css("position", "absolute"); + + return helper; + + }, + + _adjustOffsetFromHelper: function(obj) { + if (typeof obj == 'string') { + obj = obj.split(' '); + } + if ($.isArray(obj)) { + obj = {left: +obj[0], top: +obj[1] || 0}; + } + if ('left' in obj) { + this.offset.click.left = obj.left + this.margins.left; + } + if ('right' in obj) { + this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; + } + if ('top' in obj) { + this.offset.click.top = obj.top + this.margins.top; + } + if ('bottom' in obj) { + this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; + } + }, + + _getParentOffset: function() { + + //Get the offsetParent and cache its position + this.offsetParent = this.helper.offsetParent(); + var po = this.offsetParent.offset(); + + // This is a special case where we need to modify a offset calculated on start, since the following happened: + // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent + // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that + // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag + if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) { + po.left += this.scrollParent.scrollLeft(); + po.top += this.scrollParent.scrollTop(); + } + + if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information + || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix + po = { top: 0, left: 0 }; + + return { + top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), + left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) + }; + + }, + + _getRelativeOffset: function() { + + if(this.cssPosition == "relative") { + var p = this.element.position(); + return { + top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), + left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() + }; + } else { + return { top: 0, left: 0 }; + } + + }, + + _cacheMargins: function() { + this.margins = { + left: (parseInt(this.element.css("marginLeft"),10) || 0), + top: (parseInt(this.element.css("marginTop"),10) || 0) + }; + }, + + _cacheHelperProportions: function() { + this.helperProportions = { + width: this.helper.outerWidth(), + height: this.helper.outerHeight() + }; + }, + + _setContainment: function() { + + var o = this.options; + if(o.containment == 'parent') o.containment = this.helper[0].parentNode; + if(o.containment == 'document' || o.containment == 'window') this.containment = [ + (o.containment == 'document' ? 0 : $(window).scrollLeft()) - this.offset.relative.left - this.offset.parent.left, + (o.containment == 'document' ? 0 : $(window).scrollTop()) - this.offset.relative.top - this.offset.parent.top, + (o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left, + (o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top + ]; + + if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) { + var ce = $(o.containment)[0]; if(!ce) return; + var co = $(o.containment).offset(); + var over = ($(ce).css("overflow") != 'hidden'); + + this.containment = [ + co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left, + co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top, + co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left, + co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top + ]; + } else if(o.containment.constructor == Array) { + this.containment = o.containment; + } + + }, + + _convertPositionTo: function(d, pos) { + + if(!pos) pos = this.position; + var mod = d == "absolute" ? 1 : -1; + var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + + return { + top: ( + pos.top // The absolute mouse position + + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent + + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border) + - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) + ), + left: ( + pos.left // The absolute mouse position + + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent + + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border) + - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) + ) + }; + + }, + + _generatePosition: function(event) { + + var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + var pageX = event.pageX; + var pageY = event.pageY; + + /* + * - Position constraining - + * Constrain the position to a mix of grid, containment. + */ + + if(this.originalPosition) { //If we are not dragging yet, we won't check for options + + if(this.containment) { + if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left; + if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top; + if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left; + if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top; + } + + if(o.grid) { + var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]; + pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; + + var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]; + pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; + } + + } + + return { + top: ( + pageY // The absolute mouse position + - this.offset.click.top // Click offset (relative to the element) + - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent + - this.offset.parent.top // The offsetParent's offset without borders (offset + border) + + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) + ), + left: ( + pageX // The absolute mouse position + - this.offset.click.left // Click offset (relative to the element) + - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent + - this.offset.parent.left // The offsetParent's offset without borders (offset + border) + + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) + ) + }; + + }, + + _clear: function() { + this.helper.removeClass("ui-draggable-dragging"); + if(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove(); + //if($.ui.ddmanager) $.ui.ddmanager.current = null; + this.helper = null; + this.cancelHelperRemoval = false; + }, + + // From now on bulk stuff - mainly helpers + + _trigger: function(type, event, ui) { + ui = ui || this._uiHash(); + $.ui.plugin.call(this, type, [event, ui]); + if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins + return $.Widget.prototype._trigger.call(this, type, event, ui); + }, + + plugins: {}, + + _uiHash: function(event) { + return { + helper: this.helper, + position: this.position, + originalPosition: this.originalPosition, + offset: this.positionAbs + }; + } + +}); + +$.extend($.ui.draggable, { + version: "1.8.10" +}); + +$.ui.plugin.add("draggable", "connectToSortable", { + start: function(event, ui) { + + var inst = $(this).data("draggable"), o = inst.options, + uiSortable = $.extend({}, ui, { item: inst.element }); + inst.sortables = []; + $(o.connectToSortable).each(function() { + var sortable = $.data(this, 'sortable'); + if (sortable && !sortable.options.disabled) { + inst.sortables.push({ + instance: sortable, + shouldRevert: sortable.options.revert + }); + sortable._refreshItems(); //Do a one-time refresh at start to refresh the containerCache + sortable._trigger("activate", event, uiSortable); + } + }); + + }, + stop: function(event, ui) { + + //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper + var inst = $(this).data("draggable"), + uiSortable = $.extend({}, ui, { item: inst.element }); + + $.each(inst.sortables, function() { + if(this.instance.isOver) { + + this.instance.isOver = 0; + + inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance + this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work) + + //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: 'valid/invalid' + if(this.shouldRevert) this.instance.options.revert = true; + + //Trigger the stop of the sortable + this.instance._mouseStop(event); + + this.instance.options.helper = this.instance.options._helper; + + //If the helper has been the original item, restore properties in the sortable + if(inst.options.helper == 'original') + this.instance.currentItem.css({ top: 'auto', left: 'auto' }); + + } else { + this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance + this.instance._trigger("deactivate", event, uiSortable); + } + + }); + + }, + drag: function(event, ui) { + + var inst = $(this).data("draggable"), self = this; + + var checkPos = function(o) { + var dyClick = this.offset.click.top, dxClick = this.offset.click.left; + var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left; + var itemHeight = o.height, itemWidth = o.width; + var itemTop = o.top, itemLeft = o.left; + + return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth); + }; + + $.each(inst.sortables, function(i) { + + //Copy over some variables to allow calling the sortable's native _intersectsWith + this.instance.positionAbs = inst.positionAbs; + this.instance.helperProportions = inst.helperProportions; + this.instance.offset.click = inst.offset.click; + + if(this.instance._intersectsWith(this.instance.containerCache)) { + + //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once + if(!this.instance.isOver) { + + this.instance.isOver = 1; + //Now we fake the start of dragging for the sortable instance, + //by cloning the list group item, appending it to the sortable and using it as inst.currentItem + //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one) + this.instance.currentItem = $(self).clone().appendTo(this.instance.element).data("sortable-item", true); + this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it + this.instance.options.helper = function() { return ui.helper[0]; }; + + event.target = this.instance.currentItem[0]; + this.instance._mouseCapture(event, true); + this.instance._mouseStart(event, true, true); + + //Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes + this.instance.offset.click.top = inst.offset.click.top; + this.instance.offset.click.left = inst.offset.click.left; + this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left; + this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top; + + inst._trigger("toSortable", event); + inst.dropped = this.instance.element; //draggable revert needs that + //hack so receive/update callbacks work (mostly) + inst.currentItem = inst.element; + this.instance.fromOutside = inst; + + } + + //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable + if(this.instance.currentItem) this.instance._mouseDrag(event); + + } else { + + //If it doesn't intersect with the sortable, and it intersected before, + //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval + if(this.instance.isOver) { + + this.instance.isOver = 0; + this.instance.cancelHelperRemoval = true; + + //Prevent reverting on this forced stop + this.instance.options.revert = false; + + // The out event needs to be triggered independently + this.instance._trigger('out', event, this.instance._uiHash(this.instance)); + + this.instance._mouseStop(event, true); + this.instance.options.helper = this.instance.options._helper; + + //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size + this.instance.currentItem.remove(); + if(this.instance.placeholder) this.instance.placeholder.remove(); + + inst._trigger("fromSortable", event); + inst.dropped = false; //draggable revert needs that + } + + }; + + }); + + } +}); + +$.ui.plugin.add("draggable", "cursor", { + start: function(event, ui) { + var t = $('body'), o = $(this).data('draggable').options; + if (t.css("cursor")) o._cursor = t.css("cursor"); + t.css("cursor", o.cursor); + }, + stop: function(event, ui) { + var o = $(this).data('draggable').options; + if (o._cursor) $('body').css("cursor", o._cursor); + } +}); + +$.ui.plugin.add("draggable", "iframeFix", { + start: function(event, ui) { + var o = $(this).data('draggable').options; + $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() { + $('
    ') + .css({ + width: this.offsetWidth+"px", height: this.offsetHeight+"px", + position: "absolute", opacity: "0.001", zIndex: 1000 + }) + .css($(this).offset()) + .appendTo("body"); + }); + }, + stop: function(event, ui) { + $("div.ui-draggable-iframeFix").each(function() { this.parentNode.removeChild(this); }); //Remove frame helpers + } +}); + +$.ui.plugin.add("draggable", "opacity", { + start: function(event, ui) { + var t = $(ui.helper), o = $(this).data('draggable').options; + if(t.css("opacity")) o._opacity = t.css("opacity"); + t.css('opacity', o.opacity); + }, + stop: function(event, ui) { + var o = $(this).data('draggable').options; + if(o._opacity) $(ui.helper).css('opacity', o._opacity); + } +}); + +$.ui.plugin.add("draggable", "scroll", { + start: function(event, ui) { + var i = $(this).data("draggable"); + if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset(); + }, + drag: function(event, ui) { + + var i = $(this).data("draggable"), o = i.options, scrolled = false; + + if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') { + + if(!o.axis || o.axis != 'x') { + if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) + i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed; + else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity) + i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed; + } + + if(!o.axis || o.axis != 'y') { + if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) + i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed; + else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity) + i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed; + } + + } else { + + if(!o.axis || o.axis != 'x') { + if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) + scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); + else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) + scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); + } + + if(!o.axis || o.axis != 'y') { + if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) + scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); + else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) + scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); + } + + } + + if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) + $.ui.ddmanager.prepareOffsets(i, event); + + } +}); + +$.ui.plugin.add("draggable", "snap", { + start: function(event, ui) { + + var i = $(this).data("draggable"), o = i.options; + i.snapElements = []; + + $(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() { + var $t = $(this); var $o = $t.offset(); + if(this != i.element[0]) i.snapElements.push({ + item: this, + width: $t.outerWidth(), height: $t.outerHeight(), + top: $o.top, left: $o.left + }); + }); + + }, + drag: function(event, ui) { + + var inst = $(this).data("draggable"), o = inst.options; + var d = o.snapTolerance; + + var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width, + y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height; + + for (var i = inst.snapElements.length - 1; i >= 0; i--){ + + var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width, + t = inst.snapElements[i].top, b = t + inst.snapElements[i].height; + + //Yes, I know, this is insane ;) + if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) { + if(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); + inst.snapElements[i].snapping = false; + continue; + } + + if(o.snapMode != 'inner') { + var ts = Math.abs(t - y2) <= d; + var bs = Math.abs(b - y1) <= d; + var ls = Math.abs(l - x2) <= d; + var rs = Math.abs(r - x1) <= d; + if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top; + if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top; + if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left; + if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left; + } + + var first = (ts || bs || ls || rs); + + if(o.snapMode != 'outer') { + var ts = Math.abs(t - y1) <= d; + var bs = Math.abs(b - y2) <= d; + var ls = Math.abs(l - x1) <= d; + var rs = Math.abs(r - x2) <= d; + if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top; + if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top; + if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left; + if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left; + } + + if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) + (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); + inst.snapElements[i].snapping = (ts || bs || ls || rs || first); + + }; + + } +}); + +$.ui.plugin.add("draggable", "stack", { + start: function(event, ui) { + + var o = $(this).data("draggable").options; + + var group = $.makeArray($(o.stack)).sort(function(a,b) { + return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0); + }); + if (!group.length) { return; } + + var min = parseInt(group[0].style.zIndex) || 0; + $(group).each(function(i) { + this.style.zIndex = min + i; + }); + + this[0].style.zIndex = min + group.length; + + } +}); + +$.ui.plugin.add("draggable", "zIndex", { + start: function(event, ui) { + var t = $(ui.helper), o = $(this).data("draggable").options; + if(t.css("zIndex")) o._zIndex = t.css("zIndex"); + t.css('zIndex', o.zIndex); + }, + stop: function(event, ui) { + var o = $(this).data("draggable").options; + if(o._zIndex) $(ui.helper).css('zIndex', o._zIndex); + } +}); + +})(jQuery); +/* + * jQuery UI Droppable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Droppables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.mouse.js + * jquery.ui.draggable.js + */ +(function( $, undefined ) { + +$.widget("ui.droppable", { + widgetEventPrefix: "drop", + options: { + accept: '*', + activeClass: false, + addClasses: true, + greedy: false, + hoverClass: false, + scope: 'default', + tolerance: 'intersect' + }, + _create: function() { + + var o = this.options, accept = o.accept; + this.isover = 0; this.isout = 1; + + this.accept = $.isFunction(accept) ? accept : function(d) { + return d.is(accept); + }; + + //Store the droppable's proportions + this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; + + // Add the reference and positions to the manager + $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || []; + $.ui.ddmanager.droppables[o.scope].push(this); + + (o.addClasses && this.element.addClass("ui-droppable")); + + }, + + destroy: function() { + var drop = $.ui.ddmanager.droppables[this.options.scope]; + for ( var i = 0; i < drop.length; i++ ) + if ( drop[i] == this ) + drop.splice(i, 1); + + this.element + .removeClass("ui-droppable ui-droppable-disabled") + .removeData("droppable") + .unbind(".droppable"); + + return this; + }, + + _setOption: function(key, value) { + + if(key == 'accept') { + this.accept = $.isFunction(value) ? value : function(d) { + return d.is(value); + }; + } + $.Widget.prototype._setOption.apply(this, arguments); + }, + + _activate: function(event) { + var draggable = $.ui.ddmanager.current; + if(this.options.activeClass) this.element.addClass(this.options.activeClass); + (draggable && this._trigger('activate', event, this.ui(draggable))); + }, + + _deactivate: function(event) { + var draggable = $.ui.ddmanager.current; + if(this.options.activeClass) this.element.removeClass(this.options.activeClass); + (draggable && this._trigger('deactivate', event, this.ui(draggable))); + }, + + _over: function(event) { + + var draggable = $.ui.ddmanager.current; + if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element + + if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { + if(this.options.hoverClass) this.element.addClass(this.options.hoverClass); + this._trigger('over', event, this.ui(draggable)); + } + + }, + + _out: function(event) { + + var draggable = $.ui.ddmanager.current; + if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element + + if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { + if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass); + this._trigger('out', event, this.ui(draggable)); + } + + }, + + _drop: function(event,custom) { + + var draggable = custom || $.ui.ddmanager.current; + if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; // Bail if draggable and droppable are same element + + var childrenIntersection = false; + this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() { + var inst = $.data(this, 'droppable'); + if( + inst.options.greedy + && !inst.options.disabled + && inst.options.scope == draggable.options.scope + && inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element)) + && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance) + ) { childrenIntersection = true; return false; } + }); + if(childrenIntersection) return false; + + if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { + if(this.options.activeClass) this.element.removeClass(this.options.activeClass); + if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass); + this._trigger('drop', event, this.ui(draggable)); + return this.element; + } + + return false; + + }, + + ui: function(c) { + return { + draggable: (c.currentItem || c.element), + helper: c.helper, + position: c.position, + offset: c.positionAbs + }; + } + +}); + +$.extend($.ui.droppable, { + version: "1.8.10" +}); + +$.ui.intersect = function(draggable, droppable, toleranceMode) { + + if (!droppable.offset) return false; + + var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width, + y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height; + var l = droppable.offset.left, r = l + droppable.proportions.width, + t = droppable.offset.top, b = t + droppable.proportions.height; + + switch (toleranceMode) { + case 'fit': + return (l <= x1 && x2 <= r + && t <= y1 && y2 <= b); + break; + case 'intersect': + return (l < x1 + (draggable.helperProportions.width / 2) // Right Half + && x2 - (draggable.helperProportions.width / 2) < r // Left Half + && t < y1 + (draggable.helperProportions.height / 2) // Bottom Half + && y2 - (draggable.helperProportions.height / 2) < b ); // Top Half + break; + case 'pointer': + var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left), + draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top), + isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width); + return isOver; + break; + case 'touch': + return ( + (y1 >= t && y1 <= b) || // Top edge touching + (y2 >= t && y2 <= b) || // Bottom edge touching + (y1 < t && y2 > b) // Surrounded vertically + ) && ( + (x1 >= l && x1 <= r) || // Left edge touching + (x2 >= l && x2 <= r) || // Right edge touching + (x1 < l && x2 > r) // Surrounded horizontally + ); + break; + default: + return false; + break; + } + +}; + +/* + This manager tracks offsets of draggables and droppables +*/ +$.ui.ddmanager = { + current: null, + droppables: { 'default': [] }, + prepareOffsets: function(t, event) { + + var m = $.ui.ddmanager.droppables[t.options.scope] || []; + var type = event ? event.type : null; // workaround for #2317 + var list = (t.currentItem || t.element).find(":data(droppable)").andSelf(); + + droppablesLoop: for (var i = 0; i < m.length; i++) { + + if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) continue; //No disabled and non-accepted + for (var j=0; j < list.length; j++) { if(list[j] == m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } }; //Filter out elements in the current dragged item + m[i].visible = m[i].element.css("display") != "none"; if(!m[i].visible) continue; //If the element is not visible, continue + + m[i].offset = m[i].element.offset(); + m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight }; + + if(type == "mousedown") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables + + } + + }, + drop: function(draggable, event) { + + var dropped = false; + $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() { + + if(!this.options) return; + if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance)) + dropped = dropped || this._drop.call(this, event); + + if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { + this.isout = 1; this.isover = 0; + this._deactivate.call(this, event); + } + + }); + return dropped; + + }, + drag: function(draggable, event) { + + //If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse. + if(draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event); + + //Run through all droppables and check their positions based on specific tolerance options + $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() { + + if(this.options.disabled || this.greedyChild || !this.visible) return; + var intersects = $.ui.intersect(draggable, this, this.options.tolerance); + + var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null); + if(!c) return; + + var parentInstance; + if (this.options.greedy) { + var parent = this.element.parents(':data(droppable):eq(0)'); + if (parent.length) { + parentInstance = $.data(parent[0], 'droppable'); + parentInstance.greedyChild = (c == 'isover' ? 1 : 0); + } + } + + // we just moved into a greedy child + if (parentInstance && c == 'isover') { + parentInstance['isover'] = 0; + parentInstance['isout'] = 1; + parentInstance._out.call(parentInstance, event); + } + + this[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0; + this[c == "isover" ? "_over" : "_out"].call(this, event); + + // we just moved out of a greedy child + if (parentInstance && c == 'isout') { + parentInstance['isout'] = 0; + parentInstance['isover'] = 1; + parentInstance._over.call(parentInstance, event); + } + }); + + } +}; + +})(jQuery); +/* + * jQuery UI Resizable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget("ui.resizable", $.ui.mouse, { + widgetEventPrefix: "resize", + options: { + alsoResize: false, + animate: false, + animateDuration: "slow", + animateEasing: "swing", + aspectRatio: false, + autoHide: false, + containment: false, + ghost: false, + grid: false, + handles: "e,s,se", + helper: false, + maxHeight: null, + maxWidth: null, + minHeight: 10, + minWidth: 10, + zIndex: 1000 + }, + _create: function() { + + var self = this, o = this.options; + this.element.addClass("ui-resizable"); + + $.extend(this, { + _aspectRatio: !!(o.aspectRatio), + aspectRatio: o.aspectRatio, + originalElement: this.element, + _proportionallyResizeElements: [], + _helper: o.helper || o.ghost || o.animate ? o.helper || 'ui-resizable-helper' : null + }); + + //Wrap the element if it cannot hold child nodes + if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) { + + //Opera fix for relative positioning + if (/relative/.test(this.element.css('position')) && $.browser.opera) + this.element.css({ position: 'relative', top: 'auto', left: 'auto' }); + + //Create a wrapper element and set the wrapper to the new current internal element + this.element.wrap( + $('
    ').css({ + position: this.element.css('position'), + width: this.element.outerWidth(), + height: this.element.outerHeight(), + top: this.element.css('top'), + left: this.element.css('left') + }) + ); + + //Overwrite the original this.element + this.element = this.element.parent().data( + "resizable", this.element.data('resizable') + ); + + this.elementIsWrapper = true; + + //Move margins to the wrapper + this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") }); + this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0}); + + //Prevent Safari textarea resize + this.originalResizeStyle = this.originalElement.css('resize'); + this.originalElement.css('resize', 'none'); + + //Push the actual element to our proportionallyResize internal array + this._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' })); + + // avoid IE jump (hard set the margin) + this.originalElement.css({ margin: this.originalElement.css('margin') }); + + // fix handlers offset + this._proportionallyResize(); + + } + + this.handles = o.handles || (!$('.ui-resizable-handle', this.element).length ? "e,s,se" : { n: '.ui-resizable-n', e: '.ui-resizable-e', s: '.ui-resizable-s', w: '.ui-resizable-w', se: '.ui-resizable-se', sw: '.ui-resizable-sw', ne: '.ui-resizable-ne', nw: '.ui-resizable-nw' }); + if(this.handles.constructor == String) { + + if(this.handles == 'all') this.handles = 'n,e,s,w,se,sw,ne,nw'; + var n = this.handles.split(","); this.handles = {}; + + for(var i = 0; i < n.length; i++) { + + var handle = $.trim(n[i]), hname = 'ui-resizable-'+handle; + var axis = $('
    '); + + // increase zIndex of sw, se, ne, nw axis + //TODO : this modifies original option + if(/sw|se|ne|nw/.test(handle)) axis.css({ zIndex: ++o.zIndex }); + + //TODO : What's going on here? + if ('se' == handle) { + axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se'); + }; + + //Insert into internal handles object and append to element + this.handles[handle] = '.ui-resizable-'+handle; + this.element.append(axis); + } + + } + + this._renderAxis = function(target) { + + target = target || this.element; + + for(var i in this.handles) { + + if(this.handles[i].constructor == String) + this.handles[i] = $(this.handles[i], this.element).show(); + + //Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls) + if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { + + var axis = $(this.handles[i], this.element), padWrapper = 0; + + //Checking the correct pad and border + padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth(); + + //The padding type i have to apply... + var padPos = [ 'padding', + /ne|nw|n/.test(i) ? 'Top' : + /se|sw|s/.test(i) ? 'Bottom' : + /^e$/.test(i) ? 'Right' : 'Left' ].join(""); + + target.css(padPos, padWrapper); + + this._proportionallyResize(); + + } + + //TODO: What's that good for? There's not anything to be executed left + if(!$(this.handles[i]).length) + continue; + + } + }; + + //TODO: make renderAxis a prototype function + this._renderAxis(this.element); + + this._handles = $('.ui-resizable-handle', this.element) + .disableSelection(); + + //Matching axis name + this._handles.mouseover(function() { + if (!self.resizing) { + if (this.className) + var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); + //Axis, default = se + self.axis = axis && axis[1] ? axis[1] : 'se'; + } + }); + + //If we want to auto hide the elements + if (o.autoHide) { + this._handles.hide(); + $(this.element) + .addClass("ui-resizable-autohide") + .hover(function() { + $(this).removeClass("ui-resizable-autohide"); + self._handles.show(); + }, + function(){ + if (!self.resizing) { + $(this).addClass("ui-resizable-autohide"); + self._handles.hide(); + } + }); + } + + //Initialize the mouse interaction + this._mouseInit(); + + }, + + destroy: function() { + + this._mouseDestroy(); + + var _destroy = function(exp) { + $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing") + .removeData("resizable").unbind(".resizable").find('.ui-resizable-handle').remove(); + }; + + //TODO: Unwrap at same DOM position + if (this.elementIsWrapper) { + _destroy(this.element); + var wrapper = this.element; + wrapper.after( + this.originalElement.css({ + position: wrapper.css('position'), + width: wrapper.outerWidth(), + height: wrapper.outerHeight(), + top: wrapper.css('top'), + left: wrapper.css('left') + }) + ).remove(); + } + + this.originalElement.css('resize', this.originalResizeStyle); + _destroy(this.originalElement); + + return this; + }, + + _mouseCapture: function(event) { + var handle = false; + for (var i in this.handles) { + if ($(this.handles[i])[0] == event.target) { + handle = true; + } + } + + return !this.options.disabled && handle; + }, + + _mouseStart: function(event) { + + var o = this.options, iniPos = this.element.position(), el = this.element; + + this.resizing = true; + this.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() }; + + // bugfix for http://dev.jquery.com/ticket/1749 + if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) { + el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left }); + } + + //Opera fixing relative position + if ($.browser.opera && (/relative/).test(el.css('position'))) + el.css({ position: 'relative', top: 'auto', left: 'auto' }); + + this._renderProxy(); + + var curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top')); + + if (o.containment) { + curleft += $(o.containment).scrollLeft() || 0; + curtop += $(o.containment).scrollTop() || 0; + } + + //Store needed variables + this.offset = this.helper.offset(); + this.position = { left: curleft, top: curtop }; + this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; + this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; + this.originalPosition = { left: curleft, top: curtop }; + this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() }; + this.originalMousePosition = { left: event.pageX, top: event.pageY }; + + //Aspect Ratio + this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1); + + var cursor = $('.ui-resizable-' + this.axis).css('cursor'); + $('body').css('cursor', cursor == 'auto' ? this.axis + '-resize' : cursor); + + el.addClass("ui-resizable-resizing"); + this._propagate("start", event); + return true; + }, + + _mouseDrag: function(event) { + + //Increase performance, avoid regex + var el = this.helper, o = this.options, props = {}, + self = this, smp = this.originalMousePosition, a = this.axis; + + var dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0; + var trigger = this._change[a]; + if (!trigger) return false; + + // Calculate the attrs that will be change + var data = trigger.apply(this, [event, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff; + + if (this._aspectRatio || event.shiftKey) + data = this._updateRatio(data, event); + + data = this._respectSize(data, event); + + // plugins callbacks need to be called first + this._propagate("resize", event); + + el.css({ + top: this.position.top + "px", left: this.position.left + "px", + width: this.size.width + "px", height: this.size.height + "px" + }); + + if (!this._helper && this._proportionallyResizeElements.length) + this._proportionallyResize(); + + this._updateCache(data); + + // calling the user callback at the end + this._trigger('resize', event, this.ui()); + + return false; + }, + + _mouseStop: function(event) { + + this.resizing = false; + var o = this.options, self = this; + + if(this._helper) { + var pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), + soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height, + soffsetw = ista ? 0 : self.sizeDiff.width; + + var s = { width: (self.helper.width() - soffsetw), height: (self.helper.height() - soffseth) }, + left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null, + top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null; + + if (!o.animate) + this.element.css($.extend(s, { top: top, left: left })); + + self.helper.height(self.size.height); + self.helper.width(self.size.width); + + if (this._helper && !o.animate) this._proportionallyResize(); + } + + $('body').css('cursor', 'auto'); + + this.element.removeClass("ui-resizable-resizing"); + + this._propagate("stop", event); + + if (this._helper) this.helper.remove(); + return false; + + }, + + _updateCache: function(data) { + var o = this.options; + this.offset = this.helper.offset(); + if (isNumber(data.left)) this.position.left = data.left; + if (isNumber(data.top)) this.position.top = data.top; + if (isNumber(data.height)) this.size.height = data.height; + if (isNumber(data.width)) this.size.width = data.width; + }, + + _updateRatio: function(data, event) { + + var o = this.options, cpos = this.position, csize = this.size, a = this.axis; + + if (data.height) data.width = (csize.height * this.aspectRatio); + else if (data.width) data.height = (csize.width / this.aspectRatio); + + if (a == 'sw') { + data.left = cpos.left + (csize.width - data.width); + data.top = null; + } + if (a == 'nw') { + data.top = cpos.top + (csize.height - data.height); + data.left = cpos.left + (csize.width - data.width); + } + + return data; + }, + + _respectSize: function(data, event) { + + var el = this.helper, o = this.options, pRatio = this._aspectRatio || event.shiftKey, a = this.axis, + ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), + isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height); + + if (isminw) data.width = o.minWidth; + if (isminh) data.height = o.minHeight; + if (ismaxw) data.width = o.maxWidth; + if (ismaxh) data.height = o.maxHeight; + + var dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height; + var cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a); + + if (isminw && cw) data.left = dw - o.minWidth; + if (ismaxw && cw) data.left = dw - o.maxWidth; + if (isminh && ch) data.top = dh - o.minHeight; + if (ismaxh && ch) data.top = dh - o.maxHeight; + + // fixing jump error on top/left - bug #2330 + var isNotwh = !data.width && !data.height; + if (isNotwh && !data.left && data.top) data.top = null; + else if (isNotwh && !data.top && data.left) data.left = null; + + return data; + }, + + _proportionallyResize: function() { + + var o = this.options; + if (!this._proportionallyResizeElements.length) return; + var element = this.helper || this.element; + + for (var i=0; i < this._proportionallyResizeElements.length; i++) { + + var prel = this._proportionallyResizeElements[i]; + + if (!this.borderDif) { + var b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')], + p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')]; + + this.borderDif = $.map(b, function(v, i) { + var border = parseInt(v,10)||0, padding = parseInt(p[i],10)||0; + return border + padding; + }); + } + + if ($.browser.msie && !(!($(element).is(':hidden') || $(element).parents(':hidden').length))) + continue; + + prel.css({ + height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0, + width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0 + }); + + }; + + }, + + _renderProxy: function() { + + var el = this.element, o = this.options; + this.elementOffset = el.offset(); + + if(this._helper) { + + this.helper = this.helper || $('
    '); + + // fix ie6 offset TODO: This seems broken + var ie6 = $.browser.msie && $.browser.version < 7, ie6offset = (ie6 ? 1 : 0), + pxyoffset = ( ie6 ? 2 : -1 ); + + this.helper.addClass(this._helper).css({ + width: this.element.outerWidth() + pxyoffset, + height: this.element.outerHeight() + pxyoffset, + position: 'absolute', + left: this.elementOffset.left - ie6offset +'px', + top: this.elementOffset.top - ie6offset +'px', + zIndex: ++o.zIndex //TODO: Don't modify option + }); + + this.helper + .appendTo("body") + .disableSelection(); + + } else { + this.helper = this.element; + } + + }, + + _change: { + e: function(event, dx, dy) { + return { width: this.originalSize.width + dx }; + }, + w: function(event, dx, dy) { + var o = this.options, cs = this.originalSize, sp = this.originalPosition; + return { left: sp.left + dx, width: cs.width - dx }; + }, + n: function(event, dx, dy) { + var o = this.options, cs = this.originalSize, sp = this.originalPosition; + return { top: sp.top + dy, height: cs.height - dy }; + }, + s: function(event, dx, dy) { + return { height: this.originalSize.height + dy }; + }, + se: function(event, dx, dy) { + return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); + }, + sw: function(event, dx, dy) { + return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); + }, + ne: function(event, dx, dy) { + return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); + }, + nw: function(event, dx, dy) { + return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); + } + }, + + _propagate: function(n, event) { + $.ui.plugin.call(this, n, [event, this.ui()]); + (n != "resize" && this._trigger(n, event, this.ui())); + }, + + plugins: {}, + + ui: function() { + return { + originalElement: this.originalElement, + element: this.element, + helper: this.helper, + position: this.position, + size: this.size, + originalSize: this.originalSize, + originalPosition: this.originalPosition + }; + } + +}); + +$.extend($.ui.resizable, { + version: "1.8.10" +}); + +/* + * Resizable Extensions + */ + +$.ui.plugin.add("resizable", "alsoResize", { + + start: function (event, ui) { + var self = $(this).data("resizable"), o = self.options; + + var _store = function (exp) { + $(exp).each(function() { + var el = $(this); + el.data("resizable-alsoresize", { + width: parseInt(el.width(), 10), height: parseInt(el.height(), 10), + left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10), + position: el.css('position') // to reset Opera on stop() + }); + }); + }; + + if (typeof(o.alsoResize) == 'object' && !o.alsoResize.parentNode) { + if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); } + else { $.each(o.alsoResize, function (exp) { _store(exp); }); } + }else{ + _store(o.alsoResize); + } + }, + + resize: function (event, ui) { + var self = $(this).data("resizable"), o = self.options, os = self.originalSize, op = self.originalPosition; + + var delta = { + height: (self.size.height - os.height) || 0, width: (self.size.width - os.width) || 0, + top: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0 + }, + + _alsoResize = function (exp, c) { + $(exp).each(function() { + var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, + css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left']; + + $.each(css, function (i, prop) { + var sum = (start[prop]||0) + (delta[prop]||0); + if (sum && sum >= 0) + style[prop] = sum || null; + }); + + // Opera fixing relative position + if ($.browser.opera && /relative/.test(el.css('position'))) { + self._revertToRelativePosition = true; + el.css({ position: 'absolute', top: 'auto', left: 'auto' }); + } + + el.css(style); + }); + }; + + if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) { + $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); }); + }else{ + _alsoResize(o.alsoResize); + } + }, + + stop: function (event, ui) { + var self = $(this).data("resizable"), o = self.options; + + var _reset = function (exp) { + $(exp).each(function() { + var el = $(this); + // reset position for Opera - no need to verify it was changed + el.css({ position: el.data("resizable-alsoresize").position }); + }); + }; + + if (self._revertToRelativePosition) { + self._revertToRelativePosition = false; + if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) { + $.each(o.alsoResize, function (exp) { _reset(exp); }); + }else{ + _reset(o.alsoResize); + } + } + + $(this).removeData("resizable-alsoresize"); + } +}); + +$.ui.plugin.add("resizable", "animate", { + + stop: function(event, ui) { + var self = $(this).data("resizable"), o = self.options; + + var pr = self._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), + soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height, + soffsetw = ista ? 0 : self.sizeDiff.width; + + var style = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) }, + left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null, + top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null; + + self.element.animate( + $.extend(style, top && left ? { top: top, left: left } : {}), { + duration: o.animateDuration, + easing: o.animateEasing, + step: function() { + + var data = { + width: parseInt(self.element.css('width'), 10), + height: parseInt(self.element.css('height'), 10), + top: parseInt(self.element.css('top'), 10), + left: parseInt(self.element.css('left'), 10) + }; + + if (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height }); + + // propagating resize, and updating values for each animation step + self._updateCache(data); + self._propagate("resize", event); + + } + } + ); + } + +}); + +$.ui.plugin.add("resizable", "containment", { + + start: function(event, ui) { + var self = $(this).data("resizable"), o = self.options, el = self.element; + var oc = o.containment, ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc; + if (!ce) return; + + self.containerElement = $(ce); + + if (/document/.test(oc) || oc == document) { + self.containerOffset = { left: 0, top: 0 }; + self.containerPosition = { left: 0, top: 0 }; + + self.parentData = { + element: $(document), left: 0, top: 0, + width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight + }; + } + + // i'm a node, so compute top, left, right, bottom + else { + var element = $(ce), p = []; + $([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); }); + + self.containerOffset = element.offset(); + self.containerPosition = element.position(); + self.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) }; + + var co = self.containerOffset, ch = self.containerSize.height, cw = self.containerSize.width, + width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch); + + self.parentData = { + element: ce, left: co.left, top: co.top, width: width, height: height + }; + } + }, + + resize: function(event, ui) { + var self = $(this).data("resizable"), o = self.options, + ps = self.containerSize, co = self.containerOffset, cs = self.size, cp = self.position, + pRatio = self._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = self.containerElement; + + if (ce[0] != document && (/static/).test(ce.css('position'))) cop = co; + + if (cp.left < (self._helper ? co.left : 0)) { + self.size.width = self.size.width + (self._helper ? (self.position.left - co.left) : (self.position.left - cop.left)); + if (pRatio) self.size.height = self.size.width / o.aspectRatio; + self.position.left = o.helper ? co.left : 0; + } + + if (cp.top < (self._helper ? co.top : 0)) { + self.size.height = self.size.height + (self._helper ? (self.position.top - co.top) : self.position.top); + if (pRatio) self.size.width = self.size.height * o.aspectRatio; + self.position.top = self._helper ? co.top : 0; + } + + self.offset.left = self.parentData.left+self.position.left; + self.offset.top = self.parentData.top+self.position.top; + + var woset = Math.abs( (self._helper ? self.offset.left - cop.left : (self.offset.left - cop.left)) + self.sizeDiff.width ), + hoset = Math.abs( (self._helper ? self.offset.top - cop.top : (self.offset.top - co.top)) + self.sizeDiff.height ); + + var isParent = self.containerElement.get(0) == self.element.parent().get(0), + isOffsetRelative = /relative|absolute/.test(self.containerElement.css('position')); + + if(isParent && isOffsetRelative) woset -= self.parentData.left; + + if (woset + self.size.width >= self.parentData.width) { + self.size.width = self.parentData.width - woset; + if (pRatio) self.size.height = self.size.width / self.aspectRatio; + } + + if (hoset + self.size.height >= self.parentData.height) { + self.size.height = self.parentData.height - hoset; + if (pRatio) self.size.width = self.size.height * self.aspectRatio; + } + }, + + stop: function(event, ui){ + var self = $(this).data("resizable"), o = self.options, cp = self.position, + co = self.containerOffset, cop = self.containerPosition, ce = self.containerElement; + + var helper = $(self.helper), ho = helper.offset(), w = helper.outerWidth() - self.sizeDiff.width, h = helper.outerHeight() - self.sizeDiff.height; + + if (self._helper && !o.animate && (/relative/).test(ce.css('position'))) + $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); + + if (self._helper && !o.animate && (/static/).test(ce.css('position'))) + $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); + + } +}); + +$.ui.plugin.add("resizable", "ghost", { + + start: function(event, ui) { + + var self = $(this).data("resizable"), o = self.options, cs = self.size; + + self.ghost = self.originalElement.clone(); + self.ghost + .css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 }) + .addClass('ui-resizable-ghost') + .addClass(typeof o.ghost == 'string' ? o.ghost : ''); + + self.ghost.appendTo(self.helper); + + }, + + resize: function(event, ui){ + var self = $(this).data("resizable"), o = self.options; + if (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width }); + }, + + stop: function(event, ui){ + var self = $(this).data("resizable"), o = self.options; + if (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0)); + } + +}); + +$.ui.plugin.add("resizable", "grid", { + + resize: function(event, ui) { + var self = $(this).data("resizable"), o = self.options, cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey; + o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid; + var ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1); + + if (/^(se|s|e)$/.test(a)) { + self.size.width = os.width + ox; + self.size.height = os.height + oy; + } + else if (/^(ne)$/.test(a)) { + self.size.width = os.width + ox; + self.size.height = os.height + oy; + self.position.top = op.top - oy; + } + else if (/^(sw)$/.test(a)) { + self.size.width = os.width + ox; + self.size.height = os.height + oy; + self.position.left = op.left - ox; + } + else { + self.size.width = os.width + ox; + self.size.height = os.height + oy; + self.position.top = op.top - oy; + self.position.left = op.left - ox; + } + } + +}); + +var num = function(v) { + return parseInt(v, 10) || 0; +}; + +var isNumber = function(value) { + return !isNaN(parseInt(value, 10)); +}; + +})(jQuery); +/* + * jQuery UI Selectable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget("ui.selectable", $.ui.mouse, { + options: { + appendTo: 'body', + autoRefresh: true, + distance: 0, + filter: '*', + tolerance: 'touch' + }, + _create: function() { + var self = this; + + this.element.addClass("ui-selectable"); + + this.dragged = false; + + // cache selectee children based on filter + var selectees; + this.refresh = function() { + selectees = $(self.options.filter, self.element[0]); + selectees.each(function() { + var $this = $(this); + var pos = $this.offset(); + $.data(this, "selectable-item", { + element: this, + $element: $this, + left: pos.left, + top: pos.top, + right: pos.left + $this.outerWidth(), + bottom: pos.top + $this.outerHeight(), + startselected: false, + selected: $this.hasClass('ui-selected'), + selecting: $this.hasClass('ui-selecting'), + unselecting: $this.hasClass('ui-unselecting') + }); + }); + }; + this.refresh(); + + this.selectees = selectees.addClass("ui-selectee"); + + this._mouseInit(); + + this.helper = $("
    "); + }, + + destroy: function() { + this.selectees + .removeClass("ui-selectee") + .removeData("selectable-item"); + this.element + .removeClass("ui-selectable ui-selectable-disabled") + .removeData("selectable") + .unbind(".selectable"); + this._mouseDestroy(); + + return this; + }, + + _mouseStart: function(event) { + var self = this; + + this.opos = [event.pageX, event.pageY]; + + if (this.options.disabled) + return; + + var options = this.options; + + this.selectees = $(options.filter, this.element[0]); + + this._trigger("start", event); + + $(options.appendTo).append(this.helper); + // position helper (lasso) + this.helper.css({ + "left": event.clientX, + "top": event.clientY, + "width": 0, + "height": 0 + }); + + if (options.autoRefresh) { + this.refresh(); + } + + this.selectees.filter('.ui-selected').each(function() { + var selectee = $.data(this, "selectable-item"); + selectee.startselected = true; + if (!event.metaKey) { + selectee.$element.removeClass('ui-selected'); + selectee.selected = false; + selectee.$element.addClass('ui-unselecting'); + selectee.unselecting = true; + // selectable UNSELECTING callback + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + }); + + $(event.target).parents().andSelf().each(function() { + var selectee = $.data(this, "selectable-item"); + if (selectee) { + var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected'); + selectee.$element + .removeClass(doSelect ? "ui-unselecting" : "ui-selected") + .addClass(doSelect ? "ui-selecting" : "ui-unselecting"); + selectee.unselecting = !doSelect; + selectee.selecting = doSelect; + selectee.selected = doSelect; + // selectable (UN)SELECTING callback + if (doSelect) { + self._trigger("selecting", event, { + selecting: selectee.element + }); + } else { + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + return false; + } + }); + + }, + + _mouseDrag: function(event) { + var self = this; + this.dragged = true; + + if (this.options.disabled) + return; + + var options = this.options; + + var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY; + if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; } + if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; } + this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1}); + + this.selectees.each(function() { + var selectee = $.data(this, "selectable-item"); + //prevent helper from being selected if appendTo: selectable + if (!selectee || selectee.element == self.element[0]) + return; + var hit = false; + if (options.tolerance == 'touch') { + hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) ); + } else if (options.tolerance == 'fit') { + hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2); + } + + if (hit) { + // SELECT + if (selectee.selected) { + selectee.$element.removeClass('ui-selected'); + selectee.selected = false; + } + if (selectee.unselecting) { + selectee.$element.removeClass('ui-unselecting'); + selectee.unselecting = false; + } + if (!selectee.selecting) { + selectee.$element.addClass('ui-selecting'); + selectee.selecting = true; + // selectable SELECTING callback + self._trigger("selecting", event, { + selecting: selectee.element + }); + } + } else { + // UNSELECT + if (selectee.selecting) { + if (event.metaKey && selectee.startselected) { + selectee.$element.removeClass('ui-selecting'); + selectee.selecting = false; + selectee.$element.addClass('ui-selected'); + selectee.selected = true; + } else { + selectee.$element.removeClass('ui-selecting'); + selectee.selecting = false; + if (selectee.startselected) { + selectee.$element.addClass('ui-unselecting'); + selectee.unselecting = true; + } + // selectable UNSELECTING callback + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + } + if (selectee.selected) { + if (!event.metaKey && !selectee.startselected) { + selectee.$element.removeClass('ui-selected'); + selectee.selected = false; + + selectee.$element.addClass('ui-unselecting'); + selectee.unselecting = true; + // selectable UNSELECTING callback + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + } + } + }); + + return false; + }, + + _mouseStop: function(event) { + var self = this; + + this.dragged = false; + + var options = this.options; + + $('.ui-unselecting', this.element[0]).each(function() { + var selectee = $.data(this, "selectable-item"); + selectee.$element.removeClass('ui-unselecting'); + selectee.unselecting = false; + selectee.startselected = false; + self._trigger("unselected", event, { + unselected: selectee.element + }); + }); + $('.ui-selecting', this.element[0]).each(function() { + var selectee = $.data(this, "selectable-item"); + selectee.$element.removeClass('ui-selecting').addClass('ui-selected'); + selectee.selecting = false; + selectee.selected = true; + selectee.startselected = true; + self._trigger("selected", event, { + selected: selectee.element + }); + }); + this._trigger("stop", event); + + this.helper.remove(); + + return false; + } + +}); + +$.extend($.ui.selectable, { + version: "1.8.10" +}); + +})(jQuery); +/* + * jQuery UI Sortable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Sortables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget("ui.sortable", $.ui.mouse, { + widgetEventPrefix: "sort", + options: { + appendTo: "parent", + axis: false, + connectWith: false, + containment: false, + cursor: 'auto', + cursorAt: false, + dropOnEmpty: true, + forcePlaceholderSize: false, + forceHelperSize: false, + grid: false, + handle: false, + helper: "original", + items: '> *', + opacity: false, + placeholder: false, + revert: false, + scroll: true, + scrollSensitivity: 20, + scrollSpeed: 20, + scope: "default", + tolerance: "intersect", + zIndex: 1000 + }, + _create: function() { + + var o = this.options; + this.containerCache = {}; + this.element.addClass("ui-sortable"); + + //Get the items + this.refresh(); + + //Let's determine if the items are floating + this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css('float')) : false; + + //Let's determine the parent's offset + this.offset = this.element.offset(); + + //Initialize mouse events for interaction + this._mouseInit(); + + }, + + destroy: function() { + this.element + .removeClass("ui-sortable ui-sortable-disabled") + .removeData("sortable") + .unbind(".sortable"); + this._mouseDestroy(); + + for ( var i = this.items.length - 1; i >= 0; i-- ) + this.items[i].item.removeData("sortable-item"); + + return this; + }, + + _setOption: function(key, value){ + if ( key === "disabled" ) { + this.options[ key ] = value; + + this.widget() + [ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" ); + } else { + // Don't call widget base _setOption for disable as it adds ui-state-disabled class + $.Widget.prototype._setOption.apply(this, arguments); + } + }, + + _mouseCapture: function(event, overrideHandle) { + + if (this.reverting) { + return false; + } + + if(this.options.disabled || this.options.type == 'static') return false; + + //We have to refresh the items data once first + this._refreshItems(event); + + //Find out if the clicked node (or one of its parents) is a actual item in this.items + var currentItem = null, self = this, nodes = $(event.target).parents().each(function() { + if($.data(this, 'sortable-item') == self) { + currentItem = $(this); + return false; + } + }); + if($.data(event.target, 'sortable-item') == self) currentItem = $(event.target); + + if(!currentItem) return false; + if(this.options.handle && !overrideHandle) { + var validHandle = false; + + $(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this == event.target) validHandle = true; }); + if(!validHandle) return false; + } + + this.currentItem = currentItem; + this._removeCurrentsFromItems(); + return true; + + }, + + _mouseStart: function(event, overrideHandle, noActivation) { + + var o = this.options, self = this; + this.currentContainer = this; + + //We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture + this.refreshPositions(); + + //Create and append the visible helper + this.helper = this._createHelper(event); + + //Cache the helper size + this._cacheHelperProportions(); + + /* + * - Position generation - + * This block generates everything position related - it's the core of draggables. + */ + + //Cache the margins of the original element + this._cacheMargins(); + + //Get the next scrolling parent + this.scrollParent = this.helper.scrollParent(); + + //The element's absolute position on the page minus margins + this.offset = this.currentItem.offset(); + this.offset = { + top: this.offset.top - this.margins.top, + left: this.offset.left - this.margins.left + }; + + // Only after we got the offset, we can change the helper's position to absolute + // TODO: Still need to figure out a way to make relative sorting possible + this.helper.css("position", "absolute"); + this.cssPosition = this.helper.css("position"); + + $.extend(this.offset, { + click: { //Where the click happened, relative to the element + left: event.pageX - this.offset.left, + top: event.pageY - this.offset.top + }, + parent: this._getParentOffset(), + relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper + }); + + //Generate the original position + this.originalPosition = this._generatePosition(event); + this.originalPageX = event.pageX; + this.originalPageY = event.pageY; + + //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied + (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); + + //Cache the former DOM position + this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; + + //If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way + if(this.helper[0] != this.currentItem[0]) { + this.currentItem.hide(); + } + + //Create the placeholder + this._createPlaceholder(); + + //Set a containment if given in the options + if(o.containment) + this._setContainment(); + + if(o.cursor) { // cursor option + if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor"); + $('body').css("cursor", o.cursor); + } + + if(o.opacity) { // opacity option + if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity"); + this.helper.css("opacity", o.opacity); + } + + if(o.zIndex) { // zIndex option + if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex"); + this.helper.css("zIndex", o.zIndex); + } + + //Prepare scrolling + if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') + this.overflowOffset = this.scrollParent.offset(); + + //Call callbacks + this._trigger("start", event, this._uiHash()); + + //Recache the helper size + if(!this._preserveHelperProportions) + this._cacheHelperProportions(); + + + //Post 'activate' events to possible containers + if(!noActivation) { + for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger("activate", event, self._uiHash(this)); } + } + + //Prepare possible droppables + if($.ui.ddmanager) + $.ui.ddmanager.current = this; + + if ($.ui.ddmanager && !o.dropBehaviour) + $.ui.ddmanager.prepareOffsets(this, event); + + this.dragging = true; + + this.helper.addClass("ui-sortable-helper"); + this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position + return true; + + }, + + _mouseDrag: function(event) { + + //Compute the helpers position + this.position = this._generatePosition(event); + this.positionAbs = this._convertPositionTo("absolute"); + + if (!this.lastPositionAbs) { + this.lastPositionAbs = this.positionAbs; + } + + //Do scrolling + if(this.options.scroll) { + var o = this.options, scrolled = false; + if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') { + + if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) + this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed; + else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) + this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed; + + if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) + this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed; + else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) + this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed; + + } else { + + if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) + scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); + else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) + scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); + + if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) + scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); + else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) + scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); + + } + + if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) + $.ui.ddmanager.prepareOffsets(this, event); + } + + //Regenerate the absolute position used for position checks + this.positionAbs = this._convertPositionTo("absolute"); + + //Set the helper position + if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px'; + if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px'; + + //Rearrange + for (var i = this.items.length - 1; i >= 0; i--) { + + //Cache variables and intersection, continue if no intersection + var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item); + if (!intersection) continue; + + if(itemElement != this.currentItem[0] //cannot intersect with itself + && this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before + && !$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked + && (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true) + //&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container + ) { + + this.direction = intersection == 1 ? "down" : "up"; + + if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) { + this._rearrange(event, item); + } else { + break; + } + + this._trigger("change", event, this._uiHash()); + break; + } + } + + //Post events to containers + this._contactContainers(event); + + //Interconnect with droppables + if($.ui.ddmanager) $.ui.ddmanager.drag(this, event); + + //Call callbacks + this._trigger('sort', event, this._uiHash()); + + this.lastPositionAbs = this.positionAbs; + return false; + + }, + + _mouseStop: function(event, noPropagation) { + + if(!event) return; + + //If we are using droppables, inform the manager about the drop + if ($.ui.ddmanager && !this.options.dropBehaviour) + $.ui.ddmanager.drop(this, event); + + if(this.options.revert) { + var self = this; + var cur = self.placeholder.offset(); + + self.reverting = true; + + $(this.helper).animate({ + left: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft), + top: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) + }, parseInt(this.options.revert, 10) || 500, function() { + self._clear(event); + }); + } else { + this._clear(event, noPropagation); + } + + return false; + + }, + + cancel: function() { + + var self = this; + + if(this.dragging) { + + this._mouseUp({ target: null }); + + if(this.options.helper == "original") + this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); + else + this.currentItem.show(); + + //Post deactivating events to containers + for (var i = this.containers.length - 1; i >= 0; i--){ + this.containers[i]._trigger("deactivate", null, self._uiHash(this)); + if(this.containers[i].containerCache.over) { + this.containers[i]._trigger("out", null, self._uiHash(this)); + this.containers[i].containerCache.over = 0; + } + } + + } + + if (this.placeholder) { + //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! + if(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]); + if(this.options.helper != "original" && this.helper && this.helper[0].parentNode) this.helper.remove(); + + $.extend(this, { + helper: null, + dragging: false, + reverting: false, + _noFinalSort: null + }); + + if(this.domPosition.prev) { + $(this.domPosition.prev).after(this.currentItem); + } else { + $(this.domPosition.parent).prepend(this.currentItem); + } + } + + return this; + + }, + + serialize: function(o) { + + var items = this._getItemsAsjQuery(o && o.connected); + var str = []; o = o || {}; + + $(items).each(function() { + var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/)); + if(res) str.push((o.key || res[1]+'[]')+'='+(o.key && o.expression ? res[1] : res[2])); + }); + + if(!str.length && o.key) { + str.push(o.key + '='); + } + + return str.join('&'); + + }, + + toArray: function(o) { + + var items = this._getItemsAsjQuery(o && o.connected); + var ret = []; o = o || {}; + + items.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); }); + return ret; + + }, + + /* Be careful with the following core functions */ + _intersectsWith: function(item) { + + var x1 = this.positionAbs.left, + x2 = x1 + this.helperProportions.width, + y1 = this.positionAbs.top, + y2 = y1 + this.helperProportions.height; + + var l = item.left, + r = l + item.width, + t = item.top, + b = t + item.height; + + var dyClick = this.offset.click.top, + dxClick = this.offset.click.left; + + var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r; + + if( this.options.tolerance == "pointer" + || this.options.forcePointerForContainers + || (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height']) + ) { + return isOverElement; + } else { + + return (l < x1 + (this.helperProportions.width / 2) // Right Half + && x2 - (this.helperProportions.width / 2) < r // Left Half + && t < y1 + (this.helperProportions.height / 2) // Bottom Half + && y2 - (this.helperProportions.height / 2) < b ); // Top Half + + } + }, + + _intersectsWithPointer: function(item) { + + var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height), + isOverElementWidth = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width), + isOverElement = isOverElementHeight && isOverElementWidth, + verticalDirection = this._getDragVerticalDirection(), + horizontalDirection = this._getDragHorizontalDirection(); + + if (!isOverElement) + return false; + + return this.floating ? + ( ((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1 ) + : ( verticalDirection && (verticalDirection == "down" ? 2 : 1) ); + + }, + + _intersectsWithSides: function(item) { + + var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height), + isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width), + verticalDirection = this._getDragVerticalDirection(), + horizontalDirection = this._getDragHorizontalDirection(); + + if (this.floating && horizontalDirection) { + return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf)); + } else { + return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf)); + } + + }, + + _getDragVerticalDirection: function() { + var delta = this.positionAbs.top - this.lastPositionAbs.top; + return delta != 0 && (delta > 0 ? "down" : "up"); + }, + + _getDragHorizontalDirection: function() { + var delta = this.positionAbs.left - this.lastPositionAbs.left; + return delta != 0 && (delta > 0 ? "right" : "left"); + }, + + refresh: function(event) { + this._refreshItems(event); + this.refreshPositions(); + return this; + }, + + _connectWith: function() { + var options = this.options; + return options.connectWith.constructor == String + ? [options.connectWith] + : options.connectWith; + }, + + _getItemsAsjQuery: function(connected) { + + var self = this; + var items = []; + var queries = []; + var connectWith = this._connectWith(); + + if(connectWith && connected) { + for (var i = connectWith.length - 1; i >= 0; i--){ + var cur = $(connectWith[i]); + for (var j = cur.length - 1; j >= 0; j--){ + var inst = $.data(cur[j], 'sortable'); + if(inst && inst != this && !inst.options.disabled) { + queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]); + } + }; + }; + } + + queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]); + + for (var i = queries.length - 1; i >= 0; i--){ + queries[i][0].each(function() { + items.push(this); + }); + }; + + return $(items); + + }, + + _removeCurrentsFromItems: function() { + + var list = this.currentItem.find(":data(sortable-item)"); + + for (var i=0; i < this.items.length; i++) { + + for (var j=0; j < list.length; j++) { + if(list[j] == this.items[i].item[0]) + this.items.splice(i,1); + }; + + }; + + }, + + _refreshItems: function(event) { + + this.items = []; + this.containers = [this]; + var items = this.items; + var self = this; + var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]]; + var connectWith = this._connectWith(); + + if(connectWith) { + for (var i = connectWith.length - 1; i >= 0; i--){ + var cur = $(connectWith[i]); + for (var j = cur.length - 1; j >= 0; j--){ + var inst = $.data(cur[j], 'sortable'); + if(inst && inst != this && !inst.options.disabled) { + queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]); + this.containers.push(inst); + } + }; + }; + } + + for (var i = queries.length - 1; i >= 0; i--) { + var targetData = queries[i][1]; + var _queries = queries[i][0]; + + for (var j=0, queriesLength = _queries.length; j < queriesLength; j++) { + var item = $(_queries[j]); + + item.data('sortable-item', targetData); // Data for target checking (mouse manager) + + items.push({ + item: item, + instance: targetData, + width: 0, height: 0, + left: 0, top: 0 + }); + }; + }; + + }, + + refreshPositions: function(fast) { + + //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change + if(this.offsetParent && this.helper) { + this.offset.parent = this._getParentOffset(); + } + + for (var i = this.items.length - 1; i >= 0; i--){ + var item = this.items[i]; + + var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item; + + if (!fast) { + item.width = t.outerWidth(); + item.height = t.outerHeight(); + } + + var p = t.offset(); + item.left = p.left; + item.top = p.top; + }; + + if(this.options.custom && this.options.custom.refreshContainers) { + this.options.custom.refreshContainers.call(this); + } else { + for (var i = this.containers.length - 1; i >= 0; i--){ + var p = this.containers[i].element.offset(); + this.containers[i].containerCache.left = p.left; + this.containers[i].containerCache.top = p.top; + this.containers[i].containerCache.width = this.containers[i].element.outerWidth(); + this.containers[i].containerCache.height = this.containers[i].element.outerHeight(); + }; + } + + return this; + }, + + _createPlaceholder: function(that) { + + var self = that || this, o = self.options; + + if(!o.placeholder || o.placeholder.constructor == String) { + var className = o.placeholder; + o.placeholder = { + element: function() { + + var el = $(document.createElement(self.currentItem[0].nodeName)) + .addClass(className || self.currentItem[0].className+" ui-sortable-placeholder") + .removeClass("ui-sortable-helper")[0]; + + if(!className) + el.style.visibility = "hidden"; + + return el; + }, + update: function(container, p) { + + // 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that + // 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified + if(className && !o.forcePlaceholderSize) return; + + //If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item + if(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); }; + if(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); }; + } + }; + } + + //Create the placeholder + self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem)); + + //Append it after the actual current item + self.currentItem.after(self.placeholder); + + //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317) + o.placeholder.update(self, self.placeholder); + + }, + + _contactContainers: function(event) { + + // get innermost container that intersects with item + var innermostContainer = null, innermostIndex = null; + + + for (var i = this.containers.length - 1; i >= 0; i--){ + + // never consider a container that's located within the item itself + if($.ui.contains(this.currentItem[0], this.containers[i].element[0])) + continue; + + if(this._intersectsWith(this.containers[i].containerCache)) { + + // if we've already found a container and it's more "inner" than this, then continue + if(innermostContainer && $.ui.contains(this.containers[i].element[0], innermostContainer.element[0])) + continue; + + innermostContainer = this.containers[i]; + innermostIndex = i; + + } else { + // container doesn't intersect. trigger "out" event if necessary + if(this.containers[i].containerCache.over) { + this.containers[i]._trigger("out", event, this._uiHash(this)); + this.containers[i].containerCache.over = 0; + } + } + + } + + // if no intersecting containers found, return + if(!innermostContainer) return; + + // move the item into the container if it's not there already + if(this.containers.length === 1) { + this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); + this.containers[innermostIndex].containerCache.over = 1; + } else if(this.currentContainer != this.containers[innermostIndex]) { + + //When entering a new container, we will find the item with the least distance and append our item near it + var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top']; + for (var j = this.items.length - 1; j >= 0; j--) { + if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue; + var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top']; + if(Math.abs(cur - base) < dist) { + dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j]; + } + } + + if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled + return; + + this.currentContainer = this.containers[innermostIndex]; + itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); + this._trigger("change", event, this._uiHash()); + this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); + + //Update the placeholder + this.options.placeholder.update(this.currentContainer, this.placeholder); + + this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); + this.containers[innermostIndex].containerCache.over = 1; + } + + + }, + + _createHelper: function(event) { + + var o = this.options; + var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem); + + if(!helper.parents('body').length) //Add the helper to the DOM if that didn't happen already + $(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]); + + if(helper[0] == this.currentItem[0]) + this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") }; + + if(helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width()); + if(helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height()); + + return helper; + + }, + + _adjustOffsetFromHelper: function(obj) { + if (typeof obj == 'string') { + obj = obj.split(' '); + } + if ($.isArray(obj)) { + obj = {left: +obj[0], top: +obj[1] || 0}; + } + if ('left' in obj) { + this.offset.click.left = obj.left + this.margins.left; + } + if ('right' in obj) { + this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; + } + if ('top' in obj) { + this.offset.click.top = obj.top + this.margins.top; + } + if ('bottom' in obj) { + this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; + } + }, + + _getParentOffset: function() { + + + //Get the offsetParent and cache its position + this.offsetParent = this.helper.offsetParent(); + var po = this.offsetParent.offset(); + + // This is a special case where we need to modify a offset calculated on start, since the following happened: + // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent + // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that + // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag + if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) { + po.left += this.scrollParent.scrollLeft(); + po.top += this.scrollParent.scrollTop(); + } + + if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information + || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix + po = { top: 0, left: 0 }; + + return { + top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), + left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) + }; + + }, + + _getRelativeOffset: function() { + + if(this.cssPosition == "relative") { + var p = this.currentItem.position(); + return { + top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), + left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() + }; + } else { + return { top: 0, left: 0 }; + } + + }, + + _cacheMargins: function() { + this.margins = { + left: (parseInt(this.currentItem.css("marginLeft"),10) || 0), + top: (parseInt(this.currentItem.css("marginTop"),10) || 0) + }; + }, + + _cacheHelperProportions: function() { + this.helperProportions = { + width: this.helper.outerWidth(), + height: this.helper.outerHeight() + }; + }, + + _setContainment: function() { + + var o = this.options; + if(o.containment == 'parent') o.containment = this.helper[0].parentNode; + if(o.containment == 'document' || o.containment == 'window') this.containment = [ + 0 - this.offset.relative.left - this.offset.parent.left, + 0 - this.offset.relative.top - this.offset.parent.top, + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left, + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top + ]; + + if(!(/^(document|window|parent)$/).test(o.containment)) { + var ce = $(o.containment)[0]; + var co = $(o.containment).offset(); + var over = ($(ce).css("overflow") != 'hidden'); + + this.containment = [ + co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left, + co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top, + co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left, + co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top + ]; + } + + }, + + _convertPositionTo: function(d, pos) { + + if(!pos) pos = this.position; + var mod = d == "absolute" ? 1 : -1; + var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + + return { + top: ( + pos.top // The absolute mouse position + + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent + + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border) + - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) + ), + left: ( + pos.left // The absolute mouse position + + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent + + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border) + - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) + ) + }; + + }, + + _generatePosition: function(event) { + + var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + + // This is another very weird special case that only happens for relative elements: + // 1. If the css position is relative + // 2. and the scroll parent is the document or similar to the offset parent + // we have to refresh the relative offset during the scroll so there are no jumps + if(this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) { + this.offset.relative = this._getRelativeOffset(); + } + + var pageX = event.pageX; + var pageY = event.pageY; + + /* + * - Position constraining - + * Constrain the position to a mix of grid, containment. + */ + + if(this.originalPosition) { //If we are not dragging yet, we won't check for options + + if(this.containment) { + if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left; + if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top; + if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left; + if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top; + } + + if(o.grid) { + var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]; + pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; + + var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]; + pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; + } + + } + + return { + top: ( + pageY // The absolute mouse position + - this.offset.click.top // Click offset (relative to the element) + - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent + - this.offset.parent.top // The offsetParent's offset without borders (offset + border) + + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) + ), + left: ( + pageX // The absolute mouse position + - this.offset.click.left // Click offset (relative to the element) + - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent + - this.offset.parent.left // The offsetParent's offset without borders (offset + border) + + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) + ) + }; + + }, + + _rearrange: function(event, i, a, hardRefresh) { + + a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling)); + + //Various things done here to improve the performance: + // 1. we create a setTimeout, that calls refreshPositions + // 2. on the instance, we have a counter variable, that get's higher after every append + // 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same + // 4. this lets only the last addition to the timeout stack through + this.counter = this.counter ? ++this.counter : 1; + var self = this, counter = this.counter; + + window.setTimeout(function() { + if(counter == self.counter) self.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove + },0); + + }, + + _clear: function(event, noPropagation) { + + this.reverting = false; + // We delay all events that have to be triggered to after the point where the placeholder has been removed and + // everything else normalized again + var delayedTriggers = [], self = this; + + // We first have to update the dom position of the actual currentItem + // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088) + if(!this._noFinalSort && this.currentItem[0].parentNode) this.placeholder.before(this.currentItem); + this._noFinalSort = null; + + if(this.helper[0] == this.currentItem[0]) { + for(var i in this._storedCSS) { + if(this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = ''; + } + this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); + } else { + this.currentItem.show(); + } + + if(this.fromOutside && !noPropagation) delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); }); + if((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation) delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed + if(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was moved out of the current element + if(!noPropagation) delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); }); + for (var i = this.containers.length - 1; i >= 0; i--){ + if($.ui.contains(this.containers[i].element[0], this.currentItem[0]) && !noPropagation) { + delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.containers[i])); + delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.containers[i])); + } + }; + }; + + //Post events to containers + for (var i = this.containers.length - 1; i >= 0; i--){ + if(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); }; }).call(this, this.containers[i])); + if(this.containers[i].containerCache.over) { + delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); }; }).call(this, this.containers[i])); + this.containers[i].containerCache.over = 0; + } + } + + //Do what was originally in plugins + if(this._storedCursor) $('body').css("cursor", this._storedCursor); //Reset cursor + if(this._storedOpacity) this.helper.css("opacity", this._storedOpacity); //Reset opacity + if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex); //Reset z-index + + this.dragging = false; + if(this.cancelHelperRemoval) { + if(!noPropagation) { + this._trigger("beforeStop", event, this._uiHash()); + for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events + this._trigger("stop", event, this._uiHash()); + } + return false; + } + + if(!noPropagation) this._trigger("beforeStop", event, this._uiHash()); + + //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! + this.placeholder[0].parentNode.removeChild(this.placeholder[0]); + + if(this.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null; + + if(!noPropagation) { + for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events + this._trigger("stop", event, this._uiHash()); + } + + this.fromOutside = false; + return true; + + }, + + _trigger: function() { + if ($.Widget.prototype._trigger.apply(this, arguments) === false) { + this.cancel(); + } + }, + + _uiHash: function(inst) { + var self = inst || this; + return { + helper: self.helper, + placeholder: self.placeholder || $([]), + position: self.position, + originalPosition: self.originalPosition, + offset: self.positionAbs, + item: self.currentItem, + sender: inst ? inst.element : null + }; + } + +}); + +$.extend($.ui.sortable, { + version: "1.8.10" +}); + +})(jQuery); +/* + * jQuery UI Accordion 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget( "ui.accordion", { + options: { + active: 0, + animated: "slide", + autoHeight: true, + clearStyle: false, + collapsible: false, + event: "click", + fillSpace: false, + header: "> li > :first-child,> :not(li):even", + icons: { + header: "ui-icon-triangle-1-e", + headerSelected: "ui-icon-triangle-1-s" + }, + navigation: false, + navigationFilter: function() { + return this.href.toLowerCase() === location.href.toLowerCase(); + } + }, + + _create: function() { + var self = this, + options = self.options; + + self.running = 0; + + self.element + .addClass( "ui-accordion ui-widget ui-helper-reset" ) + // in lack of child-selectors in CSS + // we need to mark top-LIs in a UL-accordion for some IE-fix + .children( "li" ) + .addClass( "ui-accordion-li-fix" ); + + self.headers = self.element.find( options.header ) + .addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" ) + .bind( "mouseenter.accordion", function() { + if ( options.disabled ) { + return; + } + $( this ).addClass( "ui-state-hover" ); + }) + .bind( "mouseleave.accordion", function() { + if ( options.disabled ) { + return; + } + $( this ).removeClass( "ui-state-hover" ); + }) + .bind( "focus.accordion", function() { + if ( options.disabled ) { + return; + } + $( this ).addClass( "ui-state-focus" ); + }) + .bind( "blur.accordion", function() { + if ( options.disabled ) { + return; + } + $( this ).removeClass( "ui-state-focus" ); + }); + + self.headers.next() + .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" ); + + if ( options.navigation ) { + var current = self.element.find( "a" ).filter( options.navigationFilter ).eq( 0 ); + if ( current.length ) { + var header = current.closest( ".ui-accordion-header" ); + if ( header.length ) { + // anchor within header + self.active = header; + } else { + // anchor within content + self.active = current.closest( ".ui-accordion-content" ).prev(); + } + } + } + + self.active = self._findActive( self.active || options.active ) + .addClass( "ui-state-default ui-state-active" ) + .toggleClass( "ui-corner-all" ) + .toggleClass( "ui-corner-top" ); + self.active.next().addClass( "ui-accordion-content-active" ); + + self._createIcons(); + self.resize(); + + // ARIA + self.element.attr( "role", "tablist" ); + + self.headers + .attr( "role", "tab" ) + .bind( "keydown.accordion", function( event ) { + return self._keydown( event ); + }) + .next() + .attr( "role", "tabpanel" ); + + self.headers + .not( self.active || "" ) + .attr({ + "aria-expanded": "false", + tabIndex: -1 + }) + .next() + .hide(); + + // make sure at least one header is in the tab order + if ( !self.active.length ) { + self.headers.eq( 0 ).attr( "tabIndex", 0 ); + } else { + self.active + .attr({ + "aria-expanded": "true", + tabIndex: 0 + }); + } + + // only need links in tab order for Safari + if ( !$.browser.safari ) { + self.headers.find( "a" ).attr( "tabIndex", -1 ); + } + + if ( options.event ) { + self.headers.bind( options.event.split(" ").join(".accordion ") + ".accordion", function(event) { + self._clickHandler.call( self, event, this ); + event.preventDefault(); + }); + } + }, + + _createIcons: function() { + var options = this.options; + if ( options.icons ) { + $( "" ) + .addClass( "ui-icon " + options.icons.header ) + .prependTo( this.headers ); + this.active.children( ".ui-icon" ) + .toggleClass(options.icons.header) + .toggleClass(options.icons.headerSelected); + this.element.addClass( "ui-accordion-icons" ); + } + }, + + _destroyIcons: function() { + this.headers.children( ".ui-icon" ).remove(); + this.element.removeClass( "ui-accordion-icons" ); + }, + + destroy: function() { + var options = this.options; + + this.element + .removeClass( "ui-accordion ui-widget ui-helper-reset" ) + .removeAttr( "role" ); + + this.headers + .unbind( ".accordion" ) + .removeClass( "ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" ) + .removeAttr( "role" ) + .removeAttr( "aria-expanded" ) + .removeAttr( "tabIndex" ); + + this.headers.find( "a" ).removeAttr( "tabIndex" ); + this._destroyIcons(); + var contents = this.headers.next() + .css( "display", "" ) + .removeAttr( "role" ) + .removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled" ); + if ( options.autoHeight || options.fillHeight ) { + contents.css( "height", "" ); + } + + return $.Widget.prototype.destroy.call( this ); + }, + + _setOption: function( key, value ) { + $.Widget.prototype._setOption.apply( this, arguments ); + + if ( key == "active" ) { + this.activate( value ); + } + if ( key == "icons" ) { + this._destroyIcons(); + if ( value ) { + this._createIcons(); + } + } + // #5332 - opacity doesn't cascade to positioned elements in IE + // so we need to add the disabled class to the headers and panels + if ( key == "disabled" ) { + this.headers.add(this.headers.next()) + [ value ? "addClass" : "removeClass" ]( + "ui-accordion-disabled ui-state-disabled" ); + } + }, + + _keydown: function( event ) { + if ( this.options.disabled || event.altKey || event.ctrlKey ) { + return; + } + + var keyCode = $.ui.keyCode, + length = this.headers.length, + currentIndex = this.headers.index( event.target ), + toFocus = false; + + switch ( event.keyCode ) { + case keyCode.RIGHT: + case keyCode.DOWN: + toFocus = this.headers[ ( currentIndex + 1 ) % length ]; + break; + case keyCode.LEFT: + case keyCode.UP: + toFocus = this.headers[ ( currentIndex - 1 + length ) % length ]; + break; + case keyCode.SPACE: + case keyCode.ENTER: + this._clickHandler( { target: event.target }, event.target ); + event.preventDefault(); + } + + if ( toFocus ) { + $( event.target ).attr( "tabIndex", -1 ); + $( toFocus ).attr( "tabIndex", 0 ); + toFocus.focus(); + return false; + } + + return true; + }, + + resize: function() { + var options = this.options, + maxHeight; + + if ( options.fillSpace ) { + if ( $.browser.msie ) { + var defOverflow = this.element.parent().css( "overflow" ); + this.element.parent().css( "overflow", "hidden"); + } + maxHeight = this.element.parent().height(); + if ($.browser.msie) { + this.element.parent().css( "overflow", defOverflow ); + } + + this.headers.each(function() { + maxHeight -= $( this ).outerHeight( true ); + }); + + this.headers.next() + .each(function() { + $( this ).height( Math.max( 0, maxHeight - + $( this ).innerHeight() + $( this ).height() ) ); + }) + .css( "overflow", "auto" ); + } else if ( options.autoHeight ) { + maxHeight = 0; + this.headers.next() + .each(function() { + maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() ); + }) + .height( maxHeight ); + } + + return this; + }, + + activate: function( index ) { + // TODO this gets called on init, changing the option without an explicit call for that + this.options.active = index; + // call clickHandler with custom event + var active = this._findActive( index )[ 0 ]; + this._clickHandler( { target: active }, active ); + + return this; + }, + + _findActive: function( selector ) { + return selector + ? typeof selector === "number" + ? this.headers.filter( ":eq(" + selector + ")" ) + : this.headers.not( this.headers.not( selector ) ) + : selector === false + ? $( [] ) + : this.headers.filter( ":eq(0)" ); + }, + + // TODO isn't event.target enough? why the separate target argument? + _clickHandler: function( event, target ) { + var options = this.options; + if ( options.disabled ) { + return; + } + + // called only when using activate(false) to close all parts programmatically + if ( !event.target ) { + if ( !options.collapsible ) { + return; + } + this.active + .removeClass( "ui-state-active ui-corner-top" ) + .addClass( "ui-state-default ui-corner-all" ) + .children( ".ui-icon" ) + .removeClass( options.icons.headerSelected ) + .addClass( options.icons.header ); + this.active.next().addClass( "ui-accordion-content-active" ); + var toHide = this.active.next(), + data = { + options: options, + newHeader: $( [] ), + oldHeader: options.active, + newContent: $( [] ), + oldContent: toHide + }, + toShow = ( this.active = $( [] ) ); + this._toggle( toShow, toHide, data ); + return; + } + + // get the click target + var clicked = $( event.currentTarget || target ), + clickedIsActive = clicked[0] === this.active[0]; + + // TODO the option is changed, is that correct? + // TODO if it is correct, shouldn't that happen after determining that the click is valid? + options.active = options.collapsible && clickedIsActive ? + false : + this.headers.index( clicked ); + + // if animations are still active, or the active header is the target, ignore click + if ( this.running || ( !options.collapsible && clickedIsActive ) ) { + return; + } + + // find elements to show and hide + var active = this.active, + toShow = clicked.next(), + toHide = this.active.next(), + data = { + options: options, + newHeader: clickedIsActive && options.collapsible ? $([]) : clicked, + oldHeader: this.active, + newContent: clickedIsActive && options.collapsible ? $([]) : toShow, + oldContent: toHide + }, + down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] ); + + // when the call to ._toggle() comes after the class changes + // it causes a very odd bug in IE 8 (see #6720) + this.active = clickedIsActive ? $([]) : clicked; + this._toggle( toShow, toHide, data, clickedIsActive, down ); + + // switch classes + active + .removeClass( "ui-state-active ui-corner-top" ) + .addClass( "ui-state-default ui-corner-all" ) + .children( ".ui-icon" ) + .removeClass( options.icons.headerSelected ) + .addClass( options.icons.header ); + if ( !clickedIsActive ) { + clicked + .removeClass( "ui-state-default ui-corner-all" ) + .addClass( "ui-state-active ui-corner-top" ) + .children( ".ui-icon" ) + .removeClass( options.icons.header ) + .addClass( options.icons.headerSelected ); + clicked + .next() + .addClass( "ui-accordion-content-active" ); + } + + return; + }, + + _toggle: function( toShow, toHide, data, clickedIsActive, down ) { + var self = this, + options = self.options; + + self.toShow = toShow; + self.toHide = toHide; + self.data = data; + + var complete = function() { + if ( !self ) { + return; + } + return self._completed.apply( self, arguments ); + }; + + // trigger changestart event + self._trigger( "changestart", null, self.data ); + + // count elements to animate + self.running = toHide.size() === 0 ? toShow.size() : toHide.size(); + + if ( options.animated ) { + var animOptions = {}; + + if ( options.collapsible && clickedIsActive ) { + animOptions = { + toShow: $( [] ), + toHide: toHide, + complete: complete, + down: down, + autoHeight: options.autoHeight || options.fillSpace + }; + } else { + animOptions = { + toShow: toShow, + toHide: toHide, + complete: complete, + down: down, + autoHeight: options.autoHeight || options.fillSpace + }; + } + + if ( !options.proxied ) { + options.proxied = options.animated; + } + + if ( !options.proxiedDuration ) { + options.proxiedDuration = options.duration; + } + + options.animated = $.isFunction( options.proxied ) ? + options.proxied( animOptions ) : + options.proxied; + + options.duration = $.isFunction( options.proxiedDuration ) ? + options.proxiedDuration( animOptions ) : + options.proxiedDuration; + + var animations = $.ui.accordion.animations, + duration = options.duration, + easing = options.animated; + + if ( easing && !animations[ easing ] && !$.easing[ easing ] ) { + easing = "slide"; + } + if ( !animations[ easing ] ) { + animations[ easing ] = function( options ) { + this.slide( options, { + easing: easing, + duration: duration || 700 + }); + }; + } + + animations[ easing ]( animOptions ); + } else { + if ( options.collapsible && clickedIsActive ) { + toShow.toggle(); + } else { + toHide.hide(); + toShow.show(); + } + + complete( true ); + } + + // TODO assert that the blur and focus triggers are really necessary, remove otherwise + toHide.prev() + .attr({ + "aria-expanded": "false", + tabIndex: -1 + }) + .blur(); + toShow.prev() + .attr({ + "aria-expanded": "true", + tabIndex: 0 + }) + .focus(); + }, + + _completed: function( cancel ) { + this.running = cancel ? 0 : --this.running; + if ( this.running ) { + return; + } + + if ( this.options.clearStyle ) { + this.toShow.add( this.toHide ).css({ + height: "", + overflow: "" + }); + } + + // other classes are removed before the animation; this one needs to stay until completed + this.toHide.removeClass( "ui-accordion-content-active" ); + // Work around for rendering bug in IE (#5421) + if ( this.toHide.length ) { + this.toHide.parent()[0].className = this.toHide.parent()[0].className; + } + + this._trigger( "change", null, this.data ); + } +}); + +$.extend( $.ui.accordion, { + version: "1.8.10", + animations: { + slide: function( options, additions ) { + options = $.extend({ + easing: "swing", + duration: 300 + }, options, additions ); + if ( !options.toHide.size() ) { + options.toShow.animate({ + height: "show", + paddingTop: "show", + paddingBottom: "show" + }, options ); + return; + } + if ( !options.toShow.size() ) { + options.toHide.animate({ + height: "hide", + paddingTop: "hide", + paddingBottom: "hide" + }, options ); + return; + } + var overflow = options.toShow.css( "overflow" ), + percentDone = 0, + showProps = {}, + hideProps = {}, + fxAttrs = [ "height", "paddingTop", "paddingBottom" ], + originalWidth; + // fix width before calculating height of hidden element + var s = options.toShow; + originalWidth = s[0].style.width; + s.width( parseInt( s.parent().width(), 10 ) + - parseInt( s.css( "paddingLeft" ), 10 ) + - parseInt( s.css( "paddingRight" ), 10 ) + - ( parseInt( s.css( "borderLeftWidth" ), 10 ) || 0 ) + - ( parseInt( s.css( "borderRightWidth" ), 10) || 0 ) ); + + $.each( fxAttrs, function( i, prop ) { + hideProps[ prop ] = "hide"; + + var parts = ( "" + $.css( options.toShow[0], prop ) ).match( /^([\d+-.]+)(.*)$/ ); + showProps[ prop ] = { + value: parts[ 1 ], + unit: parts[ 2 ] || "px" + }; + }); + options.toShow.css({ height: 0, overflow: "hidden" }).show(); + options.toHide + .filter( ":hidden" ) + .each( options.complete ) + .end() + .filter( ":visible" ) + .animate( hideProps, { + step: function( now, settings ) { + // only calculate the percent when animating height + // IE gets very inconsistent results when animating elements + // with small values, which is common for padding + if ( settings.prop == "height" ) { + percentDone = ( settings.end - settings.start === 0 ) ? 0 : + ( settings.now - settings.start ) / ( settings.end - settings.start ); + } + + options.toShow[ 0 ].style[ settings.prop ] = + ( percentDone * showProps[ settings.prop ].value ) + + showProps[ settings.prop ].unit; + }, + duration: options.duration, + easing: options.easing, + complete: function() { + if ( !options.autoHeight ) { + options.toShow.css( "height", "" ); + } + options.toShow.css({ + width: originalWidth, + overflow: overflow + }); + options.complete(); + } + }); + }, + bounceslide: function( options ) { + this.slide( options, { + easing: options.down ? "easeOutBounce" : "swing", + duration: options.down ? 1000 : 200 + }); + } + } +}); + +})( jQuery ); +/* + * jQuery UI Autocomplete 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.position.js + */ +(function( $, undefined ) { + +// used to prevent race conditions with remote data sources +var requestIndex = 0; + +$.widget( "ui.autocomplete", { + options: { + appendTo: "body", + delay: 300, + minLength: 1, + position: { + my: "left top", + at: "left bottom", + collision: "none" + }, + source: null + }, + + pending: 0, + + _create: function() { + var self = this, + doc = this.element[ 0 ].ownerDocument, + suppressKeyPress; + + this.element + .addClass( "ui-autocomplete-input" ) + .attr( "autocomplete", "off" ) + // TODO verify these actually work as intended + .attr({ + role: "textbox", + "aria-autocomplete": "list", + "aria-haspopup": "true" + }) + .bind( "keydown.autocomplete", function( event ) { + if ( self.options.disabled || self.element.attr( "readonly" ) ) { + return; + } + + suppressKeyPress = false; + var keyCode = $.ui.keyCode; + switch( event.keyCode ) { + case keyCode.PAGE_UP: + self._move( "previousPage", event ); + break; + case keyCode.PAGE_DOWN: + self._move( "nextPage", event ); + break; + case keyCode.UP: + self._move( "previous", event ); + // prevent moving cursor to beginning of text field in some browsers + event.preventDefault(); + break; + case keyCode.DOWN: + self._move( "next", event ); + // prevent moving cursor to end of text field in some browsers + event.preventDefault(); + break; + case keyCode.ENTER: + case keyCode.NUMPAD_ENTER: + // when menu is open and has focus + if ( self.menu.active ) { + // #6055 - Opera still allows the keypress to occur + // which causes forms to submit + suppressKeyPress = true; + event.preventDefault(); + } + //passthrough - ENTER and TAB both select the current element + case keyCode.TAB: + if ( !self.menu.active ) { + return; + } + self.menu.select( event ); + break; + case keyCode.ESCAPE: + self.element.val( self.term ); + self.close( event ); + break; + default: + // keypress is triggered before the input value is changed + clearTimeout( self.searching ); + self.searching = setTimeout(function() { + // only search if the value has changed + if ( self.term != self.element.val() ) { + self.selectedItem = null; + self.search( null, event ); + } + }, self.options.delay ); + break; + } + }) + .bind( "keypress.autocomplete", function( event ) { + if ( suppressKeyPress ) { + suppressKeyPress = false; + event.preventDefault(); + } + }) + .bind( "focus.autocomplete", function() { + if ( self.options.disabled ) { + return; + } + + self.selectedItem = null; + self.previous = self.element.val(); + }) + .bind( "blur.autocomplete", function( event ) { + if ( self.options.disabled ) { + return; + } + + clearTimeout( self.searching ); + // clicks on the menu (or a button to trigger a search) will cause a blur event + self.closing = setTimeout(function() { + self.close( event ); + self._change( event ); + }, 150 ); + }); + this._initSource(); + this.response = function() { + return self._response.apply( self, arguments ); + }; + this.menu = $( "
      " ) + .addClass( "ui-autocomplete" ) + .appendTo( $( this.options.appendTo || "body", doc )[0] ) + // prevent the close-on-blur in case of a "slow" click on the menu (long mousedown) + .mousedown(function( event ) { + // clicking on the scrollbar causes focus to shift to the body + // but we can't detect a mouseup or a click immediately afterward + // so we have to track the next mousedown and close the menu if + // the user clicks somewhere outside of the autocomplete + var menuElement = self.menu.element[ 0 ]; + if ( !$( event.target ).closest( ".ui-menu-item" ).length ) { + setTimeout(function() { + $( document ).one( 'mousedown', function( event ) { + if ( event.target !== self.element[ 0 ] && + event.target !== menuElement && + !$.ui.contains( menuElement, event.target ) ) { + self.close(); + } + }); + }, 1 ); + } + + // use another timeout to make sure the blur-event-handler on the input was already triggered + setTimeout(function() { + clearTimeout( self.closing ); + }, 13); + }) + .menu({ + focus: function( event, ui ) { + var item = ui.item.data( "item.autocomplete" ); + if ( false !== self._trigger( "focus", event, { item: item } ) ) { + // use value to match what will end up in the input, if it was a key event + if ( /^key/.test(event.originalEvent.type) ) { + self.element.val( item.value ); + } + } + }, + selected: function( event, ui ) { + var item = ui.item.data( "item.autocomplete" ), + previous = self.previous; + + // only trigger when focus was lost (click on menu) + if ( self.element[0] !== doc.activeElement ) { + self.element.focus(); + self.previous = previous; + // #6109 - IE triggers two focus events and the second + // is asynchronous, so we need to reset the previous + // term synchronously and asynchronously :-( + setTimeout(function() { + self.previous = previous; + self.selectedItem = item; + }, 1); + } + + if ( false !== self._trigger( "select", event, { item: item } ) ) { + self.element.val( item.value ); + } + // reset the term after the select event + // this allows custom select handling to work properly + self.term = self.element.val(); + + self.close( event ); + self.selectedItem = item; + }, + blur: function( event, ui ) { + // don't set the value of the text field if it's already correct + // this prevents moving the cursor unnecessarily + if ( self.menu.element.is(":visible") && + ( self.element.val() !== self.term ) ) { + self.element.val( self.term ); + } + } + }) + .zIndex( this.element.zIndex() + 1 ) + // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781 + .css({ top: 0, left: 0 }) + .hide() + .data( "menu" ); + if ( $.fn.bgiframe ) { + this.menu.element.bgiframe(); + } + }, + + destroy: function() { + this.element + .removeClass( "ui-autocomplete-input" ) + .removeAttr( "autocomplete" ) + .removeAttr( "role" ) + .removeAttr( "aria-autocomplete" ) + .removeAttr( "aria-haspopup" ); + this.menu.element.remove(); + $.Widget.prototype.destroy.call( this ); + }, + + _setOption: function( key, value ) { + $.Widget.prototype._setOption.apply( this, arguments ); + if ( key === "source" ) { + this._initSource(); + } + if ( key === "appendTo" ) { + this.menu.element.appendTo( $( value || "body", this.element[0].ownerDocument )[0] ) + } + if ( key === "disabled" && value && this.xhr ) { + this.xhr.abort(); + } + }, + + _initSource: function() { + var self = this, + array, + url; + if ( $.isArray(this.options.source) ) { + array = this.options.source; + this.source = function( request, response ) { + response( $.ui.autocomplete.filter(array, request.term) ); + }; + } else if ( typeof this.options.source === "string" ) { + url = this.options.source; + this.source = function( request, response ) { + if ( self.xhr ) { + self.xhr.abort(); + } + self.xhr = $.ajax({ + url: url, + data: request, + dataType: "json", + autocompleteRequest: ++requestIndex, + success: function( data, status ) { + if ( this.autocompleteRequest === requestIndex ) { + response( data ); + } + }, + error: function() { + if ( this.autocompleteRequest === requestIndex ) { + response( [] ); + } + } + }); + }; + } else { + this.source = this.options.source; + } + }, + + search: function( value, event ) { + value = value != null ? value : this.element.val(); + + // always save the actual value, not the one passed as an argument + this.term = this.element.val(); + + if ( value.length < this.options.minLength ) { + return this.close( event ); + } + + clearTimeout( this.closing ); + if ( this._trigger( "search", event ) === false ) { + return; + } + + return this._search( value ); + }, + + _search: function( value ) { + this.pending++; + this.element.addClass( "ui-autocomplete-loading" ); + + this.source( { term: value }, this.response ); + }, + + _response: function( content ) { + if ( !this.options.disabled && content && content.length ) { + content = this._normalize( content ); + this._suggest( content ); + this._trigger( "open" ); + } else { + this.close(); + } + this.pending--; + if ( !this.pending ) { + this.element.removeClass( "ui-autocomplete-loading" ); + } + }, + + close: function( event ) { + clearTimeout( this.closing ); + if ( this.menu.element.is(":visible") ) { + this.menu.element.hide(); + this.menu.deactivate(); + this._trigger( "close", event ); + } + }, + + _change: function( event ) { + if ( this.previous !== this.element.val() ) { + this._trigger( "change", event, { item: this.selectedItem } ); + } + }, + + _normalize: function( items ) { + // assume all items have the right format when the first item is complete + if ( items.length && items[0].label && items[0].value ) { + return items; + } + return $.map( items, function(item) { + if ( typeof item === "string" ) { + return { + label: item, + value: item + }; + } + return $.extend({ + label: item.label || item.value, + value: item.value || item.label + }, item ); + }); + }, + + _suggest: function( items ) { + var ul = this.menu.element + .empty() + .zIndex( this.element.zIndex() + 1 ); + this._renderMenu( ul, items ); + // TODO refresh should check if the active item is still in the dom, removing the need for a manual deactivate + this.menu.deactivate(); + this.menu.refresh(); + + // size and position menu + ul.show(); + this._resizeMenu(); + ul.position( $.extend({ + of: this.element + }, this.options.position )); + }, + + _resizeMenu: function() { + var ul = this.menu.element; + ul.outerWidth( Math.max( + ul.width( "" ).outerWidth(), + this.element.outerWidth() + ) ); + }, + + _renderMenu: function( ul, items ) { + var self = this; + $.each( items, function( index, item ) { + self._renderItem( ul, item ); + }); + }, + + _renderItem: function( ul, item) { + return $( "
    • " ) + .data( "item.autocomplete", item ) + .append( $( "" ).text( item.label ) ) + .appendTo( ul ); + }, + + _move: function( direction, event ) { + if ( !this.menu.element.is(":visible") ) { + this.search( null, event ); + return; + } + if ( this.menu.first() && /^previous/.test(direction) || + this.menu.last() && /^next/.test(direction) ) { + this.element.val( this.term ); + this.menu.deactivate(); + return; + } + this.menu[ direction ]( event ); + }, + + widget: function() { + return this.menu.element; + } +}); + +$.extend( $.ui.autocomplete, { + escapeRegex: function( value ) { + return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + }, + filter: function(array, term) { + var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" ); + return $.grep( array, function(value) { + return matcher.test( value.label || value.value || value ); + }); + } +}); + +}( jQuery )); + +/* + * jQuery UI Menu (not officially released) + * + * This widget isn't yet finished and the API is subject to change. We plan to finish + * it for the next release. You're welcome to give it a try anyway and give us feedback, + * as long as you're okay with migrating your code later on. We can help with that, too. + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Menu + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function($) { + +$.widget("ui.menu", { + _create: function() { + var self = this; + this.element + .addClass("ui-menu ui-widget ui-widget-content ui-corner-all") + .attr({ + role: "listbox", + "aria-activedescendant": "ui-active-menuitem" + }) + .click(function( event ) { + if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) { + return; + } + // temporary + event.preventDefault(); + self.select( event ); + }); + this.refresh(); + }, + + refresh: function() { + var self = this; + + // don't refresh list items that are already adapted + var items = this.element.children("li:not(.ui-menu-item):has(a)") + .addClass("ui-menu-item") + .attr("role", "menuitem"); + + items.children("a") + .addClass("ui-corner-all") + .attr("tabindex", -1) + // mouseenter doesn't work with event delegation + .mouseenter(function( event ) { + self.activate( event, $(this).parent() ); + }) + .mouseleave(function() { + self.deactivate(); + }); + }, + + activate: function( event, item ) { + this.deactivate(); + if (this.hasScroll()) { + var offset = item.offset().top - this.element.offset().top, + scroll = this.element.attr("scrollTop"), + elementHeight = this.element.height(); + if (offset < 0) { + this.element.attr("scrollTop", scroll + offset); + } else if (offset >= elementHeight) { + this.element.attr("scrollTop", scroll + offset - elementHeight + item.height()); + } + } + this.active = item.eq(0) + .children("a") + .addClass("ui-state-hover") + .attr("id", "ui-active-menuitem") + .end(); + this._trigger("focus", event, { item: item }); + }, + + deactivate: function() { + if (!this.active) { return; } + + this.active.children("a") + .removeClass("ui-state-hover") + .removeAttr("id"); + this._trigger("blur"); + this.active = null; + }, + + next: function(event) { + this.move("next", ".ui-menu-item:first", event); + }, + + previous: function(event) { + this.move("prev", ".ui-menu-item:last", event); + }, + + first: function() { + return this.active && !this.active.prevAll(".ui-menu-item").length; + }, + + last: function() { + return this.active && !this.active.nextAll(".ui-menu-item").length; + }, + + move: function(direction, edge, event) { + if (!this.active) { + this.activate(event, this.element.children(edge)); + return; + } + var next = this.active[direction + "All"](".ui-menu-item").eq(0); + if (next.length) { + this.activate(event, next); + } else { + this.activate(event, this.element.children(edge)); + } + }, + + // TODO merge with previousPage + nextPage: function(event) { + if (this.hasScroll()) { + // TODO merge with no-scroll-else + if (!this.active || this.last()) { + this.activate(event, this.element.children(".ui-menu-item:first")); + return; + } + var base = this.active.offset().top, + height = this.element.height(), + result = this.element.children(".ui-menu-item").filter(function() { + var close = $(this).offset().top - base - height + $(this).height(); + // TODO improve approximation + return close < 10 && close > -10; + }); + + // TODO try to catch this earlier when scrollTop indicates the last page anyway + if (!result.length) { + result = this.element.children(".ui-menu-item:last"); + } + this.activate(event, result); + } else { + this.activate(event, this.element.children(".ui-menu-item") + .filter(!this.active || this.last() ? ":first" : ":last")); + } + }, + + // TODO merge with nextPage + previousPage: function(event) { + if (this.hasScroll()) { + // TODO merge with no-scroll-else + if (!this.active || this.first()) { + this.activate(event, this.element.children(".ui-menu-item:last")); + return; + } + + var base = this.active.offset().top, + height = this.element.height(); + result = this.element.children(".ui-menu-item").filter(function() { + var close = $(this).offset().top - base + height - $(this).height(); + // TODO improve approximation + return close < 10 && close > -10; + }); + + // TODO try to catch this earlier when scrollTop indicates the last page anyway + if (!result.length) { + result = this.element.children(".ui-menu-item:first"); + } + this.activate(event, result); + } else { + this.activate(event, this.element.children(".ui-menu-item") + .filter(!this.active || this.first() ? ":last" : ":first")); + } + }, + + hasScroll: function() { + return this.element.height() < this.element.attr("scrollHeight"); + }, + + select: function( event ) { + this._trigger("selected", event, { item: this.active }); + } +}); + +}(jQuery)); +/* + * jQuery UI Button 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +var lastActive, + baseClasses = "ui-button ui-widget ui-state-default ui-corner-all", + stateClasses = "ui-state-hover ui-state-active ", + typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", + formResetHandler = function( event ) { + $( ":ui-button", event.target.form ).each(function() { + var inst = $( this ).data( "button" ); + setTimeout(function() { + inst.refresh(); + }, 1 ); + }); + }, + radioGroup = function( radio ) { + var name = radio.name, + form = radio.form, + radios = $( [] ); + if ( name ) { + if ( form ) { + radios = $( form ).find( "[name='" + name + "']" ); + } else { + radios = $( "[name='" + name + "']", radio.ownerDocument ) + .filter(function() { + return !this.form; + }); + } + } + return radios; + }; + +$.widget( "ui.button", { + options: { + disabled: null, + text: true, + label: null, + icons: { + primary: null, + secondary: null + } + }, + _create: function() { + this.element.closest( "form" ) + .unbind( "reset.button" ) + .bind( "reset.button", formResetHandler ); + + if ( typeof this.options.disabled !== "boolean" ) { + this.options.disabled = this.element.attr( "disabled" ); + } + + this._determineButtonType(); + this.hasTitle = !!this.buttonElement.attr( "title" ); + + var self = this, + options = this.options, + toggleButton = this.type === "checkbox" || this.type === "radio", + hoverClass = "ui-state-hover" + ( !toggleButton ? " ui-state-active" : "" ), + focusClass = "ui-state-focus"; + + if ( options.label === null ) { + options.label = this.buttonElement.html(); + } + + if ( this.element.is( ":disabled" ) ) { + options.disabled = true; + } + + this.buttonElement + .addClass( baseClasses ) + .attr( "role", "button" ) + .bind( "mouseenter.button", function() { + if ( options.disabled ) { + return; + } + $( this ).addClass( "ui-state-hover" ); + if ( this === lastActive ) { + $( this ).addClass( "ui-state-active" ); + } + }) + .bind( "mouseleave.button", function() { + if ( options.disabled ) { + return; + } + $( this ).removeClass( hoverClass ); + }) + .bind( "focus.button", function() { + // no need to check disabled, focus won't be triggered anyway + $( this ).addClass( focusClass ); + }) + .bind( "blur.button", function() { + $( this ).removeClass( focusClass ); + }); + + if ( toggleButton ) { + this.element.bind( "change.button", function() { + self.refresh(); + }); + } + + if ( this.type === "checkbox" ) { + this.buttonElement.bind( "click.button", function() { + if ( options.disabled ) { + return false; + } + $( this ).toggleClass( "ui-state-active" ); + self.buttonElement.attr( "aria-pressed", self.element[0].checked ); + }); + } else if ( this.type === "radio" ) { + this.buttonElement.bind( "click.button", function() { + if ( options.disabled ) { + return false; + } + $( this ).addClass( "ui-state-active" ); + self.buttonElement.attr( "aria-pressed", true ); + + var radio = self.element[ 0 ]; + radioGroup( radio ) + .not( radio ) + .map(function() { + return $( this ).button( "widget" )[ 0 ]; + }) + .removeClass( "ui-state-active" ) + .attr( "aria-pressed", false ); + }); + } else { + this.buttonElement + .bind( "mousedown.button", function() { + if ( options.disabled ) { + return false; + } + $( this ).addClass( "ui-state-active" ); + lastActive = this; + $( document ).one( "mouseup", function() { + lastActive = null; + }); + }) + .bind( "mouseup.button", function() { + if ( options.disabled ) { + return false; + } + $( this ).removeClass( "ui-state-active" ); + }) + .bind( "keydown.button", function(event) { + if ( options.disabled ) { + return false; + } + if ( event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER ) { + $( this ).addClass( "ui-state-active" ); + } + }) + .bind( "keyup.button", function() { + $( this ).removeClass( "ui-state-active" ); + }); + + if ( this.buttonElement.is("a") ) { + this.buttonElement.keyup(function(event) { + if ( event.keyCode === $.ui.keyCode.SPACE ) { + // TODO pass through original event correctly (just as 2nd argument doesn't work) + $( this ).click(); + } + }); + } + } + + // TODO: pull out $.Widget's handling for the disabled option into + // $.Widget.prototype._setOptionDisabled so it's easy to proxy and can + // be overridden by individual plugins + this._setOption( "disabled", options.disabled ); + }, + + _determineButtonType: function() { + + if ( this.element.is(":checkbox") ) { + this.type = "checkbox"; + } else { + if ( this.element.is(":radio") ) { + this.type = "radio"; + } else { + if ( this.element.is("input") ) { + this.type = "input"; + } else { + this.type = "button"; + } + } + } + + if ( this.type === "checkbox" || this.type === "radio" ) { + // we don't search against the document in case the element + // is disconnected from the DOM + this.buttonElement = this.element.parents().last() + .find( "label[for=" + this.element.attr("id") + "]" ); + this.element.addClass( "ui-helper-hidden-accessible" ); + + var checked = this.element.is( ":checked" ); + if ( checked ) { + this.buttonElement.addClass( "ui-state-active" ); + } + this.buttonElement.attr( "aria-pressed", checked ); + } else { + this.buttonElement = this.element; + } + }, + + widget: function() { + return this.buttonElement; + }, + + destroy: function() { + this.element + .removeClass( "ui-helper-hidden-accessible" ); + this.buttonElement + .removeClass( baseClasses + " " + stateClasses + " " + typeClasses ) + .removeAttr( "role" ) + .removeAttr( "aria-pressed" ) + .html( this.buttonElement.find(".ui-button-text").html() ); + + if ( !this.hasTitle ) { + this.buttonElement.removeAttr( "title" ); + } + + $.Widget.prototype.destroy.call( this ); + }, + + _setOption: function( key, value ) { + $.Widget.prototype._setOption.apply( this, arguments ); + if ( key === "disabled" ) { + if ( value ) { + this.element.attr( "disabled", true ); + } else { + this.element.removeAttr( "disabled" ); + } + } + this._resetButton(); + }, + + refresh: function() { + var isDisabled = this.element.is( ":disabled" ); + if ( isDisabled !== this.options.disabled ) { + this._setOption( "disabled", isDisabled ); + } + if ( this.type === "radio" ) { + radioGroup( this.element[0] ).each(function() { + if ( $( this ).is( ":checked" ) ) { + $( this ).button( "widget" ) + .addClass( "ui-state-active" ) + .attr( "aria-pressed", true ); + } else { + $( this ).button( "widget" ) + .removeClass( "ui-state-active" ) + .attr( "aria-pressed", false ); + } + }); + } else if ( this.type === "checkbox" ) { + if ( this.element.is( ":checked" ) ) { + this.buttonElement + .addClass( "ui-state-active" ) + .attr( "aria-pressed", true ); + } else { + this.buttonElement + .removeClass( "ui-state-active" ) + .attr( "aria-pressed", false ); + } + } + }, + + _resetButton: function() { + if ( this.type === "input" ) { + if ( this.options.label ) { + this.element.val( this.options.label ); + } + return; + } + var buttonElement = this.buttonElement.removeClass( typeClasses ), + buttonText = $( "" ) + .addClass( "ui-button-text" ) + .html( this.options.label ) + .appendTo( buttonElement.empty() ) + .text(), + icons = this.options.icons, + multipleIcons = icons.primary && icons.secondary, + buttonClasses = []; + + if ( icons.primary || icons.secondary ) { + buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) ); + + if ( icons.primary ) { + buttonElement.prepend( "" ); + } + + if ( icons.secondary ) { + buttonElement.append( "" ); + } + + if ( !this.options.text ) { + buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" ); + buttonElement.removeClass( "ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary" ); + + if ( !this.hasTitle ) { + buttonElement.attr( "title", buttonText ); + } + } + } else { + buttonClasses.push( "ui-button-text-only" ); + } + buttonElement.addClass( buttonClasses.join( " " ) ); + } +}); + +$.widget( "ui.buttonset", { + options: { + items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)" + }, + + _create: function() { + this.element.addClass( "ui-buttonset" ); + }, + + _init: function() { + this.refresh(); + }, + + _setOption: function( key, value ) { + if ( key === "disabled" ) { + this.buttons.button( "option", key, value ); + } + + $.Widget.prototype._setOption.apply( this, arguments ); + }, + + refresh: function() { + this.buttons = this.element.find( this.options.items ) + .filter( ":ui-button" ) + .button( "refresh" ) + .end() + .not( ":ui-button" ) + .button() + .end() + .map(function() { + return $( this ).button( "widget" )[ 0 ]; + }) + .removeClass( "ui-corner-all ui-corner-left ui-corner-right" ) + .filter( ":first" ) + .addClass( "ui-corner-left" ) + .end() + .filter( ":last" ) + .addClass( "ui-corner-right" ) + .end() + .end(); + }, + + destroy: function() { + this.element.removeClass( "ui-buttonset" ); + this.buttons + .map(function() { + return $( this ).button( "widget" )[ 0 ]; + }) + .removeClass( "ui-corner-left ui-corner-right" ) + .end() + .button( "destroy" ); + + $.Widget.prototype.destroy.call( this ); + } +}); + +}( jQuery ) ); +/* + * jQuery UI Dialog 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.button.js + * jquery.ui.draggable.js + * jquery.ui.mouse.js + * jquery.ui.position.js + * jquery.ui.resizable.js + */ +(function( $, undefined ) { + +var uiDialogClasses = + 'ui-dialog ' + + 'ui-widget ' + + 'ui-widget-content ' + + 'ui-corner-all ', + sizeRelatedOptions = { + buttons: true, + height: true, + maxHeight: true, + maxWidth: true, + minHeight: true, + minWidth: true, + width: true + }, + resizableRelatedOptions = { + maxHeight: true, + maxWidth: true, + minHeight: true, + minWidth: true + }; + +$.widget("ui.dialog", { + options: { + autoOpen: true, + buttons: {}, + closeOnEscape: true, + closeText: 'close', + dialogClass: '', + draggable: true, + hide: null, + height: 'auto', + maxHeight: false, + maxWidth: false, + minHeight: 150, + minWidth: 150, + modal: false, + position: { + my: 'center', + at: 'center', + collision: 'fit', + // ensure that the titlebar is never outside the document + using: function(pos) { + var topOffset = $(this).css(pos).offset().top; + if (topOffset < 0) { + $(this).css('top', pos.top - topOffset); + } + } + }, + resizable: true, + show: null, + stack: true, + title: '', + width: 300, + zIndex: 1000 + }, + + _create: function() { + this.originalTitle = this.element.attr('title'); + // #5742 - .attr() might return a DOMElement + if ( typeof this.originalTitle !== "string" ) { + this.originalTitle = ""; + } + + this.options.title = this.options.title || this.originalTitle; + var self = this, + options = self.options, + + title = options.title || ' ', + titleId = $.ui.dialog.getTitleId(self.element), + + uiDialog = (self.uiDialog = $('
      ')) + .appendTo(document.body) + .hide() + .addClass(uiDialogClasses + options.dialogClass) + .css({ + zIndex: options.zIndex + }) + // setting tabIndex makes the div focusable + // setting outline to 0 prevents a border on focus in Mozilla + .attr('tabIndex', -1).css('outline', 0).keydown(function(event) { + if (options.closeOnEscape && event.keyCode && + event.keyCode === $.ui.keyCode.ESCAPE) { + + self.close(event); + event.preventDefault(); + } + }) + .attr({ + role: 'dialog', + 'aria-labelledby': titleId + }) + .mousedown(function(event) { + self.moveToTop(false, event); + }), + + uiDialogContent = self.element + .show() + .removeAttr('title') + .addClass( + 'ui-dialog-content ' + + 'ui-widget-content') + .appendTo(uiDialog), + + uiDialogTitlebar = (self.uiDialogTitlebar = $('
      ')) + .addClass( + 'ui-dialog-titlebar ' + + 'ui-widget-header ' + + 'ui-corner-all ' + + 'ui-helper-clearfix' + ) + .prependTo(uiDialog), + + uiDialogTitlebarClose = $('') + .addClass( + 'ui-dialog-titlebar-close ' + + 'ui-corner-all' + ) + .attr('role', 'button') + .hover( + function() { + uiDialogTitlebarClose.addClass('ui-state-hover'); + }, + function() { + uiDialogTitlebarClose.removeClass('ui-state-hover'); + } + ) + .focus(function() { + uiDialogTitlebarClose.addClass('ui-state-focus'); + }) + .blur(function() { + uiDialogTitlebarClose.removeClass('ui-state-focus'); + }) + .click(function(event) { + self.close(event); + return false; + }) + .appendTo(uiDialogTitlebar), + + uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('')) + .addClass( + 'ui-icon ' + + 'ui-icon-closethick' + ) + .text(options.closeText) + .appendTo(uiDialogTitlebarClose), + + uiDialogTitle = $('') + .addClass('ui-dialog-title') + .attr('id', titleId) + .html(title) + .prependTo(uiDialogTitlebar); + + //handling of deprecated beforeclose (vs beforeClose) option + //Ticket #4669 http://dev.jqueryui.com/ticket/4669 + //TODO: remove in 1.9pre + if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) { + options.beforeClose = options.beforeclose; + } + + uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection(); + + if (options.draggable && $.fn.draggable) { + self._makeDraggable(); + } + if (options.resizable && $.fn.resizable) { + self._makeResizable(); + } + + self._createButtons(options.buttons); + self._isOpen = false; + + if ($.fn.bgiframe) { + uiDialog.bgiframe(); + } + }, + + _init: function() { + if ( this.options.autoOpen ) { + this.open(); + } + }, + + destroy: function() { + var self = this; + + if (self.overlay) { + self.overlay.destroy(); + } + self.uiDialog.hide(); + self.element + .unbind('.dialog') + .removeData('dialog') + .removeClass('ui-dialog-content ui-widget-content') + .hide().appendTo('body'); + self.uiDialog.remove(); + + if (self.originalTitle) { + self.element.attr('title', self.originalTitle); + } + + return self; + }, + + widget: function() { + return this.uiDialog; + }, + + close: function(event) { + var self = this, + maxZ, thisZ; + + if (false === self._trigger('beforeClose', event)) { + return; + } + + if (self.overlay) { + self.overlay.destroy(); + } + self.uiDialog.unbind('keypress.ui-dialog'); + + self._isOpen = false; + + if (self.options.hide) { + self.uiDialog.hide(self.options.hide, function() { + self._trigger('close', event); + }); + } else { + self.uiDialog.hide(); + self._trigger('close', event); + } + + $.ui.dialog.overlay.resize(); + + // adjust the maxZ to allow other modal dialogs to continue to work (see #4309) + if (self.options.modal) { + maxZ = 0; + $('.ui-dialog').each(function() { + if (this !== self.uiDialog[0]) { + thisZ = $(this).css('z-index'); + if(!isNaN(thisZ)) { + maxZ = Math.max(maxZ, thisZ); + } + } + }); + $.ui.dialog.maxZ = maxZ; + } + + return self; + }, + + isOpen: function() { + return this._isOpen; + }, + + // the force parameter allows us to move modal dialogs to their correct + // position on open + moveToTop: function(force, event) { + var self = this, + options = self.options, + saveScroll; + + if ((options.modal && !force) || + (!options.stack && !options.modal)) { + return self._trigger('focus', event); + } + + if (options.zIndex > $.ui.dialog.maxZ) { + $.ui.dialog.maxZ = options.zIndex; + } + if (self.overlay) { + $.ui.dialog.maxZ += 1; + self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ); + } + + //Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed. + // http://ui.jquery.com/bugs/ticket/3193 + saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') }; + $.ui.dialog.maxZ += 1; + self.uiDialog.css('z-index', $.ui.dialog.maxZ); + self.element.attr(saveScroll); + self._trigger('focus', event); + + return self; + }, + + open: function() { + if (this._isOpen) { return; } + + var self = this, + options = self.options, + uiDialog = self.uiDialog; + + self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null; + self._size(); + self._position(options.position); + uiDialog.show(options.show); + self.moveToTop(true); + + // prevent tabbing out of modal dialogs + if (options.modal) { + uiDialog.bind('keypress.ui-dialog', function(event) { + if (event.keyCode !== $.ui.keyCode.TAB) { + return; + } + + var tabbables = $(':tabbable', this), + first = tabbables.filter(':first'), + last = tabbables.filter(':last'); + + if (event.target === last[0] && !event.shiftKey) { + first.focus(1); + return false; + } else if (event.target === first[0] && event.shiftKey) { + last.focus(1); + return false; + } + }); + } + + // set focus to the first tabbable element in the content area or the first button + // if there are no tabbable elements, set focus on the dialog itself + $(self.element.find(':tabbable').get().concat( + uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat( + uiDialog.get()))).eq(0).focus(); + + self._isOpen = true; + self._trigger('open'); + + return self; + }, + + _createButtons: function(buttons) { + var self = this, + hasButtons = false, + uiDialogButtonPane = $('
      ') + .addClass( + 'ui-dialog-buttonpane ' + + 'ui-widget-content ' + + 'ui-helper-clearfix' + ), + uiButtonSet = $( "
      " ) + .addClass( "ui-dialog-buttonset" ) + .appendTo( uiDialogButtonPane ); + + // if we already have a button pane, remove it + self.uiDialog.find('.ui-dialog-buttonpane').remove(); + + if (typeof buttons === 'object' && buttons !== null) { + $.each(buttons, function() { + return !(hasButtons = true); + }); + } + if (hasButtons) { + $.each(buttons, function(name, props) { + props = $.isFunction( props ) ? + { click: props, text: name } : + props; + var button = $('') + .attr( props, true ) + .unbind('click') + .click(function() { + props.click.apply(self.element[0], arguments); + }) + .appendTo(uiButtonSet); + if ($.fn.button) { + button.button(); + } + }); + uiDialogButtonPane.appendTo(self.uiDialog); + } + }, + + _makeDraggable: function() { + var self = this, + options = self.options, + doc = $(document), + heightBeforeDrag; + + function filteredUi(ui) { + return { + position: ui.position, + offset: ui.offset + }; + } + + self.uiDialog.draggable({ + cancel: '.ui-dialog-content, .ui-dialog-titlebar-close', + handle: '.ui-dialog-titlebar', + containment: 'document', + start: function(event, ui) { + heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height(); + $(this).height($(this).height()).addClass("ui-dialog-dragging"); + self._trigger('dragStart', event, filteredUi(ui)); + }, + drag: function(event, ui) { + self._trigger('drag', event, filteredUi(ui)); + }, + stop: function(event, ui) { + options.position = [ui.position.left - doc.scrollLeft(), + ui.position.top - doc.scrollTop()]; + $(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag); + self._trigger('dragStop', event, filteredUi(ui)); + $.ui.dialog.overlay.resize(); + } + }); + }, + + _makeResizable: function(handles) { + handles = (handles === undefined ? this.options.resizable : handles); + var self = this, + options = self.options, + // .ui-resizable has position: relative defined in the stylesheet + // but dialogs have to use absolute or fixed positioning + position = self.uiDialog.css('position'), + resizeHandles = (typeof handles === 'string' ? + handles : + 'n,e,s,w,se,sw,ne,nw' + ); + + function filteredUi(ui) { + return { + originalPosition: ui.originalPosition, + originalSize: ui.originalSize, + position: ui.position, + size: ui.size + }; + } + + self.uiDialog.resizable({ + cancel: '.ui-dialog-content', + containment: 'document', + alsoResize: self.element, + maxWidth: options.maxWidth, + maxHeight: options.maxHeight, + minWidth: options.minWidth, + minHeight: self._minHeight(), + handles: resizeHandles, + start: function(event, ui) { + $(this).addClass("ui-dialog-resizing"); + self._trigger('resizeStart', event, filteredUi(ui)); + }, + resize: function(event, ui) { + self._trigger('resize', event, filteredUi(ui)); + }, + stop: function(event, ui) { + $(this).removeClass("ui-dialog-resizing"); + options.height = $(this).height(); + options.width = $(this).width(); + self._trigger('resizeStop', event, filteredUi(ui)); + $.ui.dialog.overlay.resize(); + } + }) + .css('position', position) + .find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se'); + }, + + _minHeight: function() { + var options = this.options; + + if (options.height === 'auto') { + return options.minHeight; + } else { + return Math.min(options.minHeight, options.height); + } + }, + + _position: function(position) { + var myAt = [], + offset = [0, 0], + isVisible; + + if (position) { + // deep extending converts arrays to objects in jQuery <= 1.3.2 :-( + // if (typeof position == 'string' || $.isArray(position)) { + // myAt = $.isArray(position) ? position : position.split(' '); + + if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) { + myAt = position.split ? position.split(' ') : [position[0], position[1]]; + if (myAt.length === 1) { + myAt[1] = myAt[0]; + } + + $.each(['left', 'top'], function(i, offsetPosition) { + if (+myAt[i] === myAt[i]) { + offset[i] = myAt[i]; + myAt[i] = offsetPosition; + } + }); + + position = { + my: myAt.join(" "), + at: myAt.join(" "), + offset: offset.join(" ") + }; + } + + position = $.extend({}, $.ui.dialog.prototype.options.position, position); + } else { + position = $.ui.dialog.prototype.options.position; + } + + // need to show the dialog to get the actual offset in the position plugin + isVisible = this.uiDialog.is(':visible'); + if (!isVisible) { + this.uiDialog.show(); + } + this.uiDialog + // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781 + .css({ top: 0, left: 0 }) + .position($.extend({ of: window }, position)); + if (!isVisible) { + this.uiDialog.hide(); + } + }, + + _setOptions: function( options ) { + var self = this, + resizableOptions = {}, + resize = false; + + $.each( options, function( key, value ) { + self._setOption( key, value ); + + if ( key in sizeRelatedOptions ) { + resize = true; + } + if ( key in resizableRelatedOptions ) { + resizableOptions[ key ] = value; + } + }); + + if ( resize ) { + this._size(); + } + if ( this.uiDialog.is( ":data(resizable)" ) ) { + this.uiDialog.resizable( "option", resizableOptions ); + } + }, + + _setOption: function(key, value){ + var self = this, + uiDialog = self.uiDialog; + + switch (key) { + //handling of deprecated beforeclose (vs beforeClose) option + //Ticket #4669 http://dev.jqueryui.com/ticket/4669 + //TODO: remove in 1.9pre + case "beforeclose": + key = "beforeClose"; + break; + case "buttons": + self._createButtons(value); + break; + case "closeText": + // ensure that we always pass a string + self.uiDialogTitlebarCloseText.text("" + value); + break; + case "dialogClass": + uiDialog + .removeClass(self.options.dialogClass) + .addClass(uiDialogClasses + value); + break; + case "disabled": + if (value) { + uiDialog.addClass('ui-dialog-disabled'); + } else { + uiDialog.removeClass('ui-dialog-disabled'); + } + break; + case "draggable": + var isDraggable = uiDialog.is( ":data(draggable)" ); + if ( isDraggable && !value ) { + uiDialog.draggable( "destroy" ); + } + + if ( !isDraggable && value ) { + self._makeDraggable(); + } + break; + case "position": + self._position(value); + break; + case "resizable": + // currently resizable, becoming non-resizable + var isResizable = uiDialog.is( ":data(resizable)" ); + if (isResizable && !value) { + uiDialog.resizable('destroy'); + } + + // currently resizable, changing handles + if (isResizable && typeof value === 'string') { + uiDialog.resizable('option', 'handles', value); + } + + // currently non-resizable, becoming resizable + if (!isResizable && value !== false) { + self._makeResizable(value); + } + break; + case "title": + // convert whatever was passed in o a string, for html() to not throw up + $(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || ' ')); + break; + } + + $.Widget.prototype._setOption.apply(self, arguments); + }, + + _size: function() { + /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content + * divs will both have width and height set, so we need to reset them + */ + var options = this.options, + nonContentHeight, + minContentHeight, + isVisible = this.uiDialog.is( ":visible" ); + + // reset content sizing + this.element.show().css({ + width: 'auto', + minHeight: 0, + height: 0 + }); + + if (options.minWidth > options.width) { + options.width = options.minWidth; + } + + // reset wrapper sizing + // determine the height of all the non-content elements + nonContentHeight = this.uiDialog.css({ + height: 'auto', + width: options.width + }) + .height(); + minContentHeight = Math.max( 0, options.minHeight - nonContentHeight ); + + if ( options.height === "auto" ) { + // only needed for IE6 support + if ( $.support.minHeight ) { + this.element.css({ + minHeight: minContentHeight, + height: "auto" + }); + } else { + this.uiDialog.show(); + var autoHeight = this.element.css( "height", "auto" ).height(); + if ( !isVisible ) { + this.uiDialog.hide(); + } + this.element.height( Math.max( autoHeight, minContentHeight ) ); + } + } else { + this.element.height( Math.max( options.height - nonContentHeight, 0 ) ); + } + + if (this.uiDialog.is(':data(resizable)')) { + this.uiDialog.resizable('option', 'minHeight', this._minHeight()); + } + } +}); + +$.extend($.ui.dialog, { + version: "1.8.10", + + uuid: 0, + maxZ: 0, + + getTitleId: function($el) { + var id = $el.attr('id'); + if (!id) { + this.uuid += 1; + id = this.uuid; + } + return 'ui-dialog-title-' + id; + }, + + overlay: function(dialog) { + this.$el = $.ui.dialog.overlay.create(dialog); + } +}); + +$.extend($.ui.dialog.overlay, { + instances: [], + // reuse old instances due to IE memory leak with alpha transparency (see #5185) + oldInstances: [], + maxZ: 0, + events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','), + function(event) { return event + '.dialog-overlay'; }).join(' '), + create: function(dialog) { + if (this.instances.length === 0) { + // prevent use of anchors and inputs + // we use a setTimeout in case the overlay is created from an + // event that we're going to be cancelling (see #2804) + setTimeout(function() { + // handle $(el).dialog().dialog('close') (see #4065) + if ($.ui.dialog.overlay.instances.length) { + $(document).bind($.ui.dialog.overlay.events, function(event) { + // stop events if the z-index of the target is < the z-index of the overlay + // we cannot return true when we don't want to cancel the event (#3523) + if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) { + return false; + } + }); + } + }, 1); + + // allow closing by pressing the escape key + $(document).bind('keydown.dialog-overlay', function(event) { + if (dialog.options.closeOnEscape && event.keyCode && + event.keyCode === $.ui.keyCode.ESCAPE) { + + dialog.close(event); + event.preventDefault(); + } + }); + + // handle window resize + $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize); + } + + var $el = (this.oldInstances.pop() || $('
      ').addClass('ui-widget-overlay')) + .appendTo(document.body) + .css({ + width: this.width(), + height: this.height() + }); + + if ($.fn.bgiframe) { + $el.bgiframe(); + } + + this.instances.push($el); + return $el; + }, + + destroy: function($el) { + var indexOf = $.inArray($el, this.instances); + if (indexOf != -1){ + this.oldInstances.push(this.instances.splice(indexOf, 1)[0]); + } + + if (this.instances.length === 0) { + $([document, window]).unbind('.dialog-overlay'); + } + + $el.remove(); + + // adjust the maxZ to allow other modal dialogs to continue to work (see #4309) + var maxZ = 0; + $.each(this.instances, function() { + maxZ = Math.max(maxZ, this.css('z-index')); + }); + this.maxZ = maxZ; + }, + + height: function() { + var scrollHeight, + offsetHeight; + // handle IE 6 + if ($.browser.msie && $.browser.version < 7) { + scrollHeight = Math.max( + document.documentElement.scrollHeight, + document.body.scrollHeight + ); + offsetHeight = Math.max( + document.documentElement.offsetHeight, + document.body.offsetHeight + ); + + if (scrollHeight < offsetHeight) { + return $(window).height() + 'px'; + } else { + return scrollHeight + 'px'; + } + // handle "good" browsers + } else { + return $(document).height() + 'px'; + } + }, + + width: function() { + var scrollWidth, + offsetWidth; + // handle IE 6 + if ($.browser.msie && $.browser.version < 7) { + scrollWidth = Math.max( + document.documentElement.scrollWidth, + document.body.scrollWidth + ); + offsetWidth = Math.max( + document.documentElement.offsetWidth, + document.body.offsetWidth + ); + + if (scrollWidth < offsetWidth) { + return $(window).width() + 'px'; + } else { + return scrollWidth + 'px'; + } + // handle "good" browsers + } else { + return $(document).width() + 'px'; + } + }, + + resize: function() { + /* If the dialog is draggable and the user drags it past the + * right edge of the window, the document becomes wider so we + * need to stretch the overlay. If the user then drags the + * dialog back to the left, the document will become narrower, + * so we need to shrink the overlay to the appropriate size. + * This is handled by shrinking the overlay before setting it + * to the full document size. + */ + var $overlays = $([]); + $.each($.ui.dialog.overlay.instances, function() { + $overlays = $overlays.add(this); + }); + + $overlays.css({ + width: 0, + height: 0 + }).css({ + width: $.ui.dialog.overlay.width(), + height: $.ui.dialog.overlay.height() + }); + } +}); + +$.extend($.ui.dialog.overlay.prototype, { + destroy: function() { + $.ui.dialog.overlay.destroy(this.$el); + } +}); + +}(jQuery)); +/* + * jQuery UI Slider 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +// number of pages in a slider +// (how many times can you page up/down to go through the whole range) +var numPages = 5; + +$.widget( "ui.slider", $.ui.mouse, { + + widgetEventPrefix: "slide", + + options: { + animate: false, + distance: 0, + max: 100, + min: 0, + orientation: "horizontal", + range: false, + step: 1, + value: 0, + values: null + }, + + _create: function() { + var self = this, + o = this.options; + + this._keySliding = false; + this._mouseSliding = false; + this._animateOff = true; + this._handleIndex = null; + this._detectOrientation(); + this._mouseInit(); + + this.element + .addClass( "ui-slider" + + " ui-slider-" + this.orientation + + " ui-widget" + + " ui-widget-content" + + " ui-corner-all" ); + + if ( o.disabled ) { + this.element.addClass( "ui-slider-disabled ui-disabled" ); + } + + this.range = $([]); + + if ( o.range ) { + if ( o.range === true ) { + this.range = $( "
      " ); + if ( !o.values ) { + o.values = [ this._valueMin(), this._valueMin() ]; + } + if ( o.values.length && o.values.length !== 2 ) { + o.values = [ o.values[0], o.values[0] ]; + } + } else { + this.range = $( "
      " ); + } + + this.range + .appendTo( this.element ) + .addClass( "ui-slider-range" ); + + if ( o.range === "min" || o.range === "max" ) { + this.range.addClass( "ui-slider-range-" + o.range ); + } + + // note: this isn't the most fittingly semantic framework class for this element, + // but worked best visually with a variety of themes + this.range.addClass( "ui-widget-header" ); + } + + if ( $( ".ui-slider-handle", this.element ).length === 0 ) { + $( "" ) + .appendTo( this.element ) + .addClass( "ui-slider-handle" ); + } + + if ( o.values && o.values.length ) { + while ( $(".ui-slider-handle", this.element).length < o.values.length ) { + $( "" ) + .appendTo( this.element ) + .addClass( "ui-slider-handle" ); + } + } + + this.handles = $( ".ui-slider-handle", this.element ) + .addClass( "ui-state-default" + + " ui-corner-all" ); + + this.handle = this.handles.eq( 0 ); + + this.handles.add( this.range ).filter( "a" ) + .click(function( event ) { + event.preventDefault(); + }) + .hover(function() { + if ( !o.disabled ) { + $( this ).addClass( "ui-state-hover" ); + } + }, function() { + $( this ).removeClass( "ui-state-hover" ); + }) + .focus(function() { + if ( !o.disabled ) { + $( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" ); + $( this ).addClass( "ui-state-focus" ); + } else { + $( this ).blur(); + } + }) + .blur(function() { + $( this ).removeClass( "ui-state-focus" ); + }); + + this.handles.each(function( i ) { + $( this ).data( "index.ui-slider-handle", i ); + }); + + this.handles + .keydown(function( event ) { + var ret = true, + index = $( this ).data( "index.ui-slider-handle" ), + allowed, + curVal, + newVal, + step; + + if ( self.options.disabled ) { + return; + } + + switch ( event.keyCode ) { + case $.ui.keyCode.HOME: + case $.ui.keyCode.END: + case $.ui.keyCode.PAGE_UP: + case $.ui.keyCode.PAGE_DOWN: + case $.ui.keyCode.UP: + case $.ui.keyCode.RIGHT: + case $.ui.keyCode.DOWN: + case $.ui.keyCode.LEFT: + ret = false; + if ( !self._keySliding ) { + self._keySliding = true; + $( this ).addClass( "ui-state-active" ); + allowed = self._start( event, index ); + if ( allowed === false ) { + return; + } + } + break; + } + + step = self.options.step; + if ( self.options.values && self.options.values.length ) { + curVal = newVal = self.values( index ); + } else { + curVal = newVal = self.value(); + } + + switch ( event.keyCode ) { + case $.ui.keyCode.HOME: + newVal = self._valueMin(); + break; + case $.ui.keyCode.END: + newVal = self._valueMax(); + break; + case $.ui.keyCode.PAGE_UP: + newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) ); + break; + case $.ui.keyCode.PAGE_DOWN: + newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) ); + break; + case $.ui.keyCode.UP: + case $.ui.keyCode.RIGHT: + if ( curVal === self._valueMax() ) { + return; + } + newVal = self._trimAlignValue( curVal + step ); + break; + case $.ui.keyCode.DOWN: + case $.ui.keyCode.LEFT: + if ( curVal === self._valueMin() ) { + return; + } + newVal = self._trimAlignValue( curVal - step ); + break; + } + + self._slide( event, index, newVal ); + + return ret; + + }) + .keyup(function( event ) { + var index = $( this ).data( "index.ui-slider-handle" ); + + if ( self._keySliding ) { + self._keySliding = false; + self._stop( event, index ); + self._change( event, index ); + $( this ).removeClass( "ui-state-active" ); + } + + }); + + this._refreshValue(); + + this._animateOff = false; + }, + + destroy: function() { + this.handles.remove(); + this.range.remove(); + + this.element + .removeClass( "ui-slider" + + " ui-slider-horizontal" + + " ui-slider-vertical" + + " ui-slider-disabled" + + " ui-widget" + + " ui-widget-content" + + " ui-corner-all" ) + .removeData( "slider" ) + .unbind( ".slider" ); + + this._mouseDestroy(); + + return this; + }, + + _mouseCapture: function( event ) { + var o = this.options, + position, + normValue, + distance, + closestHandle, + self, + index, + allowed, + offset, + mouseOverHandle; + + if ( o.disabled ) { + return false; + } + + this.elementSize = { + width: this.element.outerWidth(), + height: this.element.outerHeight() + }; + this.elementOffset = this.element.offset(); + + position = { x: event.pageX, y: event.pageY }; + normValue = this._normValueFromMouse( position ); + distance = this._valueMax() - this._valueMin() + 1; + self = this; + this.handles.each(function( i ) { + var thisDistance = Math.abs( normValue - self.values(i) ); + if ( distance > thisDistance ) { + distance = thisDistance; + closestHandle = $( this ); + index = i; + } + }); + + // workaround for bug #3736 (if both handles of a range are at 0, + // the first is always used as the one with least distance, + // and moving it is obviously prevented by preventing negative ranges) + if( o.range === true && this.values(1) === o.min ) { + index += 1; + closestHandle = $( this.handles[index] ); + } + + allowed = this._start( event, index ); + if ( allowed === false ) { + return false; + } + this._mouseSliding = true; + + self._handleIndex = index; + + closestHandle + .addClass( "ui-state-active" ) + .focus(); + + offset = closestHandle.offset(); + mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" ); + this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : { + left: event.pageX - offset.left - ( closestHandle.width() / 2 ), + top: event.pageY - offset.top - + ( closestHandle.height() / 2 ) - + ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) - + ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) + + ( parseInt( closestHandle.css("marginTop"), 10 ) || 0) + }; + + if ( !this.handles.hasClass( "ui-state-hover" ) ) { + this._slide( event, index, normValue ); + } + this._animateOff = true; + return true; + }, + + _mouseStart: function( event ) { + return true; + }, + + _mouseDrag: function( event ) { + var position = { x: event.pageX, y: event.pageY }, + normValue = this._normValueFromMouse( position ); + + this._slide( event, this._handleIndex, normValue ); + + return false; + }, + + _mouseStop: function( event ) { + this.handles.removeClass( "ui-state-active" ); + this._mouseSliding = false; + + this._stop( event, this._handleIndex ); + this._change( event, this._handleIndex ); + + this._handleIndex = null; + this._clickOffset = null; + this._animateOff = false; + + return false; + }, + + _detectOrientation: function() { + this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal"; + }, + + _normValueFromMouse: function( position ) { + var pixelTotal, + pixelMouse, + percentMouse, + valueTotal, + valueMouse; + + if ( this.orientation === "horizontal" ) { + pixelTotal = this.elementSize.width; + pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 ); + } else { + pixelTotal = this.elementSize.height; + pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 ); + } + + percentMouse = ( pixelMouse / pixelTotal ); + if ( percentMouse > 1 ) { + percentMouse = 1; + } + if ( percentMouse < 0 ) { + percentMouse = 0; + } + if ( this.orientation === "vertical" ) { + percentMouse = 1 - percentMouse; + } + + valueTotal = this._valueMax() - this._valueMin(); + valueMouse = this._valueMin() + percentMouse * valueTotal; + + return this._trimAlignValue( valueMouse ); + }, + + _start: function( event, index ) { + var uiHash = { + handle: this.handles[ index ], + value: this.value() + }; + if ( this.options.values && this.options.values.length ) { + uiHash.value = this.values( index ); + uiHash.values = this.values(); + } + return this._trigger( "start", event, uiHash ); + }, + + _slide: function( event, index, newVal ) { + var otherVal, + newValues, + allowed; + + if ( this.options.values && this.options.values.length ) { + otherVal = this.values( index ? 0 : 1 ); + + if ( ( this.options.values.length === 2 && this.options.range === true ) && + ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) ) + ) { + newVal = otherVal; + } + + if ( newVal !== this.values( index ) ) { + newValues = this.values(); + newValues[ index ] = newVal; + // A slide can be canceled by returning false from the slide callback + allowed = this._trigger( "slide", event, { + handle: this.handles[ index ], + value: newVal, + values: newValues + } ); + otherVal = this.values( index ? 0 : 1 ); + if ( allowed !== false ) { + this.values( index, newVal, true ); + } + } + } else { + if ( newVal !== this.value() ) { + // A slide can be canceled by returning false from the slide callback + allowed = this._trigger( "slide", event, { + handle: this.handles[ index ], + value: newVal + } ); + if ( allowed !== false ) { + this.value( newVal ); + } + } + } + }, + + _stop: function( event, index ) { + var uiHash = { + handle: this.handles[ index ], + value: this.value() + }; + if ( this.options.values && this.options.values.length ) { + uiHash.value = this.values( index ); + uiHash.values = this.values(); + } + + this._trigger( "stop", event, uiHash ); + }, + + _change: function( event, index ) { + if ( !this._keySliding && !this._mouseSliding ) { + var uiHash = { + handle: this.handles[ index ], + value: this.value() + }; + if ( this.options.values && this.options.values.length ) { + uiHash.value = this.values( index ); + uiHash.values = this.values(); + } + + this._trigger( "change", event, uiHash ); + } + }, + + value: function( newValue ) { + if ( arguments.length ) { + this.options.value = this._trimAlignValue( newValue ); + this._refreshValue(); + this._change( null, 0 ); + } + + return this._value(); + }, + + values: function( index, newValue ) { + var vals, + newValues, + i; + + if ( arguments.length > 1 ) { + this.options.values[ index ] = this._trimAlignValue( newValue ); + this._refreshValue(); + this._change( null, index ); + } + + if ( arguments.length ) { + if ( $.isArray( arguments[ 0 ] ) ) { + vals = this.options.values; + newValues = arguments[ 0 ]; + for ( i = 0; i < vals.length; i += 1 ) { + vals[ i ] = this._trimAlignValue( newValues[ i ] ); + this._change( null, i ); + } + this._refreshValue(); + } else { + if ( this.options.values && this.options.values.length ) { + return this._values( index ); + } else { + return this.value(); + } + } + } else { + return this._values(); + } + }, + + _setOption: function( key, value ) { + var i, + valsLength = 0; + + if ( $.isArray( this.options.values ) ) { + valsLength = this.options.values.length; + } + + $.Widget.prototype._setOption.apply( this, arguments ); + + switch ( key ) { + case "disabled": + if ( value ) { + this.handles.filter( ".ui-state-focus" ).blur(); + this.handles.removeClass( "ui-state-hover" ); + this.handles.attr( "disabled", "disabled" ); + this.element.addClass( "ui-disabled" ); + } else { + this.handles.removeAttr( "disabled" ); + this.element.removeClass( "ui-disabled" ); + } + break; + case "orientation": + this._detectOrientation(); + this.element + .removeClass( "ui-slider-horizontal ui-slider-vertical" ) + .addClass( "ui-slider-" + this.orientation ); + this._refreshValue(); + break; + case "value": + this._animateOff = true; + this._refreshValue(); + this._change( null, 0 ); + this._animateOff = false; + break; + case "values": + this._animateOff = true; + this._refreshValue(); + for ( i = 0; i < valsLength; i += 1 ) { + this._change( null, i ); + } + this._animateOff = false; + break; + } + }, + + //internal value getter + // _value() returns value trimmed by min and max, aligned by step + _value: function() { + var val = this.options.value; + val = this._trimAlignValue( val ); + + return val; + }, + + //internal values getter + // _values() returns array of values trimmed by min and max, aligned by step + // _values( index ) returns single value trimmed by min and max, aligned by step + _values: function( index ) { + var val, + vals, + i; + + if ( arguments.length ) { + val = this.options.values[ index ]; + val = this._trimAlignValue( val ); + + return val; + } else { + // .slice() creates a copy of the array + // this copy gets trimmed by min and max and then returned + vals = this.options.values.slice(); + for ( i = 0; i < vals.length; i+= 1) { + vals[ i ] = this._trimAlignValue( vals[ i ] ); + } + + return vals; + } + }, + + // returns the step-aligned value that val is closest to, between (inclusive) min and max + _trimAlignValue: function( val ) { + if ( val <= this._valueMin() ) { + return this._valueMin(); + } + if ( val >= this._valueMax() ) { + return this._valueMax(); + } + var step = ( this.options.step > 0 ) ? this.options.step : 1, + valModStep = (val - this._valueMin()) % step; + alignValue = val - valModStep; + + if ( Math.abs(valModStep) * 2 >= step ) { + alignValue += ( valModStep > 0 ) ? step : ( -step ); + } + + // Since JavaScript has problems with large floats, round + // the final value to 5 digits after the decimal point (see #4124) + return parseFloat( alignValue.toFixed(5) ); + }, + + _valueMin: function() { + return this.options.min; + }, + + _valueMax: function() { + return this.options.max; + }, + + _refreshValue: function() { + var oRange = this.options.range, + o = this.options, + self = this, + animate = ( !this._animateOff ) ? o.animate : false, + valPercent, + _set = {}, + lastValPercent, + value, + valueMin, + valueMax; + + if ( this.options.values && this.options.values.length ) { + this.handles.each(function( i, j ) { + valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100; + _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; + $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); + if ( self.options.range === true ) { + if ( self.orientation === "horizontal" ) { + if ( i === 0 ) { + self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate ); + } + if ( i === 1 ) { + self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); + } + } else { + if ( i === 0 ) { + self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate ); + } + if ( i === 1 ) { + self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); + } + } + } + lastValPercent = valPercent; + }); + } else { + value = this.value(); + valueMin = this._valueMin(); + valueMax = this._valueMax(); + valPercent = ( valueMax !== valueMin ) ? + ( value - valueMin ) / ( valueMax - valueMin ) * 100 : + 0; + _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; + this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); + + if ( oRange === "min" && this.orientation === "horizontal" ) { + this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate ); + } + if ( oRange === "max" && this.orientation === "horizontal" ) { + this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); + } + if ( oRange === "min" && this.orientation === "vertical" ) { + this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate ); + } + if ( oRange === "max" && this.orientation === "vertical" ) { + this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); + } + } + } + +}); + +$.extend( $.ui.slider, { + version: "1.8.10" +}); + +}(jQuery)); +/* + * jQuery UI Tabs 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +var tabId = 0, + listId = 0; + +function getNextTabId() { + return ++tabId; +} + +function getNextListId() { + return ++listId; +} + +$.widget( "ui.tabs", { + options: { + add: null, + ajaxOptions: null, + cache: false, + cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true } + collapsible: false, + disable: null, + disabled: [], + enable: null, + event: "click", + fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 } + idPrefix: "ui-tabs-", + load: null, + panelTemplate: "
      ", + remove: null, + select: null, + show: null, + spinner: "Loading…", + tabTemplate: "
    • #{label}
    • " + }, + + _create: function() { + this._tabify( true ); + }, + + _setOption: function( key, value ) { + if ( key == "selected" ) { + if (this.options.collapsible && value == this.options.selected ) { + return; + } + this.select( value ); + } else { + this.options[ key ] = value; + this._tabify(); + } + }, + + _tabId: function( a ) { + return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) || + this.options.idPrefix + getNextTabId(); + }, + + _sanitizeSelector: function( hash ) { + // we need this because an id may contain a ":" + return hash.replace( /:/g, "\\:" ); + }, + + _cookie: function() { + var cookie = this.cookie || + ( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() ); + return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) ); + }, + + _ui: function( tab, panel ) { + return { + tab: tab, + panel: panel, + index: this.anchors.index( tab ) + }; + }, + + _cleanup: function() { + // restore all former loading tabs labels + this.lis.filter( ".ui-state-processing" ) + .removeClass( "ui-state-processing" ) + .find( "span:data(label.tabs)" ) + .each(function() { + var el = $( this ); + el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" ); + }); + }, + + _tabify: function( init ) { + var self = this, + o = this.options, + fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash + + this.list = this.element.find( "ol,ul" ).eq( 0 ); + this.lis = $( " > li:has(a[href])", this.list ); + this.anchors = this.lis.map(function() { + return $( "a", this )[ 0 ]; + }); + this.panels = $( [] ); + + this.anchors.each(function( i, a ) { + var href = $( a ).attr( "href" ); + // For dynamically created HTML that contains a hash as href IE < 8 expands + // such href to the full page url with hash and then misinterprets tab as ajax. + // Same consideration applies for an added tab with a fragment identifier + // since a[href=#fragment-identifier] does unexpectedly not match. + // Thus normalize href attribute... + var hrefBase = href.split( "#" )[ 0 ], + baseEl; + if ( hrefBase && ( hrefBase === location.toString().split( "#" )[ 0 ] || + ( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) { + href = a.hash; + a.href = href; + } + + // inline tab + if ( fragmentId.test( href ) ) { + self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) ); + // remote tab + // prevent loading the page itself if href is just "#" + } else if ( href && href !== "#" ) { + // required for restore on destroy + $.data( a, "href.tabs", href ); + + // TODO until #3808 is fixed strip fragment identifier from url + // (IE fails to load from such url) + $.data( a, "load.tabs", href.replace( /#.*$/, "" ) ); + + var id = self._tabId( a ); + a.href = "#" + id; + var $panel = self.element.find( "#" + id ); + if ( !$panel.length ) { + $panel = $( o.panelTemplate ) + .attr( "id", id ) + .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) + .insertAfter( self.panels[ i - 1 ] || self.list ); + $panel.data( "destroy.tabs", true ); + } + self.panels = self.panels.add( $panel ); + // invalid tab href + } else { + o.disabled.push( i ); + } + }); + + // initialization from scratch + if ( init ) { + // attach necessary classes for styling + this.element.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" ); + this.list.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ); + this.lis.addClass( "ui-state-default ui-corner-top" ); + this.panels.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ); + + // Selected tab + // use "selected" option or try to retrieve: + // 1. from fragment identifier in url + // 2. from cookie + // 3. from selected class attribute on
    • + if ( o.selected === undefined ) { + if ( location.hash ) { + this.anchors.each(function( i, a ) { + if ( a.hash == location.hash ) { + o.selected = i; + return false; + } + }); + } + if ( typeof o.selected !== "number" && o.cookie ) { + o.selected = parseInt( self._cookie(), 10 ); + } + if ( typeof o.selected !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) { + o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) ); + } + o.selected = o.selected || ( this.lis.length ? 0 : -1 ); + } else if ( o.selected === null ) { // usage of null is deprecated, TODO remove in next release + o.selected = -1; + } + + // sanity check - default to first tab... + o.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 ) + ? o.selected + : 0; + + // Take disabling tabs via class attribute from HTML + // into account and update option properly. + // A selected tab cannot become disabled. + o.disabled = $.unique( o.disabled.concat( + $.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) { + return self.lis.index( n ); + }) + ) ).sort(); + + if ( $.inArray( o.selected, o.disabled ) != -1 ) { + o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 ); + } + + // highlight selected tab + this.panels.addClass( "ui-tabs-hide" ); + this.lis.removeClass( "ui-tabs-selected ui-state-active" ); + // check for length avoids error when initializing empty list + if ( o.selected >= 0 && this.anchors.length ) { + self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( "ui-tabs-hide" ); + this.lis.eq( o.selected ).addClass( "ui-tabs-selected ui-state-active" ); + + // seems to be expected behavior that the show callback is fired + self.element.queue( "tabs", function() { + self._trigger( "show", null, + self._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) ); + }); + + this.load( o.selected ); + } + + // clean up to avoid memory leaks in certain versions of IE 6 + // TODO: namespace this event + $( window ).bind( "unload", function() { + self.lis.add( self.anchors ).unbind( ".tabs" ); + self.lis = self.anchors = self.panels = null; + }); + // update selected after add/remove + } else { + o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) ); + } + + // update collapsible + // TODO: use .toggleClass() + this.element[ o.collapsible ? "addClass" : "removeClass" ]( "ui-tabs-collapsible" ); + + // set or update cookie after init and add/remove respectively + if ( o.cookie ) { + this._cookie( o.selected, o.cookie ); + } + + // disable tabs + for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) { + $( li )[ $.inArray( i, o.disabled ) != -1 && + // TODO: use .toggleClass() + !$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" ]( "ui-state-disabled" ); + } + + // reset cache if switching from cached to not cached + if ( o.cache === false ) { + this.anchors.removeData( "cache.tabs" ); + } + + // remove all handlers before, tabify may run on existing tabs after add or option change + this.lis.add( this.anchors ).unbind( ".tabs" ); + + if ( o.event !== "mouseover" ) { + var addState = function( state, el ) { + if ( el.is( ":not(.ui-state-disabled)" ) ) { + el.addClass( "ui-state-" + state ); + } + }; + var removeState = function( state, el ) { + el.removeClass( "ui-state-" + state ); + }; + this.lis.bind( "mouseover.tabs" , function() { + addState( "hover", $( this ) ); + }); + this.lis.bind( "mouseout.tabs", function() { + removeState( "hover", $( this ) ); + }); + this.anchors.bind( "focus.tabs", function() { + addState( "focus", $( this ).closest( "li" ) ); + }); + this.anchors.bind( "blur.tabs", function() { + removeState( "focus", $( this ).closest( "li" ) ); + }); + } + + // set up animations + var hideFx, showFx; + if ( o.fx ) { + if ( $.isArray( o.fx ) ) { + hideFx = o.fx[ 0 ]; + showFx = o.fx[ 1 ]; + } else { + hideFx = showFx = o.fx; + } + } + + // Reset certain styles left over from animation + // and prevent IE's ClearType bug... + function resetStyle( $el, fx ) { + $el.css( "display", "" ); + if ( !$.support.opacity && fx.opacity ) { + $el[ 0 ].style.removeAttribute( "filter" ); + } + } + + // Show a tab... + var showTab = showFx + ? function( clicked, $show ) { + $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" ); + $show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way + .animate( showFx, showFx.duration || "normal", function() { + resetStyle( $show, showFx ); + self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) ); + }); + } + : function( clicked, $show ) { + $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" ); + $show.removeClass( "ui-tabs-hide" ); + self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) ); + }; + + // Hide a tab, $show is optional... + var hideTab = hideFx + ? function( clicked, $hide ) { + $hide.animate( hideFx, hideFx.duration || "normal", function() { + self.lis.removeClass( "ui-tabs-selected ui-state-active" ); + $hide.addClass( "ui-tabs-hide" ); + resetStyle( $hide, hideFx ); + self.element.dequeue( "tabs" ); + }); + } + : function( clicked, $hide, $show ) { + self.lis.removeClass( "ui-tabs-selected ui-state-active" ); + $hide.addClass( "ui-tabs-hide" ); + self.element.dequeue( "tabs" ); + }; + + // attach tab event handler, unbind to avoid duplicates from former tabifying... + this.anchors.bind( o.event + ".tabs", function() { + var el = this, + $li = $(el).closest( "li" ), + $hide = self.panels.filter( ":not(.ui-tabs-hide)" ), + $show = self.element.find( self._sanitizeSelector( el.hash ) ); + + // If tab is already selected and not collapsible or tab disabled or + // or is already loading or click callback returns false stop here. + // Check if click handler returns false last so that it is not executed + // for a disabled or loading tab! + if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) || + $li.hasClass( "ui-state-disabled" ) || + $li.hasClass( "ui-state-processing" ) || + self.panels.filter( ":animated" ).length || + self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) { + this.blur(); + return false; + } + + o.selected = self.anchors.index( this ); + + self.abort(); + + // if tab may be closed + if ( o.collapsible ) { + if ( $li.hasClass( "ui-tabs-selected" ) ) { + o.selected = -1; + + if ( o.cookie ) { + self._cookie( o.selected, o.cookie ); + } + + self.element.queue( "tabs", function() { + hideTab( el, $hide ); + }).dequeue( "tabs" ); + + this.blur(); + return false; + } else if ( !$hide.length ) { + if ( o.cookie ) { + self._cookie( o.selected, o.cookie ); + } + + self.element.queue( "tabs", function() { + showTab( el, $show ); + }); + + // TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171 + self.load( self.anchors.index( this ) ); + + this.blur(); + return false; + } + } + + if ( o.cookie ) { + self._cookie( o.selected, o.cookie ); + } + + // show new tab + if ( $show.length ) { + if ( $hide.length ) { + self.element.queue( "tabs", function() { + hideTab( el, $hide ); + }); + } + self.element.queue( "tabs", function() { + showTab( el, $show ); + }); + + self.load( self.anchors.index( this ) ); + } else { + throw "jQuery UI Tabs: Mismatching fragment identifier."; + } + + // Prevent IE from keeping other link focussed when using the back button + // and remove dotted border from clicked link. This is controlled via CSS + // in modern browsers; blur() removes focus from address bar in Firefox + // which can become a usability and annoying problem with tabs('rotate'). + if ( $.browser.msie ) { + this.blur(); + } + }); + + // disable click in any case + this.anchors.bind( "click.tabs", function(){ + return false; + }); + }, + + _getIndex: function( index ) { + // meta-function to give users option to provide a href string instead of a numerical index. + // also sanitizes numerical indexes to valid values. + if ( typeof index == "string" ) { + index = this.anchors.index( this.anchors.filter( "[href$=" + index + "]" ) ); + } + + return index; + }, + + destroy: function() { + var o = this.options; + + this.abort(); + + this.element + .unbind( ".tabs" ) + .removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" ) + .removeData( "tabs" ); + + this.list.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ); + + this.anchors.each(function() { + var href = $.data( this, "href.tabs" ); + if ( href ) { + this.href = href; + } + var $this = $( this ).unbind( ".tabs" ); + $.each( [ "href", "load", "cache" ], function( i, prefix ) { + $this.removeData( prefix + ".tabs" ); + }); + }); + + this.lis.unbind( ".tabs" ).add( this.panels ).each(function() { + if ( $.data( this, "destroy.tabs" ) ) { + $( this ).remove(); + } else { + $( this ).removeClass([ + "ui-state-default", + "ui-corner-top", + "ui-tabs-selected", + "ui-state-active", + "ui-state-hover", + "ui-state-focus", + "ui-state-disabled", + "ui-tabs-panel", + "ui-widget-content", + "ui-corner-bottom", + "ui-tabs-hide" + ].join( " " ) ); + } + }); + + if ( o.cookie ) { + this._cookie( null, o.cookie ); + } + + return this; + }, + + add: function( url, label, index ) { + if ( index === undefined ) { + index = this.anchors.length; + } + + var self = this, + o = this.options, + $li = $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( /#\{label\}/g, label ) ), + id = !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( "a", $li )[ 0 ] ); + + $li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true ); + + // try to find an existing element before creating a new one + var $panel = self.element.find( "#" + id ); + if ( !$panel.length ) { + $panel = $( o.panelTemplate ) + .attr( "id", id ) + .data( "destroy.tabs", true ); + } + $panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" ); + + if ( index >= this.lis.length ) { + $li.appendTo( this.list ); + $panel.appendTo( this.list[ 0 ].parentNode ); + } else { + $li.insertBefore( this.lis[ index ] ); + $panel.insertBefore( this.panels[ index ] ); + } + + o.disabled = $.map( o.disabled, function( n, i ) { + return n >= index ? ++n : n; + }); + + this._tabify(); + + if ( this.anchors.length == 1 ) { + o.selected = 0; + $li.addClass( "ui-tabs-selected ui-state-active" ); + $panel.removeClass( "ui-tabs-hide" ); + this.element.queue( "tabs", function() { + self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) ); + }); + + this.load( 0 ); + } + + this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); + return this; + }, + + remove: function( index ) { + index = this._getIndex( index ); + var o = this.options, + $li = this.lis.eq( index ).remove(), + $panel = this.panels.eq( index ).remove(); + + // If selected tab was removed focus tab to the right or + // in case the last tab was removed the tab to the left. + if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) { + this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) ); + } + + o.disabled = $.map( + $.grep( o.disabled, function(n, i) { + return n != index; + }), + function( n, i ) { + return n >= index ? --n : n; + }); + + this._tabify(); + + this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) ); + return this; + }, + + enable: function( index ) { + index = this._getIndex( index ); + var o = this.options; + if ( $.inArray( index, o.disabled ) == -1 ) { + return; + } + + this.lis.eq( index ).removeClass( "ui-state-disabled" ); + o.disabled = $.grep( o.disabled, function( n, i ) { + return n != index; + }); + + this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); + return this; + }, + + disable: function( index ) { + index = this._getIndex( index ); + var self = this, o = this.options; + // cannot disable already selected tab + if ( index != o.selected ) { + this.lis.eq( index ).addClass( "ui-state-disabled" ); + + o.disabled.push( index ); + o.disabled.sort(); + + this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); + } + + return this; + }, + + select: function( index ) { + index = this._getIndex( index ); + if ( index == -1 ) { + if ( this.options.collapsible && this.options.selected != -1 ) { + index = this.options.selected; + } else { + return this; + } + } + this.anchors.eq( index ).trigger( this.options.event + ".tabs" ); + return this; + }, + + load: function( index ) { + index = this._getIndex( index ); + var self = this, + o = this.options, + a = this.anchors.eq( index )[ 0 ], + url = $.data( a, "load.tabs" ); + + this.abort(); + + // not remote or from cache + if ( !url || this.element.queue( "tabs" ).length !== 0 && $.data( a, "cache.tabs" ) ) { + this.element.dequeue( "tabs" ); + return; + } + + // load remote from here on + this.lis.eq( index ).addClass( "ui-state-processing" ); + + if ( o.spinner ) { + var span = $( "span", a ); + span.data( "label.tabs", span.html() ).html( o.spinner ); + } + + this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, { + url: url, + success: function( r, s ) { + self.element.find( self._sanitizeSelector( a.hash ) ).html( r ); + + // take care of tab labels + self._cleanup(); + + if ( o.cache ) { + $.data( a, "cache.tabs", true ); + } + + self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) ); + try { + o.ajaxOptions.success( r, s ); + } + catch ( e ) {} + }, + error: function( xhr, s, e ) { + // take care of tab labels + self._cleanup(); + + self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) ); + try { + // Passing index avoid a race condition when this method is + // called after the user has selected another tab. + // Pass the anchor that initiated this request allows + // loadError to manipulate the tab content panel via $(a.hash) + o.ajaxOptions.error( xhr, s, index, a ); + } + catch ( e ) {} + } + } ) ); + + // last, so that load event is fired before show... + self.element.dequeue( "tabs" ); + + return this; + }, + + abort: function() { + // stop possibly running animations + this.element.queue( [] ); + this.panels.stop( false, true ); + + // "tabs" queue must not contain more than two elements, + // which are the callbacks for the latest clicked tab... + this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 ) ); + + // terminate pending requests from other tabs + if ( this.xhr ) { + this.xhr.abort(); + delete this.xhr; + } + + // take care of tab labels + this._cleanup(); + return this; + }, + + url: function( index, url ) { + this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", url ); + return this; + }, + + length: function() { + return this.anchors.length; + } +}); + +$.extend( $.ui.tabs, { + version: "1.8.10" +}); + +/* + * Tabs Extensions + */ + +/* + * Rotate + */ +$.extend( $.ui.tabs.prototype, { + rotation: null, + rotate: function( ms, continuing ) { + var self = this, + o = this.options; + + var rotate = self._rotate || ( self._rotate = function( e ) { + clearTimeout( self.rotation ); + self.rotation = setTimeout(function() { + var t = o.selected; + self.select( ++t < self.anchors.length ? t : 0 ); + }, ms ); + + if ( e ) { + e.stopPropagation(); + } + }); + + var stop = self._unrotate || ( self._unrotate = !continuing + ? function(e) { + if (e.clientX) { // in case of a true click + self.rotate(null); + } + } + : function( e ) { + t = o.selected; + rotate(); + }); + + // start rotation + if ( ms ) { + this.element.bind( "tabsshow", rotate ); + this.anchors.bind( o.event + ".tabs", stop ); + rotate(); + // stop rotation + } else { + clearTimeout( self.rotation ); + this.element.unbind( "tabsshow", rotate ); + this.anchors.unbind( o.event + ".tabs", stop ); + delete this._rotate; + delete this._unrotate; + } + + return this; + } +}); + +})( jQuery ); +/* + * jQuery UI Datepicker 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker + * + * Depends: + * jquery.ui.core.js + */ +(function( $, undefined ) { + +$.extend($.ui, { datepicker: { version: "1.8.10" } }); + +var PROP_NAME = 'datepicker'; +var dpuuid = new Date().getTime(); + +/* Date picker manager. + Use the singleton instance of this class, $.datepicker, to interact with the date picker. + Settings for (groups of) date pickers are maintained in an instance object, + allowing multiple different settings on the same page. */ + +function Datepicker() { + this.debug = false; // Change this to true to start debugging + this._curInst = null; // The current instance in use + this._keyEvent = false; // If the last event was a key event + this._disabledInputs = []; // List of date picker inputs that have been disabled + this._datepickerShowing = false; // True if the popup picker is showing , false if not + this._inDialog = false; // True if showing within a "dialog", false if not + this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division + this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class + this._appendClass = 'ui-datepicker-append'; // The name of the append marker class + this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class + this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class + this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class + this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class + this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class + this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class + this.regional = []; // Available regional settings, indexed by language code + this.regional[''] = { // Default regional settings + closeText: 'Done', // Display text for close link + prevText: 'Prev', // Display text for previous month link + nextText: 'Next', // Display text for next month link + currentText: 'Today', // Display text for current month link + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], // Names of months for drop-down and formatting + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday + weekHeader: 'Wk', // Column header for week of the year + dateFormat: 'mm/dd/yy', // See format options on parseDate + firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ... + isRTL: false, // True if right-to-left language, false if left-to-right + showMonthAfterYear: false, // True if the year select precedes month, false for month then year + yearSuffix: '' // Additional text to append to the year in the month headers + }; + this._defaults = { // Global defaults for all the date picker instances + showOn: 'focus', // 'focus' for popup on focus, + // 'button' for trigger button, or 'both' for either + showAnim: 'fadeIn', // Name of jQuery animation for popup + showOptions: {}, // Options for enhanced animations + defaultDate: null, // Used when field is blank: actual date, + // +/-number for offset from today, null for today + appendText: '', // Display text following the input box, e.g. showing the format + buttonText: '...', // Text for trigger button + buttonImage: '', // URL for trigger button image + buttonImageOnly: false, // True if the image appears alone, false if it appears on a button + hideIfNoPrevNext: false, // True to hide next/previous month links + // if not applicable, false to just disable them + navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links + gotoCurrent: false, // True if today link goes back to current selection instead + changeMonth: false, // True if month can be selected directly, false if only prev/next + changeYear: false, // True if year can be selected directly, false if only prev/next + yearRange: 'c-10:c+10', // Range of years to display in drop-down, + // either relative to today's year (-nn:+nn), relative to currently displayed year + // (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n) + showOtherMonths: false, // True to show dates in other months, false to leave blank + selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable + showWeek: false, // True to show week of the year, false to not show it + calculateWeek: this.iso8601Week, // How to calculate the week of the year, + // takes a Date and returns the number of the week for it + shortYearCutoff: '+10', // Short year values < this are in the current century, + // > this are in the previous century, + // string value starting with '+' for current year + value + minDate: null, // The earliest selectable date, or null for no limit + maxDate: null, // The latest selectable date, or null for no limit + duration: 'fast', // Duration of display/closure + beforeShowDay: null, // Function that takes a date and returns an array with + // [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '', + // [2] = cell title (optional), e.g. $.datepicker.noWeekends + beforeShow: null, // Function that takes an input field and + // returns a set of custom settings for the date picker + onSelect: null, // Define a callback function when a date is selected + onChangeMonthYear: null, // Define a callback function when the month or year is changed + onClose: null, // Define a callback function when the datepicker is closed + numberOfMonths: 1, // Number of months to show at a time + showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0) + stepMonths: 1, // Number of months to step back/forward + stepBigMonths: 12, // Number of months to step back/forward for the big links + altField: '', // Selector for an alternate field to store selected dates into + altFormat: '', // The date format to use for the alternate field + constrainInput: true, // The input is constrained by the current date format + showButtonPanel: false, // True to show button panel, false to not show it + autoSize: false // True to size the input for the date format, false to leave as is + }; + $.extend(this._defaults, this.regional['']); + this.dpDiv = $('
      '); +} + +$.extend(Datepicker.prototype, { + /* Class name added to elements to indicate already configured with a date picker. */ + markerClassName: 'hasDatepicker', + + /* Debug logging (if enabled). */ + log: function () { + if (this.debug) + console.log.apply('', arguments); + }, + + // TODO rename to "widget" when switching to widget factory + _widgetDatepicker: function() { + return this.dpDiv; + }, + + /* Override the default settings for all instances of the date picker. + @param settings object - the new settings to use as defaults (anonymous object) + @return the manager object */ + setDefaults: function(settings) { + extendRemove(this._defaults, settings || {}); + return this; + }, + + /* Attach the date picker to a jQuery selection. + @param target element - the target input field or division or span + @param settings object - the new settings to use for this date picker instance (anonymous) */ + _attachDatepicker: function(target, settings) { + // check for settings on the control itself - in namespace 'date:' + var inlineSettings = null; + for (var attrName in this._defaults) { + var attrValue = target.getAttribute('date:' + attrName); + if (attrValue) { + inlineSettings = inlineSettings || {}; + try { + inlineSettings[attrName] = eval(attrValue); + } catch (err) { + inlineSettings[attrName] = attrValue; + } + } + } + var nodeName = target.nodeName.toLowerCase(); + var inline = (nodeName == 'div' || nodeName == 'span'); + if (!target.id) { + this.uuid += 1; + target.id = 'dp' + this.uuid; + } + var inst = this._newInst($(target), inline); + inst.settings = $.extend({}, settings || {}, inlineSettings || {}); + if (nodeName == 'input') { + this._connectDatepicker(target, inst); + } else if (inline) { + this._inlineDatepicker(target, inst); + } + }, + + /* Create a new instance object. */ + _newInst: function(target, inline) { + var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars + return {id: id, input: target, // associated target + selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection + drawMonth: 0, drawYear: 0, // month being drawn + inline: inline, // is datepicker inline or not + dpDiv: (!inline ? this.dpDiv : // presentation div + $('
      '))}; + }, + + /* Attach the date picker to an input field. */ + _connectDatepicker: function(target, inst) { + var input = $(target); + inst.append = $([]); + inst.trigger = $([]); + if (input.hasClass(this.markerClassName)) + return; + this._attachments(input, inst); + input.addClass(this.markerClassName).keydown(this._doKeyDown). + keypress(this._doKeyPress).keyup(this._doKeyUp). + bind("setData.datepicker", function(event, key, value) { + inst.settings[key] = value; + }).bind("getData.datepicker", function(event, key) { + return this._get(inst, key); + }); + this._autoSize(inst); + $.data(target, PROP_NAME, inst); + }, + + /* Make attachments based on settings. */ + _attachments: function(input, inst) { + var appendText = this._get(inst, 'appendText'); + var isRTL = this._get(inst, 'isRTL'); + if (inst.append) + inst.append.remove(); + if (appendText) { + inst.append = $('' + appendText + ''); + input[isRTL ? 'before' : 'after'](inst.append); + } + input.unbind('focus', this._showDatepicker); + if (inst.trigger) + inst.trigger.remove(); + var showOn = this._get(inst, 'showOn'); + if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field + input.focus(this._showDatepicker); + if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked + var buttonText = this._get(inst, 'buttonText'); + var buttonImage = this._get(inst, 'buttonImage'); + inst.trigger = $(this._get(inst, 'buttonImageOnly') ? + $('').addClass(this._triggerClass). + attr({ src: buttonImage, alt: buttonText, title: buttonText }) : + $('').addClass(this._triggerClass). + html(buttonImage == '' ? buttonText : $('').attr( + { src:buttonImage, alt:buttonText, title:buttonText }))); + input[isRTL ? 'before' : 'after'](inst.trigger); + inst.trigger.click(function() { + if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0]) + $.datepicker._hideDatepicker(); + else + $.datepicker._showDatepicker(input[0]); + return false; + }); + } + }, + + /* Apply the maximum length for the date format. */ + _autoSize: function(inst) { + if (this._get(inst, 'autoSize') && !inst.inline) { + var date = new Date(2009, 12 - 1, 20); // Ensure double digits + var dateFormat = this._get(inst, 'dateFormat'); + if (dateFormat.match(/[DM]/)) { + var findMax = function(names) { + var max = 0; + var maxI = 0; + for (var i = 0; i < names.length; i++) { + if (names[i].length > max) { + max = names[i].length; + maxI = i; + } + } + return maxI; + }; + date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ? + 'monthNames' : 'monthNamesShort')))); + date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ? + 'dayNames' : 'dayNamesShort'))) + 20 - date.getDay()); + } + inst.input.attr('size', this._formatDate(inst, date).length); + } + }, + + /* Attach an inline date picker to a div. */ + _inlineDatepicker: function(target, inst) { + var divSpan = $(target); + if (divSpan.hasClass(this.markerClassName)) + return; + divSpan.addClass(this.markerClassName).append(inst.dpDiv). + bind("setData.datepicker", function(event, key, value){ + inst.settings[key] = value; + }).bind("getData.datepicker", function(event, key){ + return this._get(inst, key); + }); + $.data(target, PROP_NAME, inst); + this._setDate(inst, this._getDefaultDate(inst), true); + this._updateDatepicker(inst); + this._updateAlternate(inst); + inst.dpDiv.show(); + }, + + /* Pop-up the date picker in a "dialog" box. + @param input element - ignored + @param date string or Date - the initial date to display + @param onSelect function - the function to call when a date is selected + @param settings object - update the dialog date picker instance's settings (anonymous object) + @param pos int[2] - coordinates for the dialog's position within the screen or + event - with x/y coordinates or + leave empty for default (screen centre) + @return the manager object */ + _dialogDatepicker: function(input, date, onSelect, settings, pos) { + var inst = this._dialogInst; // internal instance + if (!inst) { + this.uuid += 1; + var id = 'dp' + this.uuid; + this._dialogInput = $(''); + this._dialogInput.keydown(this._doKeyDown); + $('body').append(this._dialogInput); + inst = this._dialogInst = this._newInst(this._dialogInput, false); + inst.settings = {}; + $.data(this._dialogInput[0], PROP_NAME, inst); + } + extendRemove(inst.settings, settings || {}); + date = (date && date.constructor == Date ? this._formatDate(inst, date) : date); + this._dialogInput.val(date); + + this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null); + if (!this._pos) { + var browserWidth = document.documentElement.clientWidth; + var browserHeight = document.documentElement.clientHeight; + var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; + var scrollY = document.documentElement.scrollTop || document.body.scrollTop; + this._pos = // should use actual width/height below + [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY]; + } + + // move input on screen for focus, but hidden behind dialog + this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px'); + inst.settings.onSelect = onSelect; + this._inDialog = true; + this.dpDiv.addClass(this._dialogClass); + this._showDatepicker(this._dialogInput[0]); + if ($.blockUI) + $.blockUI(this.dpDiv); + $.data(this._dialogInput[0], PROP_NAME, inst); + return this; + }, + + /* Detach a datepicker from its control. + @param target element - the target input field or division or span */ + _destroyDatepicker: function(target) { + var $target = $(target); + var inst = $.data(target, PROP_NAME); + if (!$target.hasClass(this.markerClassName)) { + return; + } + var nodeName = target.nodeName.toLowerCase(); + $.removeData(target, PROP_NAME); + if (nodeName == 'input') { + inst.append.remove(); + inst.trigger.remove(); + $target.removeClass(this.markerClassName). + unbind('focus', this._showDatepicker). + unbind('keydown', this._doKeyDown). + unbind('keypress', this._doKeyPress). + unbind('keyup', this._doKeyUp); + } else if (nodeName == 'div' || nodeName == 'span') + $target.removeClass(this.markerClassName).empty(); + }, + + /* Enable the date picker to a jQuery selection. + @param target element - the target input field or division or span */ + _enableDatepicker: function(target) { + var $target = $(target); + var inst = $.data(target, PROP_NAME); + if (!$target.hasClass(this.markerClassName)) { + return; + } + var nodeName = target.nodeName.toLowerCase(); + if (nodeName == 'input') { + target.disabled = false; + inst.trigger.filter('button'). + each(function() { this.disabled = false; }).end(). + filter('img').css({opacity: '1.0', cursor: ''}); + } + else if (nodeName == 'div' || nodeName == 'span') { + var inline = $target.children('.' + this._inlineClass); + inline.children().removeClass('ui-state-disabled'); + } + this._disabledInputs = $.map(this._disabledInputs, + function(value) { return (value == target ? null : value); }); // delete entry + }, + + /* Disable the date picker to a jQuery selection. + @param target element - the target input field or division or span */ + _disableDatepicker: function(target) { + var $target = $(target); + var inst = $.data(target, PROP_NAME); + if (!$target.hasClass(this.markerClassName)) { + return; + } + var nodeName = target.nodeName.toLowerCase(); + if (nodeName == 'input') { + target.disabled = true; + inst.trigger.filter('button'). + each(function() { this.disabled = true; }).end(). + filter('img').css({opacity: '0.5', cursor: 'default'}); + } + else if (nodeName == 'div' || nodeName == 'span') { + var inline = $target.children('.' + this._inlineClass); + inline.children().addClass('ui-state-disabled'); + } + this._disabledInputs = $.map(this._disabledInputs, + function(value) { return (value == target ? null : value); }); // delete entry + this._disabledInputs[this._disabledInputs.length] = target; + }, + + /* Is the first field in a jQuery collection disabled as a datepicker? + @param target element - the target input field or division or span + @return boolean - true if disabled, false if enabled */ + _isDisabledDatepicker: function(target) { + if (!target) { + return false; + } + for (var i = 0; i < this._disabledInputs.length; i++) { + if (this._disabledInputs[i] == target) + return true; + } + return false; + }, + + /* Retrieve the instance data for the target control. + @param target element - the target input field or division or span + @return object - the associated instance data + @throws error if a jQuery problem getting data */ + _getInst: function(target) { + try { + return $.data(target, PROP_NAME); + } + catch (err) { + throw 'Missing instance data for this datepicker'; + } + }, + + /* Update or retrieve the settings for a date picker attached to an input field or division. + @param target element - the target input field or division or span + @param name object - the new settings to update or + string - the name of the setting to change or retrieve, + when retrieving also 'all' for all instance settings or + 'defaults' for all global defaults + @param value any - the new value for the setting + (omit if above is an object or to retrieve a value) */ + _optionDatepicker: function(target, name, value) { + var inst = this._getInst(target); + if (arguments.length == 2 && typeof name == 'string') { + return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) : + (inst ? (name == 'all' ? $.extend({}, inst.settings) : + this._get(inst, name)) : null)); + } + var settings = name || {}; + if (typeof name == 'string') { + settings = {}; + settings[name] = value; + } + if (inst) { + if (this._curInst == inst) { + this._hideDatepicker(); + } + var date = this._getDateDatepicker(target, true); + extendRemove(inst.settings, settings); + this._attachments($(target), inst); + this._autoSize(inst); + this._setDateDatepicker(target, date); + this._updateDatepicker(inst); + } + }, + + // change method deprecated + _changeDatepicker: function(target, name, value) { + this._optionDatepicker(target, name, value); + }, + + /* Redraw the date picker attached to an input field or division. + @param target element - the target input field or division or span */ + _refreshDatepicker: function(target) { + var inst = this._getInst(target); + if (inst) { + this._updateDatepicker(inst); + } + }, + + /* Set the dates for a jQuery selection. + @param target element - the target input field or division or span + @param date Date - the new date */ + _setDateDatepicker: function(target, date) { + var inst = this._getInst(target); + if (inst) { + this._setDate(inst, date); + this._updateDatepicker(inst); + this._updateAlternate(inst); + } + }, + + /* Get the date(s) for the first entry in a jQuery selection. + @param target element - the target input field or division or span + @param noDefault boolean - true if no default date is to be used + @return Date - the current date */ + _getDateDatepicker: function(target, noDefault) { + var inst = this._getInst(target); + if (inst && !inst.inline) + this._setDateFromField(inst, noDefault); + return (inst ? this._getDate(inst) : null); + }, + + /* Handle keystrokes. */ + _doKeyDown: function(event) { + var inst = $.datepicker._getInst(event.target); + var handled = true; + var isRTL = inst.dpDiv.is('.ui-datepicker-rtl'); + inst._keyEvent = true; + if ($.datepicker._datepickerShowing) + switch (event.keyCode) { + case 9: $.datepicker._hideDatepicker(); + handled = false; + break; // hide on tab out + case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + + $.datepicker._currentClass + ')', inst.dpDiv); + if (sel[0]) + $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]); + else + $.datepicker._hideDatepicker(); + return false; // don't submit the form + break; // select the value on enter + case 27: $.datepicker._hideDatepicker(); + break; // hide on escape + case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ? + -$.datepicker._get(inst, 'stepBigMonths') : + -$.datepicker._get(inst, 'stepMonths')), 'M'); + break; // previous month/year on page up/+ ctrl + case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ? + +$.datepicker._get(inst, 'stepBigMonths') : + +$.datepicker._get(inst, 'stepMonths')), 'M'); + break; // next month/year on page down/+ ctrl + case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target); + handled = event.ctrlKey || event.metaKey; + break; // clear on ctrl or command +end + case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target); + handled = event.ctrlKey || event.metaKey; + break; // current on ctrl or command +home + case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D'); + handled = event.ctrlKey || event.metaKey; + // -1 day on ctrl or command +left + if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ? + -$.datepicker._get(inst, 'stepBigMonths') : + -$.datepicker._get(inst, 'stepMonths')), 'M'); + // next month/year on alt +left on Mac + break; + case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D'); + handled = event.ctrlKey || event.metaKey; + break; // -1 week on ctrl or command +up + case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D'); + handled = event.ctrlKey || event.metaKey; + // +1 day on ctrl or command +right + if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ? + +$.datepicker._get(inst, 'stepBigMonths') : + +$.datepicker._get(inst, 'stepMonths')), 'M'); + // next month/year on alt +right + break; + case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D'); + handled = event.ctrlKey || event.metaKey; + break; // +1 week on ctrl or command +down + default: handled = false; + } + else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home + $.datepicker._showDatepicker(this); + else { + handled = false; + } + if (handled) { + event.preventDefault(); + event.stopPropagation(); + } + }, + + /* Filter entered characters - based on date format. */ + _doKeyPress: function(event) { + var inst = $.datepicker._getInst(event.target); + if ($.datepicker._get(inst, 'constrainInput')) { + var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat')); + var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode); + return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1); + } + }, + + /* Synchronise manual entry and field/alternate field. */ + _doKeyUp: function(event) { + var inst = $.datepicker._getInst(event.target); + if (inst.input.val() != inst.lastVal) { + try { + var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'), + (inst.input ? inst.input.val() : null), + $.datepicker._getFormatConfig(inst)); + if (date) { // only if valid + $.datepicker._setDateFromField(inst); + $.datepicker._updateAlternate(inst); + $.datepicker._updateDatepicker(inst); + } + } + catch (event) { + $.datepicker.log(event); + } + } + return true; + }, + + /* Pop-up the date picker for a given input field. + @param input element - the input field attached to the date picker or + event - if triggered by focus */ + _showDatepicker: function(input) { + input = input.target || input; + if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger + input = $('input', input.parentNode)[0]; + if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here + return; + var inst = $.datepicker._getInst(input); + if ($.datepicker._curInst && $.datepicker._curInst != inst) { + $.datepicker._curInst.dpDiv.stop(true, true); + } + var beforeShow = $.datepicker._get(inst, 'beforeShow'); + extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {})); + inst.lastVal = null; + $.datepicker._lastInput = input; + $.datepicker._setDateFromField(inst); + if ($.datepicker._inDialog) // hide cursor + input.value = ''; + if (!$.datepicker._pos) { // position below input + $.datepicker._pos = $.datepicker._findPos(input); + $.datepicker._pos[1] += input.offsetHeight; // add the height + } + var isFixed = false; + $(input).parents().each(function() { + isFixed |= $(this).css('position') == 'fixed'; + return !isFixed; + }); + if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled + $.datepicker._pos[0] -= document.documentElement.scrollLeft; + $.datepicker._pos[1] -= document.documentElement.scrollTop; + } + var offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]}; + $.datepicker._pos = null; + //to avoid flashes on Firefox + inst.dpDiv.empty(); + // determine sizing offscreen + inst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'}); + $.datepicker._updateDatepicker(inst); + // fix width for dynamic number of date pickers + // and adjust position before showing + offset = $.datepicker._checkOffset(inst, offset, isFixed); + inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ? + 'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none', + left: offset.left + 'px', top: offset.top + 'px'}); + if (!inst.inline) { + var showAnim = $.datepicker._get(inst, 'showAnim'); + var duration = $.datepicker._get(inst, 'duration'); + var postProcess = function() { + $.datepicker._datepickerShowing = true; + var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only + if( !! cover.length ){ + var borders = $.datepicker._getBorders(inst.dpDiv); + cover.css({left: -borders[0], top: -borders[1], + width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()}); + } + }; + inst.dpDiv.zIndex($(input).zIndex()+1); + if ($.effects && $.effects[showAnim]) + inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess); + else + inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess); + if (!showAnim || !duration) + postProcess(); + if (inst.input.is(':visible') && !inst.input.is(':disabled')) + inst.input.focus(); + $.datepicker._curInst = inst; + } + }, + + /* Generate the date picker content. */ + _updateDatepicker: function(inst) { + var self = this; + var borders = $.datepicker._getBorders(inst.dpDiv); + inst.dpDiv.empty().append(this._generateHTML(inst)); + var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only + if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6 + cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()}) + } + inst.dpDiv.find('button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a') + .bind('mouseout', function(){ + $(this).removeClass('ui-state-hover'); + if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover'); + if(this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover'); + }) + .bind('mouseover', function(){ + if (!self._isDisabledDatepicker( inst.inline ? inst.dpDiv.parent()[0] : inst.input[0])) { + $(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover'); + $(this).addClass('ui-state-hover'); + if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover'); + if(this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover'); + } + }) + .end() + .find('.' + this._dayOverClass + ' a') + .trigger('mouseover') + .end(); + var numMonths = this._getNumberOfMonths(inst); + var cols = numMonths[1]; + var width = 17; + if (cols > 1) + inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em'); + else + inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width(''); + inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') + + 'Class']('ui-datepicker-multi'); + inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') + + 'Class']('ui-datepicker-rtl'); + if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input && + // #6694 - don't focus the input if it's already focused + // this breaks the change event in IE + inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement) + inst.input.focus(); + // deffered render of the years select (to avoid flashes on Firefox) + if( inst.yearshtml ){ + var origyearshtml = inst.yearshtml; + setTimeout(function(){ + //assure that inst.yearshtml didn't change. + if( origyearshtml === inst.yearshtml ){ + inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml); + } + origyearshtml = inst.yearshtml = null; + }, 0); + } + }, + + /* Retrieve the size of left and top borders for an element. + @param elem (jQuery object) the element of interest + @return (number[2]) the left and top borders */ + _getBorders: function(elem) { + var convert = function(value) { + return {thin: 1, medium: 2, thick: 3}[value] || value; + }; + return [parseFloat(convert(elem.css('border-left-width'))), + parseFloat(convert(elem.css('border-top-width')))]; + }, + + /* Check positioning to remain on screen. */ + _checkOffset: function(inst, offset, isFixed) { + var dpWidth = inst.dpDiv.outerWidth(); + var dpHeight = inst.dpDiv.outerHeight(); + var inputWidth = inst.input ? inst.input.outerWidth() : 0; + var inputHeight = inst.input ? inst.input.outerHeight() : 0; + var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft(); + var viewHeight = document.documentElement.clientHeight + $(document).scrollTop(); + + offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0); + offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0; + offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0; + + // now check if datepicker is showing outside window viewport - move to a better place if so. + offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? + Math.abs(offset.left + dpWidth - viewWidth) : 0); + offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? + Math.abs(dpHeight + inputHeight) : 0); + + return offset; + }, + + /* Find an object's position on the screen. */ + _findPos: function(obj) { + var inst = this._getInst(obj); + var isRTL = this._get(inst, 'isRTL'); + while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) { + obj = obj[isRTL ? 'previousSibling' : 'nextSibling']; + } + var position = $(obj).offset(); + return [position.left, position.top]; + }, + + /* Hide the date picker from view. + @param input element - the input field attached to the date picker */ + _hideDatepicker: function(input) { + var inst = this._curInst; + if (!inst || (input && inst != $.data(input, PROP_NAME))) + return; + if (this._datepickerShowing) { + var showAnim = this._get(inst, 'showAnim'); + var duration = this._get(inst, 'duration'); + var postProcess = function() { + $.datepicker._tidyDialog(inst); + this._curInst = null; + }; + if ($.effects && $.effects[showAnim]) + inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess); + else + inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' : + (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess); + if (!showAnim) + postProcess(); + var onClose = this._get(inst, 'onClose'); + if (onClose) + onClose.apply((inst.input ? inst.input[0] : null), + [(inst.input ? inst.input.val() : ''), inst]); // trigger custom callback + this._datepickerShowing = false; + this._lastInput = null; + if (this._inDialog) { + this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' }); + if ($.blockUI) { + $.unblockUI(); + $('body').append(this.dpDiv); + } + } + this._inDialog = false; + } + }, + + /* Tidy up after a dialog display. */ + _tidyDialog: function(inst) { + inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar'); + }, + + /* Close date picker if clicked elsewhere. */ + _checkExternalClick: function(event) { + if (!$.datepicker._curInst) + return; + var $target = $(event.target); + if ($target[0].id != $.datepicker._mainDivId && + $target.parents('#' + $.datepicker._mainDivId).length == 0 && + !$target.hasClass($.datepicker.markerClassName) && + !$target.hasClass($.datepicker._triggerClass) && + $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI)) + $.datepicker._hideDatepicker(); + }, + + /* Adjust one of the date sub-fields. */ + _adjustDate: function(id, offset, period) { + var target = $(id); + var inst = this._getInst(target[0]); + if (this._isDisabledDatepicker(target[0])) { + return; + } + this._adjustInstDate(inst, offset + + (period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning + period); + this._updateDatepicker(inst); + }, + + /* Action for current link. */ + _gotoToday: function(id) { + var target = $(id); + var inst = this._getInst(target[0]); + if (this._get(inst, 'gotoCurrent') && inst.currentDay) { + inst.selectedDay = inst.currentDay; + inst.drawMonth = inst.selectedMonth = inst.currentMonth; + inst.drawYear = inst.selectedYear = inst.currentYear; + } + else { + var date = new Date(); + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + } + this._notifyChange(inst); + this._adjustDate(target); + }, + + /* Action for selecting a new month/year. */ + _selectMonthYear: function(id, select, period) { + var target = $(id); + var inst = this._getInst(target[0]); + inst._selectingMonthYear = false; + inst['selected' + (period == 'M' ? 'Month' : 'Year')] = + inst['draw' + (period == 'M' ? 'Month' : 'Year')] = + parseInt(select.options[select.selectedIndex].value,10); + this._notifyChange(inst); + this._adjustDate(target); + }, + + /* Restore input focus after not changing month/year. */ + _clickMonthYear: function(id) { + var target = $(id); + var inst = this._getInst(target[0]); + if (inst.input && inst._selectingMonthYear) { + setTimeout(function() { + inst.input.focus(); + }, 0); + } + inst._selectingMonthYear = !inst._selectingMonthYear; + }, + + /* Action for selecting a day. */ + _selectDay: function(id, month, year, td) { + var target = $(id); + if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) { + return; + } + var inst = this._getInst(target[0]); + inst.selectedDay = inst.currentDay = $('a', td).html(); + inst.selectedMonth = inst.currentMonth = month; + inst.selectedYear = inst.currentYear = year; + this._selectDate(id, this._formatDate(inst, + inst.currentDay, inst.currentMonth, inst.currentYear)); + }, + + /* Erase the input field and hide the date picker. */ + _clearDate: function(id) { + var target = $(id); + var inst = this._getInst(target[0]); + this._selectDate(target, ''); + }, + + /* Update the input field with the selected date. */ + _selectDate: function(id, dateStr) { + var target = $(id); + var inst = this._getInst(target[0]); + dateStr = (dateStr != null ? dateStr : this._formatDate(inst)); + if (inst.input) + inst.input.val(dateStr); + this._updateAlternate(inst); + var onSelect = this._get(inst, 'onSelect'); + if (onSelect) + onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback + else if (inst.input) + inst.input.trigger('change'); // fire the change event + if (inst.inline) + this._updateDatepicker(inst); + else { + this._hideDatepicker(); + this._lastInput = inst.input[0]; + if (typeof(inst.input[0]) != 'object') + inst.input.focus(); // restore focus + this._lastInput = null; + } + }, + + /* Update any alternate field to synchronise with the main field. */ + _updateAlternate: function(inst) { + var altField = this._get(inst, 'altField'); + if (altField) { // update alternate field too + var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat'); + var date = this._getDate(inst); + var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst)); + $(altField).each(function() { $(this).val(dateStr); }); + } + }, + + /* Set as beforeShowDay function to prevent selection of weekends. + @param date Date - the date to customise + @return [boolean, string] - is this date selectable?, what is its CSS class? */ + noWeekends: function(date) { + var day = date.getDay(); + return [(day > 0 && day < 6), '']; + }, + + /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition. + @param date Date - the date to get the week for + @return number - the number of the week within the year that contains this date */ + iso8601Week: function(date) { + var checkDate = new Date(date.getTime()); + // Find Thursday of this week starting on Monday + checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); + var time = checkDate.getTime(); + checkDate.setMonth(0); // Compare with Jan 1 + checkDate.setDate(1); + return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1; + }, + + /* Parse a string value into a date object. + See formatDate below for the possible formats. + + @param format string - the expected format of the date + @param value string - the date in the above format + @param settings Object - attributes include: + shortYearCutoff number - the cutoff year for determining the century (optional) + dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) + dayNames string[7] - names of the days from Sunday (optional) + monthNamesShort string[12] - abbreviated names of the months (optional) + monthNames string[12] - names of the months (optional) + @return Date - the extracted date value or null if value is blank */ + parseDate: function (format, value, settings) { + if (format == null || value == null) + throw 'Invalid arguments'; + value = (typeof value == 'object' ? value.toString() : value + ''); + if (value == '') + return null; + var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff; + shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff : + new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); + var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort; + var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames; + var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort; + var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames; + var year = -1; + var month = -1; + var day = -1; + var doy = -1; + var literal = false; + // Check whether a format character is doubled + var lookAhead = function(match) { + var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); + if (matches) + iFormat++; + return matches; + }; + // Extract a number from the string value + var getNumber = function(match) { + var isDoubled = lookAhead(match); + var size = (match == '@' ? 14 : (match == '!' ? 20 : + (match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2)))); + var digits = new RegExp('^\\d{1,' + size + '}'); + var num = value.substring(iValue).match(digits); + if (!num) + throw 'Missing number at position ' + iValue; + iValue += num[0].length; + return parseInt(num[0], 10); + }; + // Extract a name from the string value and convert to an index + var getName = function(match, shortNames, longNames) { + var names = (lookAhead(match) ? longNames : shortNames); + for (var i = 0; i < names.length; i++) { + if (value.substr(iValue, names[i].length).toLowerCase() == names[i].toLowerCase()) { + iValue += names[i].length; + return i + 1; + } + } + throw 'Unknown name at position ' + iValue; + }; + // Confirm that a literal character matches the string value + var checkLiteral = function() { + if (value.charAt(iValue) != format.charAt(iFormat)) + throw 'Unexpected literal at position ' + iValue; + iValue++; + }; + var iValue = 0; + for (var iFormat = 0; iFormat < format.length; iFormat++) { + if (literal) + if (format.charAt(iFormat) == "'" && !lookAhead("'")) + literal = false; + else + checkLiteral(); + else + switch (format.charAt(iFormat)) { + case 'd': + day = getNumber('d'); + break; + case 'D': + getName('D', dayNamesShort, dayNames); + break; + case 'o': + doy = getNumber('o'); + break; + case 'm': + month = getNumber('m'); + break; + case 'M': + month = getName('M', monthNamesShort, monthNames); + break; + case 'y': + year = getNumber('y'); + break; + case '@': + var date = new Date(getNumber('@')); + year = date.getFullYear(); + month = date.getMonth() + 1; + day = date.getDate(); + break; + case '!': + var date = new Date((getNumber('!') - this._ticksTo1970) / 10000); + year = date.getFullYear(); + month = date.getMonth() + 1; + day = date.getDate(); + break; + case "'": + if (lookAhead("'")) + checkLiteral(); + else + literal = true; + break; + default: + checkLiteral(); + } + } + if (year == -1) + year = new Date().getFullYear(); + else if (year < 100) + year += new Date().getFullYear() - new Date().getFullYear() % 100 + + (year <= shortYearCutoff ? 0 : -100); + if (doy > -1) { + month = 1; + day = doy; + do { + var dim = this._getDaysInMonth(year, month - 1); + if (day <= dim) + break; + month++; + day -= dim; + } while (true); + } + var date = this._daylightSavingAdjust(new Date(year, month - 1, day)); + if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day) + throw 'Invalid date'; // E.g. 31/02/* + return date; + }, + + /* Standard date formats. */ + ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601) + COOKIE: 'D, dd M yy', + ISO_8601: 'yy-mm-dd', + RFC_822: 'D, d M y', + RFC_850: 'DD, dd-M-y', + RFC_1036: 'D, d M y', + RFC_1123: 'D, d M yy', + RFC_2822: 'D, d M yy', + RSS: 'D, d M y', // RFC 822 + TICKS: '!', + TIMESTAMP: '@', + W3C: 'yy-mm-dd', // ISO 8601 + + _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + + Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000), + + /* Format a date object into a string value. + The format can be combinations of the following: + d - day of month (no leading zero) + dd - day of month (two digit) + o - day of year (no leading zeros) + oo - day of year (three digit) + D - day name short + DD - day name long + m - month of year (no leading zero) + mm - month of year (two digit) + M - month name short + MM - month name long + y - year (two digit) + yy - year (four digit) + @ - Unix timestamp (ms since 01/01/1970) + ! - Windows ticks (100ns since 01/01/0001) + '...' - literal text + '' - single quote + + @param format string - the desired format of the date + @param date Date - the date value to format + @param settings Object - attributes include: + dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) + dayNames string[7] - names of the days from Sunday (optional) + monthNamesShort string[12] - abbreviated names of the months (optional) + monthNames string[12] - names of the months (optional) + @return string - the date in the above format */ + formatDate: function (format, date, settings) { + if (!date) + return ''; + var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort; + var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames; + var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort; + var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames; + // Check whether a format character is doubled + var lookAhead = function(match) { + var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); + if (matches) + iFormat++; + return matches; + }; + // Format a number, with leading zero if necessary + var formatNumber = function(match, value, len) { + var num = '' + value; + if (lookAhead(match)) + while (num.length < len) + num = '0' + num; + return num; + }; + // Format a name, short or long as requested + var formatName = function(match, value, shortNames, longNames) { + return (lookAhead(match) ? longNames[value] : shortNames[value]); + }; + var output = ''; + var literal = false; + if (date) + for (var iFormat = 0; iFormat < format.length; iFormat++) { + if (literal) + if (format.charAt(iFormat) == "'" && !lookAhead("'")) + literal = false; + else + output += format.charAt(iFormat); + else + switch (format.charAt(iFormat)) { + case 'd': + output += formatNumber('d', date.getDate(), 2); + break; + case 'D': + output += formatName('D', date.getDay(), dayNamesShort, dayNames); + break; + case 'o': + output += formatNumber('o', + (date.getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000, 3); + break; + case 'm': + output += formatNumber('m', date.getMonth() + 1, 2); + break; + case 'M': + output += formatName('M', date.getMonth(), monthNamesShort, monthNames); + break; + case 'y': + output += (lookAhead('y') ? date.getFullYear() : + (date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100); + break; + case '@': + output += date.getTime(); + break; + case '!': + output += date.getTime() * 10000 + this._ticksTo1970; + break; + case "'": + if (lookAhead("'")) + output += "'"; + else + literal = true; + break; + default: + output += format.charAt(iFormat); + } + } + return output; + }, + + /* Extract all possible characters from the date format. */ + _possibleChars: function (format) { + var chars = ''; + var literal = false; + // Check whether a format character is doubled + var lookAhead = function(match) { + var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); + if (matches) + iFormat++; + return matches; + }; + for (var iFormat = 0; iFormat < format.length; iFormat++) + if (literal) + if (format.charAt(iFormat) == "'" && !lookAhead("'")) + literal = false; + else + chars += format.charAt(iFormat); + else + switch (format.charAt(iFormat)) { + case 'd': case 'm': case 'y': case '@': + chars += '0123456789'; + break; + case 'D': case 'M': + return null; // Accept anything + case "'": + if (lookAhead("'")) + chars += "'"; + else + literal = true; + break; + default: + chars += format.charAt(iFormat); + } + return chars; + }, + + /* Get a setting value, defaulting if necessary. */ + _get: function(inst, name) { + return inst.settings[name] !== undefined ? + inst.settings[name] : this._defaults[name]; + }, + + /* Parse existing date and initialise date picker. */ + _setDateFromField: function(inst, noDefault) { + if (inst.input.val() == inst.lastVal) { + return; + } + var dateFormat = this._get(inst, 'dateFormat'); + var dates = inst.lastVal = inst.input ? inst.input.val() : null; + var date, defaultDate; + date = defaultDate = this._getDefaultDate(inst); + var settings = this._getFormatConfig(inst); + try { + date = this.parseDate(dateFormat, dates, settings) || defaultDate; + } catch (event) { + this.log(event); + dates = (noDefault ? '' : dates); + } + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + inst.currentDay = (dates ? date.getDate() : 0); + inst.currentMonth = (dates ? date.getMonth() : 0); + inst.currentYear = (dates ? date.getFullYear() : 0); + this._adjustInstDate(inst); + }, + + /* Retrieve the default date shown on opening. */ + _getDefaultDate: function(inst) { + return this._restrictMinMax(inst, + this._determineDate(inst, this._get(inst, 'defaultDate'), new Date())); + }, + + /* A date may be specified as an exact value or a relative one. */ + _determineDate: function(inst, date, defaultDate) { + var offsetNumeric = function(offset) { + var date = new Date(); + date.setDate(date.getDate() + offset); + return date; + }; + var offsetString = function(offset) { + try { + return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'), + offset, $.datepicker._getFormatConfig(inst)); + } + catch (e) { + // Ignore + } + var date = (offset.toLowerCase().match(/^c/) ? + $.datepicker._getDate(inst) : null) || new Date(); + var year = date.getFullYear(); + var month = date.getMonth(); + var day = date.getDate(); + var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g; + var matches = pattern.exec(offset); + while (matches) { + switch (matches[2] || 'd') { + case 'd' : case 'D' : + day += parseInt(matches[1],10); break; + case 'w' : case 'W' : + day += parseInt(matches[1],10) * 7; break; + case 'm' : case 'M' : + month += parseInt(matches[1],10); + day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); + break; + case 'y': case 'Y' : + year += parseInt(matches[1],10); + day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); + break; + } + matches = pattern.exec(offset); + } + return new Date(year, month, day); + }; + var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) : + (typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime())))); + newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate); + if (newDate) { + newDate.setHours(0); + newDate.setMinutes(0); + newDate.setSeconds(0); + newDate.setMilliseconds(0); + } + return this._daylightSavingAdjust(newDate); + }, + + /* Handle switch to/from daylight saving. + Hours may be non-zero on daylight saving cut-over: + > 12 when midnight changeover, but then cannot generate + midnight datetime, so jump to 1AM, otherwise reset. + @param date (Date) the date to check + @return (Date) the corrected date */ + _daylightSavingAdjust: function(date) { + if (!date) return null; + date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0); + return date; + }, + + /* Set the date(s) directly. */ + _setDate: function(inst, date, noChange) { + var clear = !date; + var origMonth = inst.selectedMonth; + var origYear = inst.selectedYear; + var newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date())); + inst.selectedDay = inst.currentDay = newDate.getDate(); + inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth(); + inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear(); + if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange) + this._notifyChange(inst); + this._adjustInstDate(inst); + if (inst.input) { + inst.input.val(clear ? '' : this._formatDate(inst)); + } + }, + + /* Retrieve the date(s) directly. */ + _getDate: function(inst) { + var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null : + this._daylightSavingAdjust(new Date( + inst.currentYear, inst.currentMonth, inst.currentDay))); + return startDate; + }, + + /* Generate the HTML for the current state of the date picker. */ + _generateHTML: function(inst) { + var today = new Date(); + today = this._daylightSavingAdjust( + new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time + var isRTL = this._get(inst, 'isRTL'); + var showButtonPanel = this._get(inst, 'showButtonPanel'); + var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext'); + var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat'); + var numMonths = this._getNumberOfMonths(inst); + var showCurrentAtPos = this._get(inst, 'showCurrentAtPos'); + var stepMonths = this._get(inst, 'stepMonths'); + var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1); + var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) : + new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); + var minDate = this._getMinMaxDate(inst, 'min'); + var maxDate = this._getMinMaxDate(inst, 'max'); + var drawMonth = inst.drawMonth - showCurrentAtPos; + var drawYear = inst.drawYear; + if (drawMonth < 0) { + drawMonth += 12; + drawYear--; + } + if (maxDate) { + var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(), + maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate())); + maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw); + while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) { + drawMonth--; + if (drawMonth < 0) { + drawMonth = 11; + drawYear--; + } + } + } + inst.drawMonth = drawMonth; + inst.drawYear = drawYear; + var prevText = this._get(inst, 'prevText'); + prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, + this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), + this._getFormatConfig(inst))); + var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ? + '' + prevText + '' : + (hideIfNoPrevNext ? '' : '' + prevText + '')); + var nextText = this._get(inst, 'nextText'); + nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, + this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), + this._getFormatConfig(inst))); + var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ? + '' + nextText + '' : + (hideIfNoPrevNext ? '' : '' + nextText + '')); + var currentText = this._get(inst, 'currentText'); + var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today); + currentText = (!navigationAsDateFormat ? currentText : + this.formatDate(currentText, gotoDate, this._getFormatConfig(inst))); + var controls = (!inst.inline ? '' : ''); + var buttonPanel = (showButtonPanel) ? '
      ' + (isRTL ? controls : '') + + (this._isInRange(inst, gotoDate) ? '' : '') + (isRTL ? '' : controls) + '
      ' : ''; + var firstDay = parseInt(this._get(inst, 'firstDay'),10); + firstDay = (isNaN(firstDay) ? 0 : firstDay); + var showWeek = this._get(inst, 'showWeek'); + var dayNames = this._get(inst, 'dayNames'); + var dayNamesShort = this._get(inst, 'dayNamesShort'); + var dayNamesMin = this._get(inst, 'dayNamesMin'); + var monthNames = this._get(inst, 'monthNames'); + var monthNamesShort = this._get(inst, 'monthNamesShort'); + var beforeShowDay = this._get(inst, 'beforeShowDay'); + var showOtherMonths = this._get(inst, 'showOtherMonths'); + var selectOtherMonths = this._get(inst, 'selectOtherMonths'); + var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week; + var defaultDate = this._getDefaultDate(inst); + var html = ''; + for (var row = 0; row < numMonths[0]; row++) { + var group = ''; + for (var col = 0; col < numMonths[1]; col++) { + var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay)); + var cornerClass = ' ui-corner-all'; + var calender = ''; + if (isMultiMonth) { + calender += '
      '; + } + calender += '
      ' + + (/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') + + (/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') + + this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, + row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers + '
      ' + + ''; + var thead = (showWeek ? '' : ''); + for (var dow = 0; dow < 7; dow++) { // days of the week + var day = (dow + firstDay) % 7; + thead += '= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' + + '' + dayNamesMin[day] + ''; + } + calender += thead + ''; + var daysInMonth = this._getDaysInMonth(drawYear, drawMonth); + if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth) + inst.selectedDay = Math.min(inst.selectedDay, daysInMonth); + var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7; + var numRows = (isMultiMonth ? 6 : Math.ceil((leadDays + daysInMonth) / 7)); // calculate the number of rows to generate + var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays)); + for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows + calender += ''; + var tbody = (!showWeek ? '' : ''); + for (var dow = 0; dow < 7; dow++) { // create date picker days + var daySettings = (beforeShowDay ? + beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']); + var otherMonth = (printDate.getMonth() != drawMonth); + var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] || + (minDate && printDate < minDate) || (maxDate && printDate > maxDate); + tbody += ''; // display selectable date + printDate.setDate(printDate.getDate() + 1); + printDate = this._daylightSavingAdjust(printDate); + } + calender += tbody + ''; + } + drawMonth++; + if (drawMonth > 11) { + drawMonth = 0; + drawYear++; + } + calender += '
      ' + this._get(inst, 'weekHeader') + '
      ' + + this._get(inst, 'calculateWeek')(printDate) + '' + // actions + (otherMonth && !showOtherMonths ? ' ' : // display for other months + (unselectable ? '' + printDate.getDate() + '' : '' + printDate.getDate() + '')) + '
      ' + (isMultiMonth ? '
      ' + + ((numMonths[0] > 0 && col == numMonths[1]-1) ? '
      ' : '') : ''); + group += calender; + } + html += group; + } + html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ? + '' : ''); + inst._keyEvent = false; + return html; + }, + + /* Generate the month and year header. */ + _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, + secondary, monthNames, monthNamesShort) { + var changeMonth = this._get(inst, 'changeMonth'); + var changeYear = this._get(inst, 'changeYear'); + var showMonthAfterYear = this._get(inst, 'showMonthAfterYear'); + var html = '
      '; + var monthHtml = ''; + // month selection + if (secondary || !changeMonth) + monthHtml += '' + monthNames[drawMonth] + ''; + else { + var inMinYear = (minDate && minDate.getFullYear() == drawYear); + var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear); + monthHtml += ''; + } + if (!showMonthAfterYear) + html += monthHtml + (secondary || !(changeMonth && changeYear) ? ' ' : ''); + // year selection + inst.yearshtml = ''; + if (secondary || !changeYear) + html += '' + drawYear + ''; + else { + // determine range of years to display + var years = this._get(inst, 'yearRange').split(':'); + var thisYear = new Date().getFullYear(); + var determineYear = function(value) { + var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) : + (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) : + parseInt(value, 10))); + return (isNaN(year) ? thisYear : year); + }; + var year = determineYear(years[0]); + var endYear = Math.max(year, determineYear(years[1] || '')); + year = (minDate ? Math.max(year, minDate.getFullYear()) : year); + endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); + inst.yearshtml += ''; + //when showing there is no need for later update + if( ! $.browser.mozilla ){ + html += inst.yearshtml; + inst.yearshtml = null; + } else { + // will be replaced later with inst.yearshtml + html += ''; + } + } + html += this._get(inst, 'yearSuffix'); + if (showMonthAfterYear) + html += (secondary || !(changeMonth && changeYear) ? ' ' : '') + monthHtml; + html += '
      '; // Close datepicker_header + return html; + }, + + /* Adjust one of the date sub-fields. */ + _adjustInstDate: function(inst, offset, period) { + var year = inst.drawYear + (period == 'Y' ? offset : 0); + var month = inst.drawMonth + (period == 'M' ? offset : 0); + var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + + (period == 'D' ? offset : 0); + var date = this._restrictMinMax(inst, + this._daylightSavingAdjust(new Date(year, month, day))); + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + if (period == 'M' || period == 'Y') + this._notifyChange(inst); + }, + + /* Ensure a date is within any min/max bounds. */ + _restrictMinMax: function(inst, date) { + var minDate = this._getMinMaxDate(inst, 'min'); + var maxDate = this._getMinMaxDate(inst, 'max'); + var newDate = (minDate && date < minDate ? minDate : date); + newDate = (maxDate && newDate > maxDate ? maxDate : newDate); + return newDate; + }, + + /* Notify change of month/year. */ + _notifyChange: function(inst) { + var onChange = this._get(inst, 'onChangeMonthYear'); + if (onChange) + onChange.apply((inst.input ? inst.input[0] : null), + [inst.selectedYear, inst.selectedMonth + 1, inst]); + }, + + /* Determine the number of months to show. */ + _getNumberOfMonths: function(inst) { + var numMonths = this._get(inst, 'numberOfMonths'); + return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths)); + }, + + /* Determine the current maximum date - ensure no time components are set. */ + _getMinMaxDate: function(inst, minMax) { + return this._determineDate(inst, this._get(inst, minMax + 'Date'), null); + }, + + /* Find the number of days in a given month. */ + _getDaysInMonth: function(year, month) { + return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate(); + }, + + /* Find the day of the week of the first of a month. */ + _getFirstDayOfMonth: function(year, month) { + return new Date(year, month, 1).getDay(); + }, + + /* Determines if we should allow a "next/prev" month display change. */ + _canAdjustMonth: function(inst, offset, curYear, curMonth) { + var numMonths = this._getNumberOfMonths(inst); + var date = this._daylightSavingAdjust(new Date(curYear, + curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1)); + if (offset < 0) + date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); + return this._isInRange(inst, date); + }, + + /* Is the given date in the accepted range? */ + _isInRange: function(inst, date) { + var minDate = this._getMinMaxDate(inst, 'min'); + var maxDate = this._getMinMaxDate(inst, 'max'); + return ((!minDate || date.getTime() >= minDate.getTime()) && + (!maxDate || date.getTime() <= maxDate.getTime())); + }, + + /* Provide the configuration settings for formatting/parsing. */ + _getFormatConfig: function(inst) { + var shortYearCutoff = this._get(inst, 'shortYearCutoff'); + shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff : + new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); + return {shortYearCutoff: shortYearCutoff, + dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'), + monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')}; + }, + + /* Format the given date for display. */ + _formatDate: function(inst, day, month, year) { + if (!day) { + inst.currentDay = inst.selectedDay; + inst.currentMonth = inst.selectedMonth; + inst.currentYear = inst.selectedYear; + } + var date = (day ? (typeof day == 'object' ? day : + this._daylightSavingAdjust(new Date(year, month, day))) : + this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); + return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst)); + } +}); + +/* jQuery extend now ignores nulls! */ +function extendRemove(target, props) { + $.extend(target, props); + for (var name in props) + if (props[name] == null || props[name] == undefined) + target[name] = props[name]; + return target; +}; + +/* Determine whether an object is an array. */ +function isArray(a) { + return (a && (($.browser.safari && typeof a == 'object' && a.length) || + (a.constructor && a.constructor.toString().match(/\Array\(\)/)))); +}; + +/* Invoke the datepicker functionality. + @param options string - a command, optionally followed by additional parameters or + Object - settings for attaching new datepicker functionality + @return jQuery object */ +$.fn.datepicker = function(options){ + + /* Verify an empty collection wasn't passed - Fixes #6976 */ + if ( !this.length ) { + return this; + } + + /* Initialise the date picker. */ + if (!$.datepicker.initialized) { + $(document).mousedown($.datepicker._checkExternalClick). + find('body').append($.datepicker.dpDiv); + $.datepicker.initialized = true; + } + + var otherArgs = Array.prototype.slice.call(arguments, 1); + if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget')) + return $.datepicker['_' + options + 'Datepicker']. + apply($.datepicker, [this[0]].concat(otherArgs)); + if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string') + return $.datepicker['_' + options + 'Datepicker']. + apply($.datepicker, [this[0]].concat(otherArgs)); + return this.each(function() { + typeof options == 'string' ? + $.datepicker['_' + options + 'Datepicker']. + apply($.datepicker, [this].concat(otherArgs)) : + $.datepicker._attachDatepicker(this, options); + }); +}; + +$.datepicker = new Datepicker(); // singleton instance +$.datepicker.initialized = false; +$.datepicker.uuid = new Date().getTime(); +$.datepicker.version = "1.8.10"; + +// Workaround for #4055 +// Add another global to avoid noConflict issues with inline event handlers +window['DP_jQuery_' + dpuuid] = $; + +})(jQuery); +/* + * jQuery UI Progressbar 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget( "ui.progressbar", { + options: { + value: 0, + max: 100 + }, + + min: 0, + + _create: function() { + this.element + .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) + .attr({ + role: "progressbar", + "aria-valuemin": this.min, + "aria-valuemax": this.options.max, + "aria-valuenow": this._value() + }); + + this.valueDiv = $( "
      " ) + .appendTo( this.element ); + + this.oldValue = this._value(); + this._refreshValue(); + }, + + destroy: function() { + this.element + .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) + .removeAttr( "role" ) + .removeAttr( "aria-valuemin" ) + .removeAttr( "aria-valuemax" ) + .removeAttr( "aria-valuenow" ); + + this.valueDiv.remove(); + + $.Widget.prototype.destroy.apply( this, arguments ); + }, + + value: function( newValue ) { + if ( newValue === undefined ) { + return this._value(); + } + + this._setOption( "value", newValue ); + return this; + }, + + _setOption: function( key, value ) { + if ( key === "value" ) { + this.options.value = value; + this._refreshValue(); + if ( this._value() === this.options.max ) { + this._trigger( "complete" ); + } + } + + $.Widget.prototype._setOption.apply( this, arguments ); + }, + + _value: function() { + var val = this.options.value; + // normalize invalid value + if ( typeof val !== "number" ) { + val = 0; + } + return Math.min( this.options.max, Math.max( this.min, val ) ); + }, + + _percentage: function() { + return 100 * this._value() / this.options.max; + }, + + _refreshValue: function() { + var value = this.value(); + var percentage = this._percentage(); + + if ( this.oldValue !== value ) { + this.oldValue = value; + this._trigger( "change" ); + } + + this.valueDiv + .toggleClass( "ui-corner-right", value === this.options.max ) + .width( percentage.toFixed(0) + "%" ); + this.element.attr( "aria-valuenow", value ); + } +}); + +$.extend( $.ui.progressbar, { + version: "1.8.10" +}); + +})( jQuery ); +/* + * jQuery UI Effects 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/ + */ +;jQuery.effects || (function($, undefined) { + +$.effects = {}; + + + +/******************************************************************************/ +/****************************** COLOR ANIMATIONS ******************************/ +/******************************************************************************/ + +// override the animation for color styles +$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', + 'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'], +function(i, attr) { + $.fx.step[attr] = function(fx) { + if (!fx.colorInit) { + fx.start = getColor(fx.elem, attr); + fx.end = getRGB(fx.end); + fx.colorInit = true; + } + + fx.elem.style[attr] = 'rgb(' + + Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + ',' + + Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + ',' + + Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ')'; + }; +}); + +// Color Conversion functions from highlightFade +// By Blair Mitchelmore +// http://jquery.offput.ca/highlightFade/ + +// Parse strings looking for color tuples [255,255,255] +function getRGB(color) { + var result; + + // Check if we're already dealing with an array of colors + if ( color && color.constructor == Array && color.length == 3 ) + return color; + + // Look for rgb(num,num,num) + if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) + return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)]; + + // Look for rgb(num%,num%,num%) + if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) + return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55]; + + // Look for #a0b1c2 + if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) + return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)]; + + // Look for #fff + if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) + return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)]; + + // Look for rgba(0, 0, 0, 0) == transparent in Safari 3 + if (result = /rgba\(0, 0, 0, 0\)/.exec(color)) + return colors['transparent']; + + // Otherwise, we're most likely dealing with a named color + return colors[$.trim(color).toLowerCase()]; +} + +function getColor(elem, attr) { + var color; + + do { + color = $.curCSS(elem, attr); + + // Keep going until we find an element that has color, or we hit the body + if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") ) + break; + + attr = "backgroundColor"; + } while ( elem = elem.parentNode ); + + return getRGB(color); +}; + +// Some named colors to work with +// From Interface by Stefan Petre +// http://interface.eyecon.ro/ + +var colors = { + aqua:[0,255,255], + azure:[240,255,255], + beige:[245,245,220], + black:[0,0,0], + blue:[0,0,255], + brown:[165,42,42], + cyan:[0,255,255], + darkblue:[0,0,139], + darkcyan:[0,139,139], + darkgrey:[169,169,169], + darkgreen:[0,100,0], + darkkhaki:[189,183,107], + darkmagenta:[139,0,139], + darkolivegreen:[85,107,47], + darkorange:[255,140,0], + darkorchid:[153,50,204], + darkred:[139,0,0], + darksalmon:[233,150,122], + darkviolet:[148,0,211], + fuchsia:[255,0,255], + gold:[255,215,0], + green:[0,128,0], + indigo:[75,0,130], + khaki:[240,230,140], + lightblue:[173,216,230], + lightcyan:[224,255,255], + lightgreen:[144,238,144], + lightgrey:[211,211,211], + lightpink:[255,182,193], + lightyellow:[255,255,224], + lime:[0,255,0], + magenta:[255,0,255], + maroon:[128,0,0], + navy:[0,0,128], + olive:[128,128,0], + orange:[255,165,0], + pink:[255,192,203], + purple:[128,0,128], + violet:[128,0,128], + red:[255,0,0], + silver:[192,192,192], + white:[255,255,255], + yellow:[255,255,0], + transparent: [255,255,255] +}; + + + +/******************************************************************************/ +/****************************** CLASS ANIMATIONS ******************************/ +/******************************************************************************/ + +var classAnimationActions = ['add', 'remove', 'toggle'], + shorthandStyles = { + border: 1, + borderBottom: 1, + borderColor: 1, + borderLeft: 1, + borderRight: 1, + borderTop: 1, + borderWidth: 1, + margin: 1, + padding: 1 + }; + +function getElementStyles() { + var style = document.defaultView + ? document.defaultView.getComputedStyle(this, null) + : this.currentStyle, + newStyle = {}, + key, + camelCase; + + // webkit enumerates style porperties + if (style && style.length && style[0] && style[style[0]]) { + var len = style.length; + while (len--) { + key = style[len]; + if (typeof style[key] == 'string') { + camelCase = key.replace(/\-(\w)/g, function(all, letter){ + return letter.toUpperCase(); + }); + newStyle[camelCase] = style[key]; + } + } + } else { + for (key in style) { + if (typeof style[key] === 'string') { + newStyle[key] = style[key]; + } + } + } + + return newStyle; +} + +function filterStyles(styles) { + var name, value; + for (name in styles) { + value = styles[name]; + if ( + // ignore null and undefined values + value == null || + // ignore functions (when does this occur?) + $.isFunction(value) || + // shorthand styles that need to be expanded + name in shorthandStyles || + // ignore scrollbars (break in IE) + (/scrollbar/).test(name) || + + // only colors or values that can be converted to numbers + (!(/color/i).test(name) && isNaN(parseFloat(value))) + ) { + delete styles[name]; + } + } + + return styles; +} + +function styleDifference(oldStyle, newStyle) { + var diff = { _: 0 }, // http://dev.jquery.com/ticket/5459 + name; + + for (name in newStyle) { + if (oldStyle[name] != newStyle[name]) { + diff[name] = newStyle[name]; + } + } + + return diff; +} + +$.effects.animateClass = function(value, duration, easing, callback) { + if ($.isFunction(easing)) { + callback = easing; + easing = null; + } + + return this.queue('fx', function() { + var that = $(this), + originalStyleAttr = that.attr('style') || ' ', + originalStyle = filterStyles(getElementStyles.call(this)), + newStyle, + className = that.attr('className'); + + $.each(classAnimationActions, function(i, action) { + if (value[action]) { + that[action + 'Class'](value[action]); + } + }); + newStyle = filterStyles(getElementStyles.call(this)); + that.attr('className', className); + + that.animate(styleDifference(originalStyle, newStyle), duration, easing, function() { + $.each(classAnimationActions, function(i, action) { + if (value[action]) { that[action + 'Class'](value[action]); } + }); + // work around bug in IE by clearing the cssText before setting it + if (typeof that.attr('style') == 'object') { + that.attr('style').cssText = ''; + that.attr('style').cssText = originalStyleAttr; + } else { + that.attr('style', originalStyleAttr); + } + if (callback) { callback.apply(this, arguments); } + }); + + // $.animate adds a function to the end of the queue + // but we want it at the front + var queue = $.queue(this), + anim = queue.splice(queue.length - 1, 1)[0]; + queue.splice(1, 0, anim); + $.dequeue(this); + }); +}; + +$.fn.extend({ + _addClass: $.fn.addClass, + addClass: function(classNames, speed, easing, callback) { + return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames); + }, + + _removeClass: $.fn.removeClass, + removeClass: function(classNames,speed,easing,callback) { + return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames); + }, + + _toggleClass: $.fn.toggleClass, + toggleClass: function(classNames, force, speed, easing, callback) { + if ( typeof force == "boolean" || force === undefined ) { + if ( !speed ) { + // without speed parameter; + return this._toggleClass(classNames, force); + } else { + return $.effects.animateClass.apply(this, [(force?{add:classNames}:{remove:classNames}),speed,easing,callback]); + } + } else { + // without switch parameter; + return $.effects.animateClass.apply(this, [{ toggle: classNames },force,speed,easing]); + } + }, + + switchClass: function(remove,add,speed,easing,callback) { + return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]); + } +}); + + + +/******************************************************************************/ +/*********************************** EFFECTS **********************************/ +/******************************************************************************/ + +$.extend($.effects, { + version: "1.8.10", + + // Saves a set of properties in a data storage + save: function(element, set) { + for(var i=0; i < set.length; i++) { + if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]); + } + }, + + // Restores a set of previously saved properties from a data storage + restore: function(element, set) { + for(var i=0; i < set.length; i++) { + if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i])); + } + }, + + setMode: function(el, mode) { + if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle + return mode; + }, + + getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value + // this should be a little more flexible in the future to handle a string & hash + var y, x; + switch (origin[0]) { + case 'top': y = 0; break; + case 'middle': y = 0.5; break; + case 'bottom': y = 1; break; + default: y = origin[0] / original.height; + }; + switch (origin[1]) { + case 'left': x = 0; break; + case 'center': x = 0.5; break; + case 'right': x = 1; break; + default: x = origin[1] / original.width; + }; + return {x: x, y: y}; + }, + + // Wraps the element around a wrapper that copies position properties + createWrapper: function(element) { + + // if the element is already wrapped, return it + if (element.parent().is('.ui-effects-wrapper')) { + return element.parent(); + } + + // wrap the element + var props = { + width: element.outerWidth(true), + height: element.outerHeight(true), + 'float': element.css('float') + }, + wrapper = $('
      ') + .addClass('ui-effects-wrapper') + .css({ + fontSize: '100%', + background: 'transparent', + border: 'none', + margin: 0, + padding: 0 + }); + + element.wrap(wrapper); + wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element + + // transfer positioning properties to the wrapper + if (element.css('position') == 'static') { + wrapper.css({ position: 'relative' }); + element.css({ position: 'relative' }); + } else { + $.extend(props, { + position: element.css('position'), + zIndex: element.css('z-index') + }); + $.each(['top', 'left', 'bottom', 'right'], function(i, pos) { + props[pos] = element.css(pos); + if (isNaN(parseInt(props[pos], 10))) { + props[pos] = 'auto'; + } + }); + element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' }); + } + + return wrapper.css(props).show(); + }, + + removeWrapper: function(element) { + if (element.parent().is('.ui-effects-wrapper')) + return element.parent().replaceWith(element); + return element; + }, + + setTransition: function(element, list, factor, value) { + value = value || {}; + $.each(list, function(i, x){ + unit = element.cssUnit(x); + if (unit[0] > 0) value[x] = unit[0] * factor + unit[1]; + }); + return value; + } +}); + + +function _normalizeArguments(effect, options, speed, callback) { + // shift params for method overloading + if (typeof effect == 'object') { + callback = options; + speed = null; + options = effect; + effect = options.effect; + } + if ($.isFunction(options)) { + callback = options; + speed = null; + options = {}; + } + if (typeof options == 'number' || $.fx.speeds[options]) { + callback = speed; + speed = options; + options = {}; + } + if ($.isFunction(speed)) { + callback = speed; + speed = null; + } + + options = options || {}; + + speed = speed || options.duration; + speed = $.fx.off ? 0 : typeof speed == 'number' + ? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : $.fx.speeds._default; + + callback = callback || options.complete; + + return [effect, options, speed, callback]; +} + +function standardSpeed( speed ) { + // valid standard speeds + if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) { + return true; + } + + // invalid strings - treat as "normal" speed + if ( typeof speed === "string" && !$.effects[ speed ] ) { + return true; + } + + return false; +} + +$.fn.extend({ + effect: function(effect, options, speed, callback) { + var args = _normalizeArguments.apply(this, arguments), + // TODO: make effects take actual parameters instead of a hash + args2 = { + options: args[1], + duration: args[2], + callback: args[3] + }, + mode = args2.options.mode, + effectMethod = $.effects[effect]; + + if ( $.fx.off || !effectMethod ) { + // delegate to the original method (e.g., .show()) if possible + if ( mode ) { + return this[ mode ]( args2.duration, args2.callback ); + } else { + return this.each(function() { + if ( args2.callback ) { + args2.callback.call( this ); + } + }); + } + } + + return effectMethod.call(this, args2); + }, + + _show: $.fn.show, + show: function(speed) { + if ( standardSpeed( speed ) ) { + return this._show.apply(this, arguments); + } else { + var args = _normalizeArguments.apply(this, arguments); + args[1].mode = 'show'; + return this.effect.apply(this, args); + } + }, + + _hide: $.fn.hide, + hide: function(speed) { + if ( standardSpeed( speed ) ) { + return this._hide.apply(this, arguments); + } else { + var args = _normalizeArguments.apply(this, arguments); + args[1].mode = 'hide'; + return this.effect.apply(this, args); + } + }, + + // jQuery core overloads toggle and creates _toggle + __toggle: $.fn.toggle, + toggle: function(speed) { + if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) { + return this.__toggle.apply(this, arguments); + } else { + var args = _normalizeArguments.apply(this, arguments); + args[1].mode = 'toggle'; + return this.effect.apply(this, args); + } + }, + + // helper functions + cssUnit: function(key) { + var style = this.css(key), val = []; + $.each( ['em','px','%','pt'], function(i, unit){ + if(style.indexOf(unit) > 0) + val = [parseFloat(style), unit]; + }); + return val; + } +}); + + + +/******************************************************************************/ +/*********************************** EASING ***********************************/ +/******************************************************************************/ + +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +// t: current time, b: begInnIng value, c: change In value, d: duration +$.easing.jswing = $.easing.swing; + +$.extend($.easing, +{ + def: 'easeOutQuad', + swing: function (x, t, b, c, d) { + //alert($.easing.default); + return $.easing[$.easing.def](x, t, b, c, d); + }, + easeInQuad: function (x, t, b, c, d) { + return c*(t/=d)*t + b; + }, + easeOutQuad: function (x, t, b, c, d) { + return -c *(t/=d)*(t-2) + b; + }, + easeInOutQuad: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t + b; + return -c/2 * ((--t)*(t-2) - 1) + b; + }, + easeInCubic: function (x, t, b, c, d) { + return c*(t/=d)*t*t + b; + }, + easeOutCubic: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t + 1) + b; + }, + easeInOutCubic: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t + b; + return c/2*((t-=2)*t*t + 2) + b; + }, + easeInQuart: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t + b; + }, + easeOutQuart: function (x, t, b, c, d) { + return -c * ((t=t/d-1)*t*t*t - 1) + b; + }, + easeInOutQuart: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t + b; + return -c/2 * ((t-=2)*t*t*t - 2) + b; + }, + easeInQuint: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t*t + b; + }, + easeOutQuint: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t*t*t + 1) + b; + }, + easeInOutQuint: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; + return c/2*((t-=2)*t*t*t*t + 2) + b; + }, + easeInSine: function (x, t, b, c, d) { + return -c * Math.cos(t/d * (Math.PI/2)) + c + b; + }, + easeOutSine: function (x, t, b, c, d) { + return c * Math.sin(t/d * (Math.PI/2)) + b; + }, + easeInOutSine: function (x, t, b, c, d) { + return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; + }, + easeInExpo: function (x, t, b, c, d) { + return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; + }, + easeOutExpo: function (x, t, b, c, d) { + return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; + }, + easeInOutExpo: function (x, t, b, c, d) { + if (t==0) return b; + if (t==d) return b+c; + if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; + return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; + }, + easeInCirc: function (x, t, b, c, d) { + return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; + }, + easeOutCirc: function (x, t, b, c, d) { + return c * Math.sqrt(1 - (t=t/d-1)*t) + b; + }, + easeInOutCirc: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; + return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; + }, + easeInElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + }, + easeOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; + }, + easeInOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; + }, + easeInBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*(t/=d)*t*((s+1)*t - s) + b; + }, + easeOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; + }, + easeInOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; + return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; + }, + easeInBounce: function (x, t, b, c, d) { + return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b; + }, + easeOutBounce: function (x, t, b, c, d) { + if ((t/=d) < (1/2.75)) { + return c*(7.5625*t*t) + b; + } else if (t < (2/2.75)) { + return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; + } else { + return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; + } + }, + easeInOutBounce: function (x, t, b, c, d) { + if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; + return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; + } +}); + +/* + * + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright 2001 Robert Penner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +})(jQuery); +/* + * jQuery UI Effects Blind 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Blind + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.blind = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var direction = o.options.direction || 'vertical'; // Default direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var ref = (direction == 'vertical') ? 'height' : 'width'; + var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width(); + if(mode == 'show') wrapper.css(ref, 0); // Shift + + // Animation + var animation = {}; + animation[ref] = mode == 'show' ? distance : 0; + + // Animate + wrapper.animate(animation, o.duration, o.options.easing, function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(el[0], arguments); // Callback + el.dequeue(); + }); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Bounce 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Bounce + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.bounce = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var direction = o.options.direction || 'up'; // Default direction + var distance = o.options.distance || 20; // Default distance + var times = o.options.times || 5; // Default # of times + var speed = o.duration || 250; // Default speed per bounce + if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 3 : el.outerWidth({margin:true}) / 3); + if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift + if (mode == 'hide') distance = distance / (times * 2); + if (mode != 'hide') times--; + + // Animate + if (mode == 'show') { // Show Bounce + var animation = {opacity: 1}; + animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance; + el.animate(animation, speed / 2, o.options.easing); + distance = distance / 2; + times--; + }; + for (var i = 0; i < times; i++) { // Bounces + var animation1 = {}, animation2 = {}; + animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance; + el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing); + distance = (mode == 'hide') ? distance * 2 : distance / 2; + }; + if (mode == 'hide') { // Last Bounce + var animation = {opacity: 0}; + animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + el.animate(animation, speed / 2, o.options.easing, function(){ + el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + } else { + var animation1 = {}, animation2 = {}; + animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance; + el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){ + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + }; + el.queue('fx', function() { el.dequeue(); }); + el.dequeue(); + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Clip 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Clip + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.clip = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right','height','width']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var direction = o.options.direction || 'vertical'; // Default direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var animate = el[0].tagName == 'IMG' ? wrapper : el; + var ref = { + size: (direction == 'vertical') ? 'height' : 'width', + position: (direction == 'vertical') ? 'top' : 'left' + }; + var distance = (direction == 'vertical') ? animate.height() : animate.width(); + if(mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } // Shift + + // Animation + var animation = {}; + animation[ref.size] = mode == 'show' ? distance : 0; + animation[ref.position] = mode == 'show' ? 0 : distance / 2; + + // Animate + animate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(el[0], arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Drop 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Drop + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.drop = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right','opacity']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var direction = o.options.direction || 'left'; // Default Direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 2 : el.outerWidth({margin:true}) / 2); + if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift + + // Animation + var animation = {opacity: mode == 'show' ? 1 : 0}; + animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; + + // Animate + el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Explode 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Explode + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.explode = function(o) { + + return this.queue(function() { + + var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; + var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; + + o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode; + var el = $(this).show().css('visibility', 'hidden'); + var offset = el.offset(); + + //Substract the margins - not fixing the problem yet. + offset.top -= parseInt(el.css("marginTop"),10) || 0; + offset.left -= parseInt(el.css("marginLeft"),10) || 0; + + var width = el.outerWidth(true); + var height = el.outerHeight(true); + + for(var i=0;i') + .css({ + position: 'absolute', + visibility: 'visible', + left: -j*(width/cells), + top: -i*(height/rows) + }) + .parent() + .addClass('ui-effects-explode') + .css({ + position: 'absolute', + overflow: 'hidden', + width: width/cells, + height: height/rows, + left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0), + top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0), + opacity: o.options.mode == 'show' ? 0 : 1 + }).animate({ + left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)), + top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)), + opacity: o.options.mode == 'show' ? 1 : 0 + }, o.duration || 500); + } + } + + // Set a timeout, to call the callback approx. when the other animations have finished + setTimeout(function() { + + o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide(); + if(o.callback) o.callback.apply(el[0]); // Callback + el.dequeue(); + + $('div.ui-effects-explode').remove(); + + }, o.duration || 500); + + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Fade 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fade + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.fade = function(o) { + return this.queue(function() { + var elem = $(this), + mode = $.effects.setMode(elem, o.options.mode || 'hide'); + + elem.animate({ opacity: mode }, { + queue: false, + duration: o.duration, + easing: o.options.easing, + complete: function() { + (o.callback && o.callback.apply(this, arguments)); + elem.dequeue(); + } + }); + }); +}; + +})(jQuery); +/* + * jQuery UI Effects Fold 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.fold = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var size = o.options.size || 15; // Default fold size + var horizFirst = !(!o.options.horizFirst); // Ensure a boolean value + var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2; + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var widthFirst = ((mode == 'show') != horizFirst); + var ref = widthFirst ? ['width', 'height'] : ['height', 'width']; + var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()]; + var percent = /([0-9]+)%/.exec(size); + if(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1]; + if(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); // Shift + + // Animation + var animation1 = {}, animation2 = {}; + animation1[ref[0]] = mode == 'show' ? distance[0] : size; + animation2[ref[1]] = mode == 'show' ? distance[1] : 0; + + // Animate + wrapper.animate(animation1, duration, o.options.easing) + .animate(animation2, duration, o.options.easing, function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(el[0], arguments); // Callback + el.dequeue(); + }); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Highlight 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.highlight = function(o) { + return this.queue(function() { + var elem = $(this), + props = ['backgroundImage', 'backgroundColor', 'opacity'], + mode = $.effects.setMode(elem, o.options.mode || 'show'), + animation = { + backgroundColor: elem.css('backgroundColor') + }; + + if (mode == 'hide') { + animation.opacity = 0; + } + + $.effects.save(elem, props); + elem + .show() + .css({ + backgroundImage: 'none', + backgroundColor: o.options.color || '#ffff99' + }) + .animate(animation, { + queue: false, + duration: o.duration, + easing: o.options.easing, + complete: function() { + (mode == 'hide' && elem.hide()); + $.effects.restore(elem, props); + (mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter')); + (o.callback && o.callback.apply(this, arguments)); + elem.dequeue(); + } + }); + }); +}; + +})(jQuery); +/* + * jQuery UI Effects Pulsate 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.pulsate = function(o) { + return this.queue(function() { + var elem = $(this), + mode = $.effects.setMode(elem, o.options.mode || 'show'); + times = ((o.options.times || 5) * 2) - 1; + duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2, + isVisible = elem.is(':visible'), + animateTo = 0; + + if (!isVisible) { + elem.css('opacity', 0).show(); + animateTo = 1; + } + + if ((mode == 'hide' && isVisible) || (mode == 'show' && !isVisible)) { + times--; + } + + for (var i = 0; i < times; i++) { + elem.animate({ opacity: animateTo }, duration, o.options.easing); + animateTo = (animateTo + 1) % 2; + } + + elem.animate({ opacity: animateTo }, duration, o.options.easing, function() { + if (animateTo == 0) { + elem.hide(); + } + (o.callback && o.callback.apply(this, arguments)); + }); + + elem + .queue('fx', function() { elem.dequeue(); }) + .dequeue(); + }); +}; + +})(jQuery); +/* + * jQuery UI Effects Scale 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Scale + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.puff = function(o) { + return this.queue(function() { + var elem = $(this), + mode = $.effects.setMode(elem, o.options.mode || 'hide'), + percent = parseInt(o.options.percent, 10) || 150, + factor = percent / 100, + original = { height: elem.height(), width: elem.width() }; + + $.extend(o.options, { + fade: true, + mode: mode, + percent: mode == 'hide' ? percent : 100, + from: mode == 'hide' + ? original + : { + height: original.height * factor, + width: original.width * factor + } + }); + + elem.effect('scale', o.options, o.duration, o.callback); + elem.dequeue(); + }); +}; + +$.effects.scale = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this); + + // Set options + var options = $.extend(true, {}, o.options); + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent + var direction = o.options.direction || 'both'; // Set default axis + var origin = o.options.origin; // The origin of the scaling + if (mode != 'effect') { // Set default origin and restore for show/hide + options.origin = origin || ['middle','center']; + options.restore = true; + } + var original = {height: el.height(), width: el.width()}; // Save original + el.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); // Default from state + + // Adjust + var factor = { // Set scaling factor + y: direction != 'horizontal' ? (percent / 100) : 1, + x: direction != 'vertical' ? (percent / 100) : 1 + }; + el.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state + + if (o.options.fade) { // Fade option to support puff + if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;}; + if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;}; + }; + + // Animation + options.from = el.from; options.to = el.to; options.mode = mode; + + // Animate + el.effect('size', options, o.duration, o.callback); + el.dequeue(); + }); + +}; + +$.effects.size = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right','width','height','overflow','opacity']; + var props1 = ['position','top','bottom','left','right','overflow','opacity']; // Always restore + var props2 = ['width','height','overflow']; // Copy for children + var cProps = ['fontSize']; + var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom']; + var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var restore = o.options.restore || false; // Default restore + var scale = o.options.scale || 'both'; // Default scale mode + var origin = o.options.origin; // The origin of the sizing + var original = {height: el.height(), width: el.width()}; // Save original + el.from = o.options.from || original; // Default from state + el.to = o.options.to || original; // Default to state + // Adjust + if (origin) { // Calculate baseline shifts + var baseline = $.effects.getBaseline(origin, original); + el.from.top = (original.height - el.from.height) * baseline.y; + el.from.left = (original.width - el.from.width) * baseline.x; + el.to.top = (original.height - el.to.height) * baseline.y; + el.to.left = (original.width - el.to.width) * baseline.x; + }; + var factor = { // Set scaling factor + from: {y: el.from.height / original.height, x: el.from.width / original.width}, + to: {y: el.to.height / original.height, x: el.to.width / original.width} + }; + if (scale == 'box' || scale == 'both') { // Scale the css box + if (factor.from.y != factor.to.y) { // Vertical props scaling + props = props.concat(vProps); + el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from); + el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to); + }; + if (factor.from.x != factor.to.x) { // Horizontal props scaling + props = props.concat(hProps); + el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from); + el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to); + }; + }; + if (scale == 'content' || scale == 'both') { // Scale the content + if (factor.from.y != factor.to.y) { // Vertical props scaling + props = props.concat(cProps); + el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from); + el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to); + }; + }; + $.effects.save(el, restore ? props : props1); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + el.css('overflow','hidden').css(el.from); // Shift + + // Animate + if (scale == 'content' || scale == 'both') { // Scale the children + vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size + hProps = hProps.concat(['marginLeft','marginRight']); // Add margins + props2 = props.concat(vProps).concat(hProps); // Concat + el.find("*[width]").each(function(){ + child = $(this); + if (restore) $.effects.save(child, props2); + var c_original = {height: child.height(), width: child.width()}; // Save original + child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x}; + child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x}; + if (factor.from.y != factor.to.y) { // Vertical props scaling + child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from); + child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to); + }; + if (factor.from.x != factor.to.x) { // Horizontal props scaling + child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from); + child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to); + }; + child.css(child.from); // Shift children + child.animate(child.to, o.duration, o.options.easing, function(){ + if (restore) $.effects.restore(child, props2); // Restore children + }); // Animate children + }); + }; + + // Animate + el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if (el.to.opacity === 0) { + el.css('opacity', el.from.opacity); + } + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Shake 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Shake + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.shake = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var direction = o.options.direction || 'left'; // Default direction + var distance = o.options.distance || 20; // Default distance + var times = o.options.times || 3; // Default # of times + var speed = o.duration || o.options.duration || 140; // Default speed per shake + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + + // Animation + var animation = {}, animation1 = {}, animation2 = {}; + animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + animation1[ref] = (motion == 'pos' ? '+=' : '-=') + distance * 2; + animation2[ref] = (motion == 'pos' ? '-=' : '+=') + distance * 2; + + // Animate + el.animate(animation, speed, o.options.easing); + for (var i = 1; i < times; i++) { // Shakes + el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing); + }; + el.animate(animation1, speed, o.options.easing). + animate(animation, speed / 2, o.options.easing, function(){ // Last shake + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + el.queue('fx', function() { el.dequeue(); }); + el.dequeue(); + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Slide 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Slide + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.slide = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode + var direction = o.options.direction || 'left'; // Default Direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) : el.outerWidth({margin:true})); + if (mode == 'show') el.css(ref, motion == 'pos' ? (isNaN(distance) ? "-" + distance : -distance) : distance); // Shift + + // Animation + var animation = {}; + animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; + + // Animate + el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); +/* + * jQuery UI Effects Transfer 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Transfer + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.transfer = function(o) { + return this.queue(function() { + var elem = $(this), + target = $(o.options.to), + endPosition = target.offset(), + animation = { + top: endPosition.top, + left: endPosition.left, + height: target.innerHeight(), + width: target.innerWidth() + }, + startPosition = elem.offset(), + transfer = $('
      ') + .appendTo(document.body) + .addClass(o.options.className) + .css({ + top: startPosition.top, + left: startPosition.left, + height: elem.innerHeight(), + width: elem.innerWidth(), + position: 'absolute' + }) + .animate(animation, o.duration, o.options.easing, function() { + transfer.remove(); + (o.callback && o.callback.apply(elem[0], arguments)); + elem.dequeue(); + }); + }); +}; + +})(jQuery); diff --git a/js/ui/jquery.effects.blind.js b/js/ui/jquery.effects.blind.js new file mode 100644 index 0000000000..6c40f7241c --- /dev/null +++ b/js/ui/jquery.effects.blind.js @@ -0,0 +1,49 @@ +/* + * jQuery UI Effects Blind 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Blind + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.blind = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var direction = o.options.direction || 'vertical'; // Default direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var ref = (direction == 'vertical') ? 'height' : 'width'; + var distance = (direction == 'vertical') ? wrapper.height() : wrapper.width(); + if(mode == 'show') wrapper.css(ref, 0); // Shift + + // Animation + var animation = {}; + animation[ref] = mode == 'show' ? distance : 0; + + // Animate + wrapper.animate(animation, o.duration, o.options.easing, function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(el[0], arguments); // Callback + el.dequeue(); + }); + + }); + +}; + +})(jQuery); diff --git a/js/ui/jquery.effects.bounce.js b/js/ui/jquery.effects.bounce.js new file mode 100644 index 0000000000..6994641bc8 --- /dev/null +++ b/js/ui/jquery.effects.bounce.js @@ -0,0 +1,78 @@ +/* + * jQuery UI Effects Bounce 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Bounce + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.bounce = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var direction = o.options.direction || 'up'; // Default direction + var distance = o.options.distance || 20; // Default distance + var times = o.options.times || 5; // Default # of times + var speed = o.duration || 250; // Default speed per bounce + if (/show|hide/.test(mode)) props.push('opacity'); // Avoid touching opacity to prevent clearType and PNG issues in IE + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 3 : el.outerWidth({margin:true}) / 3); + if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift + if (mode == 'hide') distance = distance / (times * 2); + if (mode != 'hide') times--; + + // Animate + if (mode == 'show') { // Show Bounce + var animation = {opacity: 1}; + animation[ref] = (motion == 'pos' ? '+=' : '-=') + distance; + el.animate(animation, speed / 2, o.options.easing); + distance = distance / 2; + times--; + }; + for (var i = 0; i < times; i++) { // Bounces + var animation1 = {}, animation2 = {}; + animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance; + el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing); + distance = (mode == 'hide') ? distance * 2 : distance / 2; + }; + if (mode == 'hide') { // Last Bounce + var animation = {opacity: 0}; + animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + el.animate(animation, speed / 2, o.options.easing, function(){ + el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + } else { + var animation1 = {}, animation2 = {}; + animation1[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + animation2[ref] = (motion == 'pos' ? '+=' : '-=') + distance; + el.animate(animation1, speed / 2, o.options.easing).animate(animation2, speed / 2, o.options.easing, function(){ + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + }; + el.queue('fx', function() { el.dequeue(); }); + el.dequeue(); + }); + +}; + +})(jQuery); diff --git a/js/ui/jquery.effects.clip.js b/js/ui/jquery.effects.clip.js new file mode 100644 index 0000000000..41004e5428 --- /dev/null +++ b/js/ui/jquery.effects.clip.js @@ -0,0 +1,54 @@ +/* + * jQuery UI Effects Clip 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Clip + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.clip = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right','height','width']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var direction = o.options.direction || 'vertical'; // Default direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var animate = el[0].tagName == 'IMG' ? wrapper : el; + var ref = { + size: (direction == 'vertical') ? 'height' : 'width', + position: (direction == 'vertical') ? 'top' : 'left' + }; + var distance = (direction == 'vertical') ? animate.height() : animate.width(); + if(mode == 'show') { animate.css(ref.size, 0); animate.css(ref.position, distance / 2); } // Shift + + // Animation + var animation = {}; + animation[ref.size] = mode == 'show' ? distance : 0; + animation[ref.position] = mode == 'show' ? 0 : distance / 2; + + // Animate + animate.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(el[0], arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); diff --git a/js/ui/jquery.effects.core.js b/js/ui/jquery.effects.core.js new file mode 100644 index 0000000000..9f0ba0533c --- /dev/null +++ b/js/ui/jquery.effects.core.js @@ -0,0 +1,747 @@ +/* + * jQuery UI Effects 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/ + */ +;jQuery.effects || (function($, undefined) { + +$.effects = {}; + + + +/******************************************************************************/ +/****************************** COLOR ANIMATIONS ******************************/ +/******************************************************************************/ + +// override the animation for color styles +$.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', + 'borderRightColor', 'borderTopColor', 'borderColor', 'color', 'outlineColor'], +function(i, attr) { + $.fx.step[attr] = function(fx) { + if (!fx.colorInit) { + fx.start = getColor(fx.elem, attr); + fx.end = getRGB(fx.end); + fx.colorInit = true; + } + + fx.elem.style[attr] = 'rgb(' + + Math.max(Math.min(parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0], 10), 255), 0) + ',' + + Math.max(Math.min(parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1], 10), 255), 0) + ',' + + Math.max(Math.min(parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2], 10), 255), 0) + ')'; + }; +}); + +// Color Conversion functions from highlightFade +// By Blair Mitchelmore +// http://jquery.offput.ca/highlightFade/ + +// Parse strings looking for color tuples [255,255,255] +function getRGB(color) { + var result; + + // Check if we're already dealing with an array of colors + if ( color && color.constructor == Array && color.length == 3 ) + return color; + + // Look for rgb(num,num,num) + if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color)) + return [parseInt(result[1],10), parseInt(result[2],10), parseInt(result[3],10)]; + + // Look for rgb(num%,num%,num%) + if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color)) + return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55]; + + // Look for #a0b1c2 + if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color)) + return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)]; + + // Look for #fff + if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color)) + return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)]; + + // Look for rgba(0, 0, 0, 0) == transparent in Safari 3 + if (result = /rgba\(0, 0, 0, 0\)/.exec(color)) + return colors['transparent']; + + // Otherwise, we're most likely dealing with a named color + return colors[$.trim(color).toLowerCase()]; +} + +function getColor(elem, attr) { + var color; + + do { + color = $.curCSS(elem, attr); + + // Keep going until we find an element that has color, or we hit the body + if ( color != '' && color != 'transparent' || $.nodeName(elem, "body") ) + break; + + attr = "backgroundColor"; + } while ( elem = elem.parentNode ); + + return getRGB(color); +}; + +// Some named colors to work with +// From Interface by Stefan Petre +// http://interface.eyecon.ro/ + +var colors = { + aqua:[0,255,255], + azure:[240,255,255], + beige:[245,245,220], + black:[0,0,0], + blue:[0,0,255], + brown:[165,42,42], + cyan:[0,255,255], + darkblue:[0,0,139], + darkcyan:[0,139,139], + darkgrey:[169,169,169], + darkgreen:[0,100,0], + darkkhaki:[189,183,107], + darkmagenta:[139,0,139], + darkolivegreen:[85,107,47], + darkorange:[255,140,0], + darkorchid:[153,50,204], + darkred:[139,0,0], + darksalmon:[233,150,122], + darkviolet:[148,0,211], + fuchsia:[255,0,255], + gold:[255,215,0], + green:[0,128,0], + indigo:[75,0,130], + khaki:[240,230,140], + lightblue:[173,216,230], + lightcyan:[224,255,255], + lightgreen:[144,238,144], + lightgrey:[211,211,211], + lightpink:[255,182,193], + lightyellow:[255,255,224], + lime:[0,255,0], + magenta:[255,0,255], + maroon:[128,0,0], + navy:[0,0,128], + olive:[128,128,0], + orange:[255,165,0], + pink:[255,192,203], + purple:[128,0,128], + violet:[128,0,128], + red:[255,0,0], + silver:[192,192,192], + white:[255,255,255], + yellow:[255,255,0], + transparent: [255,255,255] +}; + + + +/******************************************************************************/ +/****************************** CLASS ANIMATIONS ******************************/ +/******************************************************************************/ + +var classAnimationActions = ['add', 'remove', 'toggle'], + shorthandStyles = { + border: 1, + borderBottom: 1, + borderColor: 1, + borderLeft: 1, + borderRight: 1, + borderTop: 1, + borderWidth: 1, + margin: 1, + padding: 1 + }; + +function getElementStyles() { + var style = document.defaultView + ? document.defaultView.getComputedStyle(this, null) + : this.currentStyle, + newStyle = {}, + key, + camelCase; + + // webkit enumerates style porperties + if (style && style.length && style[0] && style[style[0]]) { + var len = style.length; + while (len--) { + key = style[len]; + if (typeof style[key] == 'string') { + camelCase = key.replace(/\-(\w)/g, function(all, letter){ + return letter.toUpperCase(); + }); + newStyle[camelCase] = style[key]; + } + } + } else { + for (key in style) { + if (typeof style[key] === 'string') { + newStyle[key] = style[key]; + } + } + } + + return newStyle; +} + +function filterStyles(styles) { + var name, value; + for (name in styles) { + value = styles[name]; + if ( + // ignore null and undefined values + value == null || + // ignore functions (when does this occur?) + $.isFunction(value) || + // shorthand styles that need to be expanded + name in shorthandStyles || + // ignore scrollbars (break in IE) + (/scrollbar/).test(name) || + + // only colors or values that can be converted to numbers + (!(/color/i).test(name) && isNaN(parseFloat(value))) + ) { + delete styles[name]; + } + } + + return styles; +} + +function styleDifference(oldStyle, newStyle) { + var diff = { _: 0 }, // http://dev.jquery.com/ticket/5459 + name; + + for (name in newStyle) { + if (oldStyle[name] != newStyle[name]) { + diff[name] = newStyle[name]; + } + } + + return diff; +} + +$.effects.animateClass = function(value, duration, easing, callback) { + if ($.isFunction(easing)) { + callback = easing; + easing = null; + } + + return this.queue('fx', function() { + var that = $(this), + originalStyleAttr = that.attr('style') || ' ', + originalStyle = filterStyles(getElementStyles.call(this)), + newStyle, + className = that.attr('className'); + + $.each(classAnimationActions, function(i, action) { + if (value[action]) { + that[action + 'Class'](value[action]); + } + }); + newStyle = filterStyles(getElementStyles.call(this)); + that.attr('className', className); + + that.animate(styleDifference(originalStyle, newStyle), duration, easing, function() { + $.each(classAnimationActions, function(i, action) { + if (value[action]) { that[action + 'Class'](value[action]); } + }); + // work around bug in IE by clearing the cssText before setting it + if (typeof that.attr('style') == 'object') { + that.attr('style').cssText = ''; + that.attr('style').cssText = originalStyleAttr; + } else { + that.attr('style', originalStyleAttr); + } + if (callback) { callback.apply(this, arguments); } + }); + + // $.animate adds a function to the end of the queue + // but we want it at the front + var queue = $.queue(this), + anim = queue.splice(queue.length - 1, 1)[0]; + queue.splice(1, 0, anim); + $.dequeue(this); + }); +}; + +$.fn.extend({ + _addClass: $.fn.addClass, + addClass: function(classNames, speed, easing, callback) { + return speed ? $.effects.animateClass.apply(this, [{ add: classNames },speed,easing,callback]) : this._addClass(classNames); + }, + + _removeClass: $.fn.removeClass, + removeClass: function(classNames,speed,easing,callback) { + return speed ? $.effects.animateClass.apply(this, [{ remove: classNames },speed,easing,callback]) : this._removeClass(classNames); + }, + + _toggleClass: $.fn.toggleClass, + toggleClass: function(classNames, force, speed, easing, callback) { + if ( typeof force == "boolean" || force === undefined ) { + if ( !speed ) { + // without speed parameter; + return this._toggleClass(classNames, force); + } else { + return $.effects.animateClass.apply(this, [(force?{add:classNames}:{remove:classNames}),speed,easing,callback]); + } + } else { + // without switch parameter; + return $.effects.animateClass.apply(this, [{ toggle: classNames },force,speed,easing]); + } + }, + + switchClass: function(remove,add,speed,easing,callback) { + return $.effects.animateClass.apply(this, [{ add: add, remove: remove },speed,easing,callback]); + } +}); + + + +/******************************************************************************/ +/*********************************** EFFECTS **********************************/ +/******************************************************************************/ + +$.extend($.effects, { + version: "1.8.10", + + // Saves a set of properties in a data storage + save: function(element, set) { + for(var i=0; i < set.length; i++) { + if(set[i] !== null) element.data("ec.storage."+set[i], element[0].style[set[i]]); + } + }, + + // Restores a set of previously saved properties from a data storage + restore: function(element, set) { + for(var i=0; i < set.length; i++) { + if(set[i] !== null) element.css(set[i], element.data("ec.storage."+set[i])); + } + }, + + setMode: function(el, mode) { + if (mode == 'toggle') mode = el.is(':hidden') ? 'show' : 'hide'; // Set for toggle + return mode; + }, + + getBaseline: function(origin, original) { // Translates a [top,left] array into a baseline value + // this should be a little more flexible in the future to handle a string & hash + var y, x; + switch (origin[0]) { + case 'top': y = 0; break; + case 'middle': y = 0.5; break; + case 'bottom': y = 1; break; + default: y = origin[0] / original.height; + }; + switch (origin[1]) { + case 'left': x = 0; break; + case 'center': x = 0.5; break; + case 'right': x = 1; break; + default: x = origin[1] / original.width; + }; + return {x: x, y: y}; + }, + + // Wraps the element around a wrapper that copies position properties + createWrapper: function(element) { + + // if the element is already wrapped, return it + if (element.parent().is('.ui-effects-wrapper')) { + return element.parent(); + } + + // wrap the element + var props = { + width: element.outerWidth(true), + height: element.outerHeight(true), + 'float': element.css('float') + }, + wrapper = $('
      ') + .addClass('ui-effects-wrapper') + .css({ + fontSize: '100%', + background: 'transparent', + border: 'none', + margin: 0, + padding: 0 + }); + + element.wrap(wrapper); + wrapper = element.parent(); //Hotfix for jQuery 1.4 since some change in wrap() seems to actually loose the reference to the wrapped element + + // transfer positioning properties to the wrapper + if (element.css('position') == 'static') { + wrapper.css({ position: 'relative' }); + element.css({ position: 'relative' }); + } else { + $.extend(props, { + position: element.css('position'), + zIndex: element.css('z-index') + }); + $.each(['top', 'left', 'bottom', 'right'], function(i, pos) { + props[pos] = element.css(pos); + if (isNaN(parseInt(props[pos], 10))) { + props[pos] = 'auto'; + } + }); + element.css({position: 'relative', top: 0, left: 0, right: 'auto', bottom: 'auto' }); + } + + return wrapper.css(props).show(); + }, + + removeWrapper: function(element) { + if (element.parent().is('.ui-effects-wrapper')) + return element.parent().replaceWith(element); + return element; + }, + + setTransition: function(element, list, factor, value) { + value = value || {}; + $.each(list, function(i, x){ + unit = element.cssUnit(x); + if (unit[0] > 0) value[x] = unit[0] * factor + unit[1]; + }); + return value; + } +}); + + +function _normalizeArguments(effect, options, speed, callback) { + // shift params for method overloading + if (typeof effect == 'object') { + callback = options; + speed = null; + options = effect; + effect = options.effect; + } + if ($.isFunction(options)) { + callback = options; + speed = null; + options = {}; + } + if (typeof options == 'number' || $.fx.speeds[options]) { + callback = speed; + speed = options; + options = {}; + } + if ($.isFunction(speed)) { + callback = speed; + speed = null; + } + + options = options || {}; + + speed = speed || options.duration; + speed = $.fx.off ? 0 : typeof speed == 'number' + ? speed : speed in $.fx.speeds ? $.fx.speeds[speed] : $.fx.speeds._default; + + callback = callback || options.complete; + + return [effect, options, speed, callback]; +} + +function standardSpeed( speed ) { + // valid standard speeds + if ( !speed || typeof speed === "number" || $.fx.speeds[ speed ] ) { + return true; + } + + // invalid strings - treat as "normal" speed + if ( typeof speed === "string" && !$.effects[ speed ] ) { + return true; + } + + return false; +} + +$.fn.extend({ + effect: function(effect, options, speed, callback) { + var args = _normalizeArguments.apply(this, arguments), + // TODO: make effects take actual parameters instead of a hash + args2 = { + options: args[1], + duration: args[2], + callback: args[3] + }, + mode = args2.options.mode, + effectMethod = $.effects[effect]; + + if ( $.fx.off || !effectMethod ) { + // delegate to the original method (e.g., .show()) if possible + if ( mode ) { + return this[ mode ]( args2.duration, args2.callback ); + } else { + return this.each(function() { + if ( args2.callback ) { + args2.callback.call( this ); + } + }); + } + } + + return effectMethod.call(this, args2); + }, + + _show: $.fn.show, + show: function(speed) { + if ( standardSpeed( speed ) ) { + return this._show.apply(this, arguments); + } else { + var args = _normalizeArguments.apply(this, arguments); + args[1].mode = 'show'; + return this.effect.apply(this, args); + } + }, + + _hide: $.fn.hide, + hide: function(speed) { + if ( standardSpeed( speed ) ) { + return this._hide.apply(this, arguments); + } else { + var args = _normalizeArguments.apply(this, arguments); + args[1].mode = 'hide'; + return this.effect.apply(this, args); + } + }, + + // jQuery core overloads toggle and creates _toggle + __toggle: $.fn.toggle, + toggle: function(speed) { + if ( standardSpeed( speed ) || typeof speed === "boolean" || $.isFunction( speed ) ) { + return this.__toggle.apply(this, arguments); + } else { + var args = _normalizeArguments.apply(this, arguments); + args[1].mode = 'toggle'; + return this.effect.apply(this, args); + } + }, + + // helper functions + cssUnit: function(key) { + var style = this.css(key), val = []; + $.each( ['em','px','%','pt'], function(i, unit){ + if(style.indexOf(unit) > 0) + val = [parseFloat(style), unit]; + }); + return val; + } +}); + + + +/******************************************************************************/ +/*********************************** EASING ***********************************/ +/******************************************************************************/ + +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +// t: current time, b: begInnIng value, c: change In value, d: duration +$.easing.jswing = $.easing.swing; + +$.extend($.easing, +{ + def: 'easeOutQuad', + swing: function (x, t, b, c, d) { + //alert($.easing.default); + return $.easing[$.easing.def](x, t, b, c, d); + }, + easeInQuad: function (x, t, b, c, d) { + return c*(t/=d)*t + b; + }, + easeOutQuad: function (x, t, b, c, d) { + return -c *(t/=d)*(t-2) + b; + }, + easeInOutQuad: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t + b; + return -c/2 * ((--t)*(t-2) - 1) + b; + }, + easeInCubic: function (x, t, b, c, d) { + return c*(t/=d)*t*t + b; + }, + easeOutCubic: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t + 1) + b; + }, + easeInOutCubic: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t + b; + return c/2*((t-=2)*t*t + 2) + b; + }, + easeInQuart: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t + b; + }, + easeOutQuart: function (x, t, b, c, d) { + return -c * ((t=t/d-1)*t*t*t - 1) + b; + }, + easeInOutQuart: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t + b; + return -c/2 * ((t-=2)*t*t*t - 2) + b; + }, + easeInQuint: function (x, t, b, c, d) { + return c*(t/=d)*t*t*t*t + b; + }, + easeOutQuint: function (x, t, b, c, d) { + return c*((t=t/d-1)*t*t*t*t + 1) + b; + }, + easeInOutQuint: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return c/2*t*t*t*t*t + b; + return c/2*((t-=2)*t*t*t*t + 2) + b; + }, + easeInSine: function (x, t, b, c, d) { + return -c * Math.cos(t/d * (Math.PI/2)) + c + b; + }, + easeOutSine: function (x, t, b, c, d) { + return c * Math.sin(t/d * (Math.PI/2)) + b; + }, + easeInOutSine: function (x, t, b, c, d) { + return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; + }, + easeInExpo: function (x, t, b, c, d) { + return (t==0) ? b : c * Math.pow(2, 10 * (t/d - 1)) + b; + }, + easeOutExpo: function (x, t, b, c, d) { + return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; + }, + easeInOutExpo: function (x, t, b, c, d) { + if (t==0) return b; + if (t==d) return b+c; + if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b; + return c/2 * (-Math.pow(2, -10 * --t) + 2) + b; + }, + easeInCirc: function (x, t, b, c, d) { + return -c * (Math.sqrt(1 - (t/=d)*t) - 1) + b; + }, + easeOutCirc: function (x, t, b, c, d) { + return c * Math.sqrt(1 - (t=t/d-1)*t) + b; + }, + easeInOutCirc: function (x, t, b, c, d) { + if ((t/=d/2) < 1) return -c/2 * (Math.sqrt(1 - t*t) - 1) + b; + return c/2 * (Math.sqrt(1 - (t-=2)*t) + 1) + b; + }, + easeInElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + }, + easeOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3; + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + return a*Math.pow(2,-10*t) * Math.sin( (t*d-s)*(2*Math.PI)/p ) + c + b; + }, + easeInOutElastic: function (x, t, b, c, d) { + var s=1.70158;var p=0;var a=c; + if (t==0) return b; if ((t/=d/2)==2) return b+c; if (!p) p=d*(.3*1.5); + if (a < Math.abs(c)) { a=c; var s=p/4; } + else var s = p/(2*Math.PI) * Math.asin (c/a); + if (t < 1) return -.5*(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b; + return a*Math.pow(2,-10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )*.5 + c + b; + }, + easeInBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*(t/=d)*t*((s+1)*t - s) + b; + }, + easeOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + return c*((t=t/d-1)*t*((s+1)*t + s) + 1) + b; + }, + easeInOutBack: function (x, t, b, c, d, s) { + if (s == undefined) s = 1.70158; + if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b; + return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b; + }, + easeInBounce: function (x, t, b, c, d) { + return c - $.easing.easeOutBounce (x, d-t, 0, c, d) + b; + }, + easeOutBounce: function (x, t, b, c, d) { + if ((t/=d) < (1/2.75)) { + return c*(7.5625*t*t) + b; + } else if (t < (2/2.75)) { + return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; + } else if (t < (2.5/2.75)) { + return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; + } else { + return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; + } + }, + easeInOutBounce: function (x, t, b, c, d) { + if (t < d/2) return $.easing.easeInBounce (x, t*2, 0, c, d) * .5 + b; + return $.easing.easeOutBounce (x, t*2-d, 0, c, d) * .5 + c*.5 + b; + } +}); + +/* + * + * TERMS OF USE - EASING EQUATIONS + * + * Open source under the BSD License. + * + * Copyright 2001 Robert Penner + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +})(jQuery); diff --git a/js/ui/jquery.effects.drop.js b/js/ui/jquery.effects.drop.js new file mode 100644 index 0000000000..0ee2a9793f --- /dev/null +++ b/js/ui/jquery.effects.drop.js @@ -0,0 +1,50 @@ +/* + * jQuery UI Effects Drop 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Drop + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.drop = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right','opacity']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var direction = o.options.direction || 'left'; // Default Direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) / 2 : el.outerWidth({margin:true}) / 2); + if (mode == 'show') el.css('opacity', 0).css(ref, motion == 'pos' ? -distance : distance); // Shift + + // Animation + var animation = {opacity: mode == 'show' ? 1 : 0}; + animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; + + // Animate + el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); diff --git a/js/ui/jquery.effects.explode.js b/js/ui/jquery.effects.explode.js new file mode 100644 index 0000000000..5b3f7b450f --- /dev/null +++ b/js/ui/jquery.effects.explode.js @@ -0,0 +1,79 @@ +/* + * jQuery UI Effects Explode 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Explode + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.explode = function(o) { + + return this.queue(function() { + + var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; + var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3; + + o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode; + var el = $(this).show().css('visibility', 'hidden'); + var offset = el.offset(); + + //Substract the margins - not fixing the problem yet. + offset.top -= parseInt(el.css("marginTop"),10) || 0; + offset.left -= parseInt(el.css("marginLeft"),10) || 0; + + var width = el.outerWidth(true); + var height = el.outerHeight(true); + + for(var i=0;i') + .css({ + position: 'absolute', + visibility: 'visible', + left: -j*(width/cells), + top: -i*(height/rows) + }) + .parent() + .addClass('ui-effects-explode') + .css({ + position: 'absolute', + overflow: 'hidden', + width: width/cells, + height: height/rows, + left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0), + top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0), + opacity: o.options.mode == 'show' ? 0 : 1 + }).animate({ + left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)), + top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)), + opacity: o.options.mode == 'show' ? 1 : 0 + }, o.duration || 500); + } + } + + // Set a timeout, to call the callback approx. when the other animations have finished + setTimeout(function() { + + o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide(); + if(o.callback) o.callback.apply(el[0]); // Callback + el.dequeue(); + + $('div.ui-effects-explode').remove(); + + }, o.duration || 500); + + + }); + +}; + +})(jQuery); diff --git a/js/ui/jquery.effects.fade.js b/js/ui/jquery.effects.fade.js new file mode 100644 index 0000000000..325fb6d472 --- /dev/null +++ b/js/ui/jquery.effects.fade.js @@ -0,0 +1,32 @@ +/* + * jQuery UI Effects Fade 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fade + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.fade = function(o) { + return this.queue(function() { + var elem = $(this), + mode = $.effects.setMode(elem, o.options.mode || 'hide'); + + elem.animate({ opacity: mode }, { + queue: false, + duration: o.duration, + easing: o.options.easing, + complete: function() { + (o.callback && o.callback.apply(this, arguments)); + elem.dequeue(); + } + }); + }); +}; + +})(jQuery); diff --git a/js/ui/jquery.effects.fold.js b/js/ui/jquery.effects.fold.js new file mode 100644 index 0000000000..e5f403c87e --- /dev/null +++ b/js/ui/jquery.effects.fold.js @@ -0,0 +1,56 @@ +/* + * jQuery UI Effects Fold 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Fold + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.fold = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'hide'); // Set Mode + var size = o.options.size || 15; // Default fold size + var horizFirst = !(!o.options.horizFirst); // Ensure a boolean value + var duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2; + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + var wrapper = $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var widthFirst = ((mode == 'show') != horizFirst); + var ref = widthFirst ? ['width', 'height'] : ['height', 'width']; + var distance = widthFirst ? [wrapper.width(), wrapper.height()] : [wrapper.height(), wrapper.width()]; + var percent = /([0-9]+)%/.exec(size); + if(percent) size = parseInt(percent[1],10) / 100 * distance[mode == 'hide' ? 0 : 1]; + if(mode == 'show') wrapper.css(horizFirst ? {height: 0, width: size} : {height: size, width: 0}); // Shift + + // Animation + var animation1 = {}, animation2 = {}; + animation1[ref[0]] = mode == 'show' ? distance[0] : size; + animation2[ref[1]] = mode == 'show' ? distance[1] : 0; + + // Animate + wrapper.animate(animation1, duration, o.options.easing) + .animate(animation2, duration, o.options.easing, function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(el[0], arguments); // Callback + el.dequeue(); + }); + + }); + +}; + +})(jQuery); diff --git a/js/ui/jquery.effects.highlight.js b/js/ui/jquery.effects.highlight.js new file mode 100644 index 0000000000..9f0890ebb5 --- /dev/null +++ b/js/ui/jquery.effects.highlight.js @@ -0,0 +1,50 @@ +/* + * jQuery UI Effects Highlight 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Highlight + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.highlight = function(o) { + return this.queue(function() { + var elem = $(this), + props = ['backgroundImage', 'backgroundColor', 'opacity'], + mode = $.effects.setMode(elem, o.options.mode || 'show'), + animation = { + backgroundColor: elem.css('backgroundColor') + }; + + if (mode == 'hide') { + animation.opacity = 0; + } + + $.effects.save(elem, props); + elem + .show() + .css({ + backgroundImage: 'none', + backgroundColor: o.options.color || '#ffff99' + }) + .animate(animation, { + queue: false, + duration: o.duration, + easing: o.options.easing, + complete: function() { + (mode == 'hide' && elem.hide()); + $.effects.restore(elem, props); + (mode == 'show' && !$.support.opacity && this.style.removeAttribute('filter')); + (o.callback && o.callback.apply(this, arguments)); + elem.dequeue(); + } + }); + }); +}; + +})(jQuery); diff --git a/js/ui/jquery.effects.pulsate.js b/js/ui/jquery.effects.pulsate.js new file mode 100644 index 0000000000..922e018ec5 --- /dev/null +++ b/js/ui/jquery.effects.pulsate.js @@ -0,0 +1,51 @@ +/* + * jQuery UI Effects Pulsate 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Pulsate + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.pulsate = function(o) { + return this.queue(function() { + var elem = $(this), + mode = $.effects.setMode(elem, o.options.mode || 'show'); + times = ((o.options.times || 5) * 2) - 1; + duration = o.duration ? o.duration / 2 : $.fx.speeds._default / 2, + isVisible = elem.is(':visible'), + animateTo = 0; + + if (!isVisible) { + elem.css('opacity', 0).show(); + animateTo = 1; + } + + if ((mode == 'hide' && isVisible) || (mode == 'show' && !isVisible)) { + times--; + } + + for (var i = 0; i < times; i++) { + elem.animate({ opacity: animateTo }, duration, o.options.easing); + animateTo = (animateTo + 1) % 2; + } + + elem.animate({ opacity: animateTo }, duration, o.options.easing, function() { + if (animateTo == 0) { + elem.hide(); + } + (o.callback && o.callback.apply(this, arguments)); + }); + + elem + .queue('fx', function() { elem.dequeue(); }) + .dequeue(); + }); +}; + +})(jQuery); diff --git a/js/ui/jquery.effects.scale.js b/js/ui/jquery.effects.scale.js new file mode 100644 index 0000000000..8ad72bcbf1 --- /dev/null +++ b/js/ui/jquery.effects.scale.js @@ -0,0 +1,178 @@ +/* + * jQuery UI Effects Scale 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Scale + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.puff = function(o) { + return this.queue(function() { + var elem = $(this), + mode = $.effects.setMode(elem, o.options.mode || 'hide'), + percent = parseInt(o.options.percent, 10) || 150, + factor = percent / 100, + original = { height: elem.height(), width: elem.width() }; + + $.extend(o.options, { + fade: true, + mode: mode, + percent: mode == 'hide' ? percent : 100, + from: mode == 'hide' + ? original + : { + height: original.height * factor, + width: original.width * factor + } + }); + + elem.effect('scale', o.options, o.duration, o.callback); + elem.dequeue(); + }); +}; + +$.effects.scale = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this); + + // Set options + var options = $.extend(true, {}, o.options); + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var percent = parseInt(o.options.percent,10) || (parseInt(o.options.percent,10) == 0 ? 0 : (mode == 'hide' ? 0 : 100)); // Set default scaling percent + var direction = o.options.direction || 'both'; // Set default axis + var origin = o.options.origin; // The origin of the scaling + if (mode != 'effect') { // Set default origin and restore for show/hide + options.origin = origin || ['middle','center']; + options.restore = true; + } + var original = {height: el.height(), width: el.width()}; // Save original + el.from = o.options.from || (mode == 'show' ? {height: 0, width: 0} : original); // Default from state + + // Adjust + var factor = { // Set scaling factor + y: direction != 'horizontal' ? (percent / 100) : 1, + x: direction != 'vertical' ? (percent / 100) : 1 + }; + el.to = {height: original.height * factor.y, width: original.width * factor.x}; // Set to state + + if (o.options.fade) { // Fade option to support puff + if (mode == 'show') {el.from.opacity = 0; el.to.opacity = 1;}; + if (mode == 'hide') {el.from.opacity = 1; el.to.opacity = 0;}; + }; + + // Animation + options.from = el.from; options.to = el.to; options.mode = mode; + + // Animate + el.effect('size', options, o.duration, o.callback); + el.dequeue(); + }); + +}; + +$.effects.size = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right','width','height','overflow','opacity']; + var props1 = ['position','top','bottom','left','right','overflow','opacity']; // Always restore + var props2 = ['width','height','overflow']; // Copy for children + var cProps = ['fontSize']; + var vProps = ['borderTopWidth', 'borderBottomWidth', 'paddingTop', 'paddingBottom']; + var hProps = ['borderLeftWidth', 'borderRightWidth', 'paddingLeft', 'paddingRight']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var restore = o.options.restore || false; // Default restore + var scale = o.options.scale || 'both'; // Default scale mode + var origin = o.options.origin; // The origin of the sizing + var original = {height: el.height(), width: el.width()}; // Save original + el.from = o.options.from || original; // Default from state + el.to = o.options.to || original; // Default to state + // Adjust + if (origin) { // Calculate baseline shifts + var baseline = $.effects.getBaseline(origin, original); + el.from.top = (original.height - el.from.height) * baseline.y; + el.from.left = (original.width - el.from.width) * baseline.x; + el.to.top = (original.height - el.to.height) * baseline.y; + el.to.left = (original.width - el.to.width) * baseline.x; + }; + var factor = { // Set scaling factor + from: {y: el.from.height / original.height, x: el.from.width / original.width}, + to: {y: el.to.height / original.height, x: el.to.width / original.width} + }; + if (scale == 'box' || scale == 'both') { // Scale the css box + if (factor.from.y != factor.to.y) { // Vertical props scaling + props = props.concat(vProps); + el.from = $.effects.setTransition(el, vProps, factor.from.y, el.from); + el.to = $.effects.setTransition(el, vProps, factor.to.y, el.to); + }; + if (factor.from.x != factor.to.x) { // Horizontal props scaling + props = props.concat(hProps); + el.from = $.effects.setTransition(el, hProps, factor.from.x, el.from); + el.to = $.effects.setTransition(el, hProps, factor.to.x, el.to); + }; + }; + if (scale == 'content' || scale == 'both') { // Scale the content + if (factor.from.y != factor.to.y) { // Vertical props scaling + props = props.concat(cProps); + el.from = $.effects.setTransition(el, cProps, factor.from.y, el.from); + el.to = $.effects.setTransition(el, cProps, factor.to.y, el.to); + }; + }; + $.effects.save(el, restore ? props : props1); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + el.css('overflow','hidden').css(el.from); // Shift + + // Animate + if (scale == 'content' || scale == 'both') { // Scale the children + vProps = vProps.concat(['marginTop','marginBottom']).concat(cProps); // Add margins/font-size + hProps = hProps.concat(['marginLeft','marginRight']); // Add margins + props2 = props.concat(vProps).concat(hProps); // Concat + el.find("*[width]").each(function(){ + child = $(this); + if (restore) $.effects.save(child, props2); + var c_original = {height: child.height(), width: child.width()}; // Save original + child.from = {height: c_original.height * factor.from.y, width: c_original.width * factor.from.x}; + child.to = {height: c_original.height * factor.to.y, width: c_original.width * factor.to.x}; + if (factor.from.y != factor.to.y) { // Vertical props scaling + child.from = $.effects.setTransition(child, vProps, factor.from.y, child.from); + child.to = $.effects.setTransition(child, vProps, factor.to.y, child.to); + }; + if (factor.from.x != factor.to.x) { // Horizontal props scaling + child.from = $.effects.setTransition(child, hProps, factor.from.x, child.from); + child.to = $.effects.setTransition(child, hProps, factor.to.x, child.to); + }; + child.css(child.from); // Shift children + child.animate(child.to, o.duration, o.options.easing, function(){ + if (restore) $.effects.restore(child, props2); // Restore children + }); // Animate children + }); + }; + + // Animate + el.animate(el.to, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if (el.to.opacity === 0) { + el.css('opacity', el.from.opacity); + } + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, restore ? props : props1); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); diff --git a/js/ui/jquery.effects.shake.js b/js/ui/jquery.effects.shake.js new file mode 100644 index 0000000000..554286ff9a --- /dev/null +++ b/js/ui/jquery.effects.shake.js @@ -0,0 +1,57 @@ +/* + * jQuery UI Effects Shake 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Shake + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.shake = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'effect'); // Set Mode + var direction = o.options.direction || 'left'; // Default direction + var distance = o.options.distance || 20; // Default distance + var times = o.options.times || 3; // Default # of times + var speed = o.duration || o.options.duration || 140; // Default speed per shake + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + + // Animation + var animation = {}, animation1 = {}, animation2 = {}; + animation[ref] = (motion == 'pos' ? '-=' : '+=') + distance; + animation1[ref] = (motion == 'pos' ? '+=' : '-=') + distance * 2; + animation2[ref] = (motion == 'pos' ? '-=' : '+=') + distance * 2; + + // Animate + el.animate(animation, speed, o.options.easing); + for (var i = 1; i < times; i++) { // Shakes + el.animate(animation1, speed, o.options.easing).animate(animation2, speed, o.options.easing); + }; + el.animate(animation1, speed, o.options.easing). + animate(animation, speed / 2, o.options.easing, function(){ // Last shake + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + }); + el.queue('fx', function() { el.dequeue(); }); + el.dequeue(); + }); + +}; + +})(jQuery); diff --git a/js/ui/jquery.effects.slide.js b/js/ui/jquery.effects.slide.js new file mode 100644 index 0000000000..55d8adb7eb --- /dev/null +++ b/js/ui/jquery.effects.slide.js @@ -0,0 +1,50 @@ +/* + * jQuery UI Effects Slide 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Slide + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.slide = function(o) { + + return this.queue(function() { + + // Create element + var el = $(this), props = ['position','top','bottom','left','right']; + + // Set options + var mode = $.effects.setMode(el, o.options.mode || 'show'); // Set Mode + var direction = o.options.direction || 'left'; // Default Direction + + // Adjust + $.effects.save(el, props); el.show(); // Save & Show + $.effects.createWrapper(el).css({overflow:'hidden'}); // Create Wrapper + var ref = (direction == 'up' || direction == 'down') ? 'top' : 'left'; + var motion = (direction == 'up' || direction == 'left') ? 'pos' : 'neg'; + var distance = o.options.distance || (ref == 'top' ? el.outerHeight({margin:true}) : el.outerWidth({margin:true})); + if (mode == 'show') el.css(ref, motion == 'pos' ? (isNaN(distance) ? "-" + distance : -distance) : distance); // Shift + + // Animation + var animation = {}; + animation[ref] = (mode == 'show' ? (motion == 'pos' ? '+=' : '-=') : (motion == 'pos' ? '-=' : '+=')) + distance; + + // Animate + el.animate(animation, { queue: false, duration: o.duration, easing: o.options.easing, complete: function() { + if(mode == 'hide') el.hide(); // Hide + $.effects.restore(el, props); $.effects.removeWrapper(el); // Restore + if(o.callback) o.callback.apply(this, arguments); // Callback + el.dequeue(); + }}); + + }); + +}; + +})(jQuery); diff --git a/js/ui/jquery.effects.transfer.js b/js/ui/jquery.effects.transfer.js new file mode 100644 index 0000000000..b65146d1b0 --- /dev/null +++ b/js/ui/jquery.effects.transfer.js @@ -0,0 +1,45 @@ +/* + * jQuery UI Effects Transfer 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Effects/Transfer + * + * Depends: + * jquery.effects.core.js + */ +(function( $, undefined ) { + +$.effects.transfer = function(o) { + return this.queue(function() { + var elem = $(this), + target = $(o.options.to), + endPosition = target.offset(), + animation = { + top: endPosition.top, + left: endPosition.left, + height: target.innerHeight(), + width: target.innerWidth() + }, + startPosition = elem.offset(), + transfer = $('
      ') + .appendTo(document.body) + .addClass(o.options.className) + .css({ + top: startPosition.top, + left: startPosition.left, + height: elem.innerHeight(), + width: elem.innerWidth(), + position: 'absolute' + }) + .animate(animation, o.duration, o.options.easing, function() { + transfer.remove(); + (o.callback && o.callback.apply(elem[0], arguments)); + elem.dequeue(); + }); + }); +}; + +})(jQuery); diff --git a/js/ui/jquery.ui.accordion.js b/js/ui/jquery.ui.accordion.js new file mode 100644 index 0000000000..db9d24bc6e --- /dev/null +++ b/js/ui/jquery.ui.accordion.js @@ -0,0 +1,606 @@ +/* + * jQuery UI Accordion 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Accordion + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget( "ui.accordion", { + options: { + active: 0, + animated: "slide", + autoHeight: true, + clearStyle: false, + collapsible: false, + event: "click", + fillSpace: false, + header: "> li > :first-child,> :not(li):even", + icons: { + header: "ui-icon-triangle-1-e", + headerSelected: "ui-icon-triangle-1-s" + }, + navigation: false, + navigationFilter: function() { + return this.href.toLowerCase() === location.href.toLowerCase(); + } + }, + + _create: function() { + var self = this, + options = self.options; + + self.running = 0; + + self.element + .addClass( "ui-accordion ui-widget ui-helper-reset" ) + // in lack of child-selectors in CSS + // we need to mark top-LIs in a UL-accordion for some IE-fix + .children( "li" ) + .addClass( "ui-accordion-li-fix" ); + + self.headers = self.element.find( options.header ) + .addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" ) + .bind( "mouseenter.accordion", function() { + if ( options.disabled ) { + return; + } + $( this ).addClass( "ui-state-hover" ); + }) + .bind( "mouseleave.accordion", function() { + if ( options.disabled ) { + return; + } + $( this ).removeClass( "ui-state-hover" ); + }) + .bind( "focus.accordion", function() { + if ( options.disabled ) { + return; + } + $( this ).addClass( "ui-state-focus" ); + }) + .bind( "blur.accordion", function() { + if ( options.disabled ) { + return; + } + $( this ).removeClass( "ui-state-focus" ); + }); + + self.headers.next() + .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" ); + + if ( options.navigation ) { + var current = self.element.find( "a" ).filter( options.navigationFilter ).eq( 0 ); + if ( current.length ) { + var header = current.closest( ".ui-accordion-header" ); + if ( header.length ) { + // anchor within header + self.active = header; + } else { + // anchor within content + self.active = current.closest( ".ui-accordion-content" ).prev(); + } + } + } + + self.active = self._findActive( self.active || options.active ) + .addClass( "ui-state-default ui-state-active" ) + .toggleClass( "ui-corner-all" ) + .toggleClass( "ui-corner-top" ); + self.active.next().addClass( "ui-accordion-content-active" ); + + self._createIcons(); + self.resize(); + + // ARIA + self.element.attr( "role", "tablist" ); + + self.headers + .attr( "role", "tab" ) + .bind( "keydown.accordion", function( event ) { + return self._keydown( event ); + }) + .next() + .attr( "role", "tabpanel" ); + + self.headers + .not( self.active || "" ) + .attr({ + "aria-expanded": "false", + tabIndex: -1 + }) + .next() + .hide(); + + // make sure at least one header is in the tab order + if ( !self.active.length ) { + self.headers.eq( 0 ).attr( "tabIndex", 0 ); + } else { + self.active + .attr({ + "aria-expanded": "true", + tabIndex: 0 + }); + } + + // only need links in tab order for Safari + if ( !$.browser.safari ) { + self.headers.find( "a" ).attr( "tabIndex", -1 ); + } + + if ( options.event ) { + self.headers.bind( options.event.split(" ").join(".accordion ") + ".accordion", function(event) { + self._clickHandler.call( self, event, this ); + event.preventDefault(); + }); + } + }, + + _createIcons: function() { + var options = this.options; + if ( options.icons ) { + $( "" ) + .addClass( "ui-icon " + options.icons.header ) + .prependTo( this.headers ); + this.active.children( ".ui-icon" ) + .toggleClass(options.icons.header) + .toggleClass(options.icons.headerSelected); + this.element.addClass( "ui-accordion-icons" ); + } + }, + + _destroyIcons: function() { + this.headers.children( ".ui-icon" ).remove(); + this.element.removeClass( "ui-accordion-icons" ); + }, + + destroy: function() { + var options = this.options; + + this.element + .removeClass( "ui-accordion ui-widget ui-helper-reset" ) + .removeAttr( "role" ); + + this.headers + .unbind( ".accordion" ) + .removeClass( "ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" ) + .removeAttr( "role" ) + .removeAttr( "aria-expanded" ) + .removeAttr( "tabIndex" ); + + this.headers.find( "a" ).removeAttr( "tabIndex" ); + this._destroyIcons(); + var contents = this.headers.next() + .css( "display", "" ) + .removeAttr( "role" ) + .removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled" ); + if ( options.autoHeight || options.fillHeight ) { + contents.css( "height", "" ); + } + + return $.Widget.prototype.destroy.call( this ); + }, + + _setOption: function( key, value ) { + $.Widget.prototype._setOption.apply( this, arguments ); + + if ( key == "active" ) { + this.activate( value ); + } + if ( key == "icons" ) { + this._destroyIcons(); + if ( value ) { + this._createIcons(); + } + } + // #5332 - opacity doesn't cascade to positioned elements in IE + // so we need to add the disabled class to the headers and panels + if ( key == "disabled" ) { + this.headers.add(this.headers.next()) + [ value ? "addClass" : "removeClass" ]( + "ui-accordion-disabled ui-state-disabled" ); + } + }, + + _keydown: function( event ) { + if ( this.options.disabled || event.altKey || event.ctrlKey ) { + return; + } + + var keyCode = $.ui.keyCode, + length = this.headers.length, + currentIndex = this.headers.index( event.target ), + toFocus = false; + + switch ( event.keyCode ) { + case keyCode.RIGHT: + case keyCode.DOWN: + toFocus = this.headers[ ( currentIndex + 1 ) % length ]; + break; + case keyCode.LEFT: + case keyCode.UP: + toFocus = this.headers[ ( currentIndex - 1 + length ) % length ]; + break; + case keyCode.SPACE: + case keyCode.ENTER: + this._clickHandler( { target: event.target }, event.target ); + event.preventDefault(); + } + + if ( toFocus ) { + $( event.target ).attr( "tabIndex", -1 ); + $( toFocus ).attr( "tabIndex", 0 ); + toFocus.focus(); + return false; + } + + return true; + }, + + resize: function() { + var options = this.options, + maxHeight; + + if ( options.fillSpace ) { + if ( $.browser.msie ) { + var defOverflow = this.element.parent().css( "overflow" ); + this.element.parent().css( "overflow", "hidden"); + } + maxHeight = this.element.parent().height(); + if ($.browser.msie) { + this.element.parent().css( "overflow", defOverflow ); + } + + this.headers.each(function() { + maxHeight -= $( this ).outerHeight( true ); + }); + + this.headers.next() + .each(function() { + $( this ).height( Math.max( 0, maxHeight - + $( this ).innerHeight() + $( this ).height() ) ); + }) + .css( "overflow", "auto" ); + } else if ( options.autoHeight ) { + maxHeight = 0; + this.headers.next() + .each(function() { + maxHeight = Math.max( maxHeight, $( this ).height( "" ).height() ); + }) + .height( maxHeight ); + } + + return this; + }, + + activate: function( index ) { + // TODO this gets called on init, changing the option without an explicit call for that + this.options.active = index; + // call clickHandler with custom event + var active = this._findActive( index )[ 0 ]; + this._clickHandler( { target: active }, active ); + + return this; + }, + + _findActive: function( selector ) { + return selector + ? typeof selector === "number" + ? this.headers.filter( ":eq(" + selector + ")" ) + : this.headers.not( this.headers.not( selector ) ) + : selector === false + ? $( [] ) + : this.headers.filter( ":eq(0)" ); + }, + + // TODO isn't event.target enough? why the separate target argument? + _clickHandler: function( event, target ) { + var options = this.options; + if ( options.disabled ) { + return; + } + + // called only when using activate(false) to close all parts programmatically + if ( !event.target ) { + if ( !options.collapsible ) { + return; + } + this.active + .removeClass( "ui-state-active ui-corner-top" ) + .addClass( "ui-state-default ui-corner-all" ) + .children( ".ui-icon" ) + .removeClass( options.icons.headerSelected ) + .addClass( options.icons.header ); + this.active.next().addClass( "ui-accordion-content-active" ); + var toHide = this.active.next(), + data = { + options: options, + newHeader: $( [] ), + oldHeader: options.active, + newContent: $( [] ), + oldContent: toHide + }, + toShow = ( this.active = $( [] ) ); + this._toggle( toShow, toHide, data ); + return; + } + + // get the click target + var clicked = $( event.currentTarget || target ), + clickedIsActive = clicked[0] === this.active[0]; + + // TODO the option is changed, is that correct? + // TODO if it is correct, shouldn't that happen after determining that the click is valid? + options.active = options.collapsible && clickedIsActive ? + false : + this.headers.index( clicked ); + + // if animations are still active, or the active header is the target, ignore click + if ( this.running || ( !options.collapsible && clickedIsActive ) ) { + return; + } + + // find elements to show and hide + var active = this.active, + toShow = clicked.next(), + toHide = this.active.next(), + data = { + options: options, + newHeader: clickedIsActive && options.collapsible ? $([]) : clicked, + oldHeader: this.active, + newContent: clickedIsActive && options.collapsible ? $([]) : toShow, + oldContent: toHide + }, + down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] ); + + // when the call to ._toggle() comes after the class changes + // it causes a very odd bug in IE 8 (see #6720) + this.active = clickedIsActive ? $([]) : clicked; + this._toggle( toShow, toHide, data, clickedIsActive, down ); + + // switch classes + active + .removeClass( "ui-state-active ui-corner-top" ) + .addClass( "ui-state-default ui-corner-all" ) + .children( ".ui-icon" ) + .removeClass( options.icons.headerSelected ) + .addClass( options.icons.header ); + if ( !clickedIsActive ) { + clicked + .removeClass( "ui-state-default ui-corner-all" ) + .addClass( "ui-state-active ui-corner-top" ) + .children( ".ui-icon" ) + .removeClass( options.icons.header ) + .addClass( options.icons.headerSelected ); + clicked + .next() + .addClass( "ui-accordion-content-active" ); + } + + return; + }, + + _toggle: function( toShow, toHide, data, clickedIsActive, down ) { + var self = this, + options = self.options; + + self.toShow = toShow; + self.toHide = toHide; + self.data = data; + + var complete = function() { + if ( !self ) { + return; + } + return self._completed.apply( self, arguments ); + }; + + // trigger changestart event + self._trigger( "changestart", null, self.data ); + + // count elements to animate + self.running = toHide.size() === 0 ? toShow.size() : toHide.size(); + + if ( options.animated ) { + var animOptions = {}; + + if ( options.collapsible && clickedIsActive ) { + animOptions = { + toShow: $( [] ), + toHide: toHide, + complete: complete, + down: down, + autoHeight: options.autoHeight || options.fillSpace + }; + } else { + animOptions = { + toShow: toShow, + toHide: toHide, + complete: complete, + down: down, + autoHeight: options.autoHeight || options.fillSpace + }; + } + + if ( !options.proxied ) { + options.proxied = options.animated; + } + + if ( !options.proxiedDuration ) { + options.proxiedDuration = options.duration; + } + + options.animated = $.isFunction( options.proxied ) ? + options.proxied( animOptions ) : + options.proxied; + + options.duration = $.isFunction( options.proxiedDuration ) ? + options.proxiedDuration( animOptions ) : + options.proxiedDuration; + + var animations = $.ui.accordion.animations, + duration = options.duration, + easing = options.animated; + + if ( easing && !animations[ easing ] && !$.easing[ easing ] ) { + easing = "slide"; + } + if ( !animations[ easing ] ) { + animations[ easing ] = function( options ) { + this.slide( options, { + easing: easing, + duration: duration || 700 + }); + }; + } + + animations[ easing ]( animOptions ); + } else { + if ( options.collapsible && clickedIsActive ) { + toShow.toggle(); + } else { + toHide.hide(); + toShow.show(); + } + + complete( true ); + } + + // TODO assert that the blur and focus triggers are really necessary, remove otherwise + toHide.prev() + .attr({ + "aria-expanded": "false", + tabIndex: -1 + }) + .blur(); + toShow.prev() + .attr({ + "aria-expanded": "true", + tabIndex: 0 + }) + .focus(); + }, + + _completed: function( cancel ) { + this.running = cancel ? 0 : --this.running; + if ( this.running ) { + return; + } + + if ( this.options.clearStyle ) { + this.toShow.add( this.toHide ).css({ + height: "", + overflow: "" + }); + } + + // other classes are removed before the animation; this one needs to stay until completed + this.toHide.removeClass( "ui-accordion-content-active" ); + // Work around for rendering bug in IE (#5421) + if ( this.toHide.length ) { + this.toHide.parent()[0].className = this.toHide.parent()[0].className; + } + + this._trigger( "change", null, this.data ); + } +}); + +$.extend( $.ui.accordion, { + version: "1.8.10", + animations: { + slide: function( options, additions ) { + options = $.extend({ + easing: "swing", + duration: 300 + }, options, additions ); + if ( !options.toHide.size() ) { + options.toShow.animate({ + height: "show", + paddingTop: "show", + paddingBottom: "show" + }, options ); + return; + } + if ( !options.toShow.size() ) { + options.toHide.animate({ + height: "hide", + paddingTop: "hide", + paddingBottom: "hide" + }, options ); + return; + } + var overflow = options.toShow.css( "overflow" ), + percentDone = 0, + showProps = {}, + hideProps = {}, + fxAttrs = [ "height", "paddingTop", "paddingBottom" ], + originalWidth; + // fix width before calculating height of hidden element + var s = options.toShow; + originalWidth = s[0].style.width; + s.width( parseInt( s.parent().width(), 10 ) + - parseInt( s.css( "paddingLeft" ), 10 ) + - parseInt( s.css( "paddingRight" ), 10 ) + - ( parseInt( s.css( "borderLeftWidth" ), 10 ) || 0 ) + - ( parseInt( s.css( "borderRightWidth" ), 10) || 0 ) ); + + $.each( fxAttrs, function( i, prop ) { + hideProps[ prop ] = "hide"; + + var parts = ( "" + $.css( options.toShow[0], prop ) ).match( /^([\d+-.]+)(.*)$/ ); + showProps[ prop ] = { + value: parts[ 1 ], + unit: parts[ 2 ] || "px" + }; + }); + options.toShow.css({ height: 0, overflow: "hidden" }).show(); + options.toHide + .filter( ":hidden" ) + .each( options.complete ) + .end() + .filter( ":visible" ) + .animate( hideProps, { + step: function( now, settings ) { + // only calculate the percent when animating height + // IE gets very inconsistent results when animating elements + // with small values, which is common for padding + if ( settings.prop == "height" ) { + percentDone = ( settings.end - settings.start === 0 ) ? 0 : + ( settings.now - settings.start ) / ( settings.end - settings.start ); + } + + options.toShow[ 0 ].style[ settings.prop ] = + ( percentDone * showProps[ settings.prop ].value ) + + showProps[ settings.prop ].unit; + }, + duration: options.duration, + easing: options.easing, + complete: function() { + if ( !options.autoHeight ) { + options.toShow.css( "height", "" ); + } + options.toShow.css({ + width: originalWidth, + overflow: overflow + }); + options.complete(); + } + }); + }, + bounceslide: function( options ) { + this.slide( options, { + easing: options.down ? "easeOutBounce" : "swing", + duration: options.down ? 1000 : 200 + }); + } + } +}); + +})( jQuery ); diff --git a/js/ui/jquery.ui.autocomplete.js b/js/ui/jquery.ui.autocomplete.js new file mode 100644 index 0000000000..718bfe5b98 --- /dev/null +++ b/js/ui/jquery.ui.autocomplete.js @@ -0,0 +1,607 @@ +/* + * jQuery UI Autocomplete 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Autocomplete + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.position.js + */ +(function( $, undefined ) { + +// used to prevent race conditions with remote data sources +var requestIndex = 0; + +$.widget( "ui.autocomplete", { + options: { + appendTo: "body", + delay: 300, + minLength: 1, + position: { + my: "left top", + at: "left bottom", + collision: "none" + }, + source: null + }, + + pending: 0, + + _create: function() { + var self = this, + doc = this.element[ 0 ].ownerDocument, + suppressKeyPress; + + this.element + .addClass( "ui-autocomplete-input" ) + .attr( "autocomplete", "off" ) + // TODO verify these actually work as intended + .attr({ + role: "textbox", + "aria-autocomplete": "list", + "aria-haspopup": "true" + }) + .bind( "keydown.autocomplete", function( event ) { + if ( self.options.disabled || self.element.attr( "readonly" ) ) { + return; + } + + suppressKeyPress = false; + var keyCode = $.ui.keyCode; + switch( event.keyCode ) { + case keyCode.PAGE_UP: + self._move( "previousPage", event ); + break; + case keyCode.PAGE_DOWN: + self._move( "nextPage", event ); + break; + case keyCode.UP: + self._move( "previous", event ); + // prevent moving cursor to beginning of text field in some browsers + event.preventDefault(); + break; + case keyCode.DOWN: + self._move( "next", event ); + // prevent moving cursor to end of text field in some browsers + event.preventDefault(); + break; + case keyCode.ENTER: + case keyCode.NUMPAD_ENTER: + // when menu is open and has focus + if ( self.menu.active ) { + // #6055 - Opera still allows the keypress to occur + // which causes forms to submit + suppressKeyPress = true; + event.preventDefault(); + } + //passthrough - ENTER and TAB both select the current element + case keyCode.TAB: + if ( !self.menu.active ) { + return; + } + self.menu.select( event ); + break; + case keyCode.ESCAPE: + self.element.val( self.term ); + self.close( event ); + break; + default: + // keypress is triggered before the input value is changed + clearTimeout( self.searching ); + self.searching = setTimeout(function() { + // only search if the value has changed + if ( self.term != self.element.val() ) { + self.selectedItem = null; + self.search( null, event ); + } + }, self.options.delay ); + break; + } + }) + .bind( "keypress.autocomplete", function( event ) { + if ( suppressKeyPress ) { + suppressKeyPress = false; + event.preventDefault(); + } + }) + .bind( "focus.autocomplete", function() { + if ( self.options.disabled ) { + return; + } + + self.selectedItem = null; + self.previous = self.element.val(); + }) + .bind( "blur.autocomplete", function( event ) { + if ( self.options.disabled ) { + return; + } + + clearTimeout( self.searching ); + // clicks on the menu (or a button to trigger a search) will cause a blur event + self.closing = setTimeout(function() { + self.close( event ); + self._change( event ); + }, 150 ); + }); + this._initSource(); + this.response = function() { + return self._response.apply( self, arguments ); + }; + this.menu = $( "
        " ) + .addClass( "ui-autocomplete" ) + .appendTo( $( this.options.appendTo || "body", doc )[0] ) + // prevent the close-on-blur in case of a "slow" click on the menu (long mousedown) + .mousedown(function( event ) { + // clicking on the scrollbar causes focus to shift to the body + // but we can't detect a mouseup or a click immediately afterward + // so we have to track the next mousedown and close the menu if + // the user clicks somewhere outside of the autocomplete + var menuElement = self.menu.element[ 0 ]; + if ( !$( event.target ).closest( ".ui-menu-item" ).length ) { + setTimeout(function() { + $( document ).one( 'mousedown', function( event ) { + if ( event.target !== self.element[ 0 ] && + event.target !== menuElement && + !$.ui.contains( menuElement, event.target ) ) { + self.close(); + } + }); + }, 1 ); + } + + // use another timeout to make sure the blur-event-handler on the input was already triggered + setTimeout(function() { + clearTimeout( self.closing ); + }, 13); + }) + .menu({ + focus: function( event, ui ) { + var item = ui.item.data( "item.autocomplete" ); + if ( false !== self._trigger( "focus", event, { item: item } ) ) { + // use value to match what will end up in the input, if it was a key event + if ( /^key/.test(event.originalEvent.type) ) { + self.element.val( item.value ); + } + } + }, + selected: function( event, ui ) { + var item = ui.item.data( "item.autocomplete" ), + previous = self.previous; + + // only trigger when focus was lost (click on menu) + if ( self.element[0] !== doc.activeElement ) { + self.element.focus(); + self.previous = previous; + // #6109 - IE triggers two focus events and the second + // is asynchronous, so we need to reset the previous + // term synchronously and asynchronously :-( + setTimeout(function() { + self.previous = previous; + self.selectedItem = item; + }, 1); + } + + if ( false !== self._trigger( "select", event, { item: item } ) ) { + self.element.val( item.value ); + } + // reset the term after the select event + // this allows custom select handling to work properly + self.term = self.element.val(); + + self.close( event ); + self.selectedItem = item; + }, + blur: function( event, ui ) { + // don't set the value of the text field if it's already correct + // this prevents moving the cursor unnecessarily + if ( self.menu.element.is(":visible") && + ( self.element.val() !== self.term ) ) { + self.element.val( self.term ); + } + } + }) + .zIndex( this.element.zIndex() + 1 ) + // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781 + .css({ top: 0, left: 0 }) + .hide() + .data( "menu" ); + if ( $.fn.bgiframe ) { + this.menu.element.bgiframe(); + } + }, + + destroy: function() { + this.element + .removeClass( "ui-autocomplete-input" ) + .removeAttr( "autocomplete" ) + .removeAttr( "role" ) + .removeAttr( "aria-autocomplete" ) + .removeAttr( "aria-haspopup" ); + this.menu.element.remove(); + $.Widget.prototype.destroy.call( this ); + }, + + _setOption: function( key, value ) { + $.Widget.prototype._setOption.apply( this, arguments ); + if ( key === "source" ) { + this._initSource(); + } + if ( key === "appendTo" ) { + this.menu.element.appendTo( $( value || "body", this.element[0].ownerDocument )[0] ) + } + if ( key === "disabled" && value && this.xhr ) { + this.xhr.abort(); + } + }, + + _initSource: function() { + var self = this, + array, + url; + if ( $.isArray(this.options.source) ) { + array = this.options.source; + this.source = function( request, response ) { + response( $.ui.autocomplete.filter(array, request.term) ); + }; + } else if ( typeof this.options.source === "string" ) { + url = this.options.source; + this.source = function( request, response ) { + if ( self.xhr ) { + self.xhr.abort(); + } + self.xhr = $.ajax({ + url: url, + data: request, + dataType: "json", + autocompleteRequest: ++requestIndex, + success: function( data, status ) { + if ( this.autocompleteRequest === requestIndex ) { + response( data ); + } + }, + error: function() { + if ( this.autocompleteRequest === requestIndex ) { + response( [] ); + } + } + }); + }; + } else { + this.source = this.options.source; + } + }, + + search: function( value, event ) { + value = value != null ? value : this.element.val(); + + // always save the actual value, not the one passed as an argument + this.term = this.element.val(); + + if ( value.length < this.options.minLength ) { + return this.close( event ); + } + + clearTimeout( this.closing ); + if ( this._trigger( "search", event ) === false ) { + return; + } + + return this._search( value ); + }, + + _search: function( value ) { + this.pending++; + this.element.addClass( "ui-autocomplete-loading" ); + + this.source( { term: value }, this.response ); + }, + + _response: function( content ) { + if ( !this.options.disabled && content && content.length ) { + content = this._normalize( content ); + this._suggest( content ); + this._trigger( "open" ); + } else { + this.close(); + } + this.pending--; + if ( !this.pending ) { + this.element.removeClass( "ui-autocomplete-loading" ); + } + }, + + close: function( event ) { + clearTimeout( this.closing ); + if ( this.menu.element.is(":visible") ) { + this.menu.element.hide(); + this.menu.deactivate(); + this._trigger( "close", event ); + } + }, + + _change: function( event ) { + if ( this.previous !== this.element.val() ) { + this._trigger( "change", event, { item: this.selectedItem } ); + } + }, + + _normalize: function( items ) { + // assume all items have the right format when the first item is complete + if ( items.length && items[0].label && items[0].value ) { + return items; + } + return $.map( items, function(item) { + if ( typeof item === "string" ) { + return { + label: item, + value: item + }; + } + return $.extend({ + label: item.label || item.value, + value: item.value || item.label + }, item ); + }); + }, + + _suggest: function( items ) { + var ul = this.menu.element + .empty() + .zIndex( this.element.zIndex() + 1 ); + this._renderMenu( ul, items ); + // TODO refresh should check if the active item is still in the dom, removing the need for a manual deactivate + this.menu.deactivate(); + this.menu.refresh(); + + // size and position menu + ul.show(); + this._resizeMenu(); + ul.position( $.extend({ + of: this.element + }, this.options.position )); + }, + + _resizeMenu: function() { + var ul = this.menu.element; + ul.outerWidth( Math.max( + ul.width( "" ).outerWidth(), + this.element.outerWidth() + ) ); + }, + + _renderMenu: function( ul, items ) { + var self = this; + $.each( items, function( index, item ) { + self._renderItem( ul, item ); + }); + }, + + _renderItem: function( ul, item) { + return $( "
      • " ) + .data( "item.autocomplete", item ) + .append( $( "" ).text( item.label ) ) + .appendTo( ul ); + }, + + _move: function( direction, event ) { + if ( !this.menu.element.is(":visible") ) { + this.search( null, event ); + return; + } + if ( this.menu.first() && /^previous/.test(direction) || + this.menu.last() && /^next/.test(direction) ) { + this.element.val( this.term ); + this.menu.deactivate(); + return; + } + this.menu[ direction ]( event ); + }, + + widget: function() { + return this.menu.element; + } +}); + +$.extend( $.ui.autocomplete, { + escapeRegex: function( value ) { + return value.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"); + }, + filter: function(array, term) { + var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" ); + return $.grep( array, function(value) { + return matcher.test( value.label || value.value || value ); + }); + } +}); + +}( jQuery )); + +/* + * jQuery UI Menu (not officially released) + * + * This widget isn't yet finished and the API is subject to change. We plan to finish + * it for the next release. You're welcome to give it a try anyway and give us feedback, + * as long as you're okay with migrating your code later on. We can help with that, too. + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Menu + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function($) { + +$.widget("ui.menu", { + _create: function() { + var self = this; + this.element + .addClass("ui-menu ui-widget ui-widget-content ui-corner-all") + .attr({ + role: "listbox", + "aria-activedescendant": "ui-active-menuitem" + }) + .click(function( event ) { + if ( !$( event.target ).closest( ".ui-menu-item a" ).length ) { + return; + } + // temporary + event.preventDefault(); + self.select( event ); + }); + this.refresh(); + }, + + refresh: function() { + var self = this; + + // don't refresh list items that are already adapted + var items = this.element.children("li:not(.ui-menu-item):has(a)") + .addClass("ui-menu-item") + .attr("role", "menuitem"); + + items.children("a") + .addClass("ui-corner-all") + .attr("tabindex", -1) + // mouseenter doesn't work with event delegation + .mouseenter(function( event ) { + self.activate( event, $(this).parent() ); + }) + .mouseleave(function() { + self.deactivate(); + }); + }, + + activate: function( event, item ) { + this.deactivate(); + if (this.hasScroll()) { + var offset = item.offset().top - this.element.offset().top, + scroll = this.element.attr("scrollTop"), + elementHeight = this.element.height(); + if (offset < 0) { + this.element.attr("scrollTop", scroll + offset); + } else if (offset >= elementHeight) { + this.element.attr("scrollTop", scroll + offset - elementHeight + item.height()); + } + } + this.active = item.eq(0) + .children("a") + .addClass("ui-state-hover") + .attr("id", "ui-active-menuitem") + .end(); + this._trigger("focus", event, { item: item }); + }, + + deactivate: function() { + if (!this.active) { return; } + + this.active.children("a") + .removeClass("ui-state-hover") + .removeAttr("id"); + this._trigger("blur"); + this.active = null; + }, + + next: function(event) { + this.move("next", ".ui-menu-item:first", event); + }, + + previous: function(event) { + this.move("prev", ".ui-menu-item:last", event); + }, + + first: function() { + return this.active && !this.active.prevAll(".ui-menu-item").length; + }, + + last: function() { + return this.active && !this.active.nextAll(".ui-menu-item").length; + }, + + move: function(direction, edge, event) { + if (!this.active) { + this.activate(event, this.element.children(edge)); + return; + } + var next = this.active[direction + "All"](".ui-menu-item").eq(0); + if (next.length) { + this.activate(event, next); + } else { + this.activate(event, this.element.children(edge)); + } + }, + + // TODO merge with previousPage + nextPage: function(event) { + if (this.hasScroll()) { + // TODO merge with no-scroll-else + if (!this.active || this.last()) { + this.activate(event, this.element.children(".ui-menu-item:first")); + return; + } + var base = this.active.offset().top, + height = this.element.height(), + result = this.element.children(".ui-menu-item").filter(function() { + var close = $(this).offset().top - base - height + $(this).height(); + // TODO improve approximation + return close < 10 && close > -10; + }); + + // TODO try to catch this earlier when scrollTop indicates the last page anyway + if (!result.length) { + result = this.element.children(".ui-menu-item:last"); + } + this.activate(event, result); + } else { + this.activate(event, this.element.children(".ui-menu-item") + .filter(!this.active || this.last() ? ":first" : ":last")); + } + }, + + // TODO merge with nextPage + previousPage: function(event) { + if (this.hasScroll()) { + // TODO merge with no-scroll-else + if (!this.active || this.first()) { + this.activate(event, this.element.children(".ui-menu-item:last")); + return; + } + + var base = this.active.offset().top, + height = this.element.height(); + result = this.element.children(".ui-menu-item").filter(function() { + var close = $(this).offset().top - base + height - $(this).height(); + // TODO improve approximation + return close < 10 && close > -10; + }); + + // TODO try to catch this earlier when scrollTop indicates the last page anyway + if (!result.length) { + result = this.element.children(".ui-menu-item:first"); + } + this.activate(event, result); + } else { + this.activate(event, this.element.children(".ui-menu-item") + .filter(!this.active || this.first() ? ":last" : ":first")); + } + }, + + hasScroll: function() { + return this.element.height() < this.element.attr("scrollHeight"); + }, + + select: function( event ) { + this._trigger("selected", event, { item: this.active }); + } +}); + +}(jQuery)); diff --git a/js/ui/jquery.ui.button.js b/js/ui/jquery.ui.button.js new file mode 100644 index 0000000000..f0a5deca3f --- /dev/null +++ b/js/ui/jquery.ui.button.js @@ -0,0 +1,378 @@ +/* + * jQuery UI Button 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Button + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +var lastActive, + baseClasses = "ui-button ui-widget ui-state-default ui-corner-all", + stateClasses = "ui-state-hover ui-state-active ", + typeClasses = "ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only", + formResetHandler = function( event ) { + $( ":ui-button", event.target.form ).each(function() { + var inst = $( this ).data( "button" ); + setTimeout(function() { + inst.refresh(); + }, 1 ); + }); + }, + radioGroup = function( radio ) { + var name = radio.name, + form = radio.form, + radios = $( [] ); + if ( name ) { + if ( form ) { + radios = $( form ).find( "[name='" + name + "']" ); + } else { + radios = $( "[name='" + name + "']", radio.ownerDocument ) + .filter(function() { + return !this.form; + }); + } + } + return radios; + }; + +$.widget( "ui.button", { + options: { + disabled: null, + text: true, + label: null, + icons: { + primary: null, + secondary: null + } + }, + _create: function() { + this.element.closest( "form" ) + .unbind( "reset.button" ) + .bind( "reset.button", formResetHandler ); + + if ( typeof this.options.disabled !== "boolean" ) { + this.options.disabled = this.element.attr( "disabled" ); + } + + this._determineButtonType(); + this.hasTitle = !!this.buttonElement.attr( "title" ); + + var self = this, + options = this.options, + toggleButton = this.type === "checkbox" || this.type === "radio", + hoverClass = "ui-state-hover" + ( !toggleButton ? " ui-state-active" : "" ), + focusClass = "ui-state-focus"; + + if ( options.label === null ) { + options.label = this.buttonElement.html(); + } + + if ( this.element.is( ":disabled" ) ) { + options.disabled = true; + } + + this.buttonElement + .addClass( baseClasses ) + .attr( "role", "button" ) + .bind( "mouseenter.button", function() { + if ( options.disabled ) { + return; + } + $( this ).addClass( "ui-state-hover" ); + if ( this === lastActive ) { + $( this ).addClass( "ui-state-active" ); + } + }) + .bind( "mouseleave.button", function() { + if ( options.disabled ) { + return; + } + $( this ).removeClass( hoverClass ); + }) + .bind( "focus.button", function() { + // no need to check disabled, focus won't be triggered anyway + $( this ).addClass( focusClass ); + }) + .bind( "blur.button", function() { + $( this ).removeClass( focusClass ); + }); + + if ( toggleButton ) { + this.element.bind( "change.button", function() { + self.refresh(); + }); + } + + if ( this.type === "checkbox" ) { + this.buttonElement.bind( "click.button", function() { + if ( options.disabled ) { + return false; + } + $( this ).toggleClass( "ui-state-active" ); + self.buttonElement.attr( "aria-pressed", self.element[0].checked ); + }); + } else if ( this.type === "radio" ) { + this.buttonElement.bind( "click.button", function() { + if ( options.disabled ) { + return false; + } + $( this ).addClass( "ui-state-active" ); + self.buttonElement.attr( "aria-pressed", true ); + + var radio = self.element[ 0 ]; + radioGroup( radio ) + .not( radio ) + .map(function() { + return $( this ).button( "widget" )[ 0 ]; + }) + .removeClass( "ui-state-active" ) + .attr( "aria-pressed", false ); + }); + } else { + this.buttonElement + .bind( "mousedown.button", function() { + if ( options.disabled ) { + return false; + } + $( this ).addClass( "ui-state-active" ); + lastActive = this; + $( document ).one( "mouseup", function() { + lastActive = null; + }); + }) + .bind( "mouseup.button", function() { + if ( options.disabled ) { + return false; + } + $( this ).removeClass( "ui-state-active" ); + }) + .bind( "keydown.button", function(event) { + if ( options.disabled ) { + return false; + } + if ( event.keyCode == $.ui.keyCode.SPACE || event.keyCode == $.ui.keyCode.ENTER ) { + $( this ).addClass( "ui-state-active" ); + } + }) + .bind( "keyup.button", function() { + $( this ).removeClass( "ui-state-active" ); + }); + + if ( this.buttonElement.is("a") ) { + this.buttonElement.keyup(function(event) { + if ( event.keyCode === $.ui.keyCode.SPACE ) { + // TODO pass through original event correctly (just as 2nd argument doesn't work) + $( this ).click(); + } + }); + } + } + + // TODO: pull out $.Widget's handling for the disabled option into + // $.Widget.prototype._setOptionDisabled so it's easy to proxy and can + // be overridden by individual plugins + this._setOption( "disabled", options.disabled ); + }, + + _determineButtonType: function() { + + if ( this.element.is(":checkbox") ) { + this.type = "checkbox"; + } else { + if ( this.element.is(":radio") ) { + this.type = "radio"; + } else { + if ( this.element.is("input") ) { + this.type = "input"; + } else { + this.type = "button"; + } + } + } + + if ( this.type === "checkbox" || this.type === "radio" ) { + // we don't search against the document in case the element + // is disconnected from the DOM + this.buttonElement = this.element.parents().last() + .find( "label[for=" + this.element.attr("id") + "]" ); + this.element.addClass( "ui-helper-hidden-accessible" ); + + var checked = this.element.is( ":checked" ); + if ( checked ) { + this.buttonElement.addClass( "ui-state-active" ); + } + this.buttonElement.attr( "aria-pressed", checked ); + } else { + this.buttonElement = this.element; + } + }, + + widget: function() { + return this.buttonElement; + }, + + destroy: function() { + this.element + .removeClass( "ui-helper-hidden-accessible" ); + this.buttonElement + .removeClass( baseClasses + " " + stateClasses + " " + typeClasses ) + .removeAttr( "role" ) + .removeAttr( "aria-pressed" ) + .html( this.buttonElement.find(".ui-button-text").html() ); + + if ( !this.hasTitle ) { + this.buttonElement.removeAttr( "title" ); + } + + $.Widget.prototype.destroy.call( this ); + }, + + _setOption: function( key, value ) { + $.Widget.prototype._setOption.apply( this, arguments ); + if ( key === "disabled" ) { + if ( value ) { + this.element.attr( "disabled", true ); + } else { + this.element.removeAttr( "disabled" ); + } + } + this._resetButton(); + }, + + refresh: function() { + var isDisabled = this.element.is( ":disabled" ); + if ( isDisabled !== this.options.disabled ) { + this._setOption( "disabled", isDisabled ); + } + if ( this.type === "radio" ) { + radioGroup( this.element[0] ).each(function() { + if ( $( this ).is( ":checked" ) ) { + $( this ).button( "widget" ) + .addClass( "ui-state-active" ) + .attr( "aria-pressed", true ); + } else { + $( this ).button( "widget" ) + .removeClass( "ui-state-active" ) + .attr( "aria-pressed", false ); + } + }); + } else if ( this.type === "checkbox" ) { + if ( this.element.is( ":checked" ) ) { + this.buttonElement + .addClass( "ui-state-active" ) + .attr( "aria-pressed", true ); + } else { + this.buttonElement + .removeClass( "ui-state-active" ) + .attr( "aria-pressed", false ); + } + } + }, + + _resetButton: function() { + if ( this.type === "input" ) { + if ( this.options.label ) { + this.element.val( this.options.label ); + } + return; + } + var buttonElement = this.buttonElement.removeClass( typeClasses ), + buttonText = $( "" ) + .addClass( "ui-button-text" ) + .html( this.options.label ) + .appendTo( buttonElement.empty() ) + .text(), + icons = this.options.icons, + multipleIcons = icons.primary && icons.secondary, + buttonClasses = []; + + if ( icons.primary || icons.secondary ) { + buttonClasses.push( "ui-button-text-icon" + ( multipleIcons ? "s" : ( icons.primary ? "-primary" : "-secondary" ) ) ); + + if ( icons.primary ) { + buttonElement.prepend( "" ); + } + + if ( icons.secondary ) { + buttonElement.append( "" ); + } + + if ( !this.options.text ) { + buttonClasses.push( multipleIcons ? "ui-button-icons-only" : "ui-button-icon-only" ); + buttonElement.removeClass( "ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary" ); + + if ( !this.hasTitle ) { + buttonElement.attr( "title", buttonText ); + } + } + } else { + buttonClasses.push( "ui-button-text-only" ); + } + buttonElement.addClass( buttonClasses.join( " " ) ); + } +}); + +$.widget( "ui.buttonset", { + options: { + items: ":button, :submit, :reset, :checkbox, :radio, a, :data(button)" + }, + + _create: function() { + this.element.addClass( "ui-buttonset" ); + }, + + _init: function() { + this.refresh(); + }, + + _setOption: function( key, value ) { + if ( key === "disabled" ) { + this.buttons.button( "option", key, value ); + } + + $.Widget.prototype._setOption.apply( this, arguments ); + }, + + refresh: function() { + this.buttons = this.element.find( this.options.items ) + .filter( ":ui-button" ) + .button( "refresh" ) + .end() + .not( ":ui-button" ) + .button() + .end() + .map(function() { + return $( this ).button( "widget" )[ 0 ]; + }) + .removeClass( "ui-corner-all ui-corner-left ui-corner-right" ) + .filter( ":first" ) + .addClass( "ui-corner-left" ) + .end() + .filter( ":last" ) + .addClass( "ui-corner-right" ) + .end() + .end(); + }, + + destroy: function() { + this.element.removeClass( "ui-buttonset" ); + this.buttons + .map(function() { + return $( this ).button( "widget" )[ 0 ]; + }) + .removeClass( "ui-corner-left ui-corner-right" ) + .end() + .button( "destroy" ); + + $.Widget.prototype.destroy.call( this ); + } +}); + +}( jQuery ) ); diff --git a/js/ui/jquery.ui.core.js b/js/ui/jquery.ui.core.js new file mode 100644 index 0000000000..1dbfd6358e --- /dev/null +++ b/js/ui/jquery.ui.core.js @@ -0,0 +1,308 @@ +/*! + * jQuery UI 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function( $, undefined ) { + +// prevent duplicate loading +// this is only a problem because we proxy existing functions +// and we don't want to double proxy them +$.ui = $.ui || {}; +if ( $.ui.version ) { + return; +} + +$.extend( $.ui, { + version: "1.8.10", + + keyCode: { + ALT: 18, + BACKSPACE: 8, + CAPS_LOCK: 20, + COMMA: 188, + COMMAND: 91, + COMMAND_LEFT: 91, // COMMAND + COMMAND_RIGHT: 93, + CONTROL: 17, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + INSERT: 45, + LEFT: 37, + MENU: 93, // COMMAND_RIGHT + NUMPAD_ADD: 107, + NUMPAD_DECIMAL: 110, + NUMPAD_DIVIDE: 111, + NUMPAD_ENTER: 108, + NUMPAD_MULTIPLY: 106, + NUMPAD_SUBTRACT: 109, + PAGE_DOWN: 34, + PAGE_UP: 33, + PERIOD: 190, + RIGHT: 39, + SHIFT: 16, + SPACE: 32, + TAB: 9, + UP: 38, + WINDOWS: 91 // COMMAND + } +}); + +// plugins +$.fn.extend({ + _focus: $.fn.focus, + focus: function( delay, fn ) { + return typeof delay === "number" ? + this.each(function() { + var elem = this; + setTimeout(function() { + $( elem ).focus(); + if ( fn ) { + fn.call( elem ); + } + }, delay ); + }) : + this._focus.apply( this, arguments ); + }, + + scrollParent: function() { + var scrollParent; + if (($.browser.msie && (/(static|relative)/).test(this.css('position'))) || (/absolute/).test(this.css('position'))) { + scrollParent = this.parents().filter(function() { + return (/(relative|absolute|fixed)/).test($.curCSS(this,'position',1)) && (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); + }).eq(0); + } else { + scrollParent = this.parents().filter(function() { + return (/(auto|scroll)/).test($.curCSS(this,'overflow',1)+$.curCSS(this,'overflow-y',1)+$.curCSS(this,'overflow-x',1)); + }).eq(0); + } + + return (/fixed/).test(this.css('position')) || !scrollParent.length ? $(document) : scrollParent; + }, + + zIndex: function( zIndex ) { + if ( zIndex !== undefined ) { + return this.css( "zIndex", zIndex ); + } + + if ( this.length ) { + var elem = $( this[ 0 ] ), position, value; + while ( elem.length && elem[ 0 ] !== document ) { + // Ignore z-index if position is set to a value where z-index is ignored by the browser + // This makes behavior of this function consistent across browsers + // WebKit always returns auto if the element is positioned + position = elem.css( "position" ); + if ( position === "absolute" || position === "relative" || position === "fixed" ) { + // IE returns 0 when zIndex is not specified + // other browsers return a string + // we ignore the case of nested elements with an explicit value of 0 + //
        + value = parseInt( elem.css( "zIndex" ), 10 ); + if ( !isNaN( value ) && value !== 0 ) { + return value; + } + } + elem = elem.parent(); + } + } + + return 0; + }, + + disableSelection: function() { + return this.bind( ( $.support.selectstart ? "selectstart" : "mousedown" ) + + ".ui-disableSelection", function( event ) { + event.preventDefault(); + }); + }, + + enableSelection: function() { + return this.unbind( ".ui-disableSelection" ); + } +}); + +$.each( [ "Width", "Height" ], function( i, name ) { + var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], + type = name.toLowerCase(), + orig = { + innerWidth: $.fn.innerWidth, + innerHeight: $.fn.innerHeight, + outerWidth: $.fn.outerWidth, + outerHeight: $.fn.outerHeight + }; + + function reduce( elem, size, border, margin ) { + $.each( side, function() { + size -= parseFloat( $.curCSS( elem, "padding" + this, true) ) || 0; + if ( border ) { + size -= parseFloat( $.curCSS( elem, "border" + this + "Width", true) ) || 0; + } + if ( margin ) { + size -= parseFloat( $.curCSS( elem, "margin" + this, true) ) || 0; + } + }); + return size; + } + + $.fn[ "inner" + name ] = function( size ) { + if ( size === undefined ) { + return orig[ "inner" + name ].call( this ); + } + + return this.each(function() { + $( this ).css( type, reduce( this, size ) + "px" ); + }); + }; + + $.fn[ "outer" + name] = function( size, margin ) { + if ( typeof size !== "number" ) { + return orig[ "outer" + name ].call( this, size ); + } + + return this.each(function() { + $( this).css( type, reduce( this, size, true, margin ) + "px" ); + }); + }; +}); + +// selectors +function visible( element ) { + return !$( element ).parents().andSelf().filter(function() { + return $.curCSS( this, "visibility" ) === "hidden" || + $.expr.filters.hidden( this ); + }).length; +} + +$.extend( $.expr[ ":" ], { + data: function( elem, i, match ) { + return !!$.data( elem, match[ 3 ] ); + }, + + focusable: function( element ) { + var nodeName = element.nodeName.toLowerCase(), + tabIndex = $.attr( element, "tabindex" ); + if ( "area" === nodeName ) { + var map = element.parentNode, + mapName = map.name, + img; + if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { + return false; + } + img = $( "img[usemap=#" + mapName + "]" )[0]; + return !!img && visible( img ); + } + return ( /input|select|textarea|button|object/.test( nodeName ) + ? !element.disabled + : "a" == nodeName + ? element.href || !isNaN( tabIndex ) + : !isNaN( tabIndex )) + // the element and all of its ancestors must be visible + && visible( element ); + }, + + tabbable: function( element ) { + var tabIndex = $.attr( element, "tabindex" ); + return ( isNaN( tabIndex ) || tabIndex >= 0 ) && $( element ).is( ":focusable" ); + } +}); + +// support +$(function() { + var body = document.body, + div = body.appendChild( div = document.createElement( "div" ) ); + + $.extend( div.style, { + minHeight: "100px", + height: "auto", + padding: 0, + borderWidth: 0 + }); + + $.support.minHeight = div.offsetHeight === 100; + $.support.selectstart = "onselectstart" in div; + + // set display to none to avoid a layout bug in IE + // http://dev.jquery.com/ticket/4014 + body.removeChild( div ).style.display = "none"; +}); + + + + + +// deprecated +$.extend( $.ui, { + // $.ui.plugin is deprecated. Use the proxy pattern instead. + plugin: { + add: function( module, option, set ) { + var proto = $.ui[ module ].prototype; + for ( var i in set ) { + proto.plugins[ i ] = proto.plugins[ i ] || []; + proto.plugins[ i ].push( [ option, set[ i ] ] ); + } + }, + call: function( instance, name, args ) { + var set = instance.plugins[ name ]; + if ( !set || !instance.element[ 0 ].parentNode ) { + return; + } + + for ( var i = 0; i < set.length; i++ ) { + if ( instance.options[ set[ i ][ 0 ] ] ) { + set[ i ][ 1 ].apply( instance.element, args ); + } + } + } + }, + + // will be deprecated when we switch to jQuery 1.4 - use jQuery.contains() + contains: function( a, b ) { + return document.compareDocumentPosition ? + a.compareDocumentPosition( b ) & 16 : + a !== b && a.contains( b ); + }, + + // only used by resizable + hasScroll: function( el, a ) { + + //If overflow is hidden, the element might have extra content, but the user wants to hide it + if ( $( el ).css( "overflow" ) === "hidden") { + return false; + } + + var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop", + has = false; + + if ( el[ scroll ] > 0 ) { + return true; + } + + // TODO: determine which cases actually cause this to happen + // if the element doesn't have the scroll set, see if it's possible to + // set the scroll + el[ scroll ] = 1; + has = ( el[ scroll ] > 0 ); + el[ scroll ] = 0; + return has; + }, + + // these are odd functions, fix the API or move into individual plugins + isOverAxis: function( x, reference, size ) { + //Determines when x coordinate is over "b" element axis + return ( x > reference ) && ( x < ( reference + size ) ); + }, + isOver: function( y, x, top, left, height, width ) { + //Determines when x, y coordinates is over "b" element + return $.ui.isOverAxis( y, top, height ) && $.ui.isOverAxis( x, left, width ); + } +}); + +})( jQuery ); diff --git a/js/ui/jquery.ui.datepicker.js b/js/ui/jquery.ui.datepicker.js new file mode 100644 index 0000000000..0e896462c0 --- /dev/null +++ b/js/ui/jquery.ui.datepicker.js @@ -0,0 +1,1766 @@ +/* + * jQuery UI Datepicker 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Datepicker + * + * Depends: + * jquery.ui.core.js + */ +(function( $, undefined ) { + +$.extend($.ui, { datepicker: { version: "1.8.10" } }); + +var PROP_NAME = 'datepicker'; +var dpuuid = new Date().getTime(); + +/* Date picker manager. + Use the singleton instance of this class, $.datepicker, to interact with the date picker. + Settings for (groups of) date pickers are maintained in an instance object, + allowing multiple different settings on the same page. */ + +function Datepicker() { + this.debug = false; // Change this to true to start debugging + this._curInst = null; // The current instance in use + this._keyEvent = false; // If the last event was a key event + this._disabledInputs = []; // List of date picker inputs that have been disabled + this._datepickerShowing = false; // True if the popup picker is showing , false if not + this._inDialog = false; // True if showing within a "dialog", false if not + this._mainDivId = 'ui-datepicker-div'; // The ID of the main datepicker division + this._inlineClass = 'ui-datepicker-inline'; // The name of the inline marker class + this._appendClass = 'ui-datepicker-append'; // The name of the append marker class + this._triggerClass = 'ui-datepicker-trigger'; // The name of the trigger marker class + this._dialogClass = 'ui-datepicker-dialog'; // The name of the dialog marker class + this._disableClass = 'ui-datepicker-disabled'; // The name of the disabled covering marker class + this._unselectableClass = 'ui-datepicker-unselectable'; // The name of the unselectable cell marker class + this._currentClass = 'ui-datepicker-current-day'; // The name of the current day marker class + this._dayOverClass = 'ui-datepicker-days-cell-over'; // The name of the day hover marker class + this.regional = []; // Available regional settings, indexed by language code + this.regional[''] = { // Default regional settings + closeText: 'Done', // Display text for close link + prevText: 'Prev', // Display text for previous month link + nextText: 'Next', // Display text for next month link + currentText: 'Today', // Display text for current month link + monthNames: ['January','February','March','April','May','June', + 'July','August','September','October','November','December'], // Names of months for drop-down and formatting + monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting + dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting + dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting + dayNamesMin: ['Su','Mo','Tu','We','Th','Fr','Sa'], // Column headings for days starting at Sunday + weekHeader: 'Wk', // Column header for week of the year + dateFormat: 'mm/dd/yy', // See format options on parseDate + firstDay: 0, // The first day of the week, Sun = 0, Mon = 1, ... + isRTL: false, // True if right-to-left language, false if left-to-right + showMonthAfterYear: false, // True if the year select precedes month, false for month then year + yearSuffix: '' // Additional text to append to the year in the month headers + }; + this._defaults = { // Global defaults for all the date picker instances + showOn: 'focus', // 'focus' for popup on focus, + // 'button' for trigger button, or 'both' for either + showAnim: 'fadeIn', // Name of jQuery animation for popup + showOptions: {}, // Options for enhanced animations + defaultDate: null, // Used when field is blank: actual date, + // +/-number for offset from today, null for today + appendText: '', // Display text following the input box, e.g. showing the format + buttonText: '...', // Text for trigger button + buttonImage: '', // URL for trigger button image + buttonImageOnly: false, // True if the image appears alone, false if it appears on a button + hideIfNoPrevNext: false, // True to hide next/previous month links + // if not applicable, false to just disable them + navigationAsDateFormat: false, // True if date formatting applied to prev/today/next links + gotoCurrent: false, // True if today link goes back to current selection instead + changeMonth: false, // True if month can be selected directly, false if only prev/next + changeYear: false, // True if year can be selected directly, false if only prev/next + yearRange: 'c-10:c+10', // Range of years to display in drop-down, + // either relative to today's year (-nn:+nn), relative to currently displayed year + // (c-nn:c+nn), absolute (nnnn:nnnn), or a combination of the above (nnnn:-n) + showOtherMonths: false, // True to show dates in other months, false to leave blank + selectOtherMonths: false, // True to allow selection of dates in other months, false for unselectable + showWeek: false, // True to show week of the year, false to not show it + calculateWeek: this.iso8601Week, // How to calculate the week of the year, + // takes a Date and returns the number of the week for it + shortYearCutoff: '+10', // Short year values < this are in the current century, + // > this are in the previous century, + // string value starting with '+' for current year + value + minDate: null, // The earliest selectable date, or null for no limit + maxDate: null, // The latest selectable date, or null for no limit + duration: 'fast', // Duration of display/closure + beforeShowDay: null, // Function that takes a date and returns an array with + // [0] = true if selectable, false if not, [1] = custom CSS class name(s) or '', + // [2] = cell title (optional), e.g. $.datepicker.noWeekends + beforeShow: null, // Function that takes an input field and + // returns a set of custom settings for the date picker + onSelect: null, // Define a callback function when a date is selected + onChangeMonthYear: null, // Define a callback function when the month or year is changed + onClose: null, // Define a callback function when the datepicker is closed + numberOfMonths: 1, // Number of months to show at a time + showCurrentAtPos: 0, // The position in multipe months at which to show the current month (starting at 0) + stepMonths: 1, // Number of months to step back/forward + stepBigMonths: 12, // Number of months to step back/forward for the big links + altField: '', // Selector for an alternate field to store selected dates into + altFormat: '', // The date format to use for the alternate field + constrainInput: true, // The input is constrained by the current date format + showButtonPanel: false, // True to show button panel, false to not show it + autoSize: false // True to size the input for the date format, false to leave as is + }; + $.extend(this._defaults, this.regional['']); + this.dpDiv = $('
        '); +} + +$.extend(Datepicker.prototype, { + /* Class name added to elements to indicate already configured with a date picker. */ + markerClassName: 'hasDatepicker', + + /* Debug logging (if enabled). */ + log: function () { + if (this.debug) + console.log.apply('', arguments); + }, + + // TODO rename to "widget" when switching to widget factory + _widgetDatepicker: function() { + return this.dpDiv; + }, + + /* Override the default settings for all instances of the date picker. + @param settings object - the new settings to use as defaults (anonymous object) + @return the manager object */ + setDefaults: function(settings) { + extendRemove(this._defaults, settings || {}); + return this; + }, + + /* Attach the date picker to a jQuery selection. + @param target element - the target input field or division or span + @param settings object - the new settings to use for this date picker instance (anonymous) */ + _attachDatepicker: function(target, settings) { + // check for settings on the control itself - in namespace 'date:' + var inlineSettings = null; + for (var attrName in this._defaults) { + var attrValue = target.getAttribute('date:' + attrName); + if (attrValue) { + inlineSettings = inlineSettings || {}; + try { + inlineSettings[attrName] = eval(attrValue); + } catch (err) { + inlineSettings[attrName] = attrValue; + } + } + } + var nodeName = target.nodeName.toLowerCase(); + var inline = (nodeName == 'div' || nodeName == 'span'); + if (!target.id) { + this.uuid += 1; + target.id = 'dp' + this.uuid; + } + var inst = this._newInst($(target), inline); + inst.settings = $.extend({}, settings || {}, inlineSettings || {}); + if (nodeName == 'input') { + this._connectDatepicker(target, inst); + } else if (inline) { + this._inlineDatepicker(target, inst); + } + }, + + /* Create a new instance object. */ + _newInst: function(target, inline) { + var id = target[0].id.replace(/([^A-Za-z0-9_-])/g, '\\\\$1'); // escape jQuery meta chars + return {id: id, input: target, // associated target + selectedDay: 0, selectedMonth: 0, selectedYear: 0, // current selection + drawMonth: 0, drawYear: 0, // month being drawn + inline: inline, // is datepicker inline or not + dpDiv: (!inline ? this.dpDiv : // presentation div + $('
        '))}; + }, + + /* Attach the date picker to an input field. */ + _connectDatepicker: function(target, inst) { + var input = $(target); + inst.append = $([]); + inst.trigger = $([]); + if (input.hasClass(this.markerClassName)) + return; + this._attachments(input, inst); + input.addClass(this.markerClassName).keydown(this._doKeyDown). + keypress(this._doKeyPress).keyup(this._doKeyUp). + bind("setData.datepicker", function(event, key, value) { + inst.settings[key] = value; + }).bind("getData.datepicker", function(event, key) { + return this._get(inst, key); + }); + this._autoSize(inst); + $.data(target, PROP_NAME, inst); + }, + + /* Make attachments based on settings. */ + _attachments: function(input, inst) { + var appendText = this._get(inst, 'appendText'); + var isRTL = this._get(inst, 'isRTL'); + if (inst.append) + inst.append.remove(); + if (appendText) { + inst.append = $('' + appendText + ''); + input[isRTL ? 'before' : 'after'](inst.append); + } + input.unbind('focus', this._showDatepicker); + if (inst.trigger) + inst.trigger.remove(); + var showOn = this._get(inst, 'showOn'); + if (showOn == 'focus' || showOn == 'both') // pop-up date picker when in the marked field + input.focus(this._showDatepicker); + if (showOn == 'button' || showOn == 'both') { // pop-up date picker when button clicked + var buttonText = this._get(inst, 'buttonText'); + var buttonImage = this._get(inst, 'buttonImage'); + inst.trigger = $(this._get(inst, 'buttonImageOnly') ? + $('').addClass(this._triggerClass). + attr({ src: buttonImage, alt: buttonText, title: buttonText }) : + $('').addClass(this._triggerClass). + html(buttonImage == '' ? buttonText : $('').attr( + { src:buttonImage, alt:buttonText, title:buttonText }))); + input[isRTL ? 'before' : 'after'](inst.trigger); + inst.trigger.click(function() { + if ($.datepicker._datepickerShowing && $.datepicker._lastInput == input[0]) + $.datepicker._hideDatepicker(); + else + $.datepicker._showDatepicker(input[0]); + return false; + }); + } + }, + + /* Apply the maximum length for the date format. */ + _autoSize: function(inst) { + if (this._get(inst, 'autoSize') && !inst.inline) { + var date = new Date(2009, 12 - 1, 20); // Ensure double digits + var dateFormat = this._get(inst, 'dateFormat'); + if (dateFormat.match(/[DM]/)) { + var findMax = function(names) { + var max = 0; + var maxI = 0; + for (var i = 0; i < names.length; i++) { + if (names[i].length > max) { + max = names[i].length; + maxI = i; + } + } + return maxI; + }; + date.setMonth(findMax(this._get(inst, (dateFormat.match(/MM/) ? + 'monthNames' : 'monthNamesShort')))); + date.setDate(findMax(this._get(inst, (dateFormat.match(/DD/) ? + 'dayNames' : 'dayNamesShort'))) + 20 - date.getDay()); + } + inst.input.attr('size', this._formatDate(inst, date).length); + } + }, + + /* Attach an inline date picker to a div. */ + _inlineDatepicker: function(target, inst) { + var divSpan = $(target); + if (divSpan.hasClass(this.markerClassName)) + return; + divSpan.addClass(this.markerClassName).append(inst.dpDiv). + bind("setData.datepicker", function(event, key, value){ + inst.settings[key] = value; + }).bind("getData.datepicker", function(event, key){ + return this._get(inst, key); + }); + $.data(target, PROP_NAME, inst); + this._setDate(inst, this._getDefaultDate(inst), true); + this._updateDatepicker(inst); + this._updateAlternate(inst); + inst.dpDiv.show(); + }, + + /* Pop-up the date picker in a "dialog" box. + @param input element - ignored + @param date string or Date - the initial date to display + @param onSelect function - the function to call when a date is selected + @param settings object - update the dialog date picker instance's settings (anonymous object) + @param pos int[2] - coordinates for the dialog's position within the screen or + event - with x/y coordinates or + leave empty for default (screen centre) + @return the manager object */ + _dialogDatepicker: function(input, date, onSelect, settings, pos) { + var inst = this._dialogInst; // internal instance + if (!inst) { + this.uuid += 1; + var id = 'dp' + this.uuid; + this._dialogInput = $(''); + this._dialogInput.keydown(this._doKeyDown); + $('body').append(this._dialogInput); + inst = this._dialogInst = this._newInst(this._dialogInput, false); + inst.settings = {}; + $.data(this._dialogInput[0], PROP_NAME, inst); + } + extendRemove(inst.settings, settings || {}); + date = (date && date.constructor == Date ? this._formatDate(inst, date) : date); + this._dialogInput.val(date); + + this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null); + if (!this._pos) { + var browserWidth = document.documentElement.clientWidth; + var browserHeight = document.documentElement.clientHeight; + var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; + var scrollY = document.documentElement.scrollTop || document.body.scrollTop; + this._pos = // should use actual width/height below + [(browserWidth / 2) - 100 + scrollX, (browserHeight / 2) - 150 + scrollY]; + } + + // move input on screen for focus, but hidden behind dialog + this._dialogInput.css('left', (this._pos[0] + 20) + 'px').css('top', this._pos[1] + 'px'); + inst.settings.onSelect = onSelect; + this._inDialog = true; + this.dpDiv.addClass(this._dialogClass); + this._showDatepicker(this._dialogInput[0]); + if ($.blockUI) + $.blockUI(this.dpDiv); + $.data(this._dialogInput[0], PROP_NAME, inst); + return this; + }, + + /* Detach a datepicker from its control. + @param target element - the target input field or division or span */ + _destroyDatepicker: function(target) { + var $target = $(target); + var inst = $.data(target, PROP_NAME); + if (!$target.hasClass(this.markerClassName)) { + return; + } + var nodeName = target.nodeName.toLowerCase(); + $.removeData(target, PROP_NAME); + if (nodeName == 'input') { + inst.append.remove(); + inst.trigger.remove(); + $target.removeClass(this.markerClassName). + unbind('focus', this._showDatepicker). + unbind('keydown', this._doKeyDown). + unbind('keypress', this._doKeyPress). + unbind('keyup', this._doKeyUp); + } else if (nodeName == 'div' || nodeName == 'span') + $target.removeClass(this.markerClassName).empty(); + }, + + /* Enable the date picker to a jQuery selection. + @param target element - the target input field or division or span */ + _enableDatepicker: function(target) { + var $target = $(target); + var inst = $.data(target, PROP_NAME); + if (!$target.hasClass(this.markerClassName)) { + return; + } + var nodeName = target.nodeName.toLowerCase(); + if (nodeName == 'input') { + target.disabled = false; + inst.trigger.filter('button'). + each(function() { this.disabled = false; }).end(). + filter('img').css({opacity: '1.0', cursor: ''}); + } + else if (nodeName == 'div' || nodeName == 'span') { + var inline = $target.children('.' + this._inlineClass); + inline.children().removeClass('ui-state-disabled'); + } + this._disabledInputs = $.map(this._disabledInputs, + function(value) { return (value == target ? null : value); }); // delete entry + }, + + /* Disable the date picker to a jQuery selection. + @param target element - the target input field or division or span */ + _disableDatepicker: function(target) { + var $target = $(target); + var inst = $.data(target, PROP_NAME); + if (!$target.hasClass(this.markerClassName)) { + return; + } + var nodeName = target.nodeName.toLowerCase(); + if (nodeName == 'input') { + target.disabled = true; + inst.trigger.filter('button'). + each(function() { this.disabled = true; }).end(). + filter('img').css({opacity: '0.5', cursor: 'default'}); + } + else if (nodeName == 'div' || nodeName == 'span') { + var inline = $target.children('.' + this._inlineClass); + inline.children().addClass('ui-state-disabled'); + } + this._disabledInputs = $.map(this._disabledInputs, + function(value) { return (value == target ? null : value); }); // delete entry + this._disabledInputs[this._disabledInputs.length] = target; + }, + + /* Is the first field in a jQuery collection disabled as a datepicker? + @param target element - the target input field or division or span + @return boolean - true if disabled, false if enabled */ + _isDisabledDatepicker: function(target) { + if (!target) { + return false; + } + for (var i = 0; i < this._disabledInputs.length; i++) { + if (this._disabledInputs[i] == target) + return true; + } + return false; + }, + + /* Retrieve the instance data for the target control. + @param target element - the target input field or division or span + @return object - the associated instance data + @throws error if a jQuery problem getting data */ + _getInst: function(target) { + try { + return $.data(target, PROP_NAME); + } + catch (err) { + throw 'Missing instance data for this datepicker'; + } + }, + + /* Update or retrieve the settings for a date picker attached to an input field or division. + @param target element - the target input field or division or span + @param name object - the new settings to update or + string - the name of the setting to change or retrieve, + when retrieving also 'all' for all instance settings or + 'defaults' for all global defaults + @param value any - the new value for the setting + (omit if above is an object or to retrieve a value) */ + _optionDatepicker: function(target, name, value) { + var inst = this._getInst(target); + if (arguments.length == 2 && typeof name == 'string') { + return (name == 'defaults' ? $.extend({}, $.datepicker._defaults) : + (inst ? (name == 'all' ? $.extend({}, inst.settings) : + this._get(inst, name)) : null)); + } + var settings = name || {}; + if (typeof name == 'string') { + settings = {}; + settings[name] = value; + } + if (inst) { + if (this._curInst == inst) { + this._hideDatepicker(); + } + var date = this._getDateDatepicker(target, true); + extendRemove(inst.settings, settings); + this._attachments($(target), inst); + this._autoSize(inst); + this._setDateDatepicker(target, date); + this._updateDatepicker(inst); + } + }, + + // change method deprecated + _changeDatepicker: function(target, name, value) { + this._optionDatepicker(target, name, value); + }, + + /* Redraw the date picker attached to an input field or division. + @param target element - the target input field or division or span */ + _refreshDatepicker: function(target) { + var inst = this._getInst(target); + if (inst) { + this._updateDatepicker(inst); + } + }, + + /* Set the dates for a jQuery selection. + @param target element - the target input field or division or span + @param date Date - the new date */ + _setDateDatepicker: function(target, date) { + var inst = this._getInst(target); + if (inst) { + this._setDate(inst, date); + this._updateDatepicker(inst); + this._updateAlternate(inst); + } + }, + + /* Get the date(s) for the first entry in a jQuery selection. + @param target element - the target input field or division or span + @param noDefault boolean - true if no default date is to be used + @return Date - the current date */ + _getDateDatepicker: function(target, noDefault) { + var inst = this._getInst(target); + if (inst && !inst.inline) + this._setDateFromField(inst, noDefault); + return (inst ? this._getDate(inst) : null); + }, + + /* Handle keystrokes. */ + _doKeyDown: function(event) { + var inst = $.datepicker._getInst(event.target); + var handled = true; + var isRTL = inst.dpDiv.is('.ui-datepicker-rtl'); + inst._keyEvent = true; + if ($.datepicker._datepickerShowing) + switch (event.keyCode) { + case 9: $.datepicker._hideDatepicker(); + handled = false; + break; // hide on tab out + case 13: var sel = $('td.' + $.datepicker._dayOverClass + ':not(.' + + $.datepicker._currentClass + ')', inst.dpDiv); + if (sel[0]) + $.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]); + else + $.datepicker._hideDatepicker(); + return false; // don't submit the form + break; // select the value on enter + case 27: $.datepicker._hideDatepicker(); + break; // hide on escape + case 33: $.datepicker._adjustDate(event.target, (event.ctrlKey ? + -$.datepicker._get(inst, 'stepBigMonths') : + -$.datepicker._get(inst, 'stepMonths')), 'M'); + break; // previous month/year on page up/+ ctrl + case 34: $.datepicker._adjustDate(event.target, (event.ctrlKey ? + +$.datepicker._get(inst, 'stepBigMonths') : + +$.datepicker._get(inst, 'stepMonths')), 'M'); + break; // next month/year on page down/+ ctrl + case 35: if (event.ctrlKey || event.metaKey) $.datepicker._clearDate(event.target); + handled = event.ctrlKey || event.metaKey; + break; // clear on ctrl or command +end + case 36: if (event.ctrlKey || event.metaKey) $.datepicker._gotoToday(event.target); + handled = event.ctrlKey || event.metaKey; + break; // current on ctrl or command +home + case 37: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? +1 : -1), 'D'); + handled = event.ctrlKey || event.metaKey; + // -1 day on ctrl or command +left + if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ? + -$.datepicker._get(inst, 'stepBigMonths') : + -$.datepicker._get(inst, 'stepMonths')), 'M'); + // next month/year on alt +left on Mac + break; + case 38: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, -7, 'D'); + handled = event.ctrlKey || event.metaKey; + break; // -1 week on ctrl or command +up + case 39: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, (isRTL ? -1 : +1), 'D'); + handled = event.ctrlKey || event.metaKey; + // +1 day on ctrl or command +right + if (event.originalEvent.altKey) $.datepicker._adjustDate(event.target, (event.ctrlKey ? + +$.datepicker._get(inst, 'stepBigMonths') : + +$.datepicker._get(inst, 'stepMonths')), 'M'); + // next month/year on alt +right + break; + case 40: if (event.ctrlKey || event.metaKey) $.datepicker._adjustDate(event.target, +7, 'D'); + handled = event.ctrlKey || event.metaKey; + break; // +1 week on ctrl or command +down + default: handled = false; + } + else if (event.keyCode == 36 && event.ctrlKey) // display the date picker on ctrl+home + $.datepicker._showDatepicker(this); + else { + handled = false; + } + if (handled) { + event.preventDefault(); + event.stopPropagation(); + } + }, + + /* Filter entered characters - based on date format. */ + _doKeyPress: function(event) { + var inst = $.datepicker._getInst(event.target); + if ($.datepicker._get(inst, 'constrainInput')) { + var chars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat')); + var chr = String.fromCharCode(event.charCode == undefined ? event.keyCode : event.charCode); + return event.ctrlKey || event.metaKey || (chr < ' ' || !chars || chars.indexOf(chr) > -1); + } + }, + + /* Synchronise manual entry and field/alternate field. */ + _doKeyUp: function(event) { + var inst = $.datepicker._getInst(event.target); + if (inst.input.val() != inst.lastVal) { + try { + var date = $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'), + (inst.input ? inst.input.val() : null), + $.datepicker._getFormatConfig(inst)); + if (date) { // only if valid + $.datepicker._setDateFromField(inst); + $.datepicker._updateAlternate(inst); + $.datepicker._updateDatepicker(inst); + } + } + catch (event) { + $.datepicker.log(event); + } + } + return true; + }, + + /* Pop-up the date picker for a given input field. + @param input element - the input field attached to the date picker or + event - if triggered by focus */ + _showDatepicker: function(input) { + input = input.target || input; + if (input.nodeName.toLowerCase() != 'input') // find from button/image trigger + input = $('input', input.parentNode)[0]; + if ($.datepicker._isDisabledDatepicker(input) || $.datepicker._lastInput == input) // already here + return; + var inst = $.datepicker._getInst(input); + if ($.datepicker._curInst && $.datepicker._curInst != inst) { + $.datepicker._curInst.dpDiv.stop(true, true); + } + var beforeShow = $.datepicker._get(inst, 'beforeShow'); + extendRemove(inst.settings, (beforeShow ? beforeShow.apply(input, [input, inst]) : {})); + inst.lastVal = null; + $.datepicker._lastInput = input; + $.datepicker._setDateFromField(inst); + if ($.datepicker._inDialog) // hide cursor + input.value = ''; + if (!$.datepicker._pos) { // position below input + $.datepicker._pos = $.datepicker._findPos(input); + $.datepicker._pos[1] += input.offsetHeight; // add the height + } + var isFixed = false; + $(input).parents().each(function() { + isFixed |= $(this).css('position') == 'fixed'; + return !isFixed; + }); + if (isFixed && $.browser.opera) { // correction for Opera when fixed and scrolled + $.datepicker._pos[0] -= document.documentElement.scrollLeft; + $.datepicker._pos[1] -= document.documentElement.scrollTop; + } + var offset = {left: $.datepicker._pos[0], top: $.datepicker._pos[1]}; + $.datepicker._pos = null; + //to avoid flashes on Firefox + inst.dpDiv.empty(); + // determine sizing offscreen + inst.dpDiv.css({position: 'absolute', display: 'block', top: '-1000px'}); + $.datepicker._updateDatepicker(inst); + // fix width for dynamic number of date pickers + // and adjust position before showing + offset = $.datepicker._checkOffset(inst, offset, isFixed); + inst.dpDiv.css({position: ($.datepicker._inDialog && $.blockUI ? + 'static' : (isFixed ? 'fixed' : 'absolute')), display: 'none', + left: offset.left + 'px', top: offset.top + 'px'}); + if (!inst.inline) { + var showAnim = $.datepicker._get(inst, 'showAnim'); + var duration = $.datepicker._get(inst, 'duration'); + var postProcess = function() { + $.datepicker._datepickerShowing = true; + var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only + if( !! cover.length ){ + var borders = $.datepicker._getBorders(inst.dpDiv); + cover.css({left: -borders[0], top: -borders[1], + width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()}); + } + }; + inst.dpDiv.zIndex($(input).zIndex()+1); + if ($.effects && $.effects[showAnim]) + inst.dpDiv.show(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess); + else + inst.dpDiv[showAnim || 'show']((showAnim ? duration : null), postProcess); + if (!showAnim || !duration) + postProcess(); + if (inst.input.is(':visible') && !inst.input.is(':disabled')) + inst.input.focus(); + $.datepicker._curInst = inst; + } + }, + + /* Generate the date picker content. */ + _updateDatepicker: function(inst) { + var self = this; + var borders = $.datepicker._getBorders(inst.dpDiv); + inst.dpDiv.empty().append(this._generateHTML(inst)); + var cover = inst.dpDiv.find('iframe.ui-datepicker-cover'); // IE6- only + if( !!cover.length ){ //avoid call to outerXXXX() when not in IE6 + cover.css({left: -borders[0], top: -borders[1], width: inst.dpDiv.outerWidth(), height: inst.dpDiv.outerHeight()}) + } + inst.dpDiv.find('button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a') + .bind('mouseout', function(){ + $(this).removeClass('ui-state-hover'); + if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).removeClass('ui-datepicker-prev-hover'); + if(this.className.indexOf('ui-datepicker-next') != -1) $(this).removeClass('ui-datepicker-next-hover'); + }) + .bind('mouseover', function(){ + if (!self._isDisabledDatepicker( inst.inline ? inst.dpDiv.parent()[0] : inst.input[0])) { + $(this).parents('.ui-datepicker-calendar').find('a').removeClass('ui-state-hover'); + $(this).addClass('ui-state-hover'); + if(this.className.indexOf('ui-datepicker-prev') != -1) $(this).addClass('ui-datepicker-prev-hover'); + if(this.className.indexOf('ui-datepicker-next') != -1) $(this).addClass('ui-datepicker-next-hover'); + } + }) + .end() + .find('.' + this._dayOverClass + ' a') + .trigger('mouseover') + .end(); + var numMonths = this._getNumberOfMonths(inst); + var cols = numMonths[1]; + var width = 17; + if (cols > 1) + inst.dpDiv.addClass('ui-datepicker-multi-' + cols).css('width', (width * cols) + 'em'); + else + inst.dpDiv.removeClass('ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4').width(''); + inst.dpDiv[(numMonths[0] != 1 || numMonths[1] != 1 ? 'add' : 'remove') + + 'Class']('ui-datepicker-multi'); + inst.dpDiv[(this._get(inst, 'isRTL') ? 'add' : 'remove') + + 'Class']('ui-datepicker-rtl'); + if (inst == $.datepicker._curInst && $.datepicker._datepickerShowing && inst.input && + // #6694 - don't focus the input if it's already focused + // this breaks the change event in IE + inst.input.is(':visible') && !inst.input.is(':disabled') && inst.input[0] != document.activeElement) + inst.input.focus(); + // deffered render of the years select (to avoid flashes on Firefox) + if( inst.yearshtml ){ + var origyearshtml = inst.yearshtml; + setTimeout(function(){ + //assure that inst.yearshtml didn't change. + if( origyearshtml === inst.yearshtml ){ + inst.dpDiv.find('select.ui-datepicker-year:first').replaceWith(inst.yearshtml); + } + origyearshtml = inst.yearshtml = null; + }, 0); + } + }, + + /* Retrieve the size of left and top borders for an element. + @param elem (jQuery object) the element of interest + @return (number[2]) the left and top borders */ + _getBorders: function(elem) { + var convert = function(value) { + return {thin: 1, medium: 2, thick: 3}[value] || value; + }; + return [parseFloat(convert(elem.css('border-left-width'))), + parseFloat(convert(elem.css('border-top-width')))]; + }, + + /* Check positioning to remain on screen. */ + _checkOffset: function(inst, offset, isFixed) { + var dpWidth = inst.dpDiv.outerWidth(); + var dpHeight = inst.dpDiv.outerHeight(); + var inputWidth = inst.input ? inst.input.outerWidth() : 0; + var inputHeight = inst.input ? inst.input.outerHeight() : 0; + var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft(); + var viewHeight = document.documentElement.clientHeight + $(document).scrollTop(); + + offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0); + offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0; + offset.top -= (isFixed && offset.top == (inst.input.offset().top + inputHeight)) ? $(document).scrollTop() : 0; + + // now check if datepicker is showing outside window viewport - move to a better place if so. + offset.left -= Math.min(offset.left, (offset.left + dpWidth > viewWidth && viewWidth > dpWidth) ? + Math.abs(offset.left + dpWidth - viewWidth) : 0); + offset.top -= Math.min(offset.top, (offset.top + dpHeight > viewHeight && viewHeight > dpHeight) ? + Math.abs(dpHeight + inputHeight) : 0); + + return offset; + }, + + /* Find an object's position on the screen. */ + _findPos: function(obj) { + var inst = this._getInst(obj); + var isRTL = this._get(inst, 'isRTL'); + while (obj && (obj.type == 'hidden' || obj.nodeType != 1 || $.expr.filters.hidden(obj))) { + obj = obj[isRTL ? 'previousSibling' : 'nextSibling']; + } + var position = $(obj).offset(); + return [position.left, position.top]; + }, + + /* Hide the date picker from view. + @param input element - the input field attached to the date picker */ + _hideDatepicker: function(input) { + var inst = this._curInst; + if (!inst || (input && inst != $.data(input, PROP_NAME))) + return; + if (this._datepickerShowing) { + var showAnim = this._get(inst, 'showAnim'); + var duration = this._get(inst, 'duration'); + var postProcess = function() { + $.datepicker._tidyDialog(inst); + this._curInst = null; + }; + if ($.effects && $.effects[showAnim]) + inst.dpDiv.hide(showAnim, $.datepicker._get(inst, 'showOptions'), duration, postProcess); + else + inst.dpDiv[(showAnim == 'slideDown' ? 'slideUp' : + (showAnim == 'fadeIn' ? 'fadeOut' : 'hide'))]((showAnim ? duration : null), postProcess); + if (!showAnim) + postProcess(); + var onClose = this._get(inst, 'onClose'); + if (onClose) + onClose.apply((inst.input ? inst.input[0] : null), + [(inst.input ? inst.input.val() : ''), inst]); // trigger custom callback + this._datepickerShowing = false; + this._lastInput = null; + if (this._inDialog) { + this._dialogInput.css({ position: 'absolute', left: '0', top: '-100px' }); + if ($.blockUI) { + $.unblockUI(); + $('body').append(this.dpDiv); + } + } + this._inDialog = false; + } + }, + + /* Tidy up after a dialog display. */ + _tidyDialog: function(inst) { + inst.dpDiv.removeClass(this._dialogClass).unbind('.ui-datepicker-calendar'); + }, + + /* Close date picker if clicked elsewhere. */ + _checkExternalClick: function(event) { + if (!$.datepicker._curInst) + return; + var $target = $(event.target); + if ($target[0].id != $.datepicker._mainDivId && + $target.parents('#' + $.datepicker._mainDivId).length == 0 && + !$target.hasClass($.datepicker.markerClassName) && + !$target.hasClass($.datepicker._triggerClass) && + $.datepicker._datepickerShowing && !($.datepicker._inDialog && $.blockUI)) + $.datepicker._hideDatepicker(); + }, + + /* Adjust one of the date sub-fields. */ + _adjustDate: function(id, offset, period) { + var target = $(id); + var inst = this._getInst(target[0]); + if (this._isDisabledDatepicker(target[0])) { + return; + } + this._adjustInstDate(inst, offset + + (period == 'M' ? this._get(inst, 'showCurrentAtPos') : 0), // undo positioning + period); + this._updateDatepicker(inst); + }, + + /* Action for current link. */ + _gotoToday: function(id) { + var target = $(id); + var inst = this._getInst(target[0]); + if (this._get(inst, 'gotoCurrent') && inst.currentDay) { + inst.selectedDay = inst.currentDay; + inst.drawMonth = inst.selectedMonth = inst.currentMonth; + inst.drawYear = inst.selectedYear = inst.currentYear; + } + else { + var date = new Date(); + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + } + this._notifyChange(inst); + this._adjustDate(target); + }, + + /* Action for selecting a new month/year. */ + _selectMonthYear: function(id, select, period) { + var target = $(id); + var inst = this._getInst(target[0]); + inst._selectingMonthYear = false; + inst['selected' + (period == 'M' ? 'Month' : 'Year')] = + inst['draw' + (period == 'M' ? 'Month' : 'Year')] = + parseInt(select.options[select.selectedIndex].value,10); + this._notifyChange(inst); + this._adjustDate(target); + }, + + /* Restore input focus after not changing month/year. */ + _clickMonthYear: function(id) { + var target = $(id); + var inst = this._getInst(target[0]); + if (inst.input && inst._selectingMonthYear) { + setTimeout(function() { + inst.input.focus(); + }, 0); + } + inst._selectingMonthYear = !inst._selectingMonthYear; + }, + + /* Action for selecting a day. */ + _selectDay: function(id, month, year, td) { + var target = $(id); + if ($(td).hasClass(this._unselectableClass) || this._isDisabledDatepicker(target[0])) { + return; + } + var inst = this._getInst(target[0]); + inst.selectedDay = inst.currentDay = $('a', td).html(); + inst.selectedMonth = inst.currentMonth = month; + inst.selectedYear = inst.currentYear = year; + this._selectDate(id, this._formatDate(inst, + inst.currentDay, inst.currentMonth, inst.currentYear)); + }, + + /* Erase the input field and hide the date picker. */ + _clearDate: function(id) { + var target = $(id); + var inst = this._getInst(target[0]); + this._selectDate(target, ''); + }, + + /* Update the input field with the selected date. */ + _selectDate: function(id, dateStr) { + var target = $(id); + var inst = this._getInst(target[0]); + dateStr = (dateStr != null ? dateStr : this._formatDate(inst)); + if (inst.input) + inst.input.val(dateStr); + this._updateAlternate(inst); + var onSelect = this._get(inst, 'onSelect'); + if (onSelect) + onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); // trigger custom callback + else if (inst.input) + inst.input.trigger('change'); // fire the change event + if (inst.inline) + this._updateDatepicker(inst); + else { + this._hideDatepicker(); + this._lastInput = inst.input[0]; + if (typeof(inst.input[0]) != 'object') + inst.input.focus(); // restore focus + this._lastInput = null; + } + }, + + /* Update any alternate field to synchronise with the main field. */ + _updateAlternate: function(inst) { + var altField = this._get(inst, 'altField'); + if (altField) { // update alternate field too + var altFormat = this._get(inst, 'altFormat') || this._get(inst, 'dateFormat'); + var date = this._getDate(inst); + var dateStr = this.formatDate(altFormat, date, this._getFormatConfig(inst)); + $(altField).each(function() { $(this).val(dateStr); }); + } + }, + + /* Set as beforeShowDay function to prevent selection of weekends. + @param date Date - the date to customise + @return [boolean, string] - is this date selectable?, what is its CSS class? */ + noWeekends: function(date) { + var day = date.getDay(); + return [(day > 0 && day < 6), '']; + }, + + /* Set as calculateWeek to determine the week of the year based on the ISO 8601 definition. + @param date Date - the date to get the week for + @return number - the number of the week within the year that contains this date */ + iso8601Week: function(date) { + var checkDate = new Date(date.getTime()); + // Find Thursday of this week starting on Monday + checkDate.setDate(checkDate.getDate() + 4 - (checkDate.getDay() || 7)); + var time = checkDate.getTime(); + checkDate.setMonth(0); // Compare with Jan 1 + checkDate.setDate(1); + return Math.floor(Math.round((time - checkDate) / 86400000) / 7) + 1; + }, + + /* Parse a string value into a date object. + See formatDate below for the possible formats. + + @param format string - the expected format of the date + @param value string - the date in the above format + @param settings Object - attributes include: + shortYearCutoff number - the cutoff year for determining the century (optional) + dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) + dayNames string[7] - names of the days from Sunday (optional) + monthNamesShort string[12] - abbreviated names of the months (optional) + monthNames string[12] - names of the months (optional) + @return Date - the extracted date value or null if value is blank */ + parseDate: function (format, value, settings) { + if (format == null || value == null) + throw 'Invalid arguments'; + value = (typeof value == 'object' ? value.toString() : value + ''); + if (value == '') + return null; + var shortYearCutoff = (settings ? settings.shortYearCutoff : null) || this._defaults.shortYearCutoff; + shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff : + new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); + var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort; + var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames; + var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort; + var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames; + var year = -1; + var month = -1; + var day = -1; + var doy = -1; + var literal = false; + // Check whether a format character is doubled + var lookAhead = function(match) { + var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); + if (matches) + iFormat++; + return matches; + }; + // Extract a number from the string value + var getNumber = function(match) { + var isDoubled = lookAhead(match); + var size = (match == '@' ? 14 : (match == '!' ? 20 : + (match == 'y' && isDoubled ? 4 : (match == 'o' ? 3 : 2)))); + var digits = new RegExp('^\\d{1,' + size + '}'); + var num = value.substring(iValue).match(digits); + if (!num) + throw 'Missing number at position ' + iValue; + iValue += num[0].length; + return parseInt(num[0], 10); + }; + // Extract a name from the string value and convert to an index + var getName = function(match, shortNames, longNames) { + var names = (lookAhead(match) ? longNames : shortNames); + for (var i = 0; i < names.length; i++) { + if (value.substr(iValue, names[i].length).toLowerCase() == names[i].toLowerCase()) { + iValue += names[i].length; + return i + 1; + } + } + throw 'Unknown name at position ' + iValue; + }; + // Confirm that a literal character matches the string value + var checkLiteral = function() { + if (value.charAt(iValue) != format.charAt(iFormat)) + throw 'Unexpected literal at position ' + iValue; + iValue++; + }; + var iValue = 0; + for (var iFormat = 0; iFormat < format.length; iFormat++) { + if (literal) + if (format.charAt(iFormat) == "'" && !lookAhead("'")) + literal = false; + else + checkLiteral(); + else + switch (format.charAt(iFormat)) { + case 'd': + day = getNumber('d'); + break; + case 'D': + getName('D', dayNamesShort, dayNames); + break; + case 'o': + doy = getNumber('o'); + break; + case 'm': + month = getNumber('m'); + break; + case 'M': + month = getName('M', monthNamesShort, monthNames); + break; + case 'y': + year = getNumber('y'); + break; + case '@': + var date = new Date(getNumber('@')); + year = date.getFullYear(); + month = date.getMonth() + 1; + day = date.getDate(); + break; + case '!': + var date = new Date((getNumber('!') - this._ticksTo1970) / 10000); + year = date.getFullYear(); + month = date.getMonth() + 1; + day = date.getDate(); + break; + case "'": + if (lookAhead("'")) + checkLiteral(); + else + literal = true; + break; + default: + checkLiteral(); + } + } + if (year == -1) + year = new Date().getFullYear(); + else if (year < 100) + year += new Date().getFullYear() - new Date().getFullYear() % 100 + + (year <= shortYearCutoff ? 0 : -100); + if (doy > -1) { + month = 1; + day = doy; + do { + var dim = this._getDaysInMonth(year, month - 1); + if (day <= dim) + break; + month++; + day -= dim; + } while (true); + } + var date = this._daylightSavingAdjust(new Date(year, month - 1, day)); + if (date.getFullYear() != year || date.getMonth() + 1 != month || date.getDate() != day) + throw 'Invalid date'; // E.g. 31/02/* + return date; + }, + + /* Standard date formats. */ + ATOM: 'yy-mm-dd', // RFC 3339 (ISO 8601) + COOKIE: 'D, dd M yy', + ISO_8601: 'yy-mm-dd', + RFC_822: 'D, d M y', + RFC_850: 'DD, dd-M-y', + RFC_1036: 'D, d M y', + RFC_1123: 'D, d M yy', + RFC_2822: 'D, d M yy', + RSS: 'D, d M y', // RFC 822 + TICKS: '!', + TIMESTAMP: '@', + W3C: 'yy-mm-dd', // ISO 8601 + + _ticksTo1970: (((1970 - 1) * 365 + Math.floor(1970 / 4) - Math.floor(1970 / 100) + + Math.floor(1970 / 400)) * 24 * 60 * 60 * 10000000), + + /* Format a date object into a string value. + The format can be combinations of the following: + d - day of month (no leading zero) + dd - day of month (two digit) + o - day of year (no leading zeros) + oo - day of year (three digit) + D - day name short + DD - day name long + m - month of year (no leading zero) + mm - month of year (two digit) + M - month name short + MM - month name long + y - year (two digit) + yy - year (four digit) + @ - Unix timestamp (ms since 01/01/1970) + ! - Windows ticks (100ns since 01/01/0001) + '...' - literal text + '' - single quote + + @param format string - the desired format of the date + @param date Date - the date value to format + @param settings Object - attributes include: + dayNamesShort string[7] - abbreviated names of the days from Sunday (optional) + dayNames string[7] - names of the days from Sunday (optional) + monthNamesShort string[12] - abbreviated names of the months (optional) + monthNames string[12] - names of the months (optional) + @return string - the date in the above format */ + formatDate: function (format, date, settings) { + if (!date) + return ''; + var dayNamesShort = (settings ? settings.dayNamesShort : null) || this._defaults.dayNamesShort; + var dayNames = (settings ? settings.dayNames : null) || this._defaults.dayNames; + var monthNamesShort = (settings ? settings.monthNamesShort : null) || this._defaults.monthNamesShort; + var monthNames = (settings ? settings.monthNames : null) || this._defaults.monthNames; + // Check whether a format character is doubled + var lookAhead = function(match) { + var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); + if (matches) + iFormat++; + return matches; + }; + // Format a number, with leading zero if necessary + var formatNumber = function(match, value, len) { + var num = '' + value; + if (lookAhead(match)) + while (num.length < len) + num = '0' + num; + return num; + }; + // Format a name, short or long as requested + var formatName = function(match, value, shortNames, longNames) { + return (lookAhead(match) ? longNames[value] : shortNames[value]); + }; + var output = ''; + var literal = false; + if (date) + for (var iFormat = 0; iFormat < format.length; iFormat++) { + if (literal) + if (format.charAt(iFormat) == "'" && !lookAhead("'")) + literal = false; + else + output += format.charAt(iFormat); + else + switch (format.charAt(iFormat)) { + case 'd': + output += formatNumber('d', date.getDate(), 2); + break; + case 'D': + output += formatName('D', date.getDay(), dayNamesShort, dayNames); + break; + case 'o': + output += formatNumber('o', + (date.getTime() - new Date(date.getFullYear(), 0, 0).getTime()) / 86400000, 3); + break; + case 'm': + output += formatNumber('m', date.getMonth() + 1, 2); + break; + case 'M': + output += formatName('M', date.getMonth(), monthNamesShort, monthNames); + break; + case 'y': + output += (lookAhead('y') ? date.getFullYear() : + (date.getYear() % 100 < 10 ? '0' : '') + date.getYear() % 100); + break; + case '@': + output += date.getTime(); + break; + case '!': + output += date.getTime() * 10000 + this._ticksTo1970; + break; + case "'": + if (lookAhead("'")) + output += "'"; + else + literal = true; + break; + default: + output += format.charAt(iFormat); + } + } + return output; + }, + + /* Extract all possible characters from the date format. */ + _possibleChars: function (format) { + var chars = ''; + var literal = false; + // Check whether a format character is doubled + var lookAhead = function(match) { + var matches = (iFormat + 1 < format.length && format.charAt(iFormat + 1) == match); + if (matches) + iFormat++; + return matches; + }; + for (var iFormat = 0; iFormat < format.length; iFormat++) + if (literal) + if (format.charAt(iFormat) == "'" && !lookAhead("'")) + literal = false; + else + chars += format.charAt(iFormat); + else + switch (format.charAt(iFormat)) { + case 'd': case 'm': case 'y': case '@': + chars += '0123456789'; + break; + case 'D': case 'M': + return null; // Accept anything + case "'": + if (lookAhead("'")) + chars += "'"; + else + literal = true; + break; + default: + chars += format.charAt(iFormat); + } + return chars; + }, + + /* Get a setting value, defaulting if necessary. */ + _get: function(inst, name) { + return inst.settings[name] !== undefined ? + inst.settings[name] : this._defaults[name]; + }, + + /* Parse existing date and initialise date picker. */ + _setDateFromField: function(inst, noDefault) { + if (inst.input.val() == inst.lastVal) { + return; + } + var dateFormat = this._get(inst, 'dateFormat'); + var dates = inst.lastVal = inst.input ? inst.input.val() : null; + var date, defaultDate; + date = defaultDate = this._getDefaultDate(inst); + var settings = this._getFormatConfig(inst); + try { + date = this.parseDate(dateFormat, dates, settings) || defaultDate; + } catch (event) { + this.log(event); + dates = (noDefault ? '' : dates); + } + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + inst.currentDay = (dates ? date.getDate() : 0); + inst.currentMonth = (dates ? date.getMonth() : 0); + inst.currentYear = (dates ? date.getFullYear() : 0); + this._adjustInstDate(inst); + }, + + /* Retrieve the default date shown on opening. */ + _getDefaultDate: function(inst) { + return this._restrictMinMax(inst, + this._determineDate(inst, this._get(inst, 'defaultDate'), new Date())); + }, + + /* A date may be specified as an exact value or a relative one. */ + _determineDate: function(inst, date, defaultDate) { + var offsetNumeric = function(offset) { + var date = new Date(); + date.setDate(date.getDate() + offset); + return date; + }; + var offsetString = function(offset) { + try { + return $.datepicker.parseDate($.datepicker._get(inst, 'dateFormat'), + offset, $.datepicker._getFormatConfig(inst)); + } + catch (e) { + // Ignore + } + var date = (offset.toLowerCase().match(/^c/) ? + $.datepicker._getDate(inst) : null) || new Date(); + var year = date.getFullYear(); + var month = date.getMonth(); + var day = date.getDate(); + var pattern = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g; + var matches = pattern.exec(offset); + while (matches) { + switch (matches[2] || 'd') { + case 'd' : case 'D' : + day += parseInt(matches[1],10); break; + case 'w' : case 'W' : + day += parseInt(matches[1],10) * 7; break; + case 'm' : case 'M' : + month += parseInt(matches[1],10); + day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); + break; + case 'y': case 'Y' : + year += parseInt(matches[1],10); + day = Math.min(day, $.datepicker._getDaysInMonth(year, month)); + break; + } + matches = pattern.exec(offset); + } + return new Date(year, month, day); + }; + var newDate = (date == null || date === '' ? defaultDate : (typeof date == 'string' ? offsetString(date) : + (typeof date == 'number' ? (isNaN(date) ? defaultDate : offsetNumeric(date)) : new Date(date.getTime())))); + newDate = (newDate && newDate.toString() == 'Invalid Date' ? defaultDate : newDate); + if (newDate) { + newDate.setHours(0); + newDate.setMinutes(0); + newDate.setSeconds(0); + newDate.setMilliseconds(0); + } + return this._daylightSavingAdjust(newDate); + }, + + /* Handle switch to/from daylight saving. + Hours may be non-zero on daylight saving cut-over: + > 12 when midnight changeover, but then cannot generate + midnight datetime, so jump to 1AM, otherwise reset. + @param date (Date) the date to check + @return (Date) the corrected date */ + _daylightSavingAdjust: function(date) { + if (!date) return null; + date.setHours(date.getHours() > 12 ? date.getHours() + 2 : 0); + return date; + }, + + /* Set the date(s) directly. */ + _setDate: function(inst, date, noChange) { + var clear = !date; + var origMonth = inst.selectedMonth; + var origYear = inst.selectedYear; + var newDate = this._restrictMinMax(inst, this._determineDate(inst, date, new Date())); + inst.selectedDay = inst.currentDay = newDate.getDate(); + inst.drawMonth = inst.selectedMonth = inst.currentMonth = newDate.getMonth(); + inst.drawYear = inst.selectedYear = inst.currentYear = newDate.getFullYear(); + if ((origMonth != inst.selectedMonth || origYear != inst.selectedYear) && !noChange) + this._notifyChange(inst); + this._adjustInstDate(inst); + if (inst.input) { + inst.input.val(clear ? '' : this._formatDate(inst)); + } + }, + + /* Retrieve the date(s) directly. */ + _getDate: function(inst) { + var startDate = (!inst.currentYear || (inst.input && inst.input.val() == '') ? null : + this._daylightSavingAdjust(new Date( + inst.currentYear, inst.currentMonth, inst.currentDay))); + return startDate; + }, + + /* Generate the HTML for the current state of the date picker. */ + _generateHTML: function(inst) { + var today = new Date(); + today = this._daylightSavingAdjust( + new Date(today.getFullYear(), today.getMonth(), today.getDate())); // clear time + var isRTL = this._get(inst, 'isRTL'); + var showButtonPanel = this._get(inst, 'showButtonPanel'); + var hideIfNoPrevNext = this._get(inst, 'hideIfNoPrevNext'); + var navigationAsDateFormat = this._get(inst, 'navigationAsDateFormat'); + var numMonths = this._getNumberOfMonths(inst); + var showCurrentAtPos = this._get(inst, 'showCurrentAtPos'); + var stepMonths = this._get(inst, 'stepMonths'); + var isMultiMonth = (numMonths[0] != 1 || numMonths[1] != 1); + var currentDate = this._daylightSavingAdjust((!inst.currentDay ? new Date(9999, 9, 9) : + new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); + var minDate = this._getMinMaxDate(inst, 'min'); + var maxDate = this._getMinMaxDate(inst, 'max'); + var drawMonth = inst.drawMonth - showCurrentAtPos; + var drawYear = inst.drawYear; + if (drawMonth < 0) { + drawMonth += 12; + drawYear--; + } + if (maxDate) { + var maxDraw = this._daylightSavingAdjust(new Date(maxDate.getFullYear(), + maxDate.getMonth() - (numMonths[0] * numMonths[1]) + 1, maxDate.getDate())); + maxDraw = (minDate && maxDraw < minDate ? minDate : maxDraw); + while (this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1)) > maxDraw) { + drawMonth--; + if (drawMonth < 0) { + drawMonth = 11; + drawYear--; + } + } + } + inst.drawMonth = drawMonth; + inst.drawYear = drawYear; + var prevText = this._get(inst, 'prevText'); + prevText = (!navigationAsDateFormat ? prevText : this.formatDate(prevText, + this._daylightSavingAdjust(new Date(drawYear, drawMonth - stepMonths, 1)), + this._getFormatConfig(inst))); + var prev = (this._canAdjustMonth(inst, -1, drawYear, drawMonth) ? + '' + prevText + '' : + (hideIfNoPrevNext ? '' : '' + prevText + '')); + var nextText = this._get(inst, 'nextText'); + nextText = (!navigationAsDateFormat ? nextText : this.formatDate(nextText, + this._daylightSavingAdjust(new Date(drawYear, drawMonth + stepMonths, 1)), + this._getFormatConfig(inst))); + var next = (this._canAdjustMonth(inst, +1, drawYear, drawMonth) ? + '' + nextText + '' : + (hideIfNoPrevNext ? '' : '' + nextText + '')); + var currentText = this._get(inst, 'currentText'); + var gotoDate = (this._get(inst, 'gotoCurrent') && inst.currentDay ? currentDate : today); + currentText = (!navigationAsDateFormat ? currentText : + this.formatDate(currentText, gotoDate, this._getFormatConfig(inst))); + var controls = (!inst.inline ? '' : ''); + var buttonPanel = (showButtonPanel) ? '
        ' + (isRTL ? controls : '') + + (this._isInRange(inst, gotoDate) ? '' : '') + (isRTL ? '' : controls) + '
        ' : ''; + var firstDay = parseInt(this._get(inst, 'firstDay'),10); + firstDay = (isNaN(firstDay) ? 0 : firstDay); + var showWeek = this._get(inst, 'showWeek'); + var dayNames = this._get(inst, 'dayNames'); + var dayNamesShort = this._get(inst, 'dayNamesShort'); + var dayNamesMin = this._get(inst, 'dayNamesMin'); + var monthNames = this._get(inst, 'monthNames'); + var monthNamesShort = this._get(inst, 'monthNamesShort'); + var beforeShowDay = this._get(inst, 'beforeShowDay'); + var showOtherMonths = this._get(inst, 'showOtherMonths'); + var selectOtherMonths = this._get(inst, 'selectOtherMonths'); + var calculateWeek = this._get(inst, 'calculateWeek') || this.iso8601Week; + var defaultDate = this._getDefaultDate(inst); + var html = ''; + for (var row = 0; row < numMonths[0]; row++) { + var group = ''; + for (var col = 0; col < numMonths[1]; col++) { + var selectedDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, inst.selectedDay)); + var cornerClass = ' ui-corner-all'; + var calender = ''; + if (isMultiMonth) { + calender += '
        '; + } + calender += '
        ' + + (/all|left/.test(cornerClass) && row == 0 ? (isRTL ? next : prev) : '') + + (/all|right/.test(cornerClass) && row == 0 ? (isRTL ? prev : next) : '') + + this._generateMonthYearHeader(inst, drawMonth, drawYear, minDate, maxDate, + row > 0 || col > 0, monthNames, monthNamesShort) + // draw month headers + '
        ' + + ''; + var thead = (showWeek ? '' : ''); + for (var dow = 0; dow < 7; dow++) { // days of the week + var day = (dow + firstDay) % 7; + thead += '= 5 ? ' class="ui-datepicker-week-end"' : '') + '>' + + '' + dayNamesMin[day] + ''; + } + calender += thead + ''; + var daysInMonth = this._getDaysInMonth(drawYear, drawMonth); + if (drawYear == inst.selectedYear && drawMonth == inst.selectedMonth) + inst.selectedDay = Math.min(inst.selectedDay, daysInMonth); + var leadDays = (this._getFirstDayOfMonth(drawYear, drawMonth) - firstDay + 7) % 7; + var numRows = (isMultiMonth ? 6 : Math.ceil((leadDays + daysInMonth) / 7)); // calculate the number of rows to generate + var printDate = this._daylightSavingAdjust(new Date(drawYear, drawMonth, 1 - leadDays)); + for (var dRow = 0; dRow < numRows; dRow++) { // create date picker rows + calender += ''; + var tbody = (!showWeek ? '' : ''); + for (var dow = 0; dow < 7; dow++) { // create date picker days + var daySettings = (beforeShowDay ? + beforeShowDay.apply((inst.input ? inst.input[0] : null), [printDate]) : [true, '']); + var otherMonth = (printDate.getMonth() != drawMonth); + var unselectable = (otherMonth && !selectOtherMonths) || !daySettings[0] || + (minDate && printDate < minDate) || (maxDate && printDate > maxDate); + tbody += ''; // display selectable date + printDate.setDate(printDate.getDate() + 1); + printDate = this._daylightSavingAdjust(printDate); + } + calender += tbody + ''; + } + drawMonth++; + if (drawMonth > 11) { + drawMonth = 0; + drawYear++; + } + calender += '
        ' + this._get(inst, 'weekHeader') + '
        ' + + this._get(inst, 'calculateWeek')(printDate) + '' + // actions + (otherMonth && !showOtherMonths ? ' ' : // display for other months + (unselectable ? '' + printDate.getDate() + '' : '' + printDate.getDate() + '')) + '
        ' + (isMultiMonth ? '
        ' + + ((numMonths[0] > 0 && col == numMonths[1]-1) ? '
        ' : '') : ''); + group += calender; + } + html += group; + } + html += buttonPanel + ($.browser.msie && parseInt($.browser.version,10) < 7 && !inst.inline ? + '' : ''); + inst._keyEvent = false; + return html; + }, + + /* Generate the month and year header. */ + _generateMonthYearHeader: function(inst, drawMonth, drawYear, minDate, maxDate, + secondary, monthNames, monthNamesShort) { + var changeMonth = this._get(inst, 'changeMonth'); + var changeYear = this._get(inst, 'changeYear'); + var showMonthAfterYear = this._get(inst, 'showMonthAfterYear'); + var html = '
        '; + var monthHtml = ''; + // month selection + if (secondary || !changeMonth) + monthHtml += '' + monthNames[drawMonth] + ''; + else { + var inMinYear = (minDate && minDate.getFullYear() == drawYear); + var inMaxYear = (maxDate && maxDate.getFullYear() == drawYear); + monthHtml += ''; + } + if (!showMonthAfterYear) + html += monthHtml + (secondary || !(changeMonth && changeYear) ? ' ' : ''); + // year selection + inst.yearshtml = ''; + if (secondary || !changeYear) + html += '' + drawYear + ''; + else { + // determine range of years to display + var years = this._get(inst, 'yearRange').split(':'); + var thisYear = new Date().getFullYear(); + var determineYear = function(value) { + var year = (value.match(/c[+-].*/) ? drawYear + parseInt(value.substring(1), 10) : + (value.match(/[+-].*/) ? thisYear + parseInt(value, 10) : + parseInt(value, 10))); + return (isNaN(year) ? thisYear : year); + }; + var year = determineYear(years[0]); + var endYear = Math.max(year, determineYear(years[1] || '')); + year = (minDate ? Math.max(year, minDate.getFullYear()) : year); + endYear = (maxDate ? Math.min(endYear, maxDate.getFullYear()) : endYear); + inst.yearshtml += ''; + //when showing there is no need for later update + if( ! $.browser.mozilla ){ + html += inst.yearshtml; + inst.yearshtml = null; + } else { + // will be replaced later with inst.yearshtml + html += ''; + } + } + html += this._get(inst, 'yearSuffix'); + if (showMonthAfterYear) + html += (secondary || !(changeMonth && changeYear) ? ' ' : '') + monthHtml; + html += '
        '; // Close datepicker_header + return html; + }, + + /* Adjust one of the date sub-fields. */ + _adjustInstDate: function(inst, offset, period) { + var year = inst.drawYear + (period == 'Y' ? offset : 0); + var month = inst.drawMonth + (period == 'M' ? offset : 0); + var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) + + (period == 'D' ? offset : 0); + var date = this._restrictMinMax(inst, + this._daylightSavingAdjust(new Date(year, month, day))); + inst.selectedDay = date.getDate(); + inst.drawMonth = inst.selectedMonth = date.getMonth(); + inst.drawYear = inst.selectedYear = date.getFullYear(); + if (period == 'M' || period == 'Y') + this._notifyChange(inst); + }, + + /* Ensure a date is within any min/max bounds. */ + _restrictMinMax: function(inst, date) { + var minDate = this._getMinMaxDate(inst, 'min'); + var maxDate = this._getMinMaxDate(inst, 'max'); + var newDate = (minDate && date < minDate ? minDate : date); + newDate = (maxDate && newDate > maxDate ? maxDate : newDate); + return newDate; + }, + + /* Notify change of month/year. */ + _notifyChange: function(inst) { + var onChange = this._get(inst, 'onChangeMonthYear'); + if (onChange) + onChange.apply((inst.input ? inst.input[0] : null), + [inst.selectedYear, inst.selectedMonth + 1, inst]); + }, + + /* Determine the number of months to show. */ + _getNumberOfMonths: function(inst) { + var numMonths = this._get(inst, 'numberOfMonths'); + return (numMonths == null ? [1, 1] : (typeof numMonths == 'number' ? [1, numMonths] : numMonths)); + }, + + /* Determine the current maximum date - ensure no time components are set. */ + _getMinMaxDate: function(inst, minMax) { + return this._determineDate(inst, this._get(inst, minMax + 'Date'), null); + }, + + /* Find the number of days in a given month. */ + _getDaysInMonth: function(year, month) { + return 32 - this._daylightSavingAdjust(new Date(year, month, 32)).getDate(); + }, + + /* Find the day of the week of the first of a month. */ + _getFirstDayOfMonth: function(year, month) { + return new Date(year, month, 1).getDay(); + }, + + /* Determines if we should allow a "next/prev" month display change. */ + _canAdjustMonth: function(inst, offset, curYear, curMonth) { + var numMonths = this._getNumberOfMonths(inst); + var date = this._daylightSavingAdjust(new Date(curYear, + curMonth + (offset < 0 ? offset : numMonths[0] * numMonths[1]), 1)); + if (offset < 0) + date.setDate(this._getDaysInMonth(date.getFullYear(), date.getMonth())); + return this._isInRange(inst, date); + }, + + /* Is the given date in the accepted range? */ + _isInRange: function(inst, date) { + var minDate = this._getMinMaxDate(inst, 'min'); + var maxDate = this._getMinMaxDate(inst, 'max'); + return ((!minDate || date.getTime() >= minDate.getTime()) && + (!maxDate || date.getTime() <= maxDate.getTime())); + }, + + /* Provide the configuration settings for formatting/parsing. */ + _getFormatConfig: function(inst) { + var shortYearCutoff = this._get(inst, 'shortYearCutoff'); + shortYearCutoff = (typeof shortYearCutoff != 'string' ? shortYearCutoff : + new Date().getFullYear() % 100 + parseInt(shortYearCutoff, 10)); + return {shortYearCutoff: shortYearCutoff, + dayNamesShort: this._get(inst, 'dayNamesShort'), dayNames: this._get(inst, 'dayNames'), + monthNamesShort: this._get(inst, 'monthNamesShort'), monthNames: this._get(inst, 'monthNames')}; + }, + + /* Format the given date for display. */ + _formatDate: function(inst, day, month, year) { + if (!day) { + inst.currentDay = inst.selectedDay; + inst.currentMonth = inst.selectedMonth; + inst.currentYear = inst.selectedYear; + } + var date = (day ? (typeof day == 'object' ? day : + this._daylightSavingAdjust(new Date(year, month, day))) : + this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay))); + return this.formatDate(this._get(inst, 'dateFormat'), date, this._getFormatConfig(inst)); + } +}); + +/* jQuery extend now ignores nulls! */ +function extendRemove(target, props) { + $.extend(target, props); + for (var name in props) + if (props[name] == null || props[name] == undefined) + target[name] = props[name]; + return target; +}; + +/* Determine whether an object is an array. */ +function isArray(a) { + return (a && (($.browser.safari && typeof a == 'object' && a.length) || + (a.constructor && a.constructor.toString().match(/\Array\(\)/)))); +}; + +/* Invoke the datepicker functionality. + @param options string - a command, optionally followed by additional parameters or + Object - settings for attaching new datepicker functionality + @return jQuery object */ +$.fn.datepicker = function(options){ + + /* Verify an empty collection wasn't passed - Fixes #6976 */ + if ( !this.length ) { + return this; + } + + /* Initialise the date picker. */ + if (!$.datepicker.initialized) { + $(document).mousedown($.datepicker._checkExternalClick). + find('body').append($.datepicker.dpDiv); + $.datepicker.initialized = true; + } + + var otherArgs = Array.prototype.slice.call(arguments, 1); + if (typeof options == 'string' && (options == 'isDisabled' || options == 'getDate' || options == 'widget')) + return $.datepicker['_' + options + 'Datepicker']. + apply($.datepicker, [this[0]].concat(otherArgs)); + if (options == 'option' && arguments.length == 2 && typeof arguments[1] == 'string') + return $.datepicker['_' + options + 'Datepicker']. + apply($.datepicker, [this[0]].concat(otherArgs)); + return this.each(function() { + typeof options == 'string' ? + $.datepicker['_' + options + 'Datepicker']. + apply($.datepicker, [this].concat(otherArgs)) : + $.datepicker._attachDatepicker(this, options); + }); +}; + +$.datepicker = new Datepicker(); // singleton instance +$.datepicker.initialized = false; +$.datepicker.uuid = new Date().getTime(); +$.datepicker.version = "1.8.10"; + +// Workaround for #4055 +// Add another global to avoid noConflict issues with inline event handlers +window['DP_jQuery_' + dpuuid] = $; + +})(jQuery); diff --git a/js/ui/jquery.ui.dialog.js b/js/ui/jquery.ui.dialog.js new file mode 100644 index 0000000000..af9fafb528 --- /dev/null +++ b/js/ui/jquery.ui.dialog.js @@ -0,0 +1,857 @@ +/* + * jQuery UI Dialog 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Dialog + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.button.js + * jquery.ui.draggable.js + * jquery.ui.mouse.js + * jquery.ui.position.js + * jquery.ui.resizable.js + */ +(function( $, undefined ) { + +var uiDialogClasses = + 'ui-dialog ' + + 'ui-widget ' + + 'ui-widget-content ' + + 'ui-corner-all ', + sizeRelatedOptions = { + buttons: true, + height: true, + maxHeight: true, + maxWidth: true, + minHeight: true, + minWidth: true, + width: true + }, + resizableRelatedOptions = { + maxHeight: true, + maxWidth: true, + minHeight: true, + minWidth: true + }; + +$.widget("ui.dialog", { + options: { + autoOpen: true, + buttons: {}, + closeOnEscape: true, + closeText: 'close', + dialogClass: '', + draggable: true, + hide: null, + height: 'auto', + maxHeight: false, + maxWidth: false, + minHeight: 150, + minWidth: 150, + modal: false, + position: { + my: 'center', + at: 'center', + collision: 'fit', + // ensure that the titlebar is never outside the document + using: function(pos) { + var topOffset = $(this).css(pos).offset().top; + if (topOffset < 0) { + $(this).css('top', pos.top - topOffset); + } + } + }, + resizable: true, + show: null, + stack: true, + title: '', + width: 300, + zIndex: 1000 + }, + + _create: function() { + this.originalTitle = this.element.attr('title'); + // #5742 - .attr() might return a DOMElement + if ( typeof this.originalTitle !== "string" ) { + this.originalTitle = ""; + } + + this.options.title = this.options.title || this.originalTitle; + var self = this, + options = self.options, + + title = options.title || ' ', + titleId = $.ui.dialog.getTitleId(self.element), + + uiDialog = (self.uiDialog = $('
        ')) + .appendTo(document.body) + .hide() + .addClass(uiDialogClasses + options.dialogClass) + .css({ + zIndex: options.zIndex + }) + // setting tabIndex makes the div focusable + // setting outline to 0 prevents a border on focus in Mozilla + .attr('tabIndex', -1).css('outline', 0).keydown(function(event) { + if (options.closeOnEscape && event.keyCode && + event.keyCode === $.ui.keyCode.ESCAPE) { + + self.close(event); + event.preventDefault(); + } + }) + .attr({ + role: 'dialog', + 'aria-labelledby': titleId + }) + .mousedown(function(event) { + self.moveToTop(false, event); + }), + + uiDialogContent = self.element + .show() + .removeAttr('title') + .addClass( + 'ui-dialog-content ' + + 'ui-widget-content') + .appendTo(uiDialog), + + uiDialogTitlebar = (self.uiDialogTitlebar = $('
        ')) + .addClass( + 'ui-dialog-titlebar ' + + 'ui-widget-header ' + + 'ui-corner-all ' + + 'ui-helper-clearfix' + ) + .prependTo(uiDialog), + + uiDialogTitlebarClose = $('') + .addClass( + 'ui-dialog-titlebar-close ' + + 'ui-corner-all' + ) + .attr('role', 'button') + .hover( + function() { + uiDialogTitlebarClose.addClass('ui-state-hover'); + }, + function() { + uiDialogTitlebarClose.removeClass('ui-state-hover'); + } + ) + .focus(function() { + uiDialogTitlebarClose.addClass('ui-state-focus'); + }) + .blur(function() { + uiDialogTitlebarClose.removeClass('ui-state-focus'); + }) + .click(function(event) { + self.close(event); + return false; + }) + .appendTo(uiDialogTitlebar), + + uiDialogTitlebarCloseText = (self.uiDialogTitlebarCloseText = $('')) + .addClass( + 'ui-icon ' + + 'ui-icon-closethick' + ) + .text(options.closeText) + .appendTo(uiDialogTitlebarClose), + + uiDialogTitle = $('') + .addClass('ui-dialog-title') + .attr('id', titleId) + .html(title) + .prependTo(uiDialogTitlebar); + + //handling of deprecated beforeclose (vs beforeClose) option + //Ticket #4669 http://dev.jqueryui.com/ticket/4669 + //TODO: remove in 1.9pre + if ($.isFunction(options.beforeclose) && !$.isFunction(options.beforeClose)) { + options.beforeClose = options.beforeclose; + } + + uiDialogTitlebar.find("*").add(uiDialogTitlebar).disableSelection(); + + if (options.draggable && $.fn.draggable) { + self._makeDraggable(); + } + if (options.resizable && $.fn.resizable) { + self._makeResizable(); + } + + self._createButtons(options.buttons); + self._isOpen = false; + + if ($.fn.bgiframe) { + uiDialog.bgiframe(); + } + }, + + _init: function() { + if ( this.options.autoOpen ) { + this.open(); + } + }, + + destroy: function() { + var self = this; + + if (self.overlay) { + self.overlay.destroy(); + } + self.uiDialog.hide(); + self.element + .unbind('.dialog') + .removeData('dialog') + .removeClass('ui-dialog-content ui-widget-content') + .hide().appendTo('body'); + self.uiDialog.remove(); + + if (self.originalTitle) { + self.element.attr('title', self.originalTitle); + } + + return self; + }, + + widget: function() { + return this.uiDialog; + }, + + close: function(event) { + var self = this, + maxZ, thisZ; + + if (false === self._trigger('beforeClose', event)) { + return; + } + + if (self.overlay) { + self.overlay.destroy(); + } + self.uiDialog.unbind('keypress.ui-dialog'); + + self._isOpen = false; + + if (self.options.hide) { + self.uiDialog.hide(self.options.hide, function() { + self._trigger('close', event); + }); + } else { + self.uiDialog.hide(); + self._trigger('close', event); + } + + $.ui.dialog.overlay.resize(); + + // adjust the maxZ to allow other modal dialogs to continue to work (see #4309) + if (self.options.modal) { + maxZ = 0; + $('.ui-dialog').each(function() { + if (this !== self.uiDialog[0]) { + thisZ = $(this).css('z-index'); + if(!isNaN(thisZ)) { + maxZ = Math.max(maxZ, thisZ); + } + } + }); + $.ui.dialog.maxZ = maxZ; + } + + return self; + }, + + isOpen: function() { + return this._isOpen; + }, + + // the force parameter allows us to move modal dialogs to their correct + // position on open + moveToTop: function(force, event) { + var self = this, + options = self.options, + saveScroll; + + if ((options.modal && !force) || + (!options.stack && !options.modal)) { + return self._trigger('focus', event); + } + + if (options.zIndex > $.ui.dialog.maxZ) { + $.ui.dialog.maxZ = options.zIndex; + } + if (self.overlay) { + $.ui.dialog.maxZ += 1; + self.overlay.$el.css('z-index', $.ui.dialog.overlay.maxZ = $.ui.dialog.maxZ); + } + + //Save and then restore scroll since Opera 9.5+ resets when parent z-Index is changed. + // http://ui.jquery.com/bugs/ticket/3193 + saveScroll = { scrollTop: self.element.attr('scrollTop'), scrollLeft: self.element.attr('scrollLeft') }; + $.ui.dialog.maxZ += 1; + self.uiDialog.css('z-index', $.ui.dialog.maxZ); + self.element.attr(saveScroll); + self._trigger('focus', event); + + return self; + }, + + open: function() { + if (this._isOpen) { return; } + + var self = this, + options = self.options, + uiDialog = self.uiDialog; + + self.overlay = options.modal ? new $.ui.dialog.overlay(self) : null; + self._size(); + self._position(options.position); + uiDialog.show(options.show); + self.moveToTop(true); + + // prevent tabbing out of modal dialogs + if (options.modal) { + uiDialog.bind('keypress.ui-dialog', function(event) { + if (event.keyCode !== $.ui.keyCode.TAB) { + return; + } + + var tabbables = $(':tabbable', this), + first = tabbables.filter(':first'), + last = tabbables.filter(':last'); + + if (event.target === last[0] && !event.shiftKey) { + first.focus(1); + return false; + } else if (event.target === first[0] && event.shiftKey) { + last.focus(1); + return false; + } + }); + } + + // set focus to the first tabbable element in the content area or the first button + // if there are no tabbable elements, set focus on the dialog itself + $(self.element.find(':tabbable').get().concat( + uiDialog.find('.ui-dialog-buttonpane :tabbable').get().concat( + uiDialog.get()))).eq(0).focus(); + + self._isOpen = true; + self._trigger('open'); + + return self; + }, + + _createButtons: function(buttons) { + var self = this, + hasButtons = false, + uiDialogButtonPane = $('
        ') + .addClass( + 'ui-dialog-buttonpane ' + + 'ui-widget-content ' + + 'ui-helper-clearfix' + ), + uiButtonSet = $( "
        " ) + .addClass( "ui-dialog-buttonset" ) + .appendTo( uiDialogButtonPane ); + + // if we already have a button pane, remove it + self.uiDialog.find('.ui-dialog-buttonpane').remove(); + + if (typeof buttons === 'object' && buttons !== null) { + $.each(buttons, function() { + return !(hasButtons = true); + }); + } + if (hasButtons) { + $.each(buttons, function(name, props) { + props = $.isFunction( props ) ? + { click: props, text: name } : + props; + var button = $('') + .attr( props, true ) + .unbind('click') + .click(function() { + props.click.apply(self.element[0], arguments); + }) + .appendTo(uiButtonSet); + if ($.fn.button) { + button.button(); + } + }); + uiDialogButtonPane.appendTo(self.uiDialog); + } + }, + + _makeDraggable: function() { + var self = this, + options = self.options, + doc = $(document), + heightBeforeDrag; + + function filteredUi(ui) { + return { + position: ui.position, + offset: ui.offset + }; + } + + self.uiDialog.draggable({ + cancel: '.ui-dialog-content, .ui-dialog-titlebar-close', + handle: '.ui-dialog-titlebar', + containment: 'document', + start: function(event, ui) { + heightBeforeDrag = options.height === "auto" ? "auto" : $(this).height(); + $(this).height($(this).height()).addClass("ui-dialog-dragging"); + self._trigger('dragStart', event, filteredUi(ui)); + }, + drag: function(event, ui) { + self._trigger('drag', event, filteredUi(ui)); + }, + stop: function(event, ui) { + options.position = [ui.position.left - doc.scrollLeft(), + ui.position.top - doc.scrollTop()]; + $(this).removeClass("ui-dialog-dragging").height(heightBeforeDrag); + self._trigger('dragStop', event, filteredUi(ui)); + $.ui.dialog.overlay.resize(); + } + }); + }, + + _makeResizable: function(handles) { + handles = (handles === undefined ? this.options.resizable : handles); + var self = this, + options = self.options, + // .ui-resizable has position: relative defined in the stylesheet + // but dialogs have to use absolute or fixed positioning + position = self.uiDialog.css('position'), + resizeHandles = (typeof handles === 'string' ? + handles : + 'n,e,s,w,se,sw,ne,nw' + ); + + function filteredUi(ui) { + return { + originalPosition: ui.originalPosition, + originalSize: ui.originalSize, + position: ui.position, + size: ui.size + }; + } + + self.uiDialog.resizable({ + cancel: '.ui-dialog-content', + containment: 'document', + alsoResize: self.element, + maxWidth: options.maxWidth, + maxHeight: options.maxHeight, + minWidth: options.minWidth, + minHeight: self._minHeight(), + handles: resizeHandles, + start: function(event, ui) { + $(this).addClass("ui-dialog-resizing"); + self._trigger('resizeStart', event, filteredUi(ui)); + }, + resize: function(event, ui) { + self._trigger('resize', event, filteredUi(ui)); + }, + stop: function(event, ui) { + $(this).removeClass("ui-dialog-resizing"); + options.height = $(this).height(); + options.width = $(this).width(); + self._trigger('resizeStop', event, filteredUi(ui)); + $.ui.dialog.overlay.resize(); + } + }) + .css('position', position) + .find('.ui-resizable-se').addClass('ui-icon ui-icon-grip-diagonal-se'); + }, + + _minHeight: function() { + var options = this.options; + + if (options.height === 'auto') { + return options.minHeight; + } else { + return Math.min(options.minHeight, options.height); + } + }, + + _position: function(position) { + var myAt = [], + offset = [0, 0], + isVisible; + + if (position) { + // deep extending converts arrays to objects in jQuery <= 1.3.2 :-( + // if (typeof position == 'string' || $.isArray(position)) { + // myAt = $.isArray(position) ? position : position.split(' '); + + if (typeof position === 'string' || (typeof position === 'object' && '0' in position)) { + myAt = position.split ? position.split(' ') : [position[0], position[1]]; + if (myAt.length === 1) { + myAt[1] = myAt[0]; + } + + $.each(['left', 'top'], function(i, offsetPosition) { + if (+myAt[i] === myAt[i]) { + offset[i] = myAt[i]; + myAt[i] = offsetPosition; + } + }); + + position = { + my: myAt.join(" "), + at: myAt.join(" "), + offset: offset.join(" ") + }; + } + + position = $.extend({}, $.ui.dialog.prototype.options.position, position); + } else { + position = $.ui.dialog.prototype.options.position; + } + + // need to show the dialog to get the actual offset in the position plugin + isVisible = this.uiDialog.is(':visible'); + if (!isVisible) { + this.uiDialog.show(); + } + this.uiDialog + // workaround for jQuery bug #5781 http://dev.jquery.com/ticket/5781 + .css({ top: 0, left: 0 }) + .position($.extend({ of: window }, position)); + if (!isVisible) { + this.uiDialog.hide(); + } + }, + + _setOptions: function( options ) { + var self = this, + resizableOptions = {}, + resize = false; + + $.each( options, function( key, value ) { + self._setOption( key, value ); + + if ( key in sizeRelatedOptions ) { + resize = true; + } + if ( key in resizableRelatedOptions ) { + resizableOptions[ key ] = value; + } + }); + + if ( resize ) { + this._size(); + } + if ( this.uiDialog.is( ":data(resizable)" ) ) { + this.uiDialog.resizable( "option", resizableOptions ); + } + }, + + _setOption: function(key, value){ + var self = this, + uiDialog = self.uiDialog; + + switch (key) { + //handling of deprecated beforeclose (vs beforeClose) option + //Ticket #4669 http://dev.jqueryui.com/ticket/4669 + //TODO: remove in 1.9pre + case "beforeclose": + key = "beforeClose"; + break; + case "buttons": + self._createButtons(value); + break; + case "closeText": + // ensure that we always pass a string + self.uiDialogTitlebarCloseText.text("" + value); + break; + case "dialogClass": + uiDialog + .removeClass(self.options.dialogClass) + .addClass(uiDialogClasses + value); + break; + case "disabled": + if (value) { + uiDialog.addClass('ui-dialog-disabled'); + } else { + uiDialog.removeClass('ui-dialog-disabled'); + } + break; + case "draggable": + var isDraggable = uiDialog.is( ":data(draggable)" ); + if ( isDraggable && !value ) { + uiDialog.draggable( "destroy" ); + } + + if ( !isDraggable && value ) { + self._makeDraggable(); + } + break; + case "position": + self._position(value); + break; + case "resizable": + // currently resizable, becoming non-resizable + var isResizable = uiDialog.is( ":data(resizable)" ); + if (isResizable && !value) { + uiDialog.resizable('destroy'); + } + + // currently resizable, changing handles + if (isResizable && typeof value === 'string') { + uiDialog.resizable('option', 'handles', value); + } + + // currently non-resizable, becoming resizable + if (!isResizable && value !== false) { + self._makeResizable(value); + } + break; + case "title": + // convert whatever was passed in o a string, for html() to not throw up + $(".ui-dialog-title", self.uiDialogTitlebar).html("" + (value || ' ')); + break; + } + + $.Widget.prototype._setOption.apply(self, arguments); + }, + + _size: function() { + /* If the user has resized the dialog, the .ui-dialog and .ui-dialog-content + * divs will both have width and height set, so we need to reset them + */ + var options = this.options, + nonContentHeight, + minContentHeight, + isVisible = this.uiDialog.is( ":visible" ); + + // reset content sizing + this.element.show().css({ + width: 'auto', + minHeight: 0, + height: 0 + }); + + if (options.minWidth > options.width) { + options.width = options.minWidth; + } + + // reset wrapper sizing + // determine the height of all the non-content elements + nonContentHeight = this.uiDialog.css({ + height: 'auto', + width: options.width + }) + .height(); + minContentHeight = Math.max( 0, options.minHeight - nonContentHeight ); + + if ( options.height === "auto" ) { + // only needed for IE6 support + if ( $.support.minHeight ) { + this.element.css({ + minHeight: minContentHeight, + height: "auto" + }); + } else { + this.uiDialog.show(); + var autoHeight = this.element.css( "height", "auto" ).height(); + if ( !isVisible ) { + this.uiDialog.hide(); + } + this.element.height( Math.max( autoHeight, minContentHeight ) ); + } + } else { + this.element.height( Math.max( options.height - nonContentHeight, 0 ) ); + } + + if (this.uiDialog.is(':data(resizable)')) { + this.uiDialog.resizable('option', 'minHeight', this._minHeight()); + } + } +}); + +$.extend($.ui.dialog, { + version: "1.8.10", + + uuid: 0, + maxZ: 0, + + getTitleId: function($el) { + var id = $el.attr('id'); + if (!id) { + this.uuid += 1; + id = this.uuid; + } + return 'ui-dialog-title-' + id; + }, + + overlay: function(dialog) { + this.$el = $.ui.dialog.overlay.create(dialog); + } +}); + +$.extend($.ui.dialog.overlay, { + instances: [], + // reuse old instances due to IE memory leak with alpha transparency (see #5185) + oldInstances: [], + maxZ: 0, + events: $.map('focus,mousedown,mouseup,keydown,keypress,click'.split(','), + function(event) { return event + '.dialog-overlay'; }).join(' '), + create: function(dialog) { + if (this.instances.length === 0) { + // prevent use of anchors and inputs + // we use a setTimeout in case the overlay is created from an + // event that we're going to be cancelling (see #2804) + setTimeout(function() { + // handle $(el).dialog().dialog('close') (see #4065) + if ($.ui.dialog.overlay.instances.length) { + $(document).bind($.ui.dialog.overlay.events, function(event) { + // stop events if the z-index of the target is < the z-index of the overlay + // we cannot return true when we don't want to cancel the event (#3523) + if ($(event.target).zIndex() < $.ui.dialog.overlay.maxZ) { + return false; + } + }); + } + }, 1); + + // allow closing by pressing the escape key + $(document).bind('keydown.dialog-overlay', function(event) { + if (dialog.options.closeOnEscape && event.keyCode && + event.keyCode === $.ui.keyCode.ESCAPE) { + + dialog.close(event); + event.preventDefault(); + } + }); + + // handle window resize + $(window).bind('resize.dialog-overlay', $.ui.dialog.overlay.resize); + } + + var $el = (this.oldInstances.pop() || $('
        ').addClass('ui-widget-overlay')) + .appendTo(document.body) + .css({ + width: this.width(), + height: this.height() + }); + + if ($.fn.bgiframe) { + $el.bgiframe(); + } + + this.instances.push($el); + return $el; + }, + + destroy: function($el) { + var indexOf = $.inArray($el, this.instances); + if (indexOf != -1){ + this.oldInstances.push(this.instances.splice(indexOf, 1)[0]); + } + + if (this.instances.length === 0) { + $([document, window]).unbind('.dialog-overlay'); + } + + $el.remove(); + + // adjust the maxZ to allow other modal dialogs to continue to work (see #4309) + var maxZ = 0; + $.each(this.instances, function() { + maxZ = Math.max(maxZ, this.css('z-index')); + }); + this.maxZ = maxZ; + }, + + height: function() { + var scrollHeight, + offsetHeight; + // handle IE 6 + if ($.browser.msie && $.browser.version < 7) { + scrollHeight = Math.max( + document.documentElement.scrollHeight, + document.body.scrollHeight + ); + offsetHeight = Math.max( + document.documentElement.offsetHeight, + document.body.offsetHeight + ); + + if (scrollHeight < offsetHeight) { + return $(window).height() + 'px'; + } else { + return scrollHeight + 'px'; + } + // handle "good" browsers + } else { + return $(document).height() + 'px'; + } + }, + + width: function() { + var scrollWidth, + offsetWidth; + // handle IE 6 + if ($.browser.msie && $.browser.version < 7) { + scrollWidth = Math.max( + document.documentElement.scrollWidth, + document.body.scrollWidth + ); + offsetWidth = Math.max( + document.documentElement.offsetWidth, + document.body.offsetWidth + ); + + if (scrollWidth < offsetWidth) { + return $(window).width() + 'px'; + } else { + return scrollWidth + 'px'; + } + // handle "good" browsers + } else { + return $(document).width() + 'px'; + } + }, + + resize: function() { + /* If the dialog is draggable and the user drags it past the + * right edge of the window, the document becomes wider so we + * need to stretch the overlay. If the user then drags the + * dialog back to the left, the document will become narrower, + * so we need to shrink the overlay to the appropriate size. + * This is handled by shrinking the overlay before setting it + * to the full document size. + */ + var $overlays = $([]); + $.each($.ui.dialog.overlay.instances, function() { + $overlays = $overlays.add(this); + }); + + $overlays.css({ + width: 0, + height: 0 + }).css({ + width: $.ui.dialog.overlay.width(), + height: $.ui.dialog.overlay.height() + }); + } +}); + +$.extend($.ui.dialog.overlay.prototype, { + destroy: function() { + $.ui.dialog.overlay.destroy(this.$el); + } +}); + +}(jQuery)); diff --git a/js/ui/jquery.ui.draggable.js b/js/ui/jquery.ui.draggable.js new file mode 100644 index 0000000000..245d079a12 --- /dev/null +++ b/js/ui/jquery.ui.draggable.js @@ -0,0 +1,797 @@ +/* + * jQuery UI Draggable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget("ui.draggable", $.ui.mouse, { + widgetEventPrefix: "drag", + options: { + addClasses: true, + appendTo: "parent", + axis: false, + connectToSortable: false, + containment: false, + cursor: "auto", + cursorAt: false, + grid: false, + handle: false, + helper: "original", + iframeFix: false, + opacity: false, + refreshPositions: false, + revert: false, + revertDuration: 500, + scope: "default", + scroll: true, + scrollSensitivity: 20, + scrollSpeed: 20, + snap: false, + snapMode: "both", + snapTolerance: 20, + stack: false, + zIndex: false + }, + _create: function() { + + if (this.options.helper == 'original' && !(/^(?:r|a|f)/).test(this.element.css("position"))) + this.element[0].style.position = 'relative'; + + (this.options.addClasses && this.element.addClass("ui-draggable")); + (this.options.disabled && this.element.addClass("ui-draggable-disabled")); + + this._mouseInit(); + + }, + + destroy: function() { + if(!this.element.data('draggable')) return; + this.element + .removeData("draggable") + .unbind(".draggable") + .removeClass("ui-draggable" + + " ui-draggable-dragging" + + " ui-draggable-disabled"); + this._mouseDestroy(); + + return this; + }, + + _mouseCapture: function(event) { + + var o = this.options; + + // among others, prevent a drag on a resizable-handle + if (this.helper || o.disabled || $(event.target).is('.ui-resizable-handle')) + return false; + + //Quit if we're not on a valid handle + this.handle = this._getHandle(event); + if (!this.handle) + return false; + + return true; + + }, + + _mouseStart: function(event) { + + var o = this.options; + + //Create and append the visible helper + this.helper = this._createHelper(event); + + //Cache the helper size + this._cacheHelperProportions(); + + //If ddmanager is used for droppables, set the global draggable + if($.ui.ddmanager) + $.ui.ddmanager.current = this; + + /* + * - Position generation - + * This block generates everything position related - it's the core of draggables. + */ + + //Cache the margins of the original element + this._cacheMargins(); + + //Store the helper's css position + this.cssPosition = this.helper.css("position"); + this.scrollParent = this.helper.scrollParent(); + + //The element's absolute position on the page minus margins + this.offset = this.positionAbs = this.element.offset(); + this.offset = { + top: this.offset.top - this.margins.top, + left: this.offset.left - this.margins.left + }; + + $.extend(this.offset, { + click: { //Where the click happened, relative to the element + left: event.pageX - this.offset.left, + top: event.pageY - this.offset.top + }, + parent: this._getParentOffset(), + relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper + }); + + //Generate the original position + this.originalPosition = this.position = this._generatePosition(event); + this.originalPageX = event.pageX; + this.originalPageY = event.pageY; + + //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied + (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); + + //Set a containment if given in the options + if(o.containment) + this._setContainment(); + + //Trigger event + callbacks + if(this._trigger("start", event) === false) { + this._clear(); + return false; + } + + //Recache the helper size + this._cacheHelperProportions(); + + //Prepare the droppable offsets + if ($.ui.ddmanager && !o.dropBehaviour) + $.ui.ddmanager.prepareOffsets(this, event); + + this.helper.addClass("ui-draggable-dragging"); + this._mouseDrag(event, true); //Execute the drag once - this causes the helper not to be visible before getting its correct position + return true; + }, + + _mouseDrag: function(event, noPropagation) { + + //Compute the helpers position + this.position = this._generatePosition(event); + this.positionAbs = this._convertPositionTo("absolute"); + + //Call plugins and callbacks and use the resulting position if something is returned + if (!noPropagation) { + var ui = this._uiHash(); + if(this._trigger('drag', event, ui) === false) { + this._mouseUp({}); + return false; + } + this.position = ui.position; + } + + if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px'; + if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px'; + if($.ui.ddmanager) $.ui.ddmanager.drag(this, event); + + return false; + }, + + _mouseStop: function(event) { + + //If we are using droppables, inform the manager about the drop + var dropped = false; + if ($.ui.ddmanager && !this.options.dropBehaviour) + dropped = $.ui.ddmanager.drop(this, event); + + //if a drop comes from outside (a sortable) + if(this.dropped) { + dropped = this.dropped; + this.dropped = false; + } + + //if the original element is removed, don't bother to continue if helper is set to "original" + if((!this.element[0] || !this.element[0].parentNode) && this.options.helper == "original") + return false; + + if((this.options.revert == "invalid" && !dropped) || (this.options.revert == "valid" && dropped) || this.options.revert === true || ($.isFunction(this.options.revert) && this.options.revert.call(this.element, dropped))) { + var self = this; + $(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { + if(self._trigger("stop", event) !== false) { + self._clear(); + } + }); + } else { + if(this._trigger("stop", event) !== false) { + this._clear(); + } + } + + return false; + }, + + cancel: function() { + + if(this.helper.is(".ui-draggable-dragging")) { + this._mouseUp({}); + } else { + this._clear(); + } + + return this; + + }, + + _getHandle: function(event) { + + var handle = !this.options.handle || !$(this.options.handle, this.element).length ? true : false; + $(this.options.handle, this.element) + .find("*") + .andSelf() + .each(function() { + if(this == event.target) handle = true; + }); + + return handle; + + }, + + _createHelper: function(event) { + + var o = this.options; + var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event])) : (o.helper == 'clone' ? this.element.clone() : this.element); + + if(!helper.parents('body').length) + helper.appendTo((o.appendTo == 'parent' ? this.element[0].parentNode : o.appendTo)); + + if(helper[0] != this.element[0] && !(/(fixed|absolute)/).test(helper.css("position"))) + helper.css("position", "absolute"); + + return helper; + + }, + + _adjustOffsetFromHelper: function(obj) { + if (typeof obj == 'string') { + obj = obj.split(' '); + } + if ($.isArray(obj)) { + obj = {left: +obj[0], top: +obj[1] || 0}; + } + if ('left' in obj) { + this.offset.click.left = obj.left + this.margins.left; + } + if ('right' in obj) { + this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; + } + if ('top' in obj) { + this.offset.click.top = obj.top + this.margins.top; + } + if ('bottom' in obj) { + this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; + } + }, + + _getParentOffset: function() { + + //Get the offsetParent and cache its position + this.offsetParent = this.helper.offsetParent(); + var po = this.offsetParent.offset(); + + // This is a special case where we need to modify a offset calculated on start, since the following happened: + // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent + // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that + // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag + if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) { + po.left += this.scrollParent.scrollLeft(); + po.top += this.scrollParent.scrollTop(); + } + + if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information + || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix + po = { top: 0, left: 0 }; + + return { + top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), + left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) + }; + + }, + + _getRelativeOffset: function() { + + if(this.cssPosition == "relative") { + var p = this.element.position(); + return { + top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), + left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() + }; + } else { + return { top: 0, left: 0 }; + } + + }, + + _cacheMargins: function() { + this.margins = { + left: (parseInt(this.element.css("marginLeft"),10) || 0), + top: (parseInt(this.element.css("marginTop"),10) || 0) + }; + }, + + _cacheHelperProportions: function() { + this.helperProportions = { + width: this.helper.outerWidth(), + height: this.helper.outerHeight() + }; + }, + + _setContainment: function() { + + var o = this.options; + if(o.containment == 'parent') o.containment = this.helper[0].parentNode; + if(o.containment == 'document' || o.containment == 'window') this.containment = [ + (o.containment == 'document' ? 0 : $(window).scrollLeft()) - this.offset.relative.left - this.offset.parent.left, + (o.containment == 'document' ? 0 : $(window).scrollTop()) - this.offset.relative.top - this.offset.parent.top, + (o.containment == 'document' ? 0 : $(window).scrollLeft()) + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left, + (o.containment == 'document' ? 0 : $(window).scrollTop()) + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top + ]; + + if(!(/^(document|window|parent)$/).test(o.containment) && o.containment.constructor != Array) { + var ce = $(o.containment)[0]; if(!ce) return; + var co = $(o.containment).offset(); + var over = ($(ce).css("overflow") != 'hidden'); + + this.containment = [ + co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left, + co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top, + co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left, + co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top + ]; + } else if(o.containment.constructor == Array) { + this.containment = o.containment; + } + + }, + + _convertPositionTo: function(d, pos) { + + if(!pos) pos = this.position; + var mod = d == "absolute" ? 1 : -1; + var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + + return { + top: ( + pos.top // The absolute mouse position + + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent + + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border) + - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) + ), + left: ( + pos.left // The absolute mouse position + + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent + + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border) + - ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) + ) + }; + + }, + + _generatePosition: function(event) { + + var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + var pageX = event.pageX; + var pageY = event.pageY; + + /* + * - Position constraining - + * Constrain the position to a mix of grid, containment. + */ + + if(this.originalPosition) { //If we are not dragging yet, we won't check for options + + if(this.containment) { + if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left; + if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top; + if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left; + if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top; + } + + if(o.grid) { + var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]; + pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; + + var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]; + pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; + } + + } + + return { + top: ( + pageY // The absolute mouse position + - this.offset.click.top // Click offset (relative to the element) + - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent + - this.offset.parent.top // The offsetParent's offset without borders (offset + border) + + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) + ), + left: ( + pageX // The absolute mouse position + - this.offset.click.left // Click offset (relative to the element) + - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent + - this.offset.parent.left // The offsetParent's offset without borders (offset + border) + + ($.browser.safari && $.browser.version < 526 && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) + ) + }; + + }, + + _clear: function() { + this.helper.removeClass("ui-draggable-dragging"); + if(this.helper[0] != this.element[0] && !this.cancelHelperRemoval) this.helper.remove(); + //if($.ui.ddmanager) $.ui.ddmanager.current = null; + this.helper = null; + this.cancelHelperRemoval = false; + }, + + // From now on bulk stuff - mainly helpers + + _trigger: function(type, event, ui) { + ui = ui || this._uiHash(); + $.ui.plugin.call(this, type, [event, ui]); + if(type == "drag") this.positionAbs = this._convertPositionTo("absolute"); //The absolute position has to be recalculated after plugins + return $.Widget.prototype._trigger.call(this, type, event, ui); + }, + + plugins: {}, + + _uiHash: function(event) { + return { + helper: this.helper, + position: this.position, + originalPosition: this.originalPosition, + offset: this.positionAbs + }; + } + +}); + +$.extend($.ui.draggable, { + version: "1.8.10" +}); + +$.ui.plugin.add("draggable", "connectToSortable", { + start: function(event, ui) { + + var inst = $(this).data("draggable"), o = inst.options, + uiSortable = $.extend({}, ui, { item: inst.element }); + inst.sortables = []; + $(o.connectToSortable).each(function() { + var sortable = $.data(this, 'sortable'); + if (sortable && !sortable.options.disabled) { + inst.sortables.push({ + instance: sortable, + shouldRevert: sortable.options.revert + }); + sortable._refreshItems(); //Do a one-time refresh at start to refresh the containerCache + sortable._trigger("activate", event, uiSortable); + } + }); + + }, + stop: function(event, ui) { + + //If we are still over the sortable, we fake the stop event of the sortable, but also remove helper + var inst = $(this).data("draggable"), + uiSortable = $.extend({}, ui, { item: inst.element }); + + $.each(inst.sortables, function() { + if(this.instance.isOver) { + + this.instance.isOver = 0; + + inst.cancelHelperRemoval = true; //Don't remove the helper in the draggable instance + this.instance.cancelHelperRemoval = false; //Remove it in the sortable instance (so sortable plugins like revert still work) + + //The sortable revert is supported, and we have to set a temporary dropped variable on the draggable to support revert: 'valid/invalid' + if(this.shouldRevert) this.instance.options.revert = true; + + //Trigger the stop of the sortable + this.instance._mouseStop(event); + + this.instance.options.helper = this.instance.options._helper; + + //If the helper has been the original item, restore properties in the sortable + if(inst.options.helper == 'original') + this.instance.currentItem.css({ top: 'auto', left: 'auto' }); + + } else { + this.instance.cancelHelperRemoval = false; //Remove the helper in the sortable instance + this.instance._trigger("deactivate", event, uiSortable); + } + + }); + + }, + drag: function(event, ui) { + + var inst = $(this).data("draggable"), self = this; + + var checkPos = function(o) { + var dyClick = this.offset.click.top, dxClick = this.offset.click.left; + var helperTop = this.positionAbs.top, helperLeft = this.positionAbs.left; + var itemHeight = o.height, itemWidth = o.width; + var itemTop = o.top, itemLeft = o.left; + + return $.ui.isOver(helperTop + dyClick, helperLeft + dxClick, itemTop, itemLeft, itemHeight, itemWidth); + }; + + $.each(inst.sortables, function(i) { + + //Copy over some variables to allow calling the sortable's native _intersectsWith + this.instance.positionAbs = inst.positionAbs; + this.instance.helperProportions = inst.helperProportions; + this.instance.offset.click = inst.offset.click; + + if(this.instance._intersectsWith(this.instance.containerCache)) { + + //If it intersects, we use a little isOver variable and set it once, so our move-in stuff gets fired only once + if(!this.instance.isOver) { + + this.instance.isOver = 1; + //Now we fake the start of dragging for the sortable instance, + //by cloning the list group item, appending it to the sortable and using it as inst.currentItem + //We can then fire the start event of the sortable with our passed browser event, and our own helper (so it doesn't create a new one) + this.instance.currentItem = $(self).clone().appendTo(this.instance.element).data("sortable-item", true); + this.instance.options._helper = this.instance.options.helper; //Store helper option to later restore it + this.instance.options.helper = function() { return ui.helper[0]; }; + + event.target = this.instance.currentItem[0]; + this.instance._mouseCapture(event, true); + this.instance._mouseStart(event, true, true); + + //Because the browser event is way off the new appended portlet, we modify a couple of variables to reflect the changes + this.instance.offset.click.top = inst.offset.click.top; + this.instance.offset.click.left = inst.offset.click.left; + this.instance.offset.parent.left -= inst.offset.parent.left - this.instance.offset.parent.left; + this.instance.offset.parent.top -= inst.offset.parent.top - this.instance.offset.parent.top; + + inst._trigger("toSortable", event); + inst.dropped = this.instance.element; //draggable revert needs that + //hack so receive/update callbacks work (mostly) + inst.currentItem = inst.element; + this.instance.fromOutside = inst; + + } + + //Provided we did all the previous steps, we can fire the drag event of the sortable on every draggable drag, when it intersects with the sortable + if(this.instance.currentItem) this.instance._mouseDrag(event); + + } else { + + //If it doesn't intersect with the sortable, and it intersected before, + //we fake the drag stop of the sortable, but make sure it doesn't remove the helper by using cancelHelperRemoval + if(this.instance.isOver) { + + this.instance.isOver = 0; + this.instance.cancelHelperRemoval = true; + + //Prevent reverting on this forced stop + this.instance.options.revert = false; + + // The out event needs to be triggered independently + this.instance._trigger('out', event, this.instance._uiHash(this.instance)); + + this.instance._mouseStop(event, true); + this.instance.options.helper = this.instance.options._helper; + + //Now we remove our currentItem, the list group clone again, and the placeholder, and animate the helper back to it's original size + this.instance.currentItem.remove(); + if(this.instance.placeholder) this.instance.placeholder.remove(); + + inst._trigger("fromSortable", event); + inst.dropped = false; //draggable revert needs that + } + + }; + + }); + + } +}); + +$.ui.plugin.add("draggable", "cursor", { + start: function(event, ui) { + var t = $('body'), o = $(this).data('draggable').options; + if (t.css("cursor")) o._cursor = t.css("cursor"); + t.css("cursor", o.cursor); + }, + stop: function(event, ui) { + var o = $(this).data('draggable').options; + if (o._cursor) $('body').css("cursor", o._cursor); + } +}); + +$.ui.plugin.add("draggable", "iframeFix", { + start: function(event, ui) { + var o = $(this).data('draggable').options; + $(o.iframeFix === true ? "iframe" : o.iframeFix).each(function() { + $('
        ') + .css({ + width: this.offsetWidth+"px", height: this.offsetHeight+"px", + position: "absolute", opacity: "0.001", zIndex: 1000 + }) + .css($(this).offset()) + .appendTo("body"); + }); + }, + stop: function(event, ui) { + $("div.ui-draggable-iframeFix").each(function() { this.parentNode.removeChild(this); }); //Remove frame helpers + } +}); + +$.ui.plugin.add("draggable", "opacity", { + start: function(event, ui) { + var t = $(ui.helper), o = $(this).data('draggable').options; + if(t.css("opacity")) o._opacity = t.css("opacity"); + t.css('opacity', o.opacity); + }, + stop: function(event, ui) { + var o = $(this).data('draggable').options; + if(o._opacity) $(ui.helper).css('opacity', o._opacity); + } +}); + +$.ui.plugin.add("draggable", "scroll", { + start: function(event, ui) { + var i = $(this).data("draggable"); + if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') i.overflowOffset = i.scrollParent.offset(); + }, + drag: function(event, ui) { + + var i = $(this).data("draggable"), o = i.options, scrolled = false; + + if(i.scrollParent[0] != document && i.scrollParent[0].tagName != 'HTML') { + + if(!o.axis || o.axis != 'x') { + if((i.overflowOffset.top + i.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) + i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop + o.scrollSpeed; + else if(event.pageY - i.overflowOffset.top < o.scrollSensitivity) + i.scrollParent[0].scrollTop = scrolled = i.scrollParent[0].scrollTop - o.scrollSpeed; + } + + if(!o.axis || o.axis != 'y') { + if((i.overflowOffset.left + i.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) + i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft + o.scrollSpeed; + else if(event.pageX - i.overflowOffset.left < o.scrollSensitivity) + i.scrollParent[0].scrollLeft = scrolled = i.scrollParent[0].scrollLeft - o.scrollSpeed; + } + + } else { + + if(!o.axis || o.axis != 'x') { + if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) + scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); + else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) + scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); + } + + if(!o.axis || o.axis != 'y') { + if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) + scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); + else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) + scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); + } + + } + + if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) + $.ui.ddmanager.prepareOffsets(i, event); + + } +}); + +$.ui.plugin.add("draggable", "snap", { + start: function(event, ui) { + + var i = $(this).data("draggable"), o = i.options; + i.snapElements = []; + + $(o.snap.constructor != String ? ( o.snap.items || ':data(draggable)' ) : o.snap).each(function() { + var $t = $(this); var $o = $t.offset(); + if(this != i.element[0]) i.snapElements.push({ + item: this, + width: $t.outerWidth(), height: $t.outerHeight(), + top: $o.top, left: $o.left + }); + }); + + }, + drag: function(event, ui) { + + var inst = $(this).data("draggable"), o = inst.options; + var d = o.snapTolerance; + + var x1 = ui.offset.left, x2 = x1 + inst.helperProportions.width, + y1 = ui.offset.top, y2 = y1 + inst.helperProportions.height; + + for (var i = inst.snapElements.length - 1; i >= 0; i--){ + + var l = inst.snapElements[i].left, r = l + inst.snapElements[i].width, + t = inst.snapElements[i].top, b = t + inst.snapElements[i].height; + + //Yes, I know, this is insane ;) + if(!((l-d < x1 && x1 < r+d && t-d < y1 && y1 < b+d) || (l-d < x1 && x1 < r+d && t-d < y2 && y2 < b+d) || (l-d < x2 && x2 < r+d && t-d < y1 && y1 < b+d) || (l-d < x2 && x2 < r+d && t-d < y2 && y2 < b+d))) { + if(inst.snapElements[i].snapping) (inst.options.snap.release && inst.options.snap.release.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); + inst.snapElements[i].snapping = false; + continue; + } + + if(o.snapMode != 'inner') { + var ts = Math.abs(t - y2) <= d; + var bs = Math.abs(b - y1) <= d; + var ls = Math.abs(l - x2) <= d; + var rs = Math.abs(r - x1) <= d; + if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t - inst.helperProportions.height, left: 0 }).top - inst.margins.top; + if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b, left: 0 }).top - inst.margins.top; + if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l - inst.helperProportions.width }).left - inst.margins.left; + if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r }).left - inst.margins.left; + } + + var first = (ts || bs || ls || rs); + + if(o.snapMode != 'outer') { + var ts = Math.abs(t - y1) <= d; + var bs = Math.abs(b - y2) <= d; + var ls = Math.abs(l - x1) <= d; + var rs = Math.abs(r - x2) <= d; + if(ts) ui.position.top = inst._convertPositionTo("relative", { top: t, left: 0 }).top - inst.margins.top; + if(bs) ui.position.top = inst._convertPositionTo("relative", { top: b - inst.helperProportions.height, left: 0 }).top - inst.margins.top; + if(ls) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: l }).left - inst.margins.left; + if(rs) ui.position.left = inst._convertPositionTo("relative", { top: 0, left: r - inst.helperProportions.width }).left - inst.margins.left; + } + + if(!inst.snapElements[i].snapping && (ts || bs || ls || rs || first)) + (inst.options.snap.snap && inst.options.snap.snap.call(inst.element, event, $.extend(inst._uiHash(), { snapItem: inst.snapElements[i].item }))); + inst.snapElements[i].snapping = (ts || bs || ls || rs || first); + + }; + + } +}); + +$.ui.plugin.add("draggable", "stack", { + start: function(event, ui) { + + var o = $(this).data("draggable").options; + + var group = $.makeArray($(o.stack)).sort(function(a,b) { + return (parseInt($(a).css("zIndex"),10) || 0) - (parseInt($(b).css("zIndex"),10) || 0); + }); + if (!group.length) { return; } + + var min = parseInt(group[0].style.zIndex) || 0; + $(group).each(function(i) { + this.style.zIndex = min + i; + }); + + this[0].style.zIndex = min + group.length; + + } +}); + +$.ui.plugin.add("draggable", "zIndex", { + start: function(event, ui) { + var t = $(ui.helper), o = $(this).data("draggable").options; + if(t.css("zIndex")) o._zIndex = t.css("zIndex"); + t.css('zIndex', o.zIndex); + }, + stop: function(event, ui) { + var o = $(this).data("draggable").options; + if(o._zIndex) $(ui.helper).css('zIndex', o._zIndex); + } +}); + +})(jQuery); diff --git a/js/ui/jquery.ui.droppable.js b/js/ui/jquery.ui.droppable.js new file mode 100644 index 0000000000..62bd7b0e55 --- /dev/null +++ b/js/ui/jquery.ui.droppable.js @@ -0,0 +1,285 @@ +/* + * jQuery UI Droppable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Droppables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + * jquery.ui.mouse.js + * jquery.ui.draggable.js + */ +(function( $, undefined ) { + +$.widget("ui.droppable", { + widgetEventPrefix: "drop", + options: { + accept: '*', + activeClass: false, + addClasses: true, + greedy: false, + hoverClass: false, + scope: 'default', + tolerance: 'intersect' + }, + _create: function() { + + var o = this.options, accept = o.accept; + this.isover = 0; this.isout = 1; + + this.accept = $.isFunction(accept) ? accept : function(d) { + return d.is(accept); + }; + + //Store the droppable's proportions + this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; + + // Add the reference and positions to the manager + $.ui.ddmanager.droppables[o.scope] = $.ui.ddmanager.droppables[o.scope] || []; + $.ui.ddmanager.droppables[o.scope].push(this); + + (o.addClasses && this.element.addClass("ui-droppable")); + + }, + + destroy: function() { + var drop = $.ui.ddmanager.droppables[this.options.scope]; + for ( var i = 0; i < drop.length; i++ ) + if ( drop[i] == this ) + drop.splice(i, 1); + + this.element + .removeClass("ui-droppable ui-droppable-disabled") + .removeData("droppable") + .unbind(".droppable"); + + return this; + }, + + _setOption: function(key, value) { + + if(key == 'accept') { + this.accept = $.isFunction(value) ? value : function(d) { + return d.is(value); + }; + } + $.Widget.prototype._setOption.apply(this, arguments); + }, + + _activate: function(event) { + var draggable = $.ui.ddmanager.current; + if(this.options.activeClass) this.element.addClass(this.options.activeClass); + (draggable && this._trigger('activate', event, this.ui(draggable))); + }, + + _deactivate: function(event) { + var draggable = $.ui.ddmanager.current; + if(this.options.activeClass) this.element.removeClass(this.options.activeClass); + (draggable && this._trigger('deactivate', event, this.ui(draggable))); + }, + + _over: function(event) { + + var draggable = $.ui.ddmanager.current; + if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element + + if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { + if(this.options.hoverClass) this.element.addClass(this.options.hoverClass); + this._trigger('over', event, this.ui(draggable)); + } + + }, + + _out: function(event) { + + var draggable = $.ui.ddmanager.current; + if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return; // Bail if draggable and droppable are same element + + if (this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { + if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass); + this._trigger('out', event, this.ui(draggable)); + } + + }, + + _drop: function(event,custom) { + + var draggable = custom || $.ui.ddmanager.current; + if (!draggable || (draggable.currentItem || draggable.element)[0] == this.element[0]) return false; // Bail if draggable and droppable are same element + + var childrenIntersection = false; + this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() { + var inst = $.data(this, 'droppable'); + if( + inst.options.greedy + && !inst.options.disabled + && inst.options.scope == draggable.options.scope + && inst.accept.call(inst.element[0], (draggable.currentItem || draggable.element)) + && $.ui.intersect(draggable, $.extend(inst, { offset: inst.element.offset() }), inst.options.tolerance) + ) { childrenIntersection = true; return false; } + }); + if(childrenIntersection) return false; + + if(this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { + if(this.options.activeClass) this.element.removeClass(this.options.activeClass); + if(this.options.hoverClass) this.element.removeClass(this.options.hoverClass); + this._trigger('drop', event, this.ui(draggable)); + return this.element; + } + + return false; + + }, + + ui: function(c) { + return { + draggable: (c.currentItem || c.element), + helper: c.helper, + position: c.position, + offset: c.positionAbs + }; + } + +}); + +$.extend($.ui.droppable, { + version: "1.8.10" +}); + +$.ui.intersect = function(draggable, droppable, toleranceMode) { + + if (!droppable.offset) return false; + + var x1 = (draggable.positionAbs || draggable.position.absolute).left, x2 = x1 + draggable.helperProportions.width, + y1 = (draggable.positionAbs || draggable.position.absolute).top, y2 = y1 + draggable.helperProportions.height; + var l = droppable.offset.left, r = l + droppable.proportions.width, + t = droppable.offset.top, b = t + droppable.proportions.height; + + switch (toleranceMode) { + case 'fit': + return (l <= x1 && x2 <= r + && t <= y1 && y2 <= b); + break; + case 'intersect': + return (l < x1 + (draggable.helperProportions.width / 2) // Right Half + && x2 - (draggable.helperProportions.width / 2) < r // Left Half + && t < y1 + (draggable.helperProportions.height / 2) // Bottom Half + && y2 - (draggable.helperProportions.height / 2) < b ); // Top Half + break; + case 'pointer': + var draggableLeft = ((draggable.positionAbs || draggable.position.absolute).left + (draggable.clickOffset || draggable.offset.click).left), + draggableTop = ((draggable.positionAbs || draggable.position.absolute).top + (draggable.clickOffset || draggable.offset.click).top), + isOver = $.ui.isOver(draggableTop, draggableLeft, t, l, droppable.proportions.height, droppable.proportions.width); + return isOver; + break; + case 'touch': + return ( + (y1 >= t && y1 <= b) || // Top edge touching + (y2 >= t && y2 <= b) || // Bottom edge touching + (y1 < t && y2 > b) // Surrounded vertically + ) && ( + (x1 >= l && x1 <= r) || // Left edge touching + (x2 >= l && x2 <= r) || // Right edge touching + (x1 < l && x2 > r) // Surrounded horizontally + ); + break; + default: + return false; + break; + } + +}; + +/* + This manager tracks offsets of draggables and droppables +*/ +$.ui.ddmanager = { + current: null, + droppables: { 'default': [] }, + prepareOffsets: function(t, event) { + + var m = $.ui.ddmanager.droppables[t.options.scope] || []; + var type = event ? event.type : null; // workaround for #2317 + var list = (t.currentItem || t.element).find(":data(droppable)").andSelf(); + + droppablesLoop: for (var i = 0; i < m.length; i++) { + + if(m[i].options.disabled || (t && !m[i].accept.call(m[i].element[0],(t.currentItem || t.element)))) continue; //No disabled and non-accepted + for (var j=0; j < list.length; j++) { if(list[j] == m[i].element[0]) { m[i].proportions.height = 0; continue droppablesLoop; } }; //Filter out elements in the current dragged item + m[i].visible = m[i].element.css("display") != "none"; if(!m[i].visible) continue; //If the element is not visible, continue + + m[i].offset = m[i].element.offset(); + m[i].proportions = { width: m[i].element[0].offsetWidth, height: m[i].element[0].offsetHeight }; + + if(type == "mousedown") m[i]._activate.call(m[i], event); //Activate the droppable if used directly from draggables + + } + + }, + drop: function(draggable, event) { + + var dropped = false; + $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() { + + if(!this.options) return; + if (!this.options.disabled && this.visible && $.ui.intersect(draggable, this, this.options.tolerance)) + dropped = dropped || this._drop.call(this, event); + + if (!this.options.disabled && this.visible && this.accept.call(this.element[0],(draggable.currentItem || draggable.element))) { + this.isout = 1; this.isover = 0; + this._deactivate.call(this, event); + } + + }); + return dropped; + + }, + drag: function(draggable, event) { + + //If you have a highly dynamic page, you might try this option. It renders positions every time you move the mouse. + if(draggable.options.refreshPositions) $.ui.ddmanager.prepareOffsets(draggable, event); + + //Run through all droppables and check their positions based on specific tolerance options + $.each($.ui.ddmanager.droppables[draggable.options.scope] || [], function() { + + if(this.options.disabled || this.greedyChild || !this.visible) return; + var intersects = $.ui.intersect(draggable, this, this.options.tolerance); + + var c = !intersects && this.isover == 1 ? 'isout' : (intersects && this.isover == 0 ? 'isover' : null); + if(!c) return; + + var parentInstance; + if (this.options.greedy) { + var parent = this.element.parents(':data(droppable):eq(0)'); + if (parent.length) { + parentInstance = $.data(parent[0], 'droppable'); + parentInstance.greedyChild = (c == 'isover' ? 1 : 0); + } + } + + // we just moved into a greedy child + if (parentInstance && c == 'isover') { + parentInstance['isover'] = 0; + parentInstance['isout'] = 1; + parentInstance._out.call(parentInstance, event); + } + + this[c] = 1; this[c == 'isout' ? 'isover' : 'isout'] = 0; + this[c == "isover" ? "_over" : "_out"].call(this, event); + + // we just moved out of a greedy child + if (parentInstance && c == 'isout') { + parentInstance['isout'] = 0; + parentInstance['isover'] = 1; + parentInstance._over.call(parentInstance, event); + } + }); + + } +}; + +})(jQuery); diff --git a/js/ui/jquery.ui.mouse.js b/js/ui/jquery.ui.mouse.js new file mode 100644 index 0000000000..3c3e7970a0 --- /dev/null +++ b/js/ui/jquery.ui.mouse.js @@ -0,0 +1,151 @@ +/*! + * jQuery UI Mouse 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Mouse + * + * Depends: + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget("ui.mouse", { + options: { + cancel: ':input,option', + distance: 1, + delay: 0 + }, + _mouseInit: function() { + var self = this; + + this.element + .bind('mousedown.'+this.widgetName, function(event) { + return self._mouseDown(event); + }) + .bind('click.'+this.widgetName, function(event) { + if (true === $.data(event.target, self.widgetName + '.preventClickEvent')) { + $.removeData(event.target, self.widgetName + '.preventClickEvent'); + event.stopImmediatePropagation(); + return false; + } + }); + + this.started = false; + }, + + // TODO: make sure destroying one instance of mouse doesn't mess with + // other instances of mouse + _mouseDestroy: function() { + this.element.unbind('.'+this.widgetName); + }, + + _mouseDown: function(event) { + // don't let more than one widget handle mouseStart + // TODO: figure out why we have to use originalEvent + event.originalEvent = event.originalEvent || {}; + if (event.originalEvent.mouseHandled) { return; } + + // we may have missed mouseup (out of window) + (this._mouseStarted && this._mouseUp(event)); + + this._mouseDownEvent = event; + + var self = this, + btnIsLeft = (event.which == 1), + elIsCancel = (typeof this.options.cancel == "string" ? $(event.target).parents().add(event.target).filter(this.options.cancel).length : false); + if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { + return true; + } + + this.mouseDelayMet = !this.options.delay; + if (!this.mouseDelayMet) { + this._mouseDelayTimer = setTimeout(function() { + self.mouseDelayMet = true; + }, this.options.delay); + } + + if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { + this._mouseStarted = (this._mouseStart(event) !== false); + if (!this._mouseStarted) { + event.preventDefault(); + return true; + } + } + + // these delegates are required to keep context + this._mouseMoveDelegate = function(event) { + return self._mouseMove(event); + }; + this._mouseUpDelegate = function(event) { + return self._mouseUp(event); + }; + $(document) + .bind('mousemove.'+this.widgetName, this._mouseMoveDelegate) + .bind('mouseup.'+this.widgetName, this._mouseUpDelegate); + + event.preventDefault(); + event.originalEvent.mouseHandled = true; + return true; + }, + + _mouseMove: function(event) { + // IE mouseup check - mouseup happened when mouse was out of window + if ($.browser.msie && !(document.documentMode >= 9) && !event.button) { + return this._mouseUp(event); + } + + if (this._mouseStarted) { + this._mouseDrag(event); + return event.preventDefault(); + } + + if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { + this._mouseStarted = + (this._mouseStart(this._mouseDownEvent, event) !== false); + (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); + } + + return !this._mouseStarted; + }, + + _mouseUp: function(event) { + $(document) + .unbind('mousemove.'+this.widgetName, this._mouseMoveDelegate) + .unbind('mouseup.'+this.widgetName, this._mouseUpDelegate); + + if (this._mouseStarted) { + this._mouseStarted = false; + + if (event.target == this._mouseDownEvent.target) { + $.data(event.target, this.widgetName + '.preventClickEvent', true); + } + + this._mouseStop(event); + } + + return false; + }, + + _mouseDistanceMet: function(event) { + return (Math.max( + Math.abs(this._mouseDownEvent.pageX - event.pageX), + Math.abs(this._mouseDownEvent.pageY - event.pageY) + ) >= this.options.distance + ); + }, + + _mouseDelayMet: function(event) { + return this.mouseDelayMet; + }, + + // These are placeholder methods, to be overriden by extending plugin + _mouseStart: function(event) {}, + _mouseDrag: function(event) {}, + _mouseStop: function(event) {}, + _mouseCapture: function(event) { return true; } +}); + +})(jQuery); diff --git a/js/ui/jquery.ui.position.js b/js/ui/jquery.ui.position.js new file mode 100644 index 0000000000..b6ad10caef --- /dev/null +++ b/js/ui/jquery.ui.position.js @@ -0,0 +1,252 @@ +/* + * jQuery UI Position 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Position + */ +(function( $, undefined ) { + +$.ui = $.ui || {}; + +var horizontalPositions = /left|center|right/, + verticalPositions = /top|center|bottom/, + center = "center", + _position = $.fn.position, + _offset = $.fn.offset; + +$.fn.position = function( options ) { + if ( !options || !options.of ) { + return _position.apply( this, arguments ); + } + + // make a copy, we don't want to modify arguments + options = $.extend( {}, options ); + + var target = $( options.of ), + targetElem = target[0], + collision = ( options.collision || "flip" ).split( " " ), + offset = options.offset ? options.offset.split( " " ) : [ 0, 0 ], + targetWidth, + targetHeight, + basePosition; + + if ( targetElem.nodeType === 9 ) { + targetWidth = target.width(); + targetHeight = target.height(); + basePosition = { top: 0, left: 0 }; + // TODO: use $.isWindow() in 1.9 + } else if ( targetElem.setTimeout ) { + targetWidth = target.width(); + targetHeight = target.height(); + basePosition = { top: target.scrollTop(), left: target.scrollLeft() }; + } else if ( targetElem.preventDefault ) { + // force left top to allow flipping + options.at = "left top"; + targetWidth = targetHeight = 0; + basePosition = { top: options.of.pageY, left: options.of.pageX }; + } else { + targetWidth = target.outerWidth(); + targetHeight = target.outerHeight(); + basePosition = target.offset(); + } + + // force my and at to have valid horizontal and veritcal positions + // if a value is missing or invalid, it will be converted to center + $.each( [ "my", "at" ], function() { + var pos = ( options[this] || "" ).split( " " ); + if ( pos.length === 1) { + pos = horizontalPositions.test( pos[0] ) ? + pos.concat( [center] ) : + verticalPositions.test( pos[0] ) ? + [ center ].concat( pos ) : + [ center, center ]; + } + pos[ 0 ] = horizontalPositions.test( pos[0] ) ? pos[ 0 ] : center; + pos[ 1 ] = verticalPositions.test( pos[1] ) ? pos[ 1 ] : center; + options[ this ] = pos; + }); + + // normalize collision option + if ( collision.length === 1 ) { + collision[ 1 ] = collision[ 0 ]; + } + + // normalize offset option + offset[ 0 ] = parseInt( offset[0], 10 ) || 0; + if ( offset.length === 1 ) { + offset[ 1 ] = offset[ 0 ]; + } + offset[ 1 ] = parseInt( offset[1], 10 ) || 0; + + if ( options.at[0] === "right" ) { + basePosition.left += targetWidth; + } else if ( options.at[0] === center ) { + basePosition.left += targetWidth / 2; + } + + if ( options.at[1] === "bottom" ) { + basePosition.top += targetHeight; + } else if ( options.at[1] === center ) { + basePosition.top += targetHeight / 2; + } + + basePosition.left += offset[ 0 ]; + basePosition.top += offset[ 1 ]; + + return this.each(function() { + var elem = $( this ), + elemWidth = elem.outerWidth(), + elemHeight = elem.outerHeight(), + marginLeft = parseInt( $.curCSS( this, "marginLeft", true ) ) || 0, + marginTop = parseInt( $.curCSS( this, "marginTop", true ) ) || 0, + collisionWidth = elemWidth + marginLeft + + ( parseInt( $.curCSS( this, "marginRight", true ) ) || 0 ), + collisionHeight = elemHeight + marginTop + + ( parseInt( $.curCSS( this, "marginBottom", true ) ) || 0 ), + position = $.extend( {}, basePosition ), + collisionPosition; + + if ( options.my[0] === "right" ) { + position.left -= elemWidth; + } else if ( options.my[0] === center ) { + position.left -= elemWidth / 2; + } + + if ( options.my[1] === "bottom" ) { + position.top -= elemHeight; + } else if ( options.my[1] === center ) { + position.top -= elemHeight / 2; + } + + // prevent fractions (see #5280) + position.left = Math.round( position.left ); + position.top = Math.round( position.top ); + + collisionPosition = { + left: position.left - marginLeft, + top: position.top - marginTop + }; + + $.each( [ "left", "top" ], function( i, dir ) { + if ( $.ui.position[ collision[i] ] ) { + $.ui.position[ collision[i] ][ dir ]( position, { + targetWidth: targetWidth, + targetHeight: targetHeight, + elemWidth: elemWidth, + elemHeight: elemHeight, + collisionPosition: collisionPosition, + collisionWidth: collisionWidth, + collisionHeight: collisionHeight, + offset: offset, + my: options.my, + at: options.at + }); + } + }); + + if ( $.fn.bgiframe ) { + elem.bgiframe(); + } + elem.offset( $.extend( position, { using: options.using } ) ); + }); +}; + +$.ui.position = { + fit: { + left: function( position, data ) { + var win = $( window ), + over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(); + position.left = over > 0 ? position.left - over : Math.max( position.left - data.collisionPosition.left, position.left ); + }, + top: function( position, data ) { + var win = $( window ), + over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(); + position.top = over > 0 ? position.top - over : Math.max( position.top - data.collisionPosition.top, position.top ); + } + }, + + flip: { + left: function( position, data ) { + if ( data.at[0] === center ) { + return; + } + var win = $( window ), + over = data.collisionPosition.left + data.collisionWidth - win.width() - win.scrollLeft(), + myOffset = data.my[ 0 ] === "left" ? + -data.elemWidth : + data.my[ 0 ] === "right" ? + data.elemWidth : + 0, + atOffset = data.at[ 0 ] === "left" ? + data.targetWidth : + -data.targetWidth, + offset = -2 * data.offset[ 0 ]; + position.left += data.collisionPosition.left < 0 ? + myOffset + atOffset + offset : + over > 0 ? + myOffset + atOffset + offset : + 0; + }, + top: function( position, data ) { + if ( data.at[1] === center ) { + return; + } + var win = $( window ), + over = data.collisionPosition.top + data.collisionHeight - win.height() - win.scrollTop(), + myOffset = data.my[ 1 ] === "top" ? + -data.elemHeight : + data.my[ 1 ] === "bottom" ? + data.elemHeight : + 0, + atOffset = data.at[ 1 ] === "top" ? + data.targetHeight : + -data.targetHeight, + offset = -2 * data.offset[ 1 ]; + position.top += data.collisionPosition.top < 0 ? + myOffset + atOffset + offset : + over > 0 ? + myOffset + atOffset + offset : + 0; + } + } +}; + +// offset setter from jQuery 1.4 +if ( !$.offset.setOffset ) { + $.offset.setOffset = function( elem, options ) { + // set position first, in-case top/left are set even on static elem + if ( /static/.test( $.curCSS( elem, "position" ) ) ) { + elem.style.position = "relative"; + } + var curElem = $( elem ), + curOffset = curElem.offset(), + curTop = parseInt( $.curCSS( elem, "top", true ), 10 ) || 0, + curLeft = parseInt( $.curCSS( elem, "left", true ), 10) || 0, + props = { + top: (options.top - curOffset.top) + curTop, + left: (options.left - curOffset.left) + curLeft + }; + + if ( 'using' in options ) { + options.using.call( elem, props ); + } else { + curElem.css( props ); + } + }; + + $.fn.offset = function( options ) { + var elem = this[ 0 ]; + if ( !elem || !elem.ownerDocument ) { return null; } + if ( options ) { + return this.each(function() { + $.offset.setOffset( this, options ); + }); + } + return _offset.call( this ); + }; +} + +}( jQuery )); diff --git a/js/ui/jquery.ui.progressbar.js b/js/ui/jquery.ui.progressbar.js new file mode 100644 index 0000000000..d54e583f56 --- /dev/null +++ b/js/ui/jquery.ui.progressbar.js @@ -0,0 +1,108 @@ +/* + * jQuery UI Progressbar 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Progressbar + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget( "ui.progressbar", { + options: { + value: 0, + max: 100 + }, + + min: 0, + + _create: function() { + this.element + .addClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) + .attr({ + role: "progressbar", + "aria-valuemin": this.min, + "aria-valuemax": this.options.max, + "aria-valuenow": this._value() + }); + + this.valueDiv = $( "
        " ) + .appendTo( this.element ); + + this.oldValue = this._value(); + this._refreshValue(); + }, + + destroy: function() { + this.element + .removeClass( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) + .removeAttr( "role" ) + .removeAttr( "aria-valuemin" ) + .removeAttr( "aria-valuemax" ) + .removeAttr( "aria-valuenow" ); + + this.valueDiv.remove(); + + $.Widget.prototype.destroy.apply( this, arguments ); + }, + + value: function( newValue ) { + if ( newValue === undefined ) { + return this._value(); + } + + this._setOption( "value", newValue ); + return this; + }, + + _setOption: function( key, value ) { + if ( key === "value" ) { + this.options.value = value; + this._refreshValue(); + if ( this._value() === this.options.max ) { + this._trigger( "complete" ); + } + } + + $.Widget.prototype._setOption.apply( this, arguments ); + }, + + _value: function() { + var val = this.options.value; + // normalize invalid value + if ( typeof val !== "number" ) { + val = 0; + } + return Math.min( this.options.max, Math.max( this.min, val ) ); + }, + + _percentage: function() { + return 100 * this._value() / this.options.max; + }, + + _refreshValue: function() { + var value = this.value(); + var percentage = this._percentage(); + + if ( this.oldValue !== value ) { + this.oldValue = value; + this._trigger( "change" ); + } + + this.valueDiv + .toggleClass( "ui-corner-right", value === this.options.max ) + .width( percentage.toFixed(0) + "%" ); + this.element.attr( "aria-valuenow", value ); + } +}); + +$.extend( $.ui.progressbar, { + version: "1.8.10" +}); + +})( jQuery ); diff --git a/js/ui/jquery.ui.resizable.js b/js/ui/jquery.ui.resizable.js new file mode 100644 index 0000000000..1d7648a0c4 --- /dev/null +++ b/js/ui/jquery.ui.resizable.js @@ -0,0 +1,812 @@ +/* + * jQuery UI Resizable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Resizables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget("ui.resizable", $.ui.mouse, { + widgetEventPrefix: "resize", + options: { + alsoResize: false, + animate: false, + animateDuration: "slow", + animateEasing: "swing", + aspectRatio: false, + autoHide: false, + containment: false, + ghost: false, + grid: false, + handles: "e,s,se", + helper: false, + maxHeight: null, + maxWidth: null, + minHeight: 10, + minWidth: 10, + zIndex: 1000 + }, + _create: function() { + + var self = this, o = this.options; + this.element.addClass("ui-resizable"); + + $.extend(this, { + _aspectRatio: !!(o.aspectRatio), + aspectRatio: o.aspectRatio, + originalElement: this.element, + _proportionallyResizeElements: [], + _helper: o.helper || o.ghost || o.animate ? o.helper || 'ui-resizable-helper' : null + }); + + //Wrap the element if it cannot hold child nodes + if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) { + + //Opera fix for relative positioning + if (/relative/.test(this.element.css('position')) && $.browser.opera) + this.element.css({ position: 'relative', top: 'auto', left: 'auto' }); + + //Create a wrapper element and set the wrapper to the new current internal element + this.element.wrap( + $('
        ').css({ + position: this.element.css('position'), + width: this.element.outerWidth(), + height: this.element.outerHeight(), + top: this.element.css('top'), + left: this.element.css('left') + }) + ); + + //Overwrite the original this.element + this.element = this.element.parent().data( + "resizable", this.element.data('resizable') + ); + + this.elementIsWrapper = true; + + //Move margins to the wrapper + this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") }); + this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0}); + + //Prevent Safari textarea resize + this.originalResizeStyle = this.originalElement.css('resize'); + this.originalElement.css('resize', 'none'); + + //Push the actual element to our proportionallyResize internal array + this._proportionallyResizeElements.push(this.originalElement.css({ position: 'static', zoom: 1, display: 'block' })); + + // avoid IE jump (hard set the margin) + this.originalElement.css({ margin: this.originalElement.css('margin') }); + + // fix handlers offset + this._proportionallyResize(); + + } + + this.handles = o.handles || (!$('.ui-resizable-handle', this.element).length ? "e,s,se" : { n: '.ui-resizable-n', e: '.ui-resizable-e', s: '.ui-resizable-s', w: '.ui-resizable-w', se: '.ui-resizable-se', sw: '.ui-resizable-sw', ne: '.ui-resizable-ne', nw: '.ui-resizable-nw' }); + if(this.handles.constructor == String) { + + if(this.handles == 'all') this.handles = 'n,e,s,w,se,sw,ne,nw'; + var n = this.handles.split(","); this.handles = {}; + + for(var i = 0; i < n.length; i++) { + + var handle = $.trim(n[i]), hname = 'ui-resizable-'+handle; + var axis = $('
        '); + + // increase zIndex of sw, se, ne, nw axis + //TODO : this modifies original option + if(/sw|se|ne|nw/.test(handle)) axis.css({ zIndex: ++o.zIndex }); + + //TODO : What's going on here? + if ('se' == handle) { + axis.addClass('ui-icon ui-icon-gripsmall-diagonal-se'); + }; + + //Insert into internal handles object and append to element + this.handles[handle] = '.ui-resizable-'+handle; + this.element.append(axis); + } + + } + + this._renderAxis = function(target) { + + target = target || this.element; + + for(var i in this.handles) { + + if(this.handles[i].constructor == String) + this.handles[i] = $(this.handles[i], this.element).show(); + + //Apply pad to wrapper element, needed to fix axis position (textarea, inputs, scrolls) + if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { + + var axis = $(this.handles[i], this.element), padWrapper = 0; + + //Checking the correct pad and border + padWrapper = /sw|ne|nw|se|n|s/.test(i) ? axis.outerHeight() : axis.outerWidth(); + + //The padding type i have to apply... + var padPos = [ 'padding', + /ne|nw|n/.test(i) ? 'Top' : + /se|sw|s/.test(i) ? 'Bottom' : + /^e$/.test(i) ? 'Right' : 'Left' ].join(""); + + target.css(padPos, padWrapper); + + this._proportionallyResize(); + + } + + //TODO: What's that good for? There's not anything to be executed left + if(!$(this.handles[i]).length) + continue; + + } + }; + + //TODO: make renderAxis a prototype function + this._renderAxis(this.element); + + this._handles = $('.ui-resizable-handle', this.element) + .disableSelection(); + + //Matching axis name + this._handles.mouseover(function() { + if (!self.resizing) { + if (this.className) + var axis = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); + //Axis, default = se + self.axis = axis && axis[1] ? axis[1] : 'se'; + } + }); + + //If we want to auto hide the elements + if (o.autoHide) { + this._handles.hide(); + $(this.element) + .addClass("ui-resizable-autohide") + .hover(function() { + $(this).removeClass("ui-resizable-autohide"); + self._handles.show(); + }, + function(){ + if (!self.resizing) { + $(this).addClass("ui-resizable-autohide"); + self._handles.hide(); + } + }); + } + + //Initialize the mouse interaction + this._mouseInit(); + + }, + + destroy: function() { + + this._mouseDestroy(); + + var _destroy = function(exp) { + $(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing") + .removeData("resizable").unbind(".resizable").find('.ui-resizable-handle').remove(); + }; + + //TODO: Unwrap at same DOM position + if (this.elementIsWrapper) { + _destroy(this.element); + var wrapper = this.element; + wrapper.after( + this.originalElement.css({ + position: wrapper.css('position'), + width: wrapper.outerWidth(), + height: wrapper.outerHeight(), + top: wrapper.css('top'), + left: wrapper.css('left') + }) + ).remove(); + } + + this.originalElement.css('resize', this.originalResizeStyle); + _destroy(this.originalElement); + + return this; + }, + + _mouseCapture: function(event) { + var handle = false; + for (var i in this.handles) { + if ($(this.handles[i])[0] == event.target) { + handle = true; + } + } + + return !this.options.disabled && handle; + }, + + _mouseStart: function(event) { + + var o = this.options, iniPos = this.element.position(), el = this.element; + + this.resizing = true; + this.documentScroll = { top: $(document).scrollTop(), left: $(document).scrollLeft() }; + + // bugfix for http://dev.jquery.com/ticket/1749 + if (el.is('.ui-draggable') || (/absolute/).test(el.css('position'))) { + el.css({ position: 'absolute', top: iniPos.top, left: iniPos.left }); + } + + //Opera fixing relative position + if ($.browser.opera && (/relative/).test(el.css('position'))) + el.css({ position: 'relative', top: 'auto', left: 'auto' }); + + this._renderProxy(); + + var curleft = num(this.helper.css('left')), curtop = num(this.helper.css('top')); + + if (o.containment) { + curleft += $(o.containment).scrollLeft() || 0; + curtop += $(o.containment).scrollTop() || 0; + } + + //Store needed variables + this.offset = this.helper.offset(); + this.position = { left: curleft, top: curtop }; + this.size = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; + this.originalSize = this._helper ? { width: el.outerWidth(), height: el.outerHeight() } : { width: el.width(), height: el.height() }; + this.originalPosition = { left: curleft, top: curtop }; + this.sizeDiff = { width: el.outerWidth() - el.width(), height: el.outerHeight() - el.height() }; + this.originalMousePosition = { left: event.pageX, top: event.pageY }; + + //Aspect Ratio + this.aspectRatio = (typeof o.aspectRatio == 'number') ? o.aspectRatio : ((this.originalSize.width / this.originalSize.height) || 1); + + var cursor = $('.ui-resizable-' + this.axis).css('cursor'); + $('body').css('cursor', cursor == 'auto' ? this.axis + '-resize' : cursor); + + el.addClass("ui-resizable-resizing"); + this._propagate("start", event); + return true; + }, + + _mouseDrag: function(event) { + + //Increase performance, avoid regex + var el = this.helper, o = this.options, props = {}, + self = this, smp = this.originalMousePosition, a = this.axis; + + var dx = (event.pageX-smp.left)||0, dy = (event.pageY-smp.top)||0; + var trigger = this._change[a]; + if (!trigger) return false; + + // Calculate the attrs that will be change + var data = trigger.apply(this, [event, dx, dy]), ie6 = $.browser.msie && $.browser.version < 7, csdif = this.sizeDiff; + + if (this._aspectRatio || event.shiftKey) + data = this._updateRatio(data, event); + + data = this._respectSize(data, event); + + // plugins callbacks need to be called first + this._propagate("resize", event); + + el.css({ + top: this.position.top + "px", left: this.position.left + "px", + width: this.size.width + "px", height: this.size.height + "px" + }); + + if (!this._helper && this._proportionallyResizeElements.length) + this._proportionallyResize(); + + this._updateCache(data); + + // calling the user callback at the end + this._trigger('resize', event, this.ui()); + + return false; + }, + + _mouseStop: function(event) { + + this.resizing = false; + var o = this.options, self = this; + + if(this._helper) { + var pr = this._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), + soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height, + soffsetw = ista ? 0 : self.sizeDiff.width; + + var s = { width: (self.helper.width() - soffsetw), height: (self.helper.height() - soffseth) }, + left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null, + top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null; + + if (!o.animate) + this.element.css($.extend(s, { top: top, left: left })); + + self.helper.height(self.size.height); + self.helper.width(self.size.width); + + if (this._helper && !o.animate) this._proportionallyResize(); + } + + $('body').css('cursor', 'auto'); + + this.element.removeClass("ui-resizable-resizing"); + + this._propagate("stop", event); + + if (this._helper) this.helper.remove(); + return false; + + }, + + _updateCache: function(data) { + var o = this.options; + this.offset = this.helper.offset(); + if (isNumber(data.left)) this.position.left = data.left; + if (isNumber(data.top)) this.position.top = data.top; + if (isNumber(data.height)) this.size.height = data.height; + if (isNumber(data.width)) this.size.width = data.width; + }, + + _updateRatio: function(data, event) { + + var o = this.options, cpos = this.position, csize = this.size, a = this.axis; + + if (data.height) data.width = (csize.height * this.aspectRatio); + else if (data.width) data.height = (csize.width / this.aspectRatio); + + if (a == 'sw') { + data.left = cpos.left + (csize.width - data.width); + data.top = null; + } + if (a == 'nw') { + data.top = cpos.top + (csize.height - data.height); + data.left = cpos.left + (csize.width - data.width); + } + + return data; + }, + + _respectSize: function(data, event) { + + var el = this.helper, o = this.options, pRatio = this._aspectRatio || event.shiftKey, a = this.axis, + ismaxw = isNumber(data.width) && o.maxWidth && (o.maxWidth < data.width), ismaxh = isNumber(data.height) && o.maxHeight && (o.maxHeight < data.height), + isminw = isNumber(data.width) && o.minWidth && (o.minWidth > data.width), isminh = isNumber(data.height) && o.minHeight && (o.minHeight > data.height); + + if (isminw) data.width = o.minWidth; + if (isminh) data.height = o.minHeight; + if (ismaxw) data.width = o.maxWidth; + if (ismaxh) data.height = o.maxHeight; + + var dw = this.originalPosition.left + this.originalSize.width, dh = this.position.top + this.size.height; + var cw = /sw|nw|w/.test(a), ch = /nw|ne|n/.test(a); + + if (isminw && cw) data.left = dw - o.minWidth; + if (ismaxw && cw) data.left = dw - o.maxWidth; + if (isminh && ch) data.top = dh - o.minHeight; + if (ismaxh && ch) data.top = dh - o.maxHeight; + + // fixing jump error on top/left - bug #2330 + var isNotwh = !data.width && !data.height; + if (isNotwh && !data.left && data.top) data.top = null; + else if (isNotwh && !data.top && data.left) data.left = null; + + return data; + }, + + _proportionallyResize: function() { + + var o = this.options; + if (!this._proportionallyResizeElements.length) return; + var element = this.helper || this.element; + + for (var i=0; i < this._proportionallyResizeElements.length; i++) { + + var prel = this._proportionallyResizeElements[i]; + + if (!this.borderDif) { + var b = [prel.css('borderTopWidth'), prel.css('borderRightWidth'), prel.css('borderBottomWidth'), prel.css('borderLeftWidth')], + p = [prel.css('paddingTop'), prel.css('paddingRight'), prel.css('paddingBottom'), prel.css('paddingLeft')]; + + this.borderDif = $.map(b, function(v, i) { + var border = parseInt(v,10)||0, padding = parseInt(p[i],10)||0; + return border + padding; + }); + } + + if ($.browser.msie && !(!($(element).is(':hidden') || $(element).parents(':hidden').length))) + continue; + + prel.css({ + height: (element.height() - this.borderDif[0] - this.borderDif[2]) || 0, + width: (element.width() - this.borderDif[1] - this.borderDif[3]) || 0 + }); + + }; + + }, + + _renderProxy: function() { + + var el = this.element, o = this.options; + this.elementOffset = el.offset(); + + if(this._helper) { + + this.helper = this.helper || $('
        '); + + // fix ie6 offset TODO: This seems broken + var ie6 = $.browser.msie && $.browser.version < 7, ie6offset = (ie6 ? 1 : 0), + pxyoffset = ( ie6 ? 2 : -1 ); + + this.helper.addClass(this._helper).css({ + width: this.element.outerWidth() + pxyoffset, + height: this.element.outerHeight() + pxyoffset, + position: 'absolute', + left: this.elementOffset.left - ie6offset +'px', + top: this.elementOffset.top - ie6offset +'px', + zIndex: ++o.zIndex //TODO: Don't modify option + }); + + this.helper + .appendTo("body") + .disableSelection(); + + } else { + this.helper = this.element; + } + + }, + + _change: { + e: function(event, dx, dy) { + return { width: this.originalSize.width + dx }; + }, + w: function(event, dx, dy) { + var o = this.options, cs = this.originalSize, sp = this.originalPosition; + return { left: sp.left + dx, width: cs.width - dx }; + }, + n: function(event, dx, dy) { + var o = this.options, cs = this.originalSize, sp = this.originalPosition; + return { top: sp.top + dy, height: cs.height - dy }; + }, + s: function(event, dx, dy) { + return { height: this.originalSize.height + dy }; + }, + se: function(event, dx, dy) { + return $.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); + }, + sw: function(event, dx, dy) { + return $.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); + }, + ne: function(event, dx, dy) { + return $.extend(this._change.n.apply(this, arguments), this._change.e.apply(this, [event, dx, dy])); + }, + nw: function(event, dx, dy) { + return $.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [event, dx, dy])); + } + }, + + _propagate: function(n, event) { + $.ui.plugin.call(this, n, [event, this.ui()]); + (n != "resize" && this._trigger(n, event, this.ui())); + }, + + plugins: {}, + + ui: function() { + return { + originalElement: this.originalElement, + element: this.element, + helper: this.helper, + position: this.position, + size: this.size, + originalSize: this.originalSize, + originalPosition: this.originalPosition + }; + } + +}); + +$.extend($.ui.resizable, { + version: "1.8.10" +}); + +/* + * Resizable Extensions + */ + +$.ui.plugin.add("resizable", "alsoResize", { + + start: function (event, ui) { + var self = $(this).data("resizable"), o = self.options; + + var _store = function (exp) { + $(exp).each(function() { + var el = $(this); + el.data("resizable-alsoresize", { + width: parseInt(el.width(), 10), height: parseInt(el.height(), 10), + left: parseInt(el.css('left'), 10), top: parseInt(el.css('top'), 10), + position: el.css('position') // to reset Opera on stop() + }); + }); + }; + + if (typeof(o.alsoResize) == 'object' && !o.alsoResize.parentNode) { + if (o.alsoResize.length) { o.alsoResize = o.alsoResize[0]; _store(o.alsoResize); } + else { $.each(o.alsoResize, function (exp) { _store(exp); }); } + }else{ + _store(o.alsoResize); + } + }, + + resize: function (event, ui) { + var self = $(this).data("resizable"), o = self.options, os = self.originalSize, op = self.originalPosition; + + var delta = { + height: (self.size.height - os.height) || 0, width: (self.size.width - os.width) || 0, + top: (self.position.top - op.top) || 0, left: (self.position.left - op.left) || 0 + }, + + _alsoResize = function (exp, c) { + $(exp).each(function() { + var el = $(this), start = $(this).data("resizable-alsoresize"), style = {}, + css = c && c.length ? c : el.parents(ui.originalElement[0]).length ? ['width', 'height'] : ['width', 'height', 'top', 'left']; + + $.each(css, function (i, prop) { + var sum = (start[prop]||0) + (delta[prop]||0); + if (sum && sum >= 0) + style[prop] = sum || null; + }); + + // Opera fixing relative position + if ($.browser.opera && /relative/.test(el.css('position'))) { + self._revertToRelativePosition = true; + el.css({ position: 'absolute', top: 'auto', left: 'auto' }); + } + + el.css(style); + }); + }; + + if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) { + $.each(o.alsoResize, function (exp, c) { _alsoResize(exp, c); }); + }else{ + _alsoResize(o.alsoResize); + } + }, + + stop: function (event, ui) { + var self = $(this).data("resizable"), o = self.options; + + var _reset = function (exp) { + $(exp).each(function() { + var el = $(this); + // reset position for Opera - no need to verify it was changed + el.css({ position: el.data("resizable-alsoresize").position }); + }); + }; + + if (self._revertToRelativePosition) { + self._revertToRelativePosition = false; + if (typeof(o.alsoResize) == 'object' && !o.alsoResize.nodeType) { + $.each(o.alsoResize, function (exp) { _reset(exp); }); + }else{ + _reset(o.alsoResize); + } + } + + $(this).removeData("resizable-alsoresize"); + } +}); + +$.ui.plugin.add("resizable", "animate", { + + stop: function(event, ui) { + var self = $(this).data("resizable"), o = self.options; + + var pr = self._proportionallyResizeElements, ista = pr.length && (/textarea/i).test(pr[0].nodeName), + soffseth = ista && $.ui.hasScroll(pr[0], 'left') /* TODO - jump height */ ? 0 : self.sizeDiff.height, + soffsetw = ista ? 0 : self.sizeDiff.width; + + var style = { width: (self.size.width - soffsetw), height: (self.size.height - soffseth) }, + left = (parseInt(self.element.css('left'), 10) + (self.position.left - self.originalPosition.left)) || null, + top = (parseInt(self.element.css('top'), 10) + (self.position.top - self.originalPosition.top)) || null; + + self.element.animate( + $.extend(style, top && left ? { top: top, left: left } : {}), { + duration: o.animateDuration, + easing: o.animateEasing, + step: function() { + + var data = { + width: parseInt(self.element.css('width'), 10), + height: parseInt(self.element.css('height'), 10), + top: parseInt(self.element.css('top'), 10), + left: parseInt(self.element.css('left'), 10) + }; + + if (pr && pr.length) $(pr[0]).css({ width: data.width, height: data.height }); + + // propagating resize, and updating values for each animation step + self._updateCache(data); + self._propagate("resize", event); + + } + } + ); + } + +}); + +$.ui.plugin.add("resizable", "containment", { + + start: function(event, ui) { + var self = $(this).data("resizable"), o = self.options, el = self.element; + var oc = o.containment, ce = (oc instanceof $) ? oc.get(0) : (/parent/.test(oc)) ? el.parent().get(0) : oc; + if (!ce) return; + + self.containerElement = $(ce); + + if (/document/.test(oc) || oc == document) { + self.containerOffset = { left: 0, top: 0 }; + self.containerPosition = { left: 0, top: 0 }; + + self.parentData = { + element: $(document), left: 0, top: 0, + width: $(document).width(), height: $(document).height() || document.body.parentNode.scrollHeight + }; + } + + // i'm a node, so compute top, left, right, bottom + else { + var element = $(ce), p = []; + $([ "Top", "Right", "Left", "Bottom" ]).each(function(i, name) { p[i] = num(element.css("padding" + name)); }); + + self.containerOffset = element.offset(); + self.containerPosition = element.position(); + self.containerSize = { height: (element.innerHeight() - p[3]), width: (element.innerWidth() - p[1]) }; + + var co = self.containerOffset, ch = self.containerSize.height, cw = self.containerSize.width, + width = ($.ui.hasScroll(ce, "left") ? ce.scrollWidth : cw ), height = ($.ui.hasScroll(ce) ? ce.scrollHeight : ch); + + self.parentData = { + element: ce, left: co.left, top: co.top, width: width, height: height + }; + } + }, + + resize: function(event, ui) { + var self = $(this).data("resizable"), o = self.options, + ps = self.containerSize, co = self.containerOffset, cs = self.size, cp = self.position, + pRatio = self._aspectRatio || event.shiftKey, cop = { top:0, left:0 }, ce = self.containerElement; + + if (ce[0] != document && (/static/).test(ce.css('position'))) cop = co; + + if (cp.left < (self._helper ? co.left : 0)) { + self.size.width = self.size.width + (self._helper ? (self.position.left - co.left) : (self.position.left - cop.left)); + if (pRatio) self.size.height = self.size.width / o.aspectRatio; + self.position.left = o.helper ? co.left : 0; + } + + if (cp.top < (self._helper ? co.top : 0)) { + self.size.height = self.size.height + (self._helper ? (self.position.top - co.top) : self.position.top); + if (pRatio) self.size.width = self.size.height * o.aspectRatio; + self.position.top = self._helper ? co.top : 0; + } + + self.offset.left = self.parentData.left+self.position.left; + self.offset.top = self.parentData.top+self.position.top; + + var woset = Math.abs( (self._helper ? self.offset.left - cop.left : (self.offset.left - cop.left)) + self.sizeDiff.width ), + hoset = Math.abs( (self._helper ? self.offset.top - cop.top : (self.offset.top - co.top)) + self.sizeDiff.height ); + + var isParent = self.containerElement.get(0) == self.element.parent().get(0), + isOffsetRelative = /relative|absolute/.test(self.containerElement.css('position')); + + if(isParent && isOffsetRelative) woset -= self.parentData.left; + + if (woset + self.size.width >= self.parentData.width) { + self.size.width = self.parentData.width - woset; + if (pRatio) self.size.height = self.size.width / self.aspectRatio; + } + + if (hoset + self.size.height >= self.parentData.height) { + self.size.height = self.parentData.height - hoset; + if (pRatio) self.size.width = self.size.height * self.aspectRatio; + } + }, + + stop: function(event, ui){ + var self = $(this).data("resizable"), o = self.options, cp = self.position, + co = self.containerOffset, cop = self.containerPosition, ce = self.containerElement; + + var helper = $(self.helper), ho = helper.offset(), w = helper.outerWidth() - self.sizeDiff.width, h = helper.outerHeight() - self.sizeDiff.height; + + if (self._helper && !o.animate && (/relative/).test(ce.css('position'))) + $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); + + if (self._helper && !o.animate && (/static/).test(ce.css('position'))) + $(this).css({ left: ho.left - cop.left - co.left, width: w, height: h }); + + } +}); + +$.ui.plugin.add("resizable", "ghost", { + + start: function(event, ui) { + + var self = $(this).data("resizable"), o = self.options, cs = self.size; + + self.ghost = self.originalElement.clone(); + self.ghost + .css({ opacity: .25, display: 'block', position: 'relative', height: cs.height, width: cs.width, margin: 0, left: 0, top: 0 }) + .addClass('ui-resizable-ghost') + .addClass(typeof o.ghost == 'string' ? o.ghost : ''); + + self.ghost.appendTo(self.helper); + + }, + + resize: function(event, ui){ + var self = $(this).data("resizable"), o = self.options; + if (self.ghost) self.ghost.css({ position: 'relative', height: self.size.height, width: self.size.width }); + }, + + stop: function(event, ui){ + var self = $(this).data("resizable"), o = self.options; + if (self.ghost && self.helper) self.helper.get(0).removeChild(self.ghost.get(0)); + } + +}); + +$.ui.plugin.add("resizable", "grid", { + + resize: function(event, ui) { + var self = $(this).data("resizable"), o = self.options, cs = self.size, os = self.originalSize, op = self.originalPosition, a = self.axis, ratio = o._aspectRatio || event.shiftKey; + o.grid = typeof o.grid == "number" ? [o.grid, o.grid] : o.grid; + var ox = Math.round((cs.width - os.width) / (o.grid[0]||1)) * (o.grid[0]||1), oy = Math.round((cs.height - os.height) / (o.grid[1]||1)) * (o.grid[1]||1); + + if (/^(se|s|e)$/.test(a)) { + self.size.width = os.width + ox; + self.size.height = os.height + oy; + } + else if (/^(ne)$/.test(a)) { + self.size.width = os.width + ox; + self.size.height = os.height + oy; + self.position.top = op.top - oy; + } + else if (/^(sw)$/.test(a)) { + self.size.width = os.width + ox; + self.size.height = os.height + oy; + self.position.left = op.left - ox; + } + else { + self.size.width = os.width + ox; + self.size.height = os.height + oy; + self.position.top = op.top - oy; + self.position.left = op.left - ox; + } + } + +}); + +var num = function(v) { + return parseInt(v, 10) || 0; +}; + +var isNumber = function(value) { + return !isNaN(parseInt(value, 10)); +}; + +})(jQuery); diff --git a/js/ui/jquery.ui.selectable.js b/js/ui/jquery.ui.selectable.js new file mode 100644 index 0000000000..9ada93b96d --- /dev/null +++ b/js/ui/jquery.ui.selectable.js @@ -0,0 +1,266 @@ +/* + * jQuery UI Selectable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget("ui.selectable", $.ui.mouse, { + options: { + appendTo: 'body', + autoRefresh: true, + distance: 0, + filter: '*', + tolerance: 'touch' + }, + _create: function() { + var self = this; + + this.element.addClass("ui-selectable"); + + this.dragged = false; + + // cache selectee children based on filter + var selectees; + this.refresh = function() { + selectees = $(self.options.filter, self.element[0]); + selectees.each(function() { + var $this = $(this); + var pos = $this.offset(); + $.data(this, "selectable-item", { + element: this, + $element: $this, + left: pos.left, + top: pos.top, + right: pos.left + $this.outerWidth(), + bottom: pos.top + $this.outerHeight(), + startselected: false, + selected: $this.hasClass('ui-selected'), + selecting: $this.hasClass('ui-selecting'), + unselecting: $this.hasClass('ui-unselecting') + }); + }); + }; + this.refresh(); + + this.selectees = selectees.addClass("ui-selectee"); + + this._mouseInit(); + + this.helper = $("
        "); + }, + + destroy: function() { + this.selectees + .removeClass("ui-selectee") + .removeData("selectable-item"); + this.element + .removeClass("ui-selectable ui-selectable-disabled") + .removeData("selectable") + .unbind(".selectable"); + this._mouseDestroy(); + + return this; + }, + + _mouseStart: function(event) { + var self = this; + + this.opos = [event.pageX, event.pageY]; + + if (this.options.disabled) + return; + + var options = this.options; + + this.selectees = $(options.filter, this.element[0]); + + this._trigger("start", event); + + $(options.appendTo).append(this.helper); + // position helper (lasso) + this.helper.css({ + "left": event.clientX, + "top": event.clientY, + "width": 0, + "height": 0 + }); + + if (options.autoRefresh) { + this.refresh(); + } + + this.selectees.filter('.ui-selected').each(function() { + var selectee = $.data(this, "selectable-item"); + selectee.startselected = true; + if (!event.metaKey) { + selectee.$element.removeClass('ui-selected'); + selectee.selected = false; + selectee.$element.addClass('ui-unselecting'); + selectee.unselecting = true; + // selectable UNSELECTING callback + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + }); + + $(event.target).parents().andSelf().each(function() { + var selectee = $.data(this, "selectable-item"); + if (selectee) { + var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected'); + selectee.$element + .removeClass(doSelect ? "ui-unselecting" : "ui-selected") + .addClass(doSelect ? "ui-selecting" : "ui-unselecting"); + selectee.unselecting = !doSelect; + selectee.selecting = doSelect; + selectee.selected = doSelect; + // selectable (UN)SELECTING callback + if (doSelect) { + self._trigger("selecting", event, { + selecting: selectee.element + }); + } else { + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + return false; + } + }); + + }, + + _mouseDrag: function(event) { + var self = this; + this.dragged = true; + + if (this.options.disabled) + return; + + var options = this.options; + + var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY; + if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; } + if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; } + this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1}); + + this.selectees.each(function() { + var selectee = $.data(this, "selectable-item"); + //prevent helper from being selected if appendTo: selectable + if (!selectee || selectee.element == self.element[0]) + return; + var hit = false; + if (options.tolerance == 'touch') { + hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) ); + } else if (options.tolerance == 'fit') { + hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2); + } + + if (hit) { + // SELECT + if (selectee.selected) { + selectee.$element.removeClass('ui-selected'); + selectee.selected = false; + } + if (selectee.unselecting) { + selectee.$element.removeClass('ui-unselecting'); + selectee.unselecting = false; + } + if (!selectee.selecting) { + selectee.$element.addClass('ui-selecting'); + selectee.selecting = true; + // selectable SELECTING callback + self._trigger("selecting", event, { + selecting: selectee.element + }); + } + } else { + // UNSELECT + if (selectee.selecting) { + if (event.metaKey && selectee.startselected) { + selectee.$element.removeClass('ui-selecting'); + selectee.selecting = false; + selectee.$element.addClass('ui-selected'); + selectee.selected = true; + } else { + selectee.$element.removeClass('ui-selecting'); + selectee.selecting = false; + if (selectee.startselected) { + selectee.$element.addClass('ui-unselecting'); + selectee.unselecting = true; + } + // selectable UNSELECTING callback + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + } + if (selectee.selected) { + if (!event.metaKey && !selectee.startselected) { + selectee.$element.removeClass('ui-selected'); + selectee.selected = false; + + selectee.$element.addClass('ui-unselecting'); + selectee.unselecting = true; + // selectable UNSELECTING callback + self._trigger("unselecting", event, { + unselecting: selectee.element + }); + } + } + } + }); + + return false; + }, + + _mouseStop: function(event) { + var self = this; + + this.dragged = false; + + var options = this.options; + + $('.ui-unselecting', this.element[0]).each(function() { + var selectee = $.data(this, "selectable-item"); + selectee.$element.removeClass('ui-unselecting'); + selectee.unselecting = false; + selectee.startselected = false; + self._trigger("unselected", event, { + unselected: selectee.element + }); + }); + $('.ui-selecting', this.element[0]).each(function() { + var selectee = $.data(this, "selectable-item"); + selectee.$element.removeClass('ui-selecting').addClass('ui-selected'); + selectee.selecting = false; + selectee.selected = true; + selectee.startselected = true; + self._trigger("selected", event, { + selected: selectee.element + }); + }); + this._trigger("stop", event); + + this.helper.remove(); + + return false; + } + +}); + +$.extend($.ui.selectable, { + version: "1.8.10" +}); + +})(jQuery); diff --git a/js/ui/jquery.ui.slider.js b/js/ui/jquery.ui.slider.js new file mode 100644 index 0000000000..fa571a9645 --- /dev/null +++ b/js/ui/jquery.ui.slider.js @@ -0,0 +1,682 @@ +/* + * jQuery UI Slider 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Slider + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +// number of pages in a slider +// (how many times can you page up/down to go through the whole range) +var numPages = 5; + +$.widget( "ui.slider", $.ui.mouse, { + + widgetEventPrefix: "slide", + + options: { + animate: false, + distance: 0, + max: 100, + min: 0, + orientation: "horizontal", + range: false, + step: 1, + value: 0, + values: null + }, + + _create: function() { + var self = this, + o = this.options; + + this._keySliding = false; + this._mouseSliding = false; + this._animateOff = true; + this._handleIndex = null; + this._detectOrientation(); + this._mouseInit(); + + this.element + .addClass( "ui-slider" + + " ui-slider-" + this.orientation + + " ui-widget" + + " ui-widget-content" + + " ui-corner-all" ); + + if ( o.disabled ) { + this.element.addClass( "ui-slider-disabled ui-disabled" ); + } + + this.range = $([]); + + if ( o.range ) { + if ( o.range === true ) { + this.range = $( "
        " ); + if ( !o.values ) { + o.values = [ this._valueMin(), this._valueMin() ]; + } + if ( o.values.length && o.values.length !== 2 ) { + o.values = [ o.values[0], o.values[0] ]; + } + } else { + this.range = $( "
        " ); + } + + this.range + .appendTo( this.element ) + .addClass( "ui-slider-range" ); + + if ( o.range === "min" || o.range === "max" ) { + this.range.addClass( "ui-slider-range-" + o.range ); + } + + // note: this isn't the most fittingly semantic framework class for this element, + // but worked best visually with a variety of themes + this.range.addClass( "ui-widget-header" ); + } + + if ( $( ".ui-slider-handle", this.element ).length === 0 ) { + $( "" ) + .appendTo( this.element ) + .addClass( "ui-slider-handle" ); + } + + if ( o.values && o.values.length ) { + while ( $(".ui-slider-handle", this.element).length < o.values.length ) { + $( "" ) + .appendTo( this.element ) + .addClass( "ui-slider-handle" ); + } + } + + this.handles = $( ".ui-slider-handle", this.element ) + .addClass( "ui-state-default" + + " ui-corner-all" ); + + this.handle = this.handles.eq( 0 ); + + this.handles.add( this.range ).filter( "a" ) + .click(function( event ) { + event.preventDefault(); + }) + .hover(function() { + if ( !o.disabled ) { + $( this ).addClass( "ui-state-hover" ); + } + }, function() { + $( this ).removeClass( "ui-state-hover" ); + }) + .focus(function() { + if ( !o.disabled ) { + $( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" ); + $( this ).addClass( "ui-state-focus" ); + } else { + $( this ).blur(); + } + }) + .blur(function() { + $( this ).removeClass( "ui-state-focus" ); + }); + + this.handles.each(function( i ) { + $( this ).data( "index.ui-slider-handle", i ); + }); + + this.handles + .keydown(function( event ) { + var ret = true, + index = $( this ).data( "index.ui-slider-handle" ), + allowed, + curVal, + newVal, + step; + + if ( self.options.disabled ) { + return; + } + + switch ( event.keyCode ) { + case $.ui.keyCode.HOME: + case $.ui.keyCode.END: + case $.ui.keyCode.PAGE_UP: + case $.ui.keyCode.PAGE_DOWN: + case $.ui.keyCode.UP: + case $.ui.keyCode.RIGHT: + case $.ui.keyCode.DOWN: + case $.ui.keyCode.LEFT: + ret = false; + if ( !self._keySliding ) { + self._keySliding = true; + $( this ).addClass( "ui-state-active" ); + allowed = self._start( event, index ); + if ( allowed === false ) { + return; + } + } + break; + } + + step = self.options.step; + if ( self.options.values && self.options.values.length ) { + curVal = newVal = self.values( index ); + } else { + curVal = newVal = self.value(); + } + + switch ( event.keyCode ) { + case $.ui.keyCode.HOME: + newVal = self._valueMin(); + break; + case $.ui.keyCode.END: + newVal = self._valueMax(); + break; + case $.ui.keyCode.PAGE_UP: + newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) ); + break; + case $.ui.keyCode.PAGE_DOWN: + newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) ); + break; + case $.ui.keyCode.UP: + case $.ui.keyCode.RIGHT: + if ( curVal === self._valueMax() ) { + return; + } + newVal = self._trimAlignValue( curVal + step ); + break; + case $.ui.keyCode.DOWN: + case $.ui.keyCode.LEFT: + if ( curVal === self._valueMin() ) { + return; + } + newVal = self._trimAlignValue( curVal - step ); + break; + } + + self._slide( event, index, newVal ); + + return ret; + + }) + .keyup(function( event ) { + var index = $( this ).data( "index.ui-slider-handle" ); + + if ( self._keySliding ) { + self._keySliding = false; + self._stop( event, index ); + self._change( event, index ); + $( this ).removeClass( "ui-state-active" ); + } + + }); + + this._refreshValue(); + + this._animateOff = false; + }, + + destroy: function() { + this.handles.remove(); + this.range.remove(); + + this.element + .removeClass( "ui-slider" + + " ui-slider-horizontal" + + " ui-slider-vertical" + + " ui-slider-disabled" + + " ui-widget" + + " ui-widget-content" + + " ui-corner-all" ) + .removeData( "slider" ) + .unbind( ".slider" ); + + this._mouseDestroy(); + + return this; + }, + + _mouseCapture: function( event ) { + var o = this.options, + position, + normValue, + distance, + closestHandle, + self, + index, + allowed, + offset, + mouseOverHandle; + + if ( o.disabled ) { + return false; + } + + this.elementSize = { + width: this.element.outerWidth(), + height: this.element.outerHeight() + }; + this.elementOffset = this.element.offset(); + + position = { x: event.pageX, y: event.pageY }; + normValue = this._normValueFromMouse( position ); + distance = this._valueMax() - this._valueMin() + 1; + self = this; + this.handles.each(function( i ) { + var thisDistance = Math.abs( normValue - self.values(i) ); + if ( distance > thisDistance ) { + distance = thisDistance; + closestHandle = $( this ); + index = i; + } + }); + + // workaround for bug #3736 (if both handles of a range are at 0, + // the first is always used as the one with least distance, + // and moving it is obviously prevented by preventing negative ranges) + if( o.range === true && this.values(1) === o.min ) { + index += 1; + closestHandle = $( this.handles[index] ); + } + + allowed = this._start( event, index ); + if ( allowed === false ) { + return false; + } + this._mouseSliding = true; + + self._handleIndex = index; + + closestHandle + .addClass( "ui-state-active" ) + .focus(); + + offset = closestHandle.offset(); + mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" ); + this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : { + left: event.pageX - offset.left - ( closestHandle.width() / 2 ), + top: event.pageY - offset.top - + ( closestHandle.height() / 2 ) - + ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) - + ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) + + ( parseInt( closestHandle.css("marginTop"), 10 ) || 0) + }; + + if ( !this.handles.hasClass( "ui-state-hover" ) ) { + this._slide( event, index, normValue ); + } + this._animateOff = true; + return true; + }, + + _mouseStart: function( event ) { + return true; + }, + + _mouseDrag: function( event ) { + var position = { x: event.pageX, y: event.pageY }, + normValue = this._normValueFromMouse( position ); + + this._slide( event, this._handleIndex, normValue ); + + return false; + }, + + _mouseStop: function( event ) { + this.handles.removeClass( "ui-state-active" ); + this._mouseSliding = false; + + this._stop( event, this._handleIndex ); + this._change( event, this._handleIndex ); + + this._handleIndex = null; + this._clickOffset = null; + this._animateOff = false; + + return false; + }, + + _detectOrientation: function() { + this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal"; + }, + + _normValueFromMouse: function( position ) { + var pixelTotal, + pixelMouse, + percentMouse, + valueTotal, + valueMouse; + + if ( this.orientation === "horizontal" ) { + pixelTotal = this.elementSize.width; + pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 ); + } else { + pixelTotal = this.elementSize.height; + pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 ); + } + + percentMouse = ( pixelMouse / pixelTotal ); + if ( percentMouse > 1 ) { + percentMouse = 1; + } + if ( percentMouse < 0 ) { + percentMouse = 0; + } + if ( this.orientation === "vertical" ) { + percentMouse = 1 - percentMouse; + } + + valueTotal = this._valueMax() - this._valueMin(); + valueMouse = this._valueMin() + percentMouse * valueTotal; + + return this._trimAlignValue( valueMouse ); + }, + + _start: function( event, index ) { + var uiHash = { + handle: this.handles[ index ], + value: this.value() + }; + if ( this.options.values && this.options.values.length ) { + uiHash.value = this.values( index ); + uiHash.values = this.values(); + } + return this._trigger( "start", event, uiHash ); + }, + + _slide: function( event, index, newVal ) { + var otherVal, + newValues, + allowed; + + if ( this.options.values && this.options.values.length ) { + otherVal = this.values( index ? 0 : 1 ); + + if ( ( this.options.values.length === 2 && this.options.range === true ) && + ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) ) + ) { + newVal = otherVal; + } + + if ( newVal !== this.values( index ) ) { + newValues = this.values(); + newValues[ index ] = newVal; + // A slide can be canceled by returning false from the slide callback + allowed = this._trigger( "slide", event, { + handle: this.handles[ index ], + value: newVal, + values: newValues + } ); + otherVal = this.values( index ? 0 : 1 ); + if ( allowed !== false ) { + this.values( index, newVal, true ); + } + } + } else { + if ( newVal !== this.value() ) { + // A slide can be canceled by returning false from the slide callback + allowed = this._trigger( "slide", event, { + handle: this.handles[ index ], + value: newVal + } ); + if ( allowed !== false ) { + this.value( newVal ); + } + } + } + }, + + _stop: function( event, index ) { + var uiHash = { + handle: this.handles[ index ], + value: this.value() + }; + if ( this.options.values && this.options.values.length ) { + uiHash.value = this.values( index ); + uiHash.values = this.values(); + } + + this._trigger( "stop", event, uiHash ); + }, + + _change: function( event, index ) { + if ( !this._keySliding && !this._mouseSliding ) { + var uiHash = { + handle: this.handles[ index ], + value: this.value() + }; + if ( this.options.values && this.options.values.length ) { + uiHash.value = this.values( index ); + uiHash.values = this.values(); + } + + this._trigger( "change", event, uiHash ); + } + }, + + value: function( newValue ) { + if ( arguments.length ) { + this.options.value = this._trimAlignValue( newValue ); + this._refreshValue(); + this._change( null, 0 ); + } + + return this._value(); + }, + + values: function( index, newValue ) { + var vals, + newValues, + i; + + if ( arguments.length > 1 ) { + this.options.values[ index ] = this._trimAlignValue( newValue ); + this._refreshValue(); + this._change( null, index ); + } + + if ( arguments.length ) { + if ( $.isArray( arguments[ 0 ] ) ) { + vals = this.options.values; + newValues = arguments[ 0 ]; + for ( i = 0; i < vals.length; i += 1 ) { + vals[ i ] = this._trimAlignValue( newValues[ i ] ); + this._change( null, i ); + } + this._refreshValue(); + } else { + if ( this.options.values && this.options.values.length ) { + return this._values( index ); + } else { + return this.value(); + } + } + } else { + return this._values(); + } + }, + + _setOption: function( key, value ) { + var i, + valsLength = 0; + + if ( $.isArray( this.options.values ) ) { + valsLength = this.options.values.length; + } + + $.Widget.prototype._setOption.apply( this, arguments ); + + switch ( key ) { + case "disabled": + if ( value ) { + this.handles.filter( ".ui-state-focus" ).blur(); + this.handles.removeClass( "ui-state-hover" ); + this.handles.attr( "disabled", "disabled" ); + this.element.addClass( "ui-disabled" ); + } else { + this.handles.removeAttr( "disabled" ); + this.element.removeClass( "ui-disabled" ); + } + break; + case "orientation": + this._detectOrientation(); + this.element + .removeClass( "ui-slider-horizontal ui-slider-vertical" ) + .addClass( "ui-slider-" + this.orientation ); + this._refreshValue(); + break; + case "value": + this._animateOff = true; + this._refreshValue(); + this._change( null, 0 ); + this._animateOff = false; + break; + case "values": + this._animateOff = true; + this._refreshValue(); + for ( i = 0; i < valsLength; i += 1 ) { + this._change( null, i ); + } + this._animateOff = false; + break; + } + }, + + //internal value getter + // _value() returns value trimmed by min and max, aligned by step + _value: function() { + var val = this.options.value; + val = this._trimAlignValue( val ); + + return val; + }, + + //internal values getter + // _values() returns array of values trimmed by min and max, aligned by step + // _values( index ) returns single value trimmed by min and max, aligned by step + _values: function( index ) { + var val, + vals, + i; + + if ( arguments.length ) { + val = this.options.values[ index ]; + val = this._trimAlignValue( val ); + + return val; + } else { + // .slice() creates a copy of the array + // this copy gets trimmed by min and max and then returned + vals = this.options.values.slice(); + for ( i = 0; i < vals.length; i+= 1) { + vals[ i ] = this._trimAlignValue( vals[ i ] ); + } + + return vals; + } + }, + + // returns the step-aligned value that val is closest to, between (inclusive) min and max + _trimAlignValue: function( val ) { + if ( val <= this._valueMin() ) { + return this._valueMin(); + } + if ( val >= this._valueMax() ) { + return this._valueMax(); + } + var step = ( this.options.step > 0 ) ? this.options.step : 1, + valModStep = (val - this._valueMin()) % step; + alignValue = val - valModStep; + + if ( Math.abs(valModStep) * 2 >= step ) { + alignValue += ( valModStep > 0 ) ? step : ( -step ); + } + + // Since JavaScript has problems with large floats, round + // the final value to 5 digits after the decimal point (see #4124) + return parseFloat( alignValue.toFixed(5) ); + }, + + _valueMin: function() { + return this.options.min; + }, + + _valueMax: function() { + return this.options.max; + }, + + _refreshValue: function() { + var oRange = this.options.range, + o = this.options, + self = this, + animate = ( !this._animateOff ) ? o.animate : false, + valPercent, + _set = {}, + lastValPercent, + value, + valueMin, + valueMax; + + if ( this.options.values && this.options.values.length ) { + this.handles.each(function( i, j ) { + valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100; + _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; + $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); + if ( self.options.range === true ) { + if ( self.orientation === "horizontal" ) { + if ( i === 0 ) { + self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate ); + } + if ( i === 1 ) { + self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); + } + } else { + if ( i === 0 ) { + self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate ); + } + if ( i === 1 ) { + self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } ); + } + } + } + lastValPercent = valPercent; + }); + } else { + value = this.value(); + valueMin = this._valueMin(); + valueMax = this._valueMax(); + valPercent = ( valueMax !== valueMin ) ? + ( value - valueMin ) / ( valueMax - valueMin ) * 100 : + 0; + _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%"; + this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate ); + + if ( oRange === "min" && this.orientation === "horizontal" ) { + this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate ); + } + if ( oRange === "max" && this.orientation === "horizontal" ) { + this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); + } + if ( oRange === "min" && this.orientation === "vertical" ) { + this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate ); + } + if ( oRange === "max" && this.orientation === "vertical" ) { + this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } ); + } + } + } + +}); + +$.extend( $.ui.slider, { + version: "1.8.10" +}); + +}(jQuery)); diff --git a/js/ui/jquery.ui.sortable.js b/js/ui/jquery.ui.sortable.js new file mode 100644 index 0000000000..9665b77dd0 --- /dev/null +++ b/js/ui/jquery.ui.sortable.js @@ -0,0 +1,1073 @@ +/* + * jQuery UI Sortable 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Sortables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +$.widget("ui.sortable", $.ui.mouse, { + widgetEventPrefix: "sort", + options: { + appendTo: "parent", + axis: false, + connectWith: false, + containment: false, + cursor: 'auto', + cursorAt: false, + dropOnEmpty: true, + forcePlaceholderSize: false, + forceHelperSize: false, + grid: false, + handle: false, + helper: "original", + items: '> *', + opacity: false, + placeholder: false, + revert: false, + scroll: true, + scrollSensitivity: 20, + scrollSpeed: 20, + scope: "default", + tolerance: "intersect", + zIndex: 1000 + }, + _create: function() { + + var o = this.options; + this.containerCache = {}; + this.element.addClass("ui-sortable"); + + //Get the items + this.refresh(); + + //Let's determine if the items are floating + this.floating = this.items.length ? (/left|right/).test(this.items[0].item.css('float')) : false; + + //Let's determine the parent's offset + this.offset = this.element.offset(); + + //Initialize mouse events for interaction + this._mouseInit(); + + }, + + destroy: function() { + this.element + .removeClass("ui-sortable ui-sortable-disabled") + .removeData("sortable") + .unbind(".sortable"); + this._mouseDestroy(); + + for ( var i = this.items.length - 1; i >= 0; i-- ) + this.items[i].item.removeData("sortable-item"); + + return this; + }, + + _setOption: function(key, value){ + if ( key === "disabled" ) { + this.options[ key ] = value; + + this.widget() + [ value ? "addClass" : "removeClass"]( "ui-sortable-disabled" ); + } else { + // Don't call widget base _setOption for disable as it adds ui-state-disabled class + $.Widget.prototype._setOption.apply(this, arguments); + } + }, + + _mouseCapture: function(event, overrideHandle) { + + if (this.reverting) { + return false; + } + + if(this.options.disabled || this.options.type == 'static') return false; + + //We have to refresh the items data once first + this._refreshItems(event); + + //Find out if the clicked node (or one of its parents) is a actual item in this.items + var currentItem = null, self = this, nodes = $(event.target).parents().each(function() { + if($.data(this, 'sortable-item') == self) { + currentItem = $(this); + return false; + } + }); + if($.data(event.target, 'sortable-item') == self) currentItem = $(event.target); + + if(!currentItem) return false; + if(this.options.handle && !overrideHandle) { + var validHandle = false; + + $(this.options.handle, currentItem).find("*").andSelf().each(function() { if(this == event.target) validHandle = true; }); + if(!validHandle) return false; + } + + this.currentItem = currentItem; + this._removeCurrentsFromItems(); + return true; + + }, + + _mouseStart: function(event, overrideHandle, noActivation) { + + var o = this.options, self = this; + this.currentContainer = this; + + //We only need to call refreshPositions, because the refreshItems call has been moved to mouseCapture + this.refreshPositions(); + + //Create and append the visible helper + this.helper = this._createHelper(event); + + //Cache the helper size + this._cacheHelperProportions(); + + /* + * - Position generation - + * This block generates everything position related - it's the core of draggables. + */ + + //Cache the margins of the original element + this._cacheMargins(); + + //Get the next scrolling parent + this.scrollParent = this.helper.scrollParent(); + + //The element's absolute position on the page minus margins + this.offset = this.currentItem.offset(); + this.offset = { + top: this.offset.top - this.margins.top, + left: this.offset.left - this.margins.left + }; + + // Only after we got the offset, we can change the helper's position to absolute + // TODO: Still need to figure out a way to make relative sorting possible + this.helper.css("position", "absolute"); + this.cssPosition = this.helper.css("position"); + + $.extend(this.offset, { + click: { //Where the click happened, relative to the element + left: event.pageX - this.offset.left, + top: event.pageY - this.offset.top + }, + parent: this._getParentOffset(), + relative: this._getRelativeOffset() //This is a relative to absolute position minus the actual position calculation - only used for relative positioned helper + }); + + //Generate the original position + this.originalPosition = this._generatePosition(event); + this.originalPageX = event.pageX; + this.originalPageY = event.pageY; + + //Adjust the mouse offset relative to the helper if 'cursorAt' is supplied + (o.cursorAt && this._adjustOffsetFromHelper(o.cursorAt)); + + //Cache the former DOM position + this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; + + //If the helper is not the original, hide the original so it's not playing any role during the drag, won't cause anything bad this way + if(this.helper[0] != this.currentItem[0]) { + this.currentItem.hide(); + } + + //Create the placeholder + this._createPlaceholder(); + + //Set a containment if given in the options + if(o.containment) + this._setContainment(); + + if(o.cursor) { // cursor option + if ($('body').css("cursor")) this._storedCursor = $('body').css("cursor"); + $('body').css("cursor", o.cursor); + } + + if(o.opacity) { // opacity option + if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity"); + this.helper.css("opacity", o.opacity); + } + + if(o.zIndex) { // zIndex option + if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex"); + this.helper.css("zIndex", o.zIndex); + } + + //Prepare scrolling + if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') + this.overflowOffset = this.scrollParent.offset(); + + //Call callbacks + this._trigger("start", event, this._uiHash()); + + //Recache the helper size + if(!this._preserveHelperProportions) + this._cacheHelperProportions(); + + + //Post 'activate' events to possible containers + if(!noActivation) { + for (var i = this.containers.length - 1; i >= 0; i--) { this.containers[i]._trigger("activate", event, self._uiHash(this)); } + } + + //Prepare possible droppables + if($.ui.ddmanager) + $.ui.ddmanager.current = this; + + if ($.ui.ddmanager && !o.dropBehaviour) + $.ui.ddmanager.prepareOffsets(this, event); + + this.dragging = true; + + this.helper.addClass("ui-sortable-helper"); + this._mouseDrag(event); //Execute the drag once - this causes the helper not to be visible before getting its correct position + return true; + + }, + + _mouseDrag: function(event) { + + //Compute the helpers position + this.position = this._generatePosition(event); + this.positionAbs = this._convertPositionTo("absolute"); + + if (!this.lastPositionAbs) { + this.lastPositionAbs = this.positionAbs; + } + + //Do scrolling + if(this.options.scroll) { + var o = this.options, scrolled = false; + if(this.scrollParent[0] != document && this.scrollParent[0].tagName != 'HTML') { + + if((this.overflowOffset.top + this.scrollParent[0].offsetHeight) - event.pageY < o.scrollSensitivity) + this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop + o.scrollSpeed; + else if(event.pageY - this.overflowOffset.top < o.scrollSensitivity) + this.scrollParent[0].scrollTop = scrolled = this.scrollParent[0].scrollTop - o.scrollSpeed; + + if((this.overflowOffset.left + this.scrollParent[0].offsetWidth) - event.pageX < o.scrollSensitivity) + this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft + o.scrollSpeed; + else if(event.pageX - this.overflowOffset.left < o.scrollSensitivity) + this.scrollParent[0].scrollLeft = scrolled = this.scrollParent[0].scrollLeft - o.scrollSpeed; + + } else { + + if(event.pageY - $(document).scrollTop() < o.scrollSensitivity) + scrolled = $(document).scrollTop($(document).scrollTop() - o.scrollSpeed); + else if($(window).height() - (event.pageY - $(document).scrollTop()) < o.scrollSensitivity) + scrolled = $(document).scrollTop($(document).scrollTop() + o.scrollSpeed); + + if(event.pageX - $(document).scrollLeft() < o.scrollSensitivity) + scrolled = $(document).scrollLeft($(document).scrollLeft() - o.scrollSpeed); + else if($(window).width() - (event.pageX - $(document).scrollLeft()) < o.scrollSensitivity) + scrolled = $(document).scrollLeft($(document).scrollLeft() + o.scrollSpeed); + + } + + if(scrolled !== false && $.ui.ddmanager && !o.dropBehaviour) + $.ui.ddmanager.prepareOffsets(this, event); + } + + //Regenerate the absolute position used for position checks + this.positionAbs = this._convertPositionTo("absolute"); + + //Set the helper position + if(!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left+'px'; + if(!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top+'px'; + + //Rearrange + for (var i = this.items.length - 1; i >= 0; i--) { + + //Cache variables and intersection, continue if no intersection + var item = this.items[i], itemElement = item.item[0], intersection = this._intersectsWithPointer(item); + if (!intersection) continue; + + if(itemElement != this.currentItem[0] //cannot intersect with itself + && this.placeholder[intersection == 1 ? "next" : "prev"]()[0] != itemElement //no useless actions that have been done before + && !$.ui.contains(this.placeholder[0], itemElement) //no action if the item moved is the parent of the item checked + && (this.options.type == 'semi-dynamic' ? !$.ui.contains(this.element[0], itemElement) : true) + //&& itemElement.parentNode == this.placeholder[0].parentNode // only rearrange items within the same container + ) { + + this.direction = intersection == 1 ? "down" : "up"; + + if (this.options.tolerance == "pointer" || this._intersectsWithSides(item)) { + this._rearrange(event, item); + } else { + break; + } + + this._trigger("change", event, this._uiHash()); + break; + } + } + + //Post events to containers + this._contactContainers(event); + + //Interconnect with droppables + if($.ui.ddmanager) $.ui.ddmanager.drag(this, event); + + //Call callbacks + this._trigger('sort', event, this._uiHash()); + + this.lastPositionAbs = this.positionAbs; + return false; + + }, + + _mouseStop: function(event, noPropagation) { + + if(!event) return; + + //If we are using droppables, inform the manager about the drop + if ($.ui.ddmanager && !this.options.dropBehaviour) + $.ui.ddmanager.drop(this, event); + + if(this.options.revert) { + var self = this; + var cur = self.placeholder.offset(); + + self.reverting = true; + + $(this.helper).animate({ + left: cur.left - this.offset.parent.left - self.margins.left + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollLeft), + top: cur.top - this.offset.parent.top - self.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop) + }, parseInt(this.options.revert, 10) || 500, function() { + self._clear(event); + }); + } else { + this._clear(event, noPropagation); + } + + return false; + + }, + + cancel: function() { + + var self = this; + + if(this.dragging) { + + this._mouseUp({ target: null }); + + if(this.options.helper == "original") + this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); + else + this.currentItem.show(); + + //Post deactivating events to containers + for (var i = this.containers.length - 1; i >= 0; i--){ + this.containers[i]._trigger("deactivate", null, self._uiHash(this)); + if(this.containers[i].containerCache.over) { + this.containers[i]._trigger("out", null, self._uiHash(this)); + this.containers[i].containerCache.over = 0; + } + } + + } + + if (this.placeholder) { + //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! + if(this.placeholder[0].parentNode) this.placeholder[0].parentNode.removeChild(this.placeholder[0]); + if(this.options.helper != "original" && this.helper && this.helper[0].parentNode) this.helper.remove(); + + $.extend(this, { + helper: null, + dragging: false, + reverting: false, + _noFinalSort: null + }); + + if(this.domPosition.prev) { + $(this.domPosition.prev).after(this.currentItem); + } else { + $(this.domPosition.parent).prepend(this.currentItem); + } + } + + return this; + + }, + + serialize: function(o) { + + var items = this._getItemsAsjQuery(o && o.connected); + var str = []; o = o || {}; + + $(items).each(function() { + var res = ($(o.item || this).attr(o.attribute || 'id') || '').match(o.expression || (/(.+)[-=_](.+)/)); + if(res) str.push((o.key || res[1]+'[]')+'='+(o.key && o.expression ? res[1] : res[2])); + }); + + if(!str.length && o.key) { + str.push(o.key + '='); + } + + return str.join('&'); + + }, + + toArray: function(o) { + + var items = this._getItemsAsjQuery(o && o.connected); + var ret = []; o = o || {}; + + items.each(function() { ret.push($(o.item || this).attr(o.attribute || 'id') || ''); }); + return ret; + + }, + + /* Be careful with the following core functions */ + _intersectsWith: function(item) { + + var x1 = this.positionAbs.left, + x2 = x1 + this.helperProportions.width, + y1 = this.positionAbs.top, + y2 = y1 + this.helperProportions.height; + + var l = item.left, + r = l + item.width, + t = item.top, + b = t + item.height; + + var dyClick = this.offset.click.top, + dxClick = this.offset.click.left; + + var isOverElement = (y1 + dyClick) > t && (y1 + dyClick) < b && (x1 + dxClick) > l && (x1 + dxClick) < r; + + if( this.options.tolerance == "pointer" + || this.options.forcePointerForContainers + || (this.options.tolerance != "pointer" && this.helperProportions[this.floating ? 'width' : 'height'] > item[this.floating ? 'width' : 'height']) + ) { + return isOverElement; + } else { + + return (l < x1 + (this.helperProportions.width / 2) // Right Half + && x2 - (this.helperProportions.width / 2) < r // Left Half + && t < y1 + (this.helperProportions.height / 2) // Bottom Half + && y2 - (this.helperProportions.height / 2) < b ); // Top Half + + } + }, + + _intersectsWithPointer: function(item) { + + var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height), + isOverElementWidth = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left, item.width), + isOverElement = isOverElementHeight && isOverElementWidth, + verticalDirection = this._getDragVerticalDirection(), + horizontalDirection = this._getDragHorizontalDirection(); + + if (!isOverElement) + return false; + + return this.floating ? + ( ((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1 ) + : ( verticalDirection && (verticalDirection == "down" ? 2 : 1) ); + + }, + + _intersectsWithSides: function(item) { + + var isOverBottomHalf = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top + (item.height/2), item.height), + isOverRightHalf = $.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, item.left + (item.width/2), item.width), + verticalDirection = this._getDragVerticalDirection(), + horizontalDirection = this._getDragHorizontalDirection(); + + if (this.floating && horizontalDirection) { + return ((horizontalDirection == "right" && isOverRightHalf) || (horizontalDirection == "left" && !isOverRightHalf)); + } else { + return verticalDirection && ((verticalDirection == "down" && isOverBottomHalf) || (verticalDirection == "up" && !isOverBottomHalf)); + } + + }, + + _getDragVerticalDirection: function() { + var delta = this.positionAbs.top - this.lastPositionAbs.top; + return delta != 0 && (delta > 0 ? "down" : "up"); + }, + + _getDragHorizontalDirection: function() { + var delta = this.positionAbs.left - this.lastPositionAbs.left; + return delta != 0 && (delta > 0 ? "right" : "left"); + }, + + refresh: function(event) { + this._refreshItems(event); + this.refreshPositions(); + return this; + }, + + _connectWith: function() { + var options = this.options; + return options.connectWith.constructor == String + ? [options.connectWith] + : options.connectWith; + }, + + _getItemsAsjQuery: function(connected) { + + var self = this; + var items = []; + var queries = []; + var connectWith = this._connectWith(); + + if(connectWith && connected) { + for (var i = connectWith.length - 1; i >= 0; i--){ + var cur = $(connectWith[i]); + for (var j = cur.length - 1; j >= 0; j--){ + var inst = $.data(cur[j], 'sortable'); + if(inst && inst != this && !inst.options.disabled) { + queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element) : $(inst.options.items, inst.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), inst]); + } + }; + }; + } + + queries.push([$.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : $(this.options.items, this.element).not(".ui-sortable-helper").not('.ui-sortable-placeholder'), this]); + + for (var i = queries.length - 1; i >= 0; i--){ + queries[i][0].each(function() { + items.push(this); + }); + }; + + return $(items); + + }, + + _removeCurrentsFromItems: function() { + + var list = this.currentItem.find(":data(sortable-item)"); + + for (var i=0; i < this.items.length; i++) { + + for (var j=0; j < list.length; j++) { + if(list[j] == this.items[i].item[0]) + this.items.splice(i,1); + }; + + }; + + }, + + _refreshItems: function(event) { + + this.items = []; + this.containers = [this]; + var items = this.items; + var self = this; + var queries = [[$.isFunction(this.options.items) ? this.options.items.call(this.element[0], event, { item: this.currentItem }) : $(this.options.items, this.element), this]]; + var connectWith = this._connectWith(); + + if(connectWith) { + for (var i = connectWith.length - 1; i >= 0; i--){ + var cur = $(connectWith[i]); + for (var j = cur.length - 1; j >= 0; j--){ + var inst = $.data(cur[j], 'sortable'); + if(inst && inst != this && !inst.options.disabled) { + queries.push([$.isFunction(inst.options.items) ? inst.options.items.call(inst.element[0], event, { item: this.currentItem }) : $(inst.options.items, inst.element), inst]); + this.containers.push(inst); + } + }; + }; + } + + for (var i = queries.length - 1; i >= 0; i--) { + var targetData = queries[i][1]; + var _queries = queries[i][0]; + + for (var j=0, queriesLength = _queries.length; j < queriesLength; j++) { + var item = $(_queries[j]); + + item.data('sortable-item', targetData); // Data for target checking (mouse manager) + + items.push({ + item: item, + instance: targetData, + width: 0, height: 0, + left: 0, top: 0 + }); + }; + }; + + }, + + refreshPositions: function(fast) { + + //This has to be redone because due to the item being moved out/into the offsetParent, the offsetParent's position will change + if(this.offsetParent && this.helper) { + this.offset.parent = this._getParentOffset(); + } + + for (var i = this.items.length - 1; i >= 0; i--){ + var item = this.items[i]; + + var t = this.options.toleranceElement ? $(this.options.toleranceElement, item.item) : item.item; + + if (!fast) { + item.width = t.outerWidth(); + item.height = t.outerHeight(); + } + + var p = t.offset(); + item.left = p.left; + item.top = p.top; + }; + + if(this.options.custom && this.options.custom.refreshContainers) { + this.options.custom.refreshContainers.call(this); + } else { + for (var i = this.containers.length - 1; i >= 0; i--){ + var p = this.containers[i].element.offset(); + this.containers[i].containerCache.left = p.left; + this.containers[i].containerCache.top = p.top; + this.containers[i].containerCache.width = this.containers[i].element.outerWidth(); + this.containers[i].containerCache.height = this.containers[i].element.outerHeight(); + }; + } + + return this; + }, + + _createPlaceholder: function(that) { + + var self = that || this, o = self.options; + + if(!o.placeholder || o.placeholder.constructor == String) { + var className = o.placeholder; + o.placeholder = { + element: function() { + + var el = $(document.createElement(self.currentItem[0].nodeName)) + .addClass(className || self.currentItem[0].className+" ui-sortable-placeholder") + .removeClass("ui-sortable-helper")[0]; + + if(!className) + el.style.visibility = "hidden"; + + return el; + }, + update: function(container, p) { + + // 1. If a className is set as 'placeholder option, we don't force sizes - the class is responsible for that + // 2. The option 'forcePlaceholderSize can be enabled to force it even if a class name is specified + if(className && !o.forcePlaceholderSize) return; + + //If the element doesn't have a actual height by itself (without styles coming from a stylesheet), it receives the inline height from the dragged item + if(!p.height()) { p.height(self.currentItem.innerHeight() - parseInt(self.currentItem.css('paddingTop')||0, 10) - parseInt(self.currentItem.css('paddingBottom')||0, 10)); }; + if(!p.width()) { p.width(self.currentItem.innerWidth() - parseInt(self.currentItem.css('paddingLeft')||0, 10) - parseInt(self.currentItem.css('paddingRight')||0, 10)); }; + } + }; + } + + //Create the placeholder + self.placeholder = $(o.placeholder.element.call(self.element, self.currentItem)); + + //Append it after the actual current item + self.currentItem.after(self.placeholder); + + //Update the size of the placeholder (TODO: Logic to fuzzy, see line 316/317) + o.placeholder.update(self, self.placeholder); + + }, + + _contactContainers: function(event) { + + // get innermost container that intersects with item + var innermostContainer = null, innermostIndex = null; + + + for (var i = this.containers.length - 1; i >= 0; i--){ + + // never consider a container that's located within the item itself + if($.ui.contains(this.currentItem[0], this.containers[i].element[0])) + continue; + + if(this._intersectsWith(this.containers[i].containerCache)) { + + // if we've already found a container and it's more "inner" than this, then continue + if(innermostContainer && $.ui.contains(this.containers[i].element[0], innermostContainer.element[0])) + continue; + + innermostContainer = this.containers[i]; + innermostIndex = i; + + } else { + // container doesn't intersect. trigger "out" event if necessary + if(this.containers[i].containerCache.over) { + this.containers[i]._trigger("out", event, this._uiHash(this)); + this.containers[i].containerCache.over = 0; + } + } + + } + + // if no intersecting containers found, return + if(!innermostContainer) return; + + // move the item into the container if it's not there already + if(this.containers.length === 1) { + this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); + this.containers[innermostIndex].containerCache.over = 1; + } else if(this.currentContainer != this.containers[innermostIndex]) { + + //When entering a new container, we will find the item with the least distance and append our item near it + var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top']; + for (var j = this.items.length - 1; j >= 0; j--) { + if(!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue; + var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top']; + if(Math.abs(cur - base) < dist) { + dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j]; + } + } + + if(!itemWithLeastDistance && !this.options.dropOnEmpty) //Check if dropOnEmpty is enabled + return; + + this.currentContainer = this.containers[innermostIndex]; + itemWithLeastDistance ? this._rearrange(event, itemWithLeastDistance, null, true) : this._rearrange(event, null, this.containers[innermostIndex].element, true); + this._trigger("change", event, this._uiHash()); + this.containers[innermostIndex]._trigger("change", event, this._uiHash(this)); + + //Update the placeholder + this.options.placeholder.update(this.currentContainer, this.placeholder); + + this.containers[innermostIndex]._trigger("over", event, this._uiHash(this)); + this.containers[innermostIndex].containerCache.over = 1; + } + + + }, + + _createHelper: function(event) { + + var o = this.options; + var helper = $.isFunction(o.helper) ? $(o.helper.apply(this.element[0], [event, this.currentItem])) : (o.helper == 'clone' ? this.currentItem.clone() : this.currentItem); + + if(!helper.parents('body').length) //Add the helper to the DOM if that didn't happen already + $(o.appendTo != 'parent' ? o.appendTo : this.currentItem[0].parentNode)[0].appendChild(helper[0]); + + if(helper[0] == this.currentItem[0]) + this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") }; + + if(helper[0].style.width == '' || o.forceHelperSize) helper.width(this.currentItem.width()); + if(helper[0].style.height == '' || o.forceHelperSize) helper.height(this.currentItem.height()); + + return helper; + + }, + + _adjustOffsetFromHelper: function(obj) { + if (typeof obj == 'string') { + obj = obj.split(' '); + } + if ($.isArray(obj)) { + obj = {left: +obj[0], top: +obj[1] || 0}; + } + if ('left' in obj) { + this.offset.click.left = obj.left + this.margins.left; + } + if ('right' in obj) { + this.offset.click.left = this.helperProportions.width - obj.right + this.margins.left; + } + if ('top' in obj) { + this.offset.click.top = obj.top + this.margins.top; + } + if ('bottom' in obj) { + this.offset.click.top = this.helperProportions.height - obj.bottom + this.margins.top; + } + }, + + _getParentOffset: function() { + + + //Get the offsetParent and cache its position + this.offsetParent = this.helper.offsetParent(); + var po = this.offsetParent.offset(); + + // This is a special case where we need to modify a offset calculated on start, since the following happened: + // 1. The position of the helper is absolute, so it's position is calculated based on the next positioned parent + // 2. The actual offset parent is a child of the scroll parent, and the scroll parent isn't the document, which means that + // the scroll is included in the initial calculation of the offset of the parent, and never recalculated upon drag + if(this.cssPosition == 'absolute' && this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) { + po.left += this.scrollParent.scrollLeft(); + po.top += this.scrollParent.scrollTop(); + } + + if((this.offsetParent[0] == document.body) //This needs to be actually done for all browsers, since pageX/pageY includes this information + || (this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == 'html' && $.browser.msie)) //Ugly IE fix + po = { top: 0, left: 0 }; + + return { + top: po.top + (parseInt(this.offsetParent.css("borderTopWidth"),10) || 0), + left: po.left + (parseInt(this.offsetParent.css("borderLeftWidth"),10) || 0) + }; + + }, + + _getRelativeOffset: function() { + + if(this.cssPosition == "relative") { + var p = this.currentItem.position(); + return { + top: p.top - (parseInt(this.helper.css("top"),10) || 0) + this.scrollParent.scrollTop(), + left: p.left - (parseInt(this.helper.css("left"),10) || 0) + this.scrollParent.scrollLeft() + }; + } else { + return { top: 0, left: 0 }; + } + + }, + + _cacheMargins: function() { + this.margins = { + left: (parseInt(this.currentItem.css("marginLeft"),10) || 0), + top: (parseInt(this.currentItem.css("marginTop"),10) || 0) + }; + }, + + _cacheHelperProportions: function() { + this.helperProportions = { + width: this.helper.outerWidth(), + height: this.helper.outerHeight() + }; + }, + + _setContainment: function() { + + var o = this.options; + if(o.containment == 'parent') o.containment = this.helper[0].parentNode; + if(o.containment == 'document' || o.containment == 'window') this.containment = [ + 0 - this.offset.relative.left - this.offset.parent.left, + 0 - this.offset.relative.top - this.offset.parent.top, + $(o.containment == 'document' ? document : window).width() - this.helperProportions.width - this.margins.left, + ($(o.containment == 'document' ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top + ]; + + if(!(/^(document|window|parent)$/).test(o.containment)) { + var ce = $(o.containment)[0]; + var co = $(o.containment).offset(); + var over = ($(ce).css("overflow") != 'hidden'); + + this.containment = [ + co.left + (parseInt($(ce).css("borderLeftWidth"),10) || 0) + (parseInt($(ce).css("paddingLeft"),10) || 0) - this.margins.left, + co.top + (parseInt($(ce).css("borderTopWidth"),10) || 0) + (parseInt($(ce).css("paddingTop"),10) || 0) - this.margins.top, + co.left+(over ? Math.max(ce.scrollWidth,ce.offsetWidth) : ce.offsetWidth) - (parseInt($(ce).css("borderLeftWidth"),10) || 0) - (parseInt($(ce).css("paddingRight"),10) || 0) - this.helperProportions.width - this.margins.left, + co.top+(over ? Math.max(ce.scrollHeight,ce.offsetHeight) : ce.offsetHeight) - (parseInt($(ce).css("borderTopWidth"),10) || 0) - (parseInt($(ce).css("paddingBottom"),10) || 0) - this.helperProportions.height - this.margins.top + ]; + } + + }, + + _convertPositionTo: function(d, pos) { + + if(!pos) pos = this.position; + var mod = d == "absolute" ? 1 : -1; + var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + + return { + top: ( + pos.top // The absolute mouse position + + this.offset.relative.top * mod // Only for relative positioned nodes: Relative offset from element to offset parent + + this.offset.parent.top * mod // The offsetParent's offset without borders (offset + border) + - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) ) * mod) + ), + left: ( + pos.left // The absolute mouse position + + this.offset.relative.left * mod // Only for relative positioned nodes: Relative offset from element to offset parent + + this.offset.parent.left * mod // The offsetParent's offset without borders (offset + border) + - ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() ) * mod) + ) + }; + + }, + + _generatePosition: function(event) { + + var o = this.options, scroll = this.cssPosition == 'absolute' && !(this.scrollParent[0] != document && $.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, scrollIsRootNode = (/(html|body)/i).test(scroll[0].tagName); + + // This is another very weird special case that only happens for relative elements: + // 1. If the css position is relative + // 2. and the scroll parent is the document or similar to the offset parent + // we have to refresh the relative offset during the scroll so there are no jumps + if(this.cssPosition == 'relative' && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) { + this.offset.relative = this._getRelativeOffset(); + } + + var pageX = event.pageX; + var pageY = event.pageY; + + /* + * - Position constraining - + * Constrain the position to a mix of grid, containment. + */ + + if(this.originalPosition) { //If we are not dragging yet, we won't check for options + + if(this.containment) { + if(event.pageX - this.offset.click.left < this.containment[0]) pageX = this.containment[0] + this.offset.click.left; + if(event.pageY - this.offset.click.top < this.containment[1]) pageY = this.containment[1] + this.offset.click.top; + if(event.pageX - this.offset.click.left > this.containment[2]) pageX = this.containment[2] + this.offset.click.left; + if(event.pageY - this.offset.click.top > this.containment[3]) pageY = this.containment[3] + this.offset.click.top; + } + + if(o.grid) { + var top = this.originalPageY + Math.round((pageY - this.originalPageY) / o.grid[1]) * o.grid[1]; + pageY = this.containment ? (!(top - this.offset.click.top < this.containment[1] || top - this.offset.click.top > this.containment[3]) ? top : (!(top - this.offset.click.top < this.containment[1]) ? top - o.grid[1] : top + o.grid[1])) : top; + + var left = this.originalPageX + Math.round((pageX - this.originalPageX) / o.grid[0]) * o.grid[0]; + pageX = this.containment ? (!(left - this.offset.click.left < this.containment[0] || left - this.offset.click.left > this.containment[2]) ? left : (!(left - this.offset.click.left < this.containment[0]) ? left - o.grid[0] : left + o.grid[0])) : left; + } + + } + + return { + top: ( + pageY // The absolute mouse position + - this.offset.click.top // Click offset (relative to the element) + - this.offset.relative.top // Only for relative positioned nodes: Relative offset from element to offset parent + - this.offset.parent.top // The offsetParent's offset without borders (offset + border) + + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollTop() : ( scrollIsRootNode ? 0 : scroll.scrollTop() ) )) + ), + left: ( + pageX // The absolute mouse position + - this.offset.click.left // Click offset (relative to the element) + - this.offset.relative.left // Only for relative positioned nodes: Relative offset from element to offset parent + - this.offset.parent.left // The offsetParent's offset without borders (offset + border) + + ($.browser.safari && this.cssPosition == 'fixed' ? 0 : ( this.cssPosition == 'fixed' ? -this.scrollParent.scrollLeft() : scrollIsRootNode ? 0 : scroll.scrollLeft() )) + ) + }; + + }, + + _rearrange: function(event, i, a, hardRefresh) { + + a ? a[0].appendChild(this.placeholder[0]) : i.item[0].parentNode.insertBefore(this.placeholder[0], (this.direction == 'down' ? i.item[0] : i.item[0].nextSibling)); + + //Various things done here to improve the performance: + // 1. we create a setTimeout, that calls refreshPositions + // 2. on the instance, we have a counter variable, that get's higher after every append + // 3. on the local scope, we copy the counter variable, and check in the timeout, if it's still the same + // 4. this lets only the last addition to the timeout stack through + this.counter = this.counter ? ++this.counter : 1; + var self = this, counter = this.counter; + + window.setTimeout(function() { + if(counter == self.counter) self.refreshPositions(!hardRefresh); //Precompute after each DOM insertion, NOT on mousemove + },0); + + }, + + _clear: function(event, noPropagation) { + + this.reverting = false; + // We delay all events that have to be triggered to after the point where the placeholder has been removed and + // everything else normalized again + var delayedTriggers = [], self = this; + + // We first have to update the dom position of the actual currentItem + // Note: don't do it if the current item is already removed (by a user), or it gets reappended (see #4088) + if(!this._noFinalSort && this.currentItem[0].parentNode) this.placeholder.before(this.currentItem); + this._noFinalSort = null; + + if(this.helper[0] == this.currentItem[0]) { + for(var i in this._storedCSS) { + if(this._storedCSS[i] == 'auto' || this._storedCSS[i] == 'static') this._storedCSS[i] = ''; + } + this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"); + } else { + this.currentItem.show(); + } + + if(this.fromOutside && !noPropagation) delayedTriggers.push(function(event) { this._trigger("receive", event, this._uiHash(this.fromOutside)); }); + if((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !noPropagation) delayedTriggers.push(function(event) { this._trigger("update", event, this._uiHash()); }); //Trigger update callback if the DOM position has changed + if(!$.ui.contains(this.element[0], this.currentItem[0])) { //Node was moved out of the current element + if(!noPropagation) delayedTriggers.push(function(event) { this._trigger("remove", event, this._uiHash()); }); + for (var i = this.containers.length - 1; i >= 0; i--){ + if($.ui.contains(this.containers[i].element[0], this.currentItem[0]) && !noPropagation) { + delayedTriggers.push((function(c) { return function(event) { c._trigger("receive", event, this._uiHash(this)); }; }).call(this, this.containers[i])); + delayedTriggers.push((function(c) { return function(event) { c._trigger("update", event, this._uiHash(this)); }; }).call(this, this.containers[i])); + } + }; + }; + + //Post events to containers + for (var i = this.containers.length - 1; i >= 0; i--){ + if(!noPropagation) delayedTriggers.push((function(c) { return function(event) { c._trigger("deactivate", event, this._uiHash(this)); }; }).call(this, this.containers[i])); + if(this.containers[i].containerCache.over) { + delayedTriggers.push((function(c) { return function(event) { c._trigger("out", event, this._uiHash(this)); }; }).call(this, this.containers[i])); + this.containers[i].containerCache.over = 0; + } + } + + //Do what was originally in plugins + if(this._storedCursor) $('body').css("cursor", this._storedCursor); //Reset cursor + if(this._storedOpacity) this.helper.css("opacity", this._storedOpacity); //Reset opacity + if(this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == 'auto' ? '' : this._storedZIndex); //Reset z-index + + this.dragging = false; + if(this.cancelHelperRemoval) { + if(!noPropagation) { + this._trigger("beforeStop", event, this._uiHash()); + for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events + this._trigger("stop", event, this._uiHash()); + } + return false; + } + + if(!noPropagation) this._trigger("beforeStop", event, this._uiHash()); + + //$(this.placeholder[0]).remove(); would have been the jQuery way - unfortunately, it unbinds ALL events from the original node! + this.placeholder[0].parentNode.removeChild(this.placeholder[0]); + + if(this.helper[0] != this.currentItem[0]) this.helper.remove(); this.helper = null; + + if(!noPropagation) { + for (var i=0; i < delayedTriggers.length; i++) { delayedTriggers[i].call(this, event); }; //Trigger all delayed events + this._trigger("stop", event, this._uiHash()); + } + + this.fromOutside = false; + return true; + + }, + + _trigger: function() { + if ($.Widget.prototype._trigger.apply(this, arguments) === false) { + this.cancel(); + } + }, + + _uiHash: function(inst) { + var self = inst || this; + return { + helper: self.helper, + placeholder: self.placeholder || $([]), + position: self.position, + originalPosition: self.originalPosition, + offset: self.positionAbs, + item: self.currentItem, + sender: inst ? inst.element : null + }; + } + +}); + +$.extend($.ui.sortable, { + version: "1.8.10" +}); + +})(jQuery); diff --git a/js/ui/jquery.ui.tabs.js b/js/ui/jquery.ui.tabs.js new file mode 100644 index 0000000000..c985230d1b --- /dev/null +++ b/js/ui/jquery.ui.tabs.js @@ -0,0 +1,758 @@ +/* + * jQuery UI Tabs 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Tabs + * + * Depends: + * jquery.ui.core.js + * jquery.ui.widget.js + */ +(function( $, undefined ) { + +var tabId = 0, + listId = 0; + +function getNextTabId() { + return ++tabId; +} + +function getNextListId() { + return ++listId; +} + +$.widget( "ui.tabs", { + options: { + add: null, + ajaxOptions: null, + cache: false, + cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true } + collapsible: false, + disable: null, + disabled: [], + enable: null, + event: "click", + fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 } + idPrefix: "ui-tabs-", + load: null, + panelTemplate: "
        ", + remove: null, + select: null, + show: null, + spinner: "Loading…", + tabTemplate: "
      • #{label}
      • " + }, + + _create: function() { + this._tabify( true ); + }, + + _setOption: function( key, value ) { + if ( key == "selected" ) { + if (this.options.collapsible && value == this.options.selected ) { + return; + } + this.select( value ); + } else { + this.options[ key ] = value; + this._tabify(); + } + }, + + _tabId: function( a ) { + return a.title && a.title.replace( /\s/g, "_" ).replace( /[^\w\u00c0-\uFFFF-]/g, "" ) || + this.options.idPrefix + getNextTabId(); + }, + + _sanitizeSelector: function( hash ) { + // we need this because an id may contain a ":" + return hash.replace( /:/g, "\\:" ); + }, + + _cookie: function() { + var cookie = this.cookie || + ( this.cookie = this.options.cookie.name || "ui-tabs-" + getNextListId() ); + return $.cookie.apply( null, [ cookie ].concat( $.makeArray( arguments ) ) ); + }, + + _ui: function( tab, panel ) { + return { + tab: tab, + panel: panel, + index: this.anchors.index( tab ) + }; + }, + + _cleanup: function() { + // restore all former loading tabs labels + this.lis.filter( ".ui-state-processing" ) + .removeClass( "ui-state-processing" ) + .find( "span:data(label.tabs)" ) + .each(function() { + var el = $( this ); + el.html( el.data( "label.tabs" ) ).removeData( "label.tabs" ); + }); + }, + + _tabify: function( init ) { + var self = this, + o = this.options, + fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash + + this.list = this.element.find( "ol,ul" ).eq( 0 ); + this.lis = $( " > li:has(a[href])", this.list ); + this.anchors = this.lis.map(function() { + return $( "a", this )[ 0 ]; + }); + this.panels = $( [] ); + + this.anchors.each(function( i, a ) { + var href = $( a ).attr( "href" ); + // For dynamically created HTML that contains a hash as href IE < 8 expands + // such href to the full page url with hash and then misinterprets tab as ajax. + // Same consideration applies for an added tab with a fragment identifier + // since a[href=#fragment-identifier] does unexpectedly not match. + // Thus normalize href attribute... + var hrefBase = href.split( "#" )[ 0 ], + baseEl; + if ( hrefBase && ( hrefBase === location.toString().split( "#" )[ 0 ] || + ( baseEl = $( "base" )[ 0 ]) && hrefBase === baseEl.href ) ) { + href = a.hash; + a.href = href; + } + + // inline tab + if ( fragmentId.test( href ) ) { + self.panels = self.panels.add( self.element.find( self._sanitizeSelector( href ) ) ); + // remote tab + // prevent loading the page itself if href is just "#" + } else if ( href && href !== "#" ) { + // required for restore on destroy + $.data( a, "href.tabs", href ); + + // TODO until #3808 is fixed strip fragment identifier from url + // (IE fails to load from such url) + $.data( a, "load.tabs", href.replace( /#.*$/, "" ) ); + + var id = self._tabId( a ); + a.href = "#" + id; + var $panel = self.element.find( "#" + id ); + if ( !$panel.length ) { + $panel = $( o.panelTemplate ) + .attr( "id", id ) + .addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ) + .insertAfter( self.panels[ i - 1 ] || self.list ); + $panel.data( "destroy.tabs", true ); + } + self.panels = self.panels.add( $panel ); + // invalid tab href + } else { + o.disabled.push( i ); + } + }); + + // initialization from scratch + if ( init ) { + // attach necessary classes for styling + this.element.addClass( "ui-tabs ui-widget ui-widget-content ui-corner-all" ); + this.list.addClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ); + this.lis.addClass( "ui-state-default ui-corner-top" ); + this.panels.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom" ); + + // Selected tab + // use "selected" option or try to retrieve: + // 1. from fragment identifier in url + // 2. from cookie + // 3. from selected class attribute on
      • + if ( o.selected === undefined ) { + if ( location.hash ) { + this.anchors.each(function( i, a ) { + if ( a.hash == location.hash ) { + o.selected = i; + return false; + } + }); + } + if ( typeof o.selected !== "number" && o.cookie ) { + o.selected = parseInt( self._cookie(), 10 ); + } + if ( typeof o.selected !== "number" && this.lis.filter( ".ui-tabs-selected" ).length ) { + o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) ); + } + o.selected = o.selected || ( this.lis.length ? 0 : -1 ); + } else if ( o.selected === null ) { // usage of null is deprecated, TODO remove in next release + o.selected = -1; + } + + // sanity check - default to first tab... + o.selected = ( ( o.selected >= 0 && this.anchors[ o.selected ] ) || o.selected < 0 ) + ? o.selected + : 0; + + // Take disabling tabs via class attribute from HTML + // into account and update option properly. + // A selected tab cannot become disabled. + o.disabled = $.unique( o.disabled.concat( + $.map( this.lis.filter( ".ui-state-disabled" ), function( n, i ) { + return self.lis.index( n ); + }) + ) ).sort(); + + if ( $.inArray( o.selected, o.disabled ) != -1 ) { + o.disabled.splice( $.inArray( o.selected, o.disabled ), 1 ); + } + + // highlight selected tab + this.panels.addClass( "ui-tabs-hide" ); + this.lis.removeClass( "ui-tabs-selected ui-state-active" ); + // check for length avoids error when initializing empty list + if ( o.selected >= 0 && this.anchors.length ) { + self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) ).removeClass( "ui-tabs-hide" ); + this.lis.eq( o.selected ).addClass( "ui-tabs-selected ui-state-active" ); + + // seems to be expected behavior that the show callback is fired + self.element.queue( "tabs", function() { + self._trigger( "show", null, + self._ui( self.anchors[ o.selected ], self.element.find( self._sanitizeSelector( self.anchors[ o.selected ].hash ) )[ 0 ] ) ); + }); + + this.load( o.selected ); + } + + // clean up to avoid memory leaks in certain versions of IE 6 + // TODO: namespace this event + $( window ).bind( "unload", function() { + self.lis.add( self.anchors ).unbind( ".tabs" ); + self.lis = self.anchors = self.panels = null; + }); + // update selected after add/remove + } else { + o.selected = this.lis.index( this.lis.filter( ".ui-tabs-selected" ) ); + } + + // update collapsible + // TODO: use .toggleClass() + this.element[ o.collapsible ? "addClass" : "removeClass" ]( "ui-tabs-collapsible" ); + + // set or update cookie after init and add/remove respectively + if ( o.cookie ) { + this._cookie( o.selected, o.cookie ); + } + + // disable tabs + for ( var i = 0, li; ( li = this.lis[ i ] ); i++ ) { + $( li )[ $.inArray( i, o.disabled ) != -1 && + // TODO: use .toggleClass() + !$( li ).hasClass( "ui-tabs-selected" ) ? "addClass" : "removeClass" ]( "ui-state-disabled" ); + } + + // reset cache if switching from cached to not cached + if ( o.cache === false ) { + this.anchors.removeData( "cache.tabs" ); + } + + // remove all handlers before, tabify may run on existing tabs after add or option change + this.lis.add( this.anchors ).unbind( ".tabs" ); + + if ( o.event !== "mouseover" ) { + var addState = function( state, el ) { + if ( el.is( ":not(.ui-state-disabled)" ) ) { + el.addClass( "ui-state-" + state ); + } + }; + var removeState = function( state, el ) { + el.removeClass( "ui-state-" + state ); + }; + this.lis.bind( "mouseover.tabs" , function() { + addState( "hover", $( this ) ); + }); + this.lis.bind( "mouseout.tabs", function() { + removeState( "hover", $( this ) ); + }); + this.anchors.bind( "focus.tabs", function() { + addState( "focus", $( this ).closest( "li" ) ); + }); + this.anchors.bind( "blur.tabs", function() { + removeState( "focus", $( this ).closest( "li" ) ); + }); + } + + // set up animations + var hideFx, showFx; + if ( o.fx ) { + if ( $.isArray( o.fx ) ) { + hideFx = o.fx[ 0 ]; + showFx = o.fx[ 1 ]; + } else { + hideFx = showFx = o.fx; + } + } + + // Reset certain styles left over from animation + // and prevent IE's ClearType bug... + function resetStyle( $el, fx ) { + $el.css( "display", "" ); + if ( !$.support.opacity && fx.opacity ) { + $el[ 0 ].style.removeAttribute( "filter" ); + } + } + + // Show a tab... + var showTab = showFx + ? function( clicked, $show ) { + $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" ); + $show.hide().removeClass( "ui-tabs-hide" ) // avoid flicker that way + .animate( showFx, showFx.duration || "normal", function() { + resetStyle( $show, showFx ); + self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) ); + }); + } + : function( clicked, $show ) { + $( clicked ).closest( "li" ).addClass( "ui-tabs-selected ui-state-active" ); + $show.removeClass( "ui-tabs-hide" ); + self._trigger( "show", null, self._ui( clicked, $show[ 0 ] ) ); + }; + + // Hide a tab, $show is optional... + var hideTab = hideFx + ? function( clicked, $hide ) { + $hide.animate( hideFx, hideFx.duration || "normal", function() { + self.lis.removeClass( "ui-tabs-selected ui-state-active" ); + $hide.addClass( "ui-tabs-hide" ); + resetStyle( $hide, hideFx ); + self.element.dequeue( "tabs" ); + }); + } + : function( clicked, $hide, $show ) { + self.lis.removeClass( "ui-tabs-selected ui-state-active" ); + $hide.addClass( "ui-tabs-hide" ); + self.element.dequeue( "tabs" ); + }; + + // attach tab event handler, unbind to avoid duplicates from former tabifying... + this.anchors.bind( o.event + ".tabs", function() { + var el = this, + $li = $(el).closest( "li" ), + $hide = self.panels.filter( ":not(.ui-tabs-hide)" ), + $show = self.element.find( self._sanitizeSelector( el.hash ) ); + + // If tab is already selected and not collapsible or tab disabled or + // or is already loading or click callback returns false stop here. + // Check if click handler returns false last so that it is not executed + // for a disabled or loading tab! + if ( ( $li.hasClass( "ui-tabs-selected" ) && !o.collapsible) || + $li.hasClass( "ui-state-disabled" ) || + $li.hasClass( "ui-state-processing" ) || + self.panels.filter( ":animated" ).length || + self._trigger( "select", null, self._ui( this, $show[ 0 ] ) ) === false ) { + this.blur(); + return false; + } + + o.selected = self.anchors.index( this ); + + self.abort(); + + // if tab may be closed + if ( o.collapsible ) { + if ( $li.hasClass( "ui-tabs-selected" ) ) { + o.selected = -1; + + if ( o.cookie ) { + self._cookie( o.selected, o.cookie ); + } + + self.element.queue( "tabs", function() { + hideTab( el, $hide ); + }).dequeue( "tabs" ); + + this.blur(); + return false; + } else if ( !$hide.length ) { + if ( o.cookie ) { + self._cookie( o.selected, o.cookie ); + } + + self.element.queue( "tabs", function() { + showTab( el, $show ); + }); + + // TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171 + self.load( self.anchors.index( this ) ); + + this.blur(); + return false; + } + } + + if ( o.cookie ) { + self._cookie( o.selected, o.cookie ); + } + + // show new tab + if ( $show.length ) { + if ( $hide.length ) { + self.element.queue( "tabs", function() { + hideTab( el, $hide ); + }); + } + self.element.queue( "tabs", function() { + showTab( el, $show ); + }); + + self.load( self.anchors.index( this ) ); + } else { + throw "jQuery UI Tabs: Mismatching fragment identifier."; + } + + // Prevent IE from keeping other link focussed when using the back button + // and remove dotted border from clicked link. This is controlled via CSS + // in modern browsers; blur() removes focus from address bar in Firefox + // which can become a usability and annoying problem with tabs('rotate'). + if ( $.browser.msie ) { + this.blur(); + } + }); + + // disable click in any case + this.anchors.bind( "click.tabs", function(){ + return false; + }); + }, + + _getIndex: function( index ) { + // meta-function to give users option to provide a href string instead of a numerical index. + // also sanitizes numerical indexes to valid values. + if ( typeof index == "string" ) { + index = this.anchors.index( this.anchors.filter( "[href$=" + index + "]" ) ); + } + + return index; + }, + + destroy: function() { + var o = this.options; + + this.abort(); + + this.element + .unbind( ".tabs" ) + .removeClass( "ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible" ) + .removeData( "tabs" ); + + this.list.removeClass( "ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all" ); + + this.anchors.each(function() { + var href = $.data( this, "href.tabs" ); + if ( href ) { + this.href = href; + } + var $this = $( this ).unbind( ".tabs" ); + $.each( [ "href", "load", "cache" ], function( i, prefix ) { + $this.removeData( prefix + ".tabs" ); + }); + }); + + this.lis.unbind( ".tabs" ).add( this.panels ).each(function() { + if ( $.data( this, "destroy.tabs" ) ) { + $( this ).remove(); + } else { + $( this ).removeClass([ + "ui-state-default", + "ui-corner-top", + "ui-tabs-selected", + "ui-state-active", + "ui-state-hover", + "ui-state-focus", + "ui-state-disabled", + "ui-tabs-panel", + "ui-widget-content", + "ui-corner-bottom", + "ui-tabs-hide" + ].join( " " ) ); + } + }); + + if ( o.cookie ) { + this._cookie( null, o.cookie ); + } + + return this; + }, + + add: function( url, label, index ) { + if ( index === undefined ) { + index = this.anchors.length; + } + + var self = this, + o = this.options, + $li = $( o.tabTemplate.replace( /#\{href\}/g, url ).replace( /#\{label\}/g, label ) ), + id = !url.indexOf( "#" ) ? url.replace( "#", "" ) : this._tabId( $( "a", $li )[ 0 ] ); + + $li.addClass( "ui-state-default ui-corner-top" ).data( "destroy.tabs", true ); + + // try to find an existing element before creating a new one + var $panel = self.element.find( "#" + id ); + if ( !$panel.length ) { + $panel = $( o.panelTemplate ) + .attr( "id", id ) + .data( "destroy.tabs", true ); + } + $panel.addClass( "ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide" ); + + if ( index >= this.lis.length ) { + $li.appendTo( this.list ); + $panel.appendTo( this.list[ 0 ].parentNode ); + } else { + $li.insertBefore( this.lis[ index ] ); + $panel.insertBefore( this.panels[ index ] ); + } + + o.disabled = $.map( o.disabled, function( n, i ) { + return n >= index ? ++n : n; + }); + + this._tabify(); + + if ( this.anchors.length == 1 ) { + o.selected = 0; + $li.addClass( "ui-tabs-selected ui-state-active" ); + $panel.removeClass( "ui-tabs-hide" ); + this.element.queue( "tabs", function() { + self._trigger( "show", null, self._ui( self.anchors[ 0 ], self.panels[ 0 ] ) ); + }); + + this.load( 0 ); + } + + this._trigger( "add", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); + return this; + }, + + remove: function( index ) { + index = this._getIndex( index ); + var o = this.options, + $li = this.lis.eq( index ).remove(), + $panel = this.panels.eq( index ).remove(); + + // If selected tab was removed focus tab to the right or + // in case the last tab was removed the tab to the left. + if ( $li.hasClass( "ui-tabs-selected" ) && this.anchors.length > 1) { + this.select( index + ( index + 1 < this.anchors.length ? 1 : -1 ) ); + } + + o.disabled = $.map( + $.grep( o.disabled, function(n, i) { + return n != index; + }), + function( n, i ) { + return n >= index ? --n : n; + }); + + this._tabify(); + + this._trigger( "remove", null, this._ui( $li.find( "a" )[ 0 ], $panel[ 0 ] ) ); + return this; + }, + + enable: function( index ) { + index = this._getIndex( index ); + var o = this.options; + if ( $.inArray( index, o.disabled ) == -1 ) { + return; + } + + this.lis.eq( index ).removeClass( "ui-state-disabled" ); + o.disabled = $.grep( o.disabled, function( n, i ) { + return n != index; + }); + + this._trigger( "enable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); + return this; + }, + + disable: function( index ) { + index = this._getIndex( index ); + var self = this, o = this.options; + // cannot disable already selected tab + if ( index != o.selected ) { + this.lis.eq( index ).addClass( "ui-state-disabled" ); + + o.disabled.push( index ); + o.disabled.sort(); + + this._trigger( "disable", null, this._ui( this.anchors[ index ], this.panels[ index ] ) ); + } + + return this; + }, + + select: function( index ) { + index = this._getIndex( index ); + if ( index == -1 ) { + if ( this.options.collapsible && this.options.selected != -1 ) { + index = this.options.selected; + } else { + return this; + } + } + this.anchors.eq( index ).trigger( this.options.event + ".tabs" ); + return this; + }, + + load: function( index ) { + index = this._getIndex( index ); + var self = this, + o = this.options, + a = this.anchors.eq( index )[ 0 ], + url = $.data( a, "load.tabs" ); + + this.abort(); + + // not remote or from cache + if ( !url || this.element.queue( "tabs" ).length !== 0 && $.data( a, "cache.tabs" ) ) { + this.element.dequeue( "tabs" ); + return; + } + + // load remote from here on + this.lis.eq( index ).addClass( "ui-state-processing" ); + + if ( o.spinner ) { + var span = $( "span", a ); + span.data( "label.tabs", span.html() ).html( o.spinner ); + } + + this.xhr = $.ajax( $.extend( {}, o.ajaxOptions, { + url: url, + success: function( r, s ) { + self.element.find( self._sanitizeSelector( a.hash ) ).html( r ); + + // take care of tab labels + self._cleanup(); + + if ( o.cache ) { + $.data( a, "cache.tabs", true ); + } + + self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) ); + try { + o.ajaxOptions.success( r, s ); + } + catch ( e ) {} + }, + error: function( xhr, s, e ) { + // take care of tab labels + self._cleanup(); + + self._trigger( "load", null, self._ui( self.anchors[ index ], self.panels[ index ] ) ); + try { + // Passing index avoid a race condition when this method is + // called after the user has selected another tab. + // Pass the anchor that initiated this request allows + // loadError to manipulate the tab content panel via $(a.hash) + o.ajaxOptions.error( xhr, s, index, a ); + } + catch ( e ) {} + } + } ) ); + + // last, so that load event is fired before show... + self.element.dequeue( "tabs" ); + + return this; + }, + + abort: function() { + // stop possibly running animations + this.element.queue( [] ); + this.panels.stop( false, true ); + + // "tabs" queue must not contain more than two elements, + // which are the callbacks for the latest clicked tab... + this.element.queue( "tabs", this.element.queue( "tabs" ).splice( -2, 2 ) ); + + // terminate pending requests from other tabs + if ( this.xhr ) { + this.xhr.abort(); + delete this.xhr; + } + + // take care of tab labels + this._cleanup(); + return this; + }, + + url: function( index, url ) { + this.anchors.eq( index ).removeData( "cache.tabs" ).data( "load.tabs", url ); + return this; + }, + + length: function() { + return this.anchors.length; + } +}); + +$.extend( $.ui.tabs, { + version: "1.8.10" +}); + +/* + * Tabs Extensions + */ + +/* + * Rotate + */ +$.extend( $.ui.tabs.prototype, { + rotation: null, + rotate: function( ms, continuing ) { + var self = this, + o = this.options; + + var rotate = self._rotate || ( self._rotate = function( e ) { + clearTimeout( self.rotation ); + self.rotation = setTimeout(function() { + var t = o.selected; + self.select( ++t < self.anchors.length ? t : 0 ); + }, ms ); + + if ( e ) { + e.stopPropagation(); + } + }); + + var stop = self._unrotate || ( self._unrotate = !continuing + ? function(e) { + if (e.clientX) { // in case of a true click + self.rotate(null); + } + } + : function( e ) { + t = o.selected; + rotate(); + }); + + // start rotation + if ( ms ) { + this.element.bind( "tabsshow", rotate ); + this.anchors.bind( o.event + ".tabs", stop ); + rotate(); + // stop rotation + } else { + clearTimeout( self.rotation ); + this.element.unbind( "tabsshow", rotate ); + this.anchors.unbind( o.event + ".tabs", stop ); + delete this._rotate; + delete this._unrotate; + } + + return this; + } +}); + +})( jQuery ); diff --git a/js/ui/jquery.ui.widget.js b/js/ui/jquery.ui.widget.js new file mode 100644 index 0000000000..e8f4e9854b --- /dev/null +++ b/js/ui/jquery.ui.widget.js @@ -0,0 +1,262 @@ +/*! + * jQuery UI Widget 1.8.10 + * + * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Widget + */ +(function( $, undefined ) { + +// jQuery 1.4+ +if ( $.cleanData ) { + var _cleanData = $.cleanData; + $.cleanData = function( elems ) { + for ( var i = 0, elem; (elem = elems[i]) != null; i++ ) { + $( elem ).triggerHandler( "remove" ); + } + _cleanData( elems ); + }; +} else { + var _remove = $.fn.remove; + $.fn.remove = function( selector, keepData ) { + return this.each(function() { + if ( !keepData ) { + if ( !selector || $.filter( selector, [ this ] ).length ) { + $( "*", this ).add( [ this ] ).each(function() { + $( this ).triggerHandler( "remove" ); + }); + } + } + return _remove.call( $(this), selector, keepData ); + }); + }; +} + +$.widget = function( name, base, prototype ) { + var namespace = name.split( "." )[ 0 ], + fullName; + name = name.split( "." )[ 1 ]; + fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + // create selector for plugin + $.expr[ ":" ][ fullName ] = function( elem ) { + return !!$.data( elem, name ); + }; + + $[ namespace ] = $[ namespace ] || {}; + $[ namespace ][ name ] = function( options, element ) { + // allow instantiation without initializing for simple inheritance + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + + var basePrototype = new base(); + // we need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from +// $.each( basePrototype, function( key, val ) { +// if ( $.isPlainObject(val) ) { +// basePrototype[ key ] = $.extend( {}, val ); +// } +// }); + basePrototype.options = $.extend( true, {}, basePrototype.options ); + $[ namespace ][ name ].prototype = $.extend( true, basePrototype, { + namespace: namespace, + widgetName: name, + widgetEventPrefix: $[ namespace ][ name ].prototype.widgetEventPrefix || name, + widgetBaseClass: fullName + }, prototype ); + + $.widget.bridge( name, $[ namespace ][ name ] ); +}; + +$.widget.bridge = function( name, object ) { + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string", + args = Array.prototype.slice.call( arguments, 1 ), + returnValue = this; + + // allow multiple hashes to be passed on init + options = !isMethodCall && args.length ? + $.extend.apply( null, [ true, options ].concat(args) ) : + options; + + // prevent calls to internal methods + if ( isMethodCall && options.charAt( 0 ) === "_" ) { + return returnValue; + } + + if ( isMethodCall ) { + this.each(function() { + var instance = $.data( this, name ), + methodValue = instance && $.isFunction( instance[options] ) ? + instance[ options ].apply( instance, args ) : + instance; + // TODO: add this back in 1.9 and use $.error() (see #5972) +// if ( !instance ) { +// throw "cannot call methods on " + name + " prior to initialization; " + +// "attempted to call method '" + options + "'"; +// } +// if ( !$.isFunction( instance[options] ) ) { +// throw "no such method '" + options + "' for " + name + " widget instance"; +// } +// var methodValue = instance[ options ].apply( instance, args ); + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue; + return false; + } + }); + } else { + this.each(function() { + var instance = $.data( this, name ); + if ( instance ) { + instance.option( options || {} )._init(); + } else { + $.data( this, name, new object( options, this ) ); + } + }); + } + + return returnValue; + }; +}; + +$.Widget = function( options, element ) { + // allow instantiation without initializing for simple inheritance + if ( arguments.length ) { + this._createWidget( options, element ); + } +}; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + options: { + disabled: false + }, + _createWidget: function( options, element ) { + // $.widget.bridge stores the plugin instance, but we do it anyway + // so that it's stored even before the _create function runs + $.data( element, this.widgetName, this ); + this.element = $( element ); + this.options = $.extend( true, {}, + this.options, + this._getCreateOptions(), + options ); + + var self = this; + this.element.bind( "remove." + this.widgetName, function() { + self.destroy(); + }); + + this._create(); + this._trigger( "create" ); + this._init(); + }, + _getCreateOptions: function() { + return $.metadata && $.metadata.get( this.element[0] )[ this.widgetName ]; + }, + _create: function() {}, + _init: function() {}, + + destroy: function() { + this.element + .unbind( "." + this.widgetName ) + .removeData( this.widgetName ); + this.widget() + .unbind( "." + this.widgetName ) + .removeAttr( "aria-disabled" ) + .removeClass( + this.widgetBaseClass + "-disabled " + + "ui-state-disabled" ); + }, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key; + + if ( arguments.length === 0 ) { + // don't return a reference to the internal hash + return $.extend( {}, this.options ); + } + + if (typeof key === "string" ) { + if ( value === undefined ) { + return this.options[ key ]; + } + options = {}; + options[ key ] = value; + } + + this._setOptions( options ); + + return this; + }, + _setOptions: function( options ) { + var self = this; + $.each( options, function( key, value ) { + self._setOption( key, value ); + }); + + return this; + }, + _setOption: function( key, value ) { + this.options[ key ] = value; + + if ( key === "disabled" ) { + this.widget() + [ value ? "addClass" : "removeClass"]( + this.widgetBaseClass + "-disabled" + " " + + "ui-state-disabled" ) + .attr( "aria-disabled", value ); + } + + return this; + }, + + enable: function() { + return this._setOption( "disabled", false ); + }, + disable: function() { + return this._setOption( "disabled", true ); + }, + + _trigger: function( type, event, data ) { + var callback = this.options[ type ]; + + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + data = data || {}; + + // copy original event properties over to the new event + // this would happen if we could call $.event.fix instead of $.Event + // but we don't have a way to force an event to be fixed multiple times + if ( event.originalEvent ) { + for ( var i = $.event.props.length, prop; i; ) { + prop = $.event.props[ --i ]; + event[ prop ] = event.originalEvent[ prop ]; + } + } + + this.element.trigger( event, data ); + + return !( $.isFunction(callback) && + callback.call( this.element[0], event, data ) === false || + event.isDefaultPrevented() ); + } +}; + +})( jQuery ); diff --git a/js/util.js b/js/util.js index 84943e8b24..98fb6c9850 100644 --- a/js/util.js +++ b/js/util.js @@ -31,7 +31,8 @@ var SN = { // StatusNet CounterBlackout: false, MaxLength: 140, PatternUsername: /^[0-9a-zA-Z\-_.]*$/, - HTTP20x30x: [200, 201, 202, 203, 204, 205, 206, 300, 301, 302, 303, 304, 305, 306, 307] + HTTP20x30x: [200, 201, 202, 203, 204, 205, 206, 300, 301, 302, 303, 304, 305, 306, 307], + NoticeFormMaster: null // to be cloned from the one at top }, /** @@ -103,7 +104,7 @@ var SN = { // StatusNet SN.U.Counter(form); - NDT = form.find('[name=status_textarea]'); + NDT = form.find('.notice_data-text:first'); NDT.bind('keyup', function(e) { SN.U.Counter(form); @@ -182,7 +183,7 @@ var SN = { // StatusNet * @return number of chars */ CharacterCount: function(form) { - return form.find('[name=status_textarea]').val().length; + return form.find('.notice_data-text:first').val().length; }, /** @@ -227,6 +228,9 @@ var SN = { // StatusNet * will be extracted and copied in, replacing the original form. * If there's no form, the first paragraph will be used. * + * This will automatically be applied on the 'submit' event for + * any form with the 'ajax' class. + * * @fixme can sometimes explode confusingly if returnd data is bogus * @fixme error handling is pretty vague * @fixme can't submit file uploads @@ -249,16 +253,34 @@ var SN = { // StatusNet .attr(SN.C.S.Disabled, SN.C.S.Disabled); }, error: function (xhr, textStatus, errorThrown) { - alert(errorThrown || textStatus); + // If the server end reported an error from StatusNet, + // find it -- otherwise we'll see what was reported + // from the browser. + var errorReported = null; + if (xhr.responseXML) { + errorReported = $('#error', xhr.responseXML).text(); + } + alert(errorReported || errorThrown || textStatus); + + // Restore the form to original state. + // Hopefully. :D + form + .removeClass(SN.C.S.Processing) + .find('.submit') + .removeClass(SN.C.S.Disabled) + .removeAttr(SN.C.S.Disabled); }, success: function(data, textStatus) { if (typeof($('form', data)[0]) != 'undefined') { form_new = document._importNode($('form', data)[0], true); form.replaceWith(form_new); } - else { + else if (typeof($('p', data)[0]) != 'undefined') { form.replaceWith(document._importNode($('p', data)[0], true)); } + else { + alert('Unknown error.'); + } } }); }, @@ -323,7 +345,7 @@ var SN = { // StatusNet dataType: 'xml', timeout: '60000', beforeSend: function(formData) { - if (form.find('[name=status_textarea]').val() == '') { + if (form.find('.notice_data-text:first').val() == '') { form.addClass(SN.C.S.Warning); return false; } @@ -390,16 +412,20 @@ var SN = { // StatusNet var replyItem = form.closest('li.notice-reply'); if (replyItem.length > 0) { - // If this is an inline reply, insert it in place. + // If this is an inline reply, remove the form... + var list = form.closest('.threaded-replies'); + var placeholder = list.find('.notice-reply-placeholder'); + replyItem.remove(); + var id = $(notice).attr('id'); if ($("#"+id).length == 0) { - var parentNotice = replyItem.closest('li.notice'); - replyItem.replaceWith(notice); - SN.U.NoticeInlineReplyPlaceholder(parentNotice); + $(notice).insertBefore(placeholder); } else { // Realtime came through before us... - replyItem.remove(); } + + // ...and show the placeholder form. + placeholder.show(); } else if (notices.length > 0 && SN.U.belongsOnTimeline(notice)) { // Not a reply. If on our timeline, show it at the top! @@ -419,7 +445,7 @@ var SN = { // StatusNet .css({display:'none'}) .fadeIn(2500); SN.U.NoticeWithAttachment($('#'+notice.id)); - SN.U.NoticeReplyTo($('#'+notice.id)); + SN.U.switchInputFormTab("placeholder"); } } else { // Not on a timeline that this belongs on? @@ -580,34 +606,22 @@ var SN = { // StatusNet * @access private */ NoticeReply: function() { - if ($('#content .notice_reply').length > 0) { - $('#content .notice').each(function() { SN.U.NoticeReplyTo($(this)); }); - } - }, - - /** - * Setup function -- DOES NOT trigger actions immediately. - * - * Sets up event handlers on the given notice's reply button to - * tweak the new-notice form with needed variables and focus it - * when pushed. - * - * (This replaces the default reply button behavior to submit - * directly to a form which comes back with a specialized page - * with the form data prefilled.) - * - * @param {jQuery} notice: jQuery object containing one or more notices - * @access private - */ - NoticeReplyTo: function(notice) { - notice.find('.notice_reply').live('click', function(e) { + $('#content .notice_reply').live('click', function(e) { e.preventDefault(); + var notice = $(this).closest('li.notice'); var nickname = ($('.author .nickname', notice).length > 0) ? $($('.author .nickname', notice)[0]) : $('.author .nickname.uid'); SN.U.NoticeInlineReplyTrigger(notice, '@' + nickname.text()); return false; }); }, + /** + * Stub -- kept for compat with plugins for now. + * @access private + */ + NoticeReplyTo: function(notice) { + }, + /** * Open up a notice's inline reply box. * @@ -663,66 +677,76 @@ var SN = { // StatusNet // Update the existing form... nextStep(); } else { - // Remove placeholder if any - $('li.notice-reply-placeholder').remove(); + // Hide the placeholder... + var placeholder = list.find('li.notice-reply-placeholder').hide(); // Create the reply form entry at the end var replyItem = $('li.notice-reply', list); if (replyItem.length == 0) { - var url = $('#form_notice').attr('action'); replyItem = $('
      • '); - $.get(url, {ajax: 1}, function(data, textStatus, xhr) { - var formEl = document._importNode($('form', data)[0], true); + + var intermediateStep = function(formMaster) { + var formEl = document._importNode(formMaster, true); replyItem.append(formEl); - list.append(replyItem); + list.append(replyItem); // *after* the placeholder var form = replyForm = $(formEl); - SN.U.NoticeLocationAttach(form); - SN.U.FormNoticeXHR(form); - SN.U.FormNoticeEnhancements(form); - SN.U.NoticeDataAttach(form); + SN.Init.NoticeFormSetup(form); nextStep(); - }); + }; + if (SN.C.I.NoticeFormMaster) { + // We've already saved a master copy of the form. + // Clone it in! + intermediateStep(SN.C.I.NoticeFormMaster); + } else { + // Fetch a fresh copy of the notice form over AJAX. + // Warning: this can have a delay, which looks bad. + // @fixme this fallback may or may not work + var url = $('#form_notice').attr('action'); + $.get(url, {ajax: 1}, function(data, textStatus, xhr) { + intermediateStep($('form', data)[0]); + }); + } } } }, - /** - * Setup function -- DOES NOT apply immediately. - * - * Sets up event handlers for favor/disfavor forms to submit via XHR. - * Uses 'live' rather than 'bind', so applies to future as well as present items. - */ - NoticeFavor: function() { - $('.form_favor').live('click', function() { SN.U.FormXHR($(this)); return false; }); - $('.form_disfavor').live('click', function() { SN.U.FormXHR($(this)); return false; }); - }, - NoticeInlineReplyPlaceholder: function(notice) { var list = notice.find('ul.threaded-replies'); var placeholder = $('
      • ' + '' + '
      • '); - placeholder.click(function() { - SN.U.NoticeInlineReplyTrigger(notice); - }); - placeholder.find('input').val(SN.msg('reply_placeholder')); + placeholder.find('input') + .val(SN.msg('reply_placeholder')); list.append(placeholder); }, /** * Setup function -- DOES NOT apply immediately. * - * Sets up event handlers for favor/disfavor forms to submit via XHR. + * Sets up event handlers for inline reply mini-form placeholders. * Uses 'live' rather than 'bind', so applies to future as well as present items. */ NoticeInlineReplySetup: function() { - $('.threaded-replies').each(function() { - var list = $(this); - var notice = list.closest('.notice'); - SN.U.NoticeInlineReplyPlaceholder(notice); - }); + $('li.notice-reply-placeholder input') + .live('focus', function() { + var notice = $(this).closest('li.notice'); + SN.U.NoticeInlineReplyTrigger(notice); + return false; + }); + $('li.notice-reply-comments a') + .live('click', function() { + var url = $(this).attr('href'); + var area = $(this).closest('.threaded-replies'); + $.get(url, {ajax: 1}, function(data, textStatus, xhr) { + var replies = $('.threaded-replies', data); + if (replies.length) { + area.replaceWith(document._importNode(replies[0], true)); + } + }); + return false; + }); }, /** @@ -1081,8 +1105,7 @@ var SN = { // StatusNet } var NGW = form.find('.notice_data-geo_wrap'); - var geocodeURL = NGW.attr('title'); - NGW.removeAttr('title'); + var geocodeURL = NGW.attr('data-api'); label .attr('title', label.text()); @@ -1182,6 +1205,7 @@ var SN = { // StatusNet wrapper = $('
        '); wrapper.find('button.close').click(function() { form.find('[name=notice_data-geo]').removeAttr('checked').change(); + return false; }); form.append(wrapper); } @@ -1326,7 +1350,7 @@ var SN = { // StatusNet var profileLink = $('#nav_profile a').attr('href'); if (profileLink) { - var authorUrl = $(notice).find('.entry-title .author a.url').attr('href'); + var authorUrl = $(notice).find('.vcard.author a.url').attr('href'); if (authorUrl == profileLink) { if (action == 'all' || action == 'showstream') { // Posts always show on your own friends and profile streams. @@ -1341,7 +1365,35 @@ var SN = { // StatusNet // UI links currently on the page use malleable names. return false; - } + }, + + /** + * Switch to another active input sub-form. + * This will hide the current form (if any), show the new one, and + * update the input type tab selection state. + * + * @param {String} tag + */ + switchInputFormTab: function(tag) { + // The one that's current isn't current anymore + $('.input_form_nav_tab.current').removeClass('current'); + if (tag == 'placeholder') { + // Hack: when showing the placeholder, mark the tab + // as current for 'Status'. + $('#input_form_nav_status').addClass('current'); + } else { + $('#input_form_nav_'+tag).addClass('current'); + } + + $('.input_form.current').removeClass('current'); + $('#input_form_'+tag) + .addClass('current') + .find('.ajax-notice').each(function() { + var form = $(this); + SN.Init.NoticeFormSetup(form); + }) + .find('textarea:first').focus(); + } }, Init: { @@ -1355,13 +1407,67 @@ var SN = { // StatusNet */ NoticeForm: function() { if ($('body.user_in').length > 0) { - $('.'+SN.C.S.FormNotice).each(function() { - var form = $(this); - SN.U.NoticeLocationAttach(form); - SN.U.FormNoticeXHR(form); - SN.U.FormNoticeEnhancements(form); - SN.U.NoticeDataAttach(form); + // SN.Init.NoticeFormSetup() will get run + // when forms get displayed for the first time... + + // Hack to initialize the placeholder at top + $('#input_form_placeholder input.placeholder').focus(function() { + SN.U.switchInputFormTab("status"); }); + + // Make inline reply forms self-close when clicking out. + $('body').bind('click', function(e) { + var currentForm = $('#content .input_forms div.current'); + if (currentForm.length > 0) { + if ($('#content .input_forms').has(e.target).length == 0) { + // If all fields are empty, switch back to the placeholder. + var fields = currentForm.find('textarea, input[type=text], input[type=""]'); + var anything = false; + fields.each(function() { + anything = anything || $(this).val(); + }); + if (!anything) { + SN.U.switchInputFormTab("placeholder"); + } + } + } + + var openReplies = $('li.notice-reply'); + if (openReplies.length > 0) { + var target = $(e.target); + openReplies.each(function() { + // Did we click outside this one? + var replyItem = $(this); + if (replyItem.has(e.target).length == 0) { + var textarea = replyItem.find('.notice_data-text:first'); + var cur = $.trim(textarea.val()); + // Only close if there's been no edit. + if (cur == '' || cur == textarea.data('initialText')) { + var parentNotice = replyItem.closest('li.notice'); + replyItem.remove(); + parentNotice.find('li.notice-reply-placeholder').show(); + } + } + }); + } + }); + } + }, + + /** + * Encapsulate notice form setup for a single form. + * Plugins can add extra setup by monkeypatching this + * function. + * + * @param {jQuery} form + */ + NoticeFormSetup: function(form) { + if (!form.data('NoticeFormSetup')) { + SN.U.NoticeLocationAttach(form); + SN.U.FormNoticeXHR(form); + SN.U.FormNoticeEnhancements(form); + SN.U.NoticeDataAttach(form); + form.data('NoticeFormSetup', true); } }, @@ -1373,7 +1479,10 @@ var SN = { // StatusNet */ Notices: function() { if ($('body.user_in').length > 0) { - SN.U.NoticeFavor(); + var masterForm = $('.form_notice:first'); + if (masterForm.length > 0) { + SN.C.I.NoticeFormMaster = document._importNode(masterForm[0], true); + } SN.U.NoticeRepeat(); SN.U.NoticeReply(); SN.U.NoticeInlineReplySetup(); @@ -1473,6 +1582,16 @@ var SN = { // StatusNet }); }, + /** + * Set up any generic 'ajax' form so it submits via AJAX with auto-replacement. + */ + AjaxForms: function() { + $('form.ajax').live('submit', function() { + SN.U.FormXHR($(this)); + return false; + }); + }, + /** * Add logic to any file upload forms to handle file size limits, * on browsers that support basic FileAPI. @@ -1509,6 +1628,7 @@ var SN = { // StatusNet * don't start them loading until after DOM-ready time! */ $(document).ready(function(){ + SN.Init.AjaxForms(); SN.Init.UploadForms(); if ($('.'+SN.C.S.FormNotice).length > 0) { SN.Init.NoticeForm(); diff --git a/js/util.min.js b/js/util.min.js index a31d366d7b..cfc06cda5a 100644 --- a/js/util.min.js +++ b/js/util.min.js @@ -1 +1 @@ -var SN={C:{I:{CounterBlackout:false,MaxLength:140,PatternUsername:/^[0-9a-zA-Z\-_.]*$/,HTTP20x30x:[200,201,202,203,204,205,206,300,301,302,303,304,305,306,307]},S:{Disabled:"disabled",Warning:"warning",Error:"error",Success:"success",Processing:"processing",CommandResult:"command_result",FormNotice:"form_notice",NoticeDataGeo:"notice_data-geo",NoticeDataGeoCookie:"NoticeDataGeo",NoticeDataGeoSelected:"notice_data-geo_selected",StatusNetInstance:"StatusNetInstance"}},messages:{},msg:function(a){if(typeof SN.messages[a]=="undefined"){return"["+a+"]"}else{return SN.messages[a]}},U:{FormNoticeEnhancements:function(b){if(jQuery.data(b[0],"ElementData")===undefined){MaxLength=b.find(".count").text();if(typeof(MaxLength)=="undefined"){MaxLength=SN.C.I.MaxLength}jQuery.data(b[0],"ElementData",{MaxLength:MaxLength});SN.U.Counter(b);NDT=b.find("[name=status_textarea]");NDT.bind("keyup",function(c){SN.U.Counter(b)});var a=function(c){window.setTimeout(function(){SN.U.Counter(b)},50)};NDT.bind("cut",a).bind("paste",a)}else{b.find(".count").text(jQuery.data(b[0],"ElementData").MaxLength)}},Counter:function(d){SN.C.I.FormNoticeCurrent=d;var b=jQuery.data(d[0],"ElementData").MaxLength;if(b<=0){return}var c=b-SN.U.CharacterCount(d);var a=d.find(".count");if(c.toString()!=a.text()){if(!SN.C.I.CounterBlackout||c===0){if(a.text()!=String(c)){a.text(c)}if(c<0){d.addClass(SN.C.S.Warning)}else{d.removeClass(SN.C.S.Warning)}if(!SN.C.I.CounterBlackout){SN.C.I.CounterBlackout=true;SN.C.I.FormNoticeCurrent=d;window.setTimeout("SN.U.ClearCounterBlackout(SN.C.I.FormNoticeCurrent);",500)}}}},CharacterCount:function(a){return a.find("[name=status_textarea]").val().length},ClearCounterBlackout:function(a){SN.C.I.CounterBlackout=false;SN.U.Counter(a)},RewriteAjaxAction:function(a){if(document.location.protocol=="https:"&&a.substr(0,5)=="http:"){return a.replace(/^http:\/\/[^:\/]+/,"https://"+document.location.host)}else{return a}},FormXHR:function(a){$.ajax({type:"POST",dataType:"xml",url:SN.U.RewriteAjaxAction(a.attr("action")),data:a.serialize()+"&ajax=1",beforeSend:function(b){a.addClass(SN.C.S.Processing).find(".submit").addClass(SN.C.S.Disabled).attr(SN.C.S.Disabled,SN.C.S.Disabled)},error:function(c,d,b){alert(b||d)},success:function(b,c){if(typeof($("form",b)[0])!="undefined"){form_new=document._importNode($("form",b)[0],true);a.replaceWith(form_new)}else{a.replaceWith(document._importNode($("p",b)[0],true))}}})},FormNoticeXHR:function(b){SN.C.I.NoticeDataGeo={};b.append('');b.attr("action",SN.U.RewriteAjaxAction(b.attr("action")));var c=function(d,e){b.append($('

        ').addClass(d).text(e))};var a=function(){b.find(".form_response").remove()};b.ajaxForm({dataType:"xml",timeout:"60000",beforeSend:function(d){if(b.find("[name=status_textarea]").val()==""){b.addClass(SN.C.S.Warning);return false}b.addClass(SN.C.S.Processing).find(".submit").addClass(SN.C.S.Disabled).attr(SN.C.S.Disabled,SN.C.S.Disabled);SN.U.normalizeGeoData(b);return true},error:function(f,g,e){b.removeClass(SN.C.S.Processing).find(".submit").removeClass(SN.C.S.Disabled).removeAttr(SN.C.S.Disabled,SN.C.S.Disabled);a();if(g=="timeout"){c("error","Sorry! We had trouble sending your notice. The servers are overloaded. Please try again, and contact the site administrator if this problem persists.")}else{var d=SN.U.GetResponseXML(f);if($("."+SN.C.S.Error,d).length>0){b.append(document._importNode($("."+SN.C.S.Error,d)[0],true))}else{if(parseInt(f.status)===0||jQuery.inArray(parseInt(f.status),SN.C.I.HTTP20x30x)>=0){b.resetForm().find(".attach-status").remove();SN.U.FormNoticeEnhancements(b)}else{c("error","(Sorry! We had trouble sending your notice ("+f.status+" "+f.statusText+"). Please report the problem to the site administrator if this happens again.")}}}},success:function(i,f){a();var n=$("#"+SN.C.S.Error,i);if(n.length>0){c("error",n.text())}else{if($("body")[0].id=="bookmarklet"){self.close()}var d=$("#"+SN.C.S.CommandResult,i);if(d.length>0){c("success",d.text())}else{var m=document._importNode($("li",i)[0],true);var k=$("#notices_primary .notices:first");var l=b.closest("li.notice-reply");if(l.length>0){var e=$(m).attr("id");if($("#"+e).length==0){var j=l.closest("li.notice");l.replaceWith(m);SN.U.NoticeInlineReplyPlaceholder(j)}else{l.remove()}}else{if(k.length>0&&SN.U.belongsOnTimeline(m)){if($("#"+m.id).length===0){var h=b.find("[name=inreplyto]").val();var g="#notices_primary #notice-"+h;if($("body")[0].id=="conversation"){if(h.length>0&&$(g+" .notices").length<1){$(g).append('
          ')}$($(g+" .notices")[0]).append(m)}else{k.prepend(m)}$("#"+m.id).css({display:"none"}).fadeIn(2500);SN.U.NoticeWithAttachment($("#"+m.id));SN.U.NoticeReplyTo($("#"+m.id))}}else{c("success",$("title",i).text())}}}b.resetForm();b.find("[name=inreplyto]").val("");b.find(".attach-status").remove();SN.U.FormNoticeEnhancements(b)}},complete:function(d,e){b.removeClass(SN.C.S.Processing).find(".submit").removeAttr(SN.C.S.Disabled).removeClass(SN.C.S.Disabled);b.find("[name=lat]").val(SN.C.I.NoticeDataGeo.NLat);b.find("[name=lon]").val(SN.C.I.NoticeDataGeo.NLon);b.find("[name=location_ns]").val(SN.C.I.NoticeDataGeo.NLNS);b.find("[name=location_id]").val(SN.C.I.NoticeDataGeo.NLID);b.find("[name=notice_data-geo]").attr("checked",SN.C.I.NoticeDataGeo.NDG)}})},FormProfileSearchXHR:function(a){$.ajax({type:"POST",dataType:"xml",url:a.attr("action"),data:a.serialize()+"&ajax=1",beforeSend:function(b){a.addClass(SN.C.S.Processing).find(".submit").addClass(SN.C.S.Disabled).attr(SN.C.S.Disabled,SN.C.S.Disabled)},error:function(c,d,b){alert(b||d)},success:function(d,f){var b=$("#profile_search_results");if(typeof($("ul",d)[0])!="undefined"){var c=document._importNode($("ul",d)[0],true);b.replaceWith(c)}else{var e=$("
        • ").append(document._importNode($("p",d)[0],true));b.html(e)}a.removeClass(SN.C.S.Processing).find(".submit").removeClass(SN.C.S.Disabled).attr(SN.C.S.Disabled,false)}})},FormPeopletagsXHR:function(a){$.ajax({type:"POST",dataType:"xml",url:a.attr("action"),data:a.serialize()+"&ajax=1",beforeSend:function(b){a.addClass(SN.C.S.Processing).find(".submit").addClass(SN.C.S.Disabled).attr(SN.C.S.Disabled,SN.C.S.Disabled)},error:function(c,d,b){alert(b||d)},success:function(d,e){var c=a.parents(".entity_tags");if(typeof($(".entity_tags",d)[0])!="undefined"){var b=document._importNode($(".entity_tags",d)[0],true);$(b).find(".editable").append($('').closest(".notice-options").addClass("opaque");a.find("button.close").click(function(){$(this).remove();a.removeClass("dialogbox").closest(".notice-options").removeClass("opaque");a.find(".submit_dialogbox").remove();a.find(".submit").show();return false})},NoticeAttachments:function(){$(".notice a.attachment").each(function(){SN.U.NoticeWithAttachment($(this).closest(".notice"))})},NoticeWithAttachment:function(b){if(b.find(".attachment").length===0){return}var a=b.find(".attachment.more");if(a.length>0){$(a[0]).click(function(){var c=$(this);c.addClass(SN.C.S.Processing);$.get(c.attr("href")+"/ajax",null,function(d){c.parent(".entry-content").html($(d).find("#attachment_view .entry-content").html())});return false}).attr("title",SN.msg("showmore_tooltip"))}},NoticeDataAttach:function(b){var a=b.find("input[type=file]");a.change(function(f){b.find(".attach-status").remove();var d=$(this).val();if(!d){return false}var c=$('
          ');c.find("code").text(d);c.find("button").click(function(){c.remove();a.val("");return false});b.append(c);if(typeof this.files=="object"){for(var e=0;eg){f=false}if(f){h(c,function(j){var i=$("").attr("title",e).attr("alt",e).attr("src",j).attr("style","height: 120px");d.find(".attach-status").append(i)})}else{var b=$("
          ").text(e);d.find(".attach-status").append(b)}},NoticeLocationAttach:function(a){var e=a.find("[name=lat]");var k=a.find("[name=lon]");var g=a.find("[name=location_ns]").val();var l=a.find("[name=location_id]").val();var b="";var d=a.find("[name=notice_data-geo]");var c=a.find("[name=notice_data-geo]");var j=a.find("label.notice_data-geo");function f(n){j.attr("title",jQuery.trim(j.text())).removeClass("checked");a.find("[name=lat]").val("");a.find("[name=lon]").val("");a.find("[name=location_ns]").val("");a.find("[name=location_id]").val("");a.find("[name=notice_data-geo]").attr("checked",false);$.cookie(SN.C.S.NoticeDataGeoCookie,"disabled",{path:"/"});if(n){a.find(".geo_status_wrapper").removeClass("success").addClass("error");a.find(".geo_status_wrapper .geo_status").text(n)}else{a.find(".geo_status_wrapper").remove()}}function m(n,o){SN.U.NoticeGeoStatus(a,"Looking up place name...");$.getJSON(n,o,function(p){var q,r;if(typeof(p.location_ns)!="undefined"){a.find("[name=location_ns]").val(p.location_ns);q=p.location_ns}if(typeof(p.location_id)!="undefined"){a.find("[name=location_id]").val(p.location_id);r=p.location_id}if(typeof(p.name)=="undefined"){NLN_text=o.lat+";"+o.lon}else{NLN_text=p.name}SN.U.NoticeGeoStatus(a,NLN_text,o.lat,o.lon,p.url);j.attr("title",NoticeDataGeo_text.ShareDisable+" ("+NLN_text+")");a.find("[name=lat]").val(o.lat);a.find("[name=lon]").val(o.lon);a.find("[name=location_ns]").val(q);a.find("[name=location_id]").val(r);a.find("[name=notice_data-geo]").attr("checked",true);var s={NLat:o.lat,NLon:o.lon,NLNS:q,NLID:r,NLN:NLN_text,NLNU:p.url,NDG:true};$.cookie(SN.C.S.NoticeDataGeoCookie,JSON.stringify(s),{path:"/"})})}if(c.length>0){if($.cookie(SN.C.S.NoticeDataGeoCookie)=="disabled"){c.attr("checked",false)}else{c.attr("checked",true)}var h=a.find(".notice_data-geo_wrap");var i=h.attr("title");h.removeAttr("title");j.attr("title",j.text());c.change(function(){if(c.attr("checked")===true||$.cookie(SN.C.S.NoticeDataGeoCookie)===null){j.attr("title",NoticeDataGeo_text.ShareDisable).addClass("checked");if($.cookie(SN.C.S.NoticeDataGeoCookie)===null||$.cookie(SN.C.S.NoticeDataGeoCookie)=="disabled"){if(navigator.geolocation){SN.U.NoticeGeoStatus(a,"Requesting location from browser...");navigator.geolocation.getCurrentPosition(function(p){a.find("[name=lat]").val(p.coords.latitude);a.find("[name=lon]").val(p.coords.longitude);var q={lat:p.coords.latitude,lon:p.coords.longitude,token:$("#token").val()};m(i,q)},function(p){switch(p.code){case p.PERMISSION_DENIED:f("Location permission denied.");break;case p.TIMEOUT:f("Location lookup timeout.");break}},{timeout:10000})}else{if(e.length>0&&k.length>0){var n={lat:e,lon:k,token:$("#token").val()};m(i,n)}else{f();c.remove();j.remove()}}}else{var o=JSON.parse($.cookie(SN.C.S.NoticeDataGeoCookie));a.find("[name=lat]").val(o.NLat);a.find("[name=lon]").val(o.NLon);a.find("[name=location_ns]").val(o.NLNS);a.find("[name=location_id]").val(o.NLID);a.find("[name=notice_data-geo]").attr("checked",o.NDG);SN.U.NoticeGeoStatus(a,o.NLN,o.NLat,o.NLon,o.NLNU);j.attr("title",NoticeDataGeo_text.ShareDisable+" ("+o.NLN+")").addClass("checked")}}else{f()}}).change()}},NoticeGeoStatus:function(e,a,f,g,c){var h=e.find(".geo_status_wrapper");if(h.length==0){h=$('
          ');h.find("button.close").click(function(){e.find("[name=notice_data-geo]").removeAttr("checked").change()});e.append(h)}var b;if(c){b=$("").attr("href",c)}else{b=$("")}b.text(a);if(f||g){var d=f+";"+g;b.attr("title",d);if(!a){b.text(d)}}h.find(".geo_status").empty().append(b)},NewDirectMessage:function(){NDM=$(".entity_send-a-message a");NDM.attr({href:NDM.attr("href")+"&ajax=1"});NDM.bind("click",function(){var a=$(".entity_send-a-message form");if(a.length===0){$(this).addClass(SN.C.S.Processing);$.get(NDM.attr("href"),null,function(b){$(".entity_send-a-message").append(document._importNode($("form",b)[0],true));a=$(".entity_send-a-message .form_notice");SN.U.FormNoticeXHR(a);SN.U.FormNoticeEnhancements(a);a.append('');$(".entity_send-a-message button").click(function(){a.hide();return false});NDM.removeClass(SN.C.S.Processing)})}else{a.show();$(".entity_send-a-message textarea").focus()}return false})},GetFullYear:function(c,d,a){var b=new Date();b.setFullYear(c,d,a);return b},StatusNetInstance:{Set:function(b){var a=SN.U.StatusNetInstance.Get();if(a!==null){b=$.extend(a,b)}$.cookie(SN.C.S.StatusNetInstance,JSON.stringify(b),{path:"/",expires:SN.U.GetFullYear(2029,0,1)})},Get:function(){var a=$.cookie(SN.C.S.StatusNetInstance);if(a!==null){return JSON.parse(a)}return null},Delete:function(){$.cookie(SN.C.S.StatusNetInstance,null)}},belongsOnTimeline:function(b){var a=$("body").attr("id");if(a=="public"){return true}var c=$("#nav_profile a").attr("href");if(c){var d=$(b).find(".entry-title .author a.url").attr("href");if(d==c){if(a=="all"||a=="showstream"){return true}}}return false}},Init:{NoticeForm:function(){if($("body.user_in").length>0){$("."+SN.C.S.FormNotice).each(function(){var a=$(this);SN.U.NoticeLocationAttach(a);SN.U.FormNoticeXHR(a);SN.U.FormNoticeEnhancements(a);SN.U.NoticeDataAttach(a)})}},Notices:function(){if($("body.user_in").length>0){SN.U.NoticeFavor();SN.U.NoticeRepeat();SN.U.NoticeReply();SN.U.NoticeInlineReplySetup()}SN.U.NoticeAttachments()},EntityActions:function(){if($("body.user_in").length>0){$(".form_user_subscribe").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_user_unsubscribe").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_group_join").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_group_leave").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_user_nudge").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_peopletag_subscribe").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_peopletag_unsubscribe").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_user_add_peopletag").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_user_remove_peopletag").live("click",function(){SN.U.FormXHR($(this));return false});SN.U.NewDirectMessage()}},ProfileSearch:function(){if($("body.user_in").length>0){$(".form_peopletag_edit_user_search input.submit").live("click",function(){SN.U.FormProfileSearchXHR($(this).parents("form"));return false})}},Login:function(){if(SN.U.StatusNetInstance.Get()!==null){var a=SN.U.StatusNetInstance.Get().Nickname;if(a!==null){$("#form_login #nickname").val(a)}}$("#form_login").bind("submit",function(){SN.U.StatusNetInstance.Set({Nickname:$("#form_login #nickname").val()});return true})},PeopletagAutocomplete:function(){$(".form_tag_user #tags").tagInput({tags:SN.C.PtagACData,tagSeparator:" ",animate:false,formatLine:function(d,g,c,f){var a=""+g.tag.substring(0,c.length)+""+g.tag.substring(c.length);var b=$("
          ").addClass("mode-"+g.mode);b.append($("
          "+a+" "+g.mode+"
          "));if(g.freq){b.append("
          "+g.freq+"
          ")}return b}})},PeopleTags:function(){$(".user_profile_tags .editable").append($('').closest(".notice-options").addClass("opaque");a.find("button.close").click(function(){$(this).remove();a.removeClass("dialogbox").closest(".notice-options").removeClass("opaque");a.find(".submit_dialogbox").remove();a.find(".submit").show();return false})},NoticeAttachments:function(){$(".notice a.attachment").each(function(){SN.U.NoticeWithAttachment($(this).closest(".notice"))})},NoticeWithAttachment:function(b){if(b.find(".attachment").length===0){return}var a=b.find(".attachment.more");if(a.length>0){$(a[0]).click(function(){var c=$(this);c.addClass(SN.C.S.Processing);$.get(c.attr("href")+"/ajax",null,function(d){c.parent(".entry-content").html($(d).find("#attachment_view .entry-content").html())});return false}).attr("title",SN.msg("showmore_tooltip"))}},NoticeDataAttach:function(b){var a=b.find("input[type=file]");a.change(function(f){b.find(".attach-status").remove();var d=$(this).val();if(!d){return false}var c=$('
          ');c.find("code").text(d);c.find("button").click(function(){c.remove();a.val("");return false});b.append(c);if(typeof this.files=="object"){for(var e=0;eg){f=false}if(f){h(c,function(j){var i=$("").attr("title",e).attr("alt",e).attr("src",j).attr("style","height: 120px");d.find(".attach-status").append(i)})}else{var b=$("
          ").text(e);d.find(".attach-status").append(b)}},NoticeLocationAttach:function(a){var e=a.find("[name=lat]");var k=a.find("[name=lon]");var g=a.find("[name=location_ns]").val();var l=a.find("[name=location_id]").val();var b="";var d=a.find("[name=notice_data-geo]");var c=a.find("[name=notice_data-geo]");var j=a.find("label.notice_data-geo");function f(n){j.attr("title",jQuery.trim(j.text())).removeClass("checked");a.find("[name=lat]").val("");a.find("[name=lon]").val("");a.find("[name=location_ns]").val("");a.find("[name=location_id]").val("");a.find("[name=notice_data-geo]").attr("checked",false);$.cookie(SN.C.S.NoticeDataGeoCookie,"disabled",{path:"/"});if(n){a.find(".geo_status_wrapper").removeClass("success").addClass("error");a.find(".geo_status_wrapper .geo_status").text(n)}else{a.find(".geo_status_wrapper").remove()}}function m(n,o){SN.U.NoticeGeoStatus(a,"Looking up place name...");$.getJSON(n,o,function(p){var q,r;if(typeof(p.location_ns)!="undefined"){a.find("[name=location_ns]").val(p.location_ns);q=p.location_ns}if(typeof(p.location_id)!="undefined"){a.find("[name=location_id]").val(p.location_id);r=p.location_id}if(typeof(p.name)=="undefined"){NLN_text=o.lat+";"+o.lon}else{NLN_text=p.name}SN.U.NoticeGeoStatus(a,NLN_text,o.lat,o.lon,p.url);j.attr("title",NoticeDataGeo_text.ShareDisable+" ("+NLN_text+")");a.find("[name=lat]").val(o.lat);a.find("[name=lon]").val(o.lon);a.find("[name=location_ns]").val(q);a.find("[name=location_id]").val(r);a.find("[name=notice_data-geo]").attr("checked",true);var s={NLat:o.lat,NLon:o.lon,NLNS:q,NLID:r,NLN:NLN_text,NLNU:p.url,NDG:true};$.cookie(SN.C.S.NoticeDataGeoCookie,JSON.stringify(s),{path:"/"})})}if(c.length>0){if($.cookie(SN.C.S.NoticeDataGeoCookie)=="disabled"){c.attr("checked",false)}else{c.attr("checked",true)}var h=a.find(".notice_data-geo_wrap");var i=h.attr("data-api");j.attr("title",j.text());c.change(function(){if(c.attr("checked")===true||$.cookie(SN.C.S.NoticeDataGeoCookie)===null){j.attr("title",NoticeDataGeo_text.ShareDisable).addClass("checked");if($.cookie(SN.C.S.NoticeDataGeoCookie)===null||$.cookie(SN.C.S.NoticeDataGeoCookie)=="disabled"){if(navigator.geolocation){SN.U.NoticeGeoStatus(a,"Requesting location from browser...");navigator.geolocation.getCurrentPosition(function(p){a.find("[name=lat]").val(p.coords.latitude);a.find("[name=lon]").val(p.coords.longitude);var q={lat:p.coords.latitude,lon:p.coords.longitude,token:$("#token").val()};m(i,q)},function(p){switch(p.code){case p.PERMISSION_DENIED:f("Location permission denied.");break;case p.TIMEOUT:f("Location lookup timeout.");break}},{timeout:10000})}else{if(e.length>0&&k.length>0){var n={lat:e,lon:k,token:$("#token").val()};m(i,n)}else{f();c.remove();j.remove()}}}else{var o=JSON.parse($.cookie(SN.C.S.NoticeDataGeoCookie));a.find("[name=lat]").val(o.NLat);a.find("[name=lon]").val(o.NLon);a.find("[name=location_ns]").val(o.NLNS);a.find("[name=location_id]").val(o.NLID);a.find("[name=notice_data-geo]").attr("checked",o.NDG);SN.U.NoticeGeoStatus(a,o.NLN,o.NLat,o.NLon,o.NLNU);j.attr("title",NoticeDataGeo_text.ShareDisable+" ("+o.NLN+")").addClass("checked")}}else{f()}}).change()}},NoticeGeoStatus:function(e,a,f,g,c){var h=e.find(".geo_status_wrapper");if(h.length==0){h=$('
          ');h.find("button.close").click(function(){e.find("[name=notice_data-geo]").removeAttr("checked").change();return false});e.append(h)}var b;if(c){b=$("").attr("href",c)}else{b=$("")}b.text(a);if(f||g){var d=f+";"+g;b.attr("title",d);if(!a){b.text(d)}}h.find(".geo_status").empty().append(b)},NewDirectMessage:function(){NDM=$(".entity_send-a-message a");NDM.attr({href:NDM.attr("href")+"&ajax=1"});NDM.bind("click",function(){var a=$(".entity_send-a-message form");if(a.length===0){$(this).addClass(SN.C.S.Processing);$.get(NDM.attr("href"),null,function(b){$(".entity_send-a-message").append(document._importNode($("form",b)[0],true));a=$(".entity_send-a-message .form_notice");SN.U.FormNoticeXHR(a);SN.U.FormNoticeEnhancements(a);a.append('');$(".entity_send-a-message button").click(function(){a.hide();return false});NDM.removeClass(SN.C.S.Processing)})}else{a.show();$(".entity_send-a-message textarea").focus()}return false})},GetFullYear:function(c,d,a){var b=new Date();b.setFullYear(c,d,a);return b},StatusNetInstance:{Set:function(b){var a=SN.U.StatusNetInstance.Get();if(a!==null){b=$.extend(a,b)}$.cookie(SN.C.S.StatusNetInstance,JSON.stringify(b),{path:"/",expires:SN.U.GetFullYear(2029,0,1)})},Get:function(){var a=$.cookie(SN.C.S.StatusNetInstance);if(a!==null){return JSON.parse(a)}return null},Delete:function(){$.cookie(SN.C.S.StatusNetInstance,null)}},belongsOnTimeline:function(b){var a=$("body").attr("id");if(a=="public"){return true}var c=$("#nav_profile a").attr("href");if(c){var d=$(b).find(".vcard.author a.url").attr("href");if(d==c){if(a=="all"||a=="showstream"){return true}}}return false},switchInputFormTab:function(a){$(".input_form_nav_tab.current").removeClass("current");if(a=="placeholder"){$("#input_form_nav_status").addClass("current")}else{$("#input_form_nav_"+a).addClass("current")}$(".input_form.current").removeClass("current");$("#input_form_"+a).addClass("current").find(".ajax-notice").each(function(){var b=$(this);SN.Init.NoticeFormSetup(b)}).find("textarea:first").focus()}},Init:{NoticeForm:function(){if($("body.user_in").length>0){$("#input_form_placeholder input.placeholder").focus(function(){SN.U.switchInputFormTab("status")});$("body").bind("click",function(g){var d=$("#content .input_forms div.current");if(d.length>0){if($("#content .input_forms").has(g.target).length==0){var a=d.find('textarea, input[type=text], input[type=""]');var c=false;a.each(function(){c=c||$(this).val()});if(!c){SN.U.switchInputFormTab("placeholder")}}}var b=$("li.notice-reply");if(b.length>0){var f=$(g.target);b.each(function(){var j=$(this);if(j.has(g.target).length==0){var h=j.find(".notice_data-text:first");var i=$.trim(h.val());if(i==""||i==h.data("initialText")){var e=j.closest("li.notice");j.remove();e.find("li.notice-reply-placeholder").show()}}})}})}},NoticeFormSetup:function(a){if(!a.data("NoticeFormSetup")){SN.U.NoticeLocationAttach(a);SN.U.FormNoticeXHR(a);SN.U.FormNoticeEnhancements(a);SN.U.NoticeDataAttach(a);a.data("NoticeFormSetup",true)}},Notices:function(){if($("body.user_in").length>0){var a=$(".form_notice:first");if(a.length>0){SN.C.I.NoticeFormMaster=document._importNode(a[0],true)}SN.U.NoticeRepeat();SN.U.NoticeReply();SN.U.NoticeInlineReplySetup()}SN.U.NoticeAttachments()},EntityActions:function(){if($("body.user_in").length>0){$(".form_user_subscribe").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_user_unsubscribe").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_group_join").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_group_leave").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_user_nudge").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_peopletag_subscribe").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_peopletag_unsubscribe").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_user_add_peopletag").live("click",function(){SN.U.FormXHR($(this));return false});$(".form_user_remove_peopletag").live("click",function(){SN.U.FormXHR($(this));return false});SN.U.NewDirectMessage()}},ProfileSearch:function(){if($("body.user_in").length>0){$(".form_peopletag_edit_user_search input.submit").live("click",function(){SN.U.FormProfileSearchXHR($(this).parents("form"));return false})}},Login:function(){if(SN.U.StatusNetInstance.Get()!==null){var a=SN.U.StatusNetInstance.Get().Nickname;if(a!==null){$("#form_login #nickname").val(a)}}$("#form_login").bind("submit",function(){SN.U.StatusNetInstance.Set({Nickname:$("#form_login #nickname").val()});return true})},PeopletagAutocomplete:function(){$(".form_tag_user #tags").tagInput({tags:SN.C.PtagACData,tagSeparator:" ",animate:false,formatLine:function(d,g,c,f){var a=""+g.tag.substring(0,c.length)+""+g.tag.substring(c.length);var b=$("
          ").addClass("mode-"+g.mode);b.append($("
          "+a+" "+g.mode+"
          "));if(g.freq){b.append("
          "+g.freq+"
          ")}return b}})},PeopleTags:function(){$(".user_profile_tags .editable").append($('
          ')}},prepLinkPreview:function(g){var h="link-preview-"+g;var f=e.links[g];e.refresh[g]=false;e.markLoading(g);b.lookup(f,function(l){var i=null;var j=100;if(l&&typeof l.thumbnail_url=="string"){i=l.thumbnail_url;if(typeof l.thumbnail_width!=="undefined"){if(l.thumbnail_width');k.find("a").attr("href",f).attr("target","_blank").last().find("img").attr("src",i).attr("width",j).attr("title",l.title||l.url||f);d.find("."+h).empty().append(k)}else{e.clearLink(g)}if(e.refresh[g]){e.prepLinkPreview(g)}else{e.markDone(g)}})},previewLinks:function(j){var h;var f=e.links;var g=e.findLinks(j);e.links=g;for(h=0;hf.length){for(h=f.length;hg.length){for(h=g.length;h')}},clearLink:function(f){var g="link-preview-"+f;d.find("."+g).html("")},markLoading:function(f){e.state[f]="loading";var g="link-preview-"+f;d.find("."+g).attr("style","opacity: 0.5")},markDone:function(f){e.state[f]="done";var g="link-preview-"+f;d.find("."+g).removeAttr("style")},clear:function(){e.links=[];d.find(".link-preview").remove()}};d.data("LinkPreview",e)}})(); \ No newline at end of file diff --git a/plugins/LinkPreview/locale/LinkPreview.pot b/plugins/LinkPreview/locale/LinkPreview.pot index 42ab0e5a9a..4a774ba297 100644 --- a/plugins/LinkPreview/locale/LinkPreview.pot +++ b/plugins/LinkPreview/locale/LinkPreview.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/LinkPreview/locale/de/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/de/LC_MESSAGES/LinkPreview.po index 031e6f2216..c5c292d1e0 100644 --- a/plugins/LinkPreview/locale/de/LC_MESSAGES/LinkPreview.po +++ b/plugins/LinkPreview/locale/de/LC_MESSAGES/LinkPreview.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LinkPreview\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:08:26+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:25:33+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:17:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-linkpreview\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LinkPreviewPlugin.php:39 msgid "UI extensions previewing thumbnails from links." msgstr "" "Benutzeroberflächenerweiterung, die es erlaubt, Vorschauen für Links " diff --git a/plugins/LinkPreview/locale/fr/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/fr/LC_MESSAGES/LinkPreview.po index e154ffd633..0a207909ec 100644 --- a/plugins/LinkPreview/locale/fr/LC_MESSAGES/LinkPreview.po +++ b/plugins/LinkPreview/locale/fr/LC_MESSAGES/LinkPreview.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LinkPreview\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-linkpreview\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: LinkPreviewPlugin.php:39 msgid "UI extensions previewing thumbnails from links." msgstr "" "Extensions d’interface utilisateur pour prévisualiser des vignettes depuis " diff --git a/plugins/LinkPreview/locale/he/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/he/LC_MESSAGES/LinkPreview.po index 91fbff7c76..4b6519e64c 100644 --- a/plugins/LinkPreview/locale/he/LC_MESSAGES/LinkPreview.po +++ b/plugins/LinkPreview/locale/he/LC_MESSAGES/LinkPreview.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LinkPreview\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-linkpreview\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LinkPreviewPlugin.php:39 msgid "UI extensions previewing thumbnails from links." msgstr "הרחבות מנשק משתמש המאפשרות צפייה בתמונות ממוזערות של קישורים." diff --git a/plugins/LinkPreview/locale/ia/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/ia/LC_MESSAGES/LinkPreview.po index 81552639b4..7cac824c03 100644 --- a/plugins/LinkPreview/locale/ia/LC_MESSAGES/LinkPreview.po +++ b/plugins/LinkPreview/locale/ia/LC_MESSAGES/LinkPreview.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LinkPreview\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-linkpreview\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LinkPreviewPlugin.php:39 msgid "UI extensions previewing thumbnails from links." msgstr "" "Extensiones del interfacie de usator pro previsualisar miniaturas de " diff --git a/plugins/LinkPreview/locale/mk/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/mk/LC_MESSAGES/LinkPreview.po index 3cb7426afe..e346105b75 100644 --- a/plugins/LinkPreview/locale/mk/LC_MESSAGES/LinkPreview.po +++ b/plugins/LinkPreview/locale/mk/LC_MESSAGES/LinkPreview.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LinkPreview\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-linkpreview\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: LinkPreviewPlugin.php:39 msgid "UI extensions previewing thumbnails from links." msgstr "" "Додатоци за корисничкиот посредник што даваат преглед на минијатури од врски." diff --git a/plugins/LinkPreview/locale/nl/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/nl/LC_MESSAGES/LinkPreview.po index ca4f66cc4b..a7da29d298 100644 --- a/plugins/LinkPreview/locale/nl/LC_MESSAGES/LinkPreview.po +++ b/plugins/LinkPreview/locale/nl/LC_MESSAGES/LinkPreview.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LinkPreview\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-linkpreview\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LinkPreviewPlugin.php:39 msgid "UI extensions previewing thumbnails from links." msgstr "" "Gebruikersinterfaceuitbreiding voor het weergeven van miniaturen voor " diff --git a/plugins/LinkPreview/locale/pt/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/pt/LC_MESSAGES/LinkPreview.po index 643cae9dad..1650007895 100644 --- a/plugins/LinkPreview/locale/pt/LC_MESSAGES/LinkPreview.po +++ b/plugins/LinkPreview/locale/pt/LC_MESSAGES/LinkPreview.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LinkPreview\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-linkpreview\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LinkPreviewPlugin.php:39 msgid "UI extensions previewing thumbnails from links." msgstr "" "Extensões da interface, para antevisão de miniaturas a partir de links." diff --git a/plugins/LinkPreview/locale/ru/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/ru/LC_MESSAGES/LinkPreview.po index 1f6d551537..8d7dde0320 100644 --- a/plugins/LinkPreview/locale/ru/LC_MESSAGES/LinkPreview.po +++ b/plugins/LinkPreview/locale/ru/LC_MESSAGES/LinkPreview.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LinkPreview\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-linkpreview\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: LinkPreviewPlugin.php:39 msgid "UI extensions previewing thumbnails from links." msgstr "" "Расширения пользовательского интерфейса для просмотр миниатюр из ссылок." diff --git a/plugins/LinkPreview/locale/uk/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/uk/LC_MESSAGES/LinkPreview.po index f92809dbd5..7a819c7404 100644 --- a/plugins/LinkPreview/locale/uk/LC_MESSAGES/LinkPreview.po +++ b/plugins/LinkPreview/locale/uk/LC_MESSAGES/LinkPreview.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LinkPreview\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-linkpreview\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: LinkPreviewPlugin.php:39 msgid "UI extensions previewing thumbnails from links." msgstr "" "Додаток до користувацького інтерфейсу для перегляду мініатюр з посилань." diff --git a/plugins/LinkPreview/locale/zh_CN/LC_MESSAGES/LinkPreview.po b/plugins/LinkPreview/locale/zh_CN/LC_MESSAGES/LinkPreview.po index 358d4f31d9..5590a49dc5 100644 --- a/plugins/LinkPreview/locale/zh_CN/LC_MESSAGES/LinkPreview.po +++ b/plugins/LinkPreview/locale/zh_CN/LC_MESSAGES/LinkPreview.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LinkPreview\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-24 10:32+0000\n" -"PO-Revision-Date: 2011-02-24 10:39:26+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:43+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82712); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:17:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-linkpreview\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: LinkPreviewPlugin.php:39 msgid "UI extensions previewing thumbnails from links." msgstr "用户界面扩展的链接的缩略图预览。" diff --git a/plugins/Linkback/locale/Linkback.pot b/plugins/Linkback/locale/Linkback.pot index 6b0c4e7431..013205326a 100644 --- a/plugins/Linkback/locale/Linkback.pot +++ b/plugins/Linkback/locale/Linkback.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Linkback/locale/de/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/de/LC_MESSAGES/Linkback.po index f188797c87..0484d5ad33 100644 --- a/plugins/Linkback/locale/de/LC_MESSAGES/Linkback.po +++ b/plugins/Linkback/locale/de/LC_MESSAGES/Linkback.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Linkback\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:57+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-linkback\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LinkbackPlugin.php:241 msgid "" "Notify blog authors when their posts have been linked in microblog notices " "using Pingback " diff --git a/plugins/Linkback/locale/es/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/es/LC_MESSAGES/Linkback.po index 028b7bc802..4caa0c7c01 100644 --- a/plugins/Linkback/locale/es/LC_MESSAGES/Linkback.po +++ b/plugins/Linkback/locale/es/LC_MESSAGES/Linkback.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Linkback\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:57+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-linkback\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LinkbackPlugin.php:241 msgid "" "Notify blog authors when their posts have been linked in microblog notices " "using Pingback " diff --git a/plugins/Linkback/locale/fi/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/fi/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..92ea46195f --- /dev/null +++ b/plugins/Linkback/locale/fi/LC_MESSAGES/Linkback.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - Linkback to Finnish (Suomi) +# Exported from translatewiki.net +# +# Author: Nike +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:57+0000\n" +"Language-Team: Finnish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fi\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"Ilmoita blogien kirjoittajille, kun heidän viestiin on linkitetty microblog-" +"ilmoituksissa käyttäen Pingback tai Trackback -protokollia." diff --git a/plugins/Linkback/locale/fr/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/fr/LC_MESSAGES/Linkback.po index 6c230d60cc..5f2ed7ca61 100644 --- a/plugins/Linkback/locale/fr/LC_MESSAGES/Linkback.po +++ b/plugins/Linkback/locale/fr/LC_MESSAGES/Linkback.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Linkback\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:57+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-linkback\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: LinkbackPlugin.php:241 msgid "" "Notify blog authors when their posts have been linked in microblog notices " "using Pingback " diff --git a/plugins/Linkback/locale/he/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/he/LC_MESSAGES/Linkback.po index 122a955bb5..1d2ca71e7a 100644 --- a/plugins/Linkback/locale/he/LC_MESSAGES/Linkback.po +++ b/plugins/Linkback/locale/he/LC_MESSAGES/Linkback.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Linkback\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:57+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-linkback\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LinkbackPlugin.php:241 msgid "" "Notify blog authors when their posts have been linked in microblog notices " "using Pingback " diff --git a/plugins/Linkback/locale/ia/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/ia/LC_MESSAGES/Linkback.po index 735c35afde..c38236052e 100644 --- a/plugins/Linkback/locale/ia/LC_MESSAGES/Linkback.po +++ b/plugins/Linkback/locale/ia/LC_MESSAGES/Linkback.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Linkback\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:57+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-linkback\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LinkbackPlugin.php:241 msgid "" "Notify blog authors when their posts have been linked in microblog notices " "using Pingback " diff --git a/plugins/Linkback/locale/id/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/id/LC_MESSAGES/Linkback.po index 9f8811f554..2d60bac4f0 100644 --- a/plugins/Linkback/locale/id/LC_MESSAGES/Linkback.po +++ b/plugins/Linkback/locale/id/LC_MESSAGES/Linkback.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Linkback\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:57+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-linkback\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: LinkbackPlugin.php:241 msgid "" "Notify blog authors when their posts have been linked in microblog notices " "using Pingback " diff --git a/plugins/Linkback/locale/mk/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/mk/LC_MESSAGES/Linkback.po index 95910f308d..d24c438973 100644 --- a/plugins/Linkback/locale/mk/LC_MESSAGES/Linkback.po +++ b/plugins/Linkback/locale/mk/LC_MESSAGES/Linkback.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Linkback\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:57+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-linkback\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: LinkbackPlugin.php:241 msgid "" "Notify blog authors when their posts have been linked in microblog notices " "using Pingback " diff --git a/plugins/Linkback/locale/nb/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/nb/LC_MESSAGES/Linkback.po index 2fff69b6c6..06cb73ed67 100644 --- a/plugins/Linkback/locale/nb/LC_MESSAGES/Linkback.po +++ b/plugins/Linkback/locale/nb/LC_MESSAGES/Linkback.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Linkback\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:57+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-linkback\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LinkbackPlugin.php:241 msgid "" "Notify blog authors when their posts have been linked in microblog notices " "using Pingback " diff --git a/plugins/Linkback/locale/nl/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/nl/LC_MESSAGES/Linkback.po index 474970e261..3c75cd9ae7 100644 --- a/plugins/Linkback/locale/nl/LC_MESSAGES/Linkback.po +++ b/plugins/Linkback/locale/nl/LC_MESSAGES/Linkback.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Linkback\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:57+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-linkback\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LinkbackPlugin.php:241 msgid "" "Notify blog authors when their posts have been linked in microblog notices " "using Pingback " diff --git a/plugins/Linkback/locale/pt/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/pt/LC_MESSAGES/Linkback.po new file mode 100644 index 0000000000..07004772e4 --- /dev/null +++ b/plugins/Linkback/locale/pt/LC_MESSAGES/Linkback.po @@ -0,0 +1,33 @@ +# Translation of StatusNet - Linkback to Portuguese (Português) +# Exported from translatewiki.net +# +# Author: SandroHc +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Linkback\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" +"Language-Team: Portuguese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-linkback\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "" +"Notify blog authors when their posts have been linked in microblog notices " +"using Pingback " +"or Trackback protocols." +msgstr "" +"Notificar os autores do blog quando as suas postagens forem vinculadas em " +"anúncios de microblog usando os protocolos Pingback ou Trackback." diff --git a/plugins/Linkback/locale/ru/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/ru/LC_MESSAGES/Linkback.po index 81a6bbb2fc..24b52acdd0 100644 --- a/plugins/Linkback/locale/ru/LC_MESSAGES/Linkback.po +++ b/plugins/Linkback/locale/ru/LC_MESSAGES/Linkback.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Linkback\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-linkback\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: LinkbackPlugin.php:241 msgid "" "Notify blog authors when their posts have been linked in microblog notices " "using Pingback " diff --git a/plugins/Linkback/locale/tl/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/tl/LC_MESSAGES/Linkback.po index 4cac67a456..3f3f491ad8 100644 --- a/plugins/Linkback/locale/tl/LC_MESSAGES/Linkback.po +++ b/plugins/Linkback/locale/tl/LC_MESSAGES/Linkback.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Linkback\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-linkback\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LinkbackPlugin.php:241 msgid "" "Notify blog authors when their posts have been linked in microblog notices " "using Pingback " diff --git a/plugins/Linkback/locale/uk/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/uk/LC_MESSAGES/Linkback.po index 8ef42ae880..ce5e97ffea 100644 --- a/plugins/Linkback/locale/uk/LC_MESSAGES/Linkback.po +++ b/plugins/Linkback/locale/uk/LC_MESSAGES/Linkback.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Linkback\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-linkback\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: LinkbackPlugin.php:241 msgid "" "Notify blog authors when their posts have been linked in microblog notices " "using Pingback " diff --git a/plugins/Linkback/locale/zh_CN/LC_MESSAGES/Linkback.po b/plugins/Linkback/locale/zh_CN/LC_MESSAGES/Linkback.po index 64b067e680..f1c50b49af 100644 --- a/plugins/Linkback/locale/zh_CN/LC_MESSAGES/Linkback.po +++ b/plugins/Linkback/locale/zh_CN/LC_MESSAGES/Linkback.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Linkback\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:58+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:08+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-linkback\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: LinkbackPlugin.php:241 msgid "" "Notify blog authors when their posts have been linked in microblog notices " "using Pingback " diff --git a/plugins/LogFilter/locale/LogFilter.pot b/plugins/LogFilter/locale/LogFilter.pot index d794233fcf..ab314bd9c0 100644 --- a/plugins/LogFilter/locale/LogFilter.pot +++ b/plugins/LogFilter/locale/LogFilter.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/LogFilter/locale/de/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/de/LC_MESSAGES/LogFilter.po index 71200d954f..603ec63f79 100644 --- a/plugins/LogFilter/locale/de/LC_MESSAGES/LogFilter.po +++ b/plugins/LogFilter/locale/de/LC_MESSAGES/LogFilter.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LogFilter\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:08:27+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:59+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:25:35+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:17:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-logfilter\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LogFilterPlugin.php:49 msgid "Provides server-side setting to filter log output by type or keyword." msgstr "" "Stellt serverseitige Einstellungen zum Filtern der Log-Ausgabe nach Typ oder " diff --git a/plugins/LogFilter/locale/fi/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/fi/LC_MESSAGES/LogFilter.po new file mode 100644 index 0000000000..32163df5b9 --- /dev/null +++ b/plugins/LogFilter/locale/fi/LC_MESSAGES/LogFilter.po @@ -0,0 +1,27 @@ +# Translation of StatusNet - LogFilter to Finnish (Suomi) +# Exported from translatewiki.net +# +# Author: Nike +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - LogFilter\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:59+0000\n" +"Language-Team: Finnish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-06 02:17:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fi\n" +"X-Message-Group: #out-statusnet-plugin-logfilter\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Provides server-side setting to filter log output by type or keyword." +msgstr "" +"Tarjoaa palvelinasetuksen, jolla lokeja voi suodattaa tyypin tai avainsanan " +"mukaan." diff --git a/plugins/LogFilter/locale/fr/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/fr/LC_MESSAGES/LogFilter.po index 64c566e2b2..097c6135c7 100644 --- a/plugins/LogFilter/locale/fr/LC_MESSAGES/LogFilter.po +++ b/plugins/LogFilter/locale/fr/LC_MESSAGES/LogFilter.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LogFilter\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:02+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:59+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-logfilter\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: LogFilterPlugin.php:49 msgid "Provides server-side setting to filter log output by type or keyword." msgstr "" "Fournit une configuration côté serveur pour filtrer la sortie du journal " diff --git a/plugins/LogFilter/locale/he/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/he/LC_MESSAGES/LogFilter.po index 03dc0c0309..22a6644688 100644 --- a/plugins/LogFilter/locale/he/LC_MESSAGES/LogFilter.po +++ b/plugins/LogFilter/locale/he/LC_MESSAGES/LogFilter.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LogFilter\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:10+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:59+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-logfilter\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LogFilterPlugin.php:49 msgid "Provides server-side setting to filter log output by type or keyword." msgstr "אספקת הגדרות צד־שרת לסינון פלט לפי סוג או לפי מילת מפתח." diff --git a/plugins/LogFilter/locale/ia/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/ia/LC_MESSAGES/LogFilter.po index 75ed2aae37..1c33340912 100644 --- a/plugins/LogFilter/locale/ia/LC_MESSAGES/LogFilter.po +++ b/plugins/LogFilter/locale/ia/LC_MESSAGES/LogFilter.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LogFilter\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:59+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-logfilter\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LogFilterPlugin.php:49 msgid "Provides server-side setting to filter log output by type or keyword." msgstr "" "Forni un configuration al latere del servitor pro filtrar le producite " diff --git a/plugins/LogFilter/locale/mk/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/mk/LC_MESSAGES/LogFilter.po index 0c35346e9b..680c3ed653 100644 --- a/plugins/LogFilter/locale/mk/LC_MESSAGES/LogFilter.po +++ b/plugins/LogFilter/locale/mk/LC_MESSAGES/LogFilter.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LogFilter\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:59+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-logfilter\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: LogFilterPlugin.php:49 msgid "Provides server-side setting to filter log output by type or keyword." msgstr "" "Овозможува поставка кај опслужувачот за филтрирање на дневничките изводи по " diff --git a/plugins/LogFilter/locale/nl/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/nl/LC_MESSAGES/LogFilter.po index a178425004..a16bedc79c 100644 --- a/plugins/LogFilter/locale/nl/LC_MESSAGES/LogFilter.po +++ b/plugins/LogFilter/locale/nl/LC_MESSAGES/LogFilter.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LogFilter\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:59+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-logfilter\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LogFilterPlugin.php:49 msgid "Provides server-side setting to filter log output by type or keyword." msgstr "" "Biedt serverinstellingen om logboekuitvoer te filteren op type of trefwoord." diff --git a/plugins/LogFilter/locale/pt/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/pt/LC_MESSAGES/LogFilter.po index 1141c85add..883abc7f17 100644 --- a/plugins/LogFilter/locale/pt/LC_MESSAGES/LogFilter.po +++ b/plugins/LogFilter/locale/pt/LC_MESSAGES/LogFilter.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LogFilter\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:59+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-logfilter\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: LogFilterPlugin.php:49 msgid "Provides server-side setting to filter log output by type or keyword." msgstr "" "Fornece uma configuração do lado do servidor para filtrar a saída do " diff --git a/plugins/LogFilter/locale/ru/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/ru/LC_MESSAGES/LogFilter.po index f0e7b9a458..e127297b20 100644 --- a/plugins/LogFilter/locale/ru/LC_MESSAGES/LogFilter.po +++ b/plugins/LogFilter/locale/ru/LC_MESSAGES/LogFilter.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LogFilter\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:59+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-logfilter\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: LogFilterPlugin.php:49 msgid "Provides server-side setting to filter log output by type or keyword." msgstr "" "Предоставляет серверный параметр для фильтрации выходных данных журнала по " diff --git a/plugins/LogFilter/locale/uk/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/uk/LC_MESSAGES/LogFilter.po index 4613976358..644f838d38 100644 --- a/plugins/LogFilter/locale/uk/LC_MESSAGES/LogFilter.po +++ b/plugins/LogFilter/locale/uk/LC_MESSAGES/LogFilter.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LogFilter\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:59+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:03+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:17:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-logfilter\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: LogFilterPlugin.php:49 msgid "Provides server-side setting to filter log output by type or keyword." msgstr "" "Забезпечує на серверній стороні установки для фільтрації виводу журналу за " diff --git a/plugins/LogFilter/locale/zh_CN/LC_MESSAGES/LogFilter.po b/plugins/LogFilter/locale/zh_CN/LC_MESSAGES/LogFilter.po index ae15498ae9..6e34cfd2f6 100644 --- a/plugins/LogFilter/locale/zh_CN/LC_MESSAGES/LogFilter.po +++ b/plugins/LogFilter/locale/zh_CN/LC_MESSAGES/LogFilter.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - LogFilter\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-24 10:32+0000\n" -"PO-Revision-Date: 2011-02-24 10:39:29+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:48:59+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:44+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82712); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:17:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-logfilter\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: LogFilterPlugin.php:49 msgid "Provides server-side setting to filter log output by type or keyword." msgstr "提供了服务器端设置筛选日志输出的类型或关键字。" diff --git a/plugins/Mapstraction/locale/Mapstraction.pot b/plugins/Mapstraction/locale/Mapstraction.pot index 0e9048529d..1b21dc8f41 100644 --- a/plugins/Mapstraction/locale/Mapstraction.pot +++ b/plugins/Mapstraction/locale/Mapstraction.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -31,14 +31,6 @@ msgid "" "mapstraction.com/\">Mapstraction." msgstr "" -#: map.php:72 -msgid "No such user." -msgstr "" - -#: map.php:79 -msgid "User has no profile." -msgstr "" - #. TRANS: Page title. #. TRANS: %s is a user nickname. #: allmap.php:69 @@ -53,6 +45,14 @@ msgstr "" msgid "%1$s friends map, page %2$d" msgstr "" +#: map.php:72 +msgid "No such user." +msgstr "" + +#: map.php:79 +msgid "User has no profile." +msgstr "" + #: usermap.php:68 #, php-format msgid "%s map, page %d" diff --git a/plugins/Mapstraction/locale/br/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/br/LC_MESSAGES/Mapstraction.po index 99b0f7a9d2..45bbf4c6ee 100644 --- a/plugins/Mapstraction/locale/br/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/br/LC_MESSAGES/Mapstraction.po @@ -9,56 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:18+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "Kartenn" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." msgstr "" -#: map.php:72 -msgid "No such user." -msgstr "N'eus ket eus an implijer-se." - -#: map.php:79 -msgid "User has no profile." -msgstr "An implijer-mañ n'eus profil ebet dezhañ." - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "Kartenn mignoned %s" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, fuzzy, php-format msgid "%1$s friends map, page %2$d" msgstr "Kartenn mignoned %d, pajenn %d" -#: usermap.php:68 +msgid "No such user." +msgstr "N'eus ket eus an implijer-se." + +msgid "User has no profile." +msgstr "An implijer-mañ n'eus profil ebet dezhañ." + #, php-format msgid "%s map, page %d" msgstr "%s gartenn, pajenn %d" diff --git a/plugins/Mapstraction/locale/de/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/de/LC_MESSAGES/Mapstraction.po index a14b6a9826..c4bf60002b 100644 --- a/plugins/Mapstraction/locale/de/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/de/LC_MESSAGES/Mapstraction.po @@ -10,28 +10,25 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:19+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "Karte" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "in voller Größe" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." @@ -39,29 +36,24 @@ msgstr "" "Zeigt Karten mit Nachrichten von Freunden und Nutzern mit Mapstraction." -#: map.php:72 -msgid "No such user." -msgstr "Unbekannter Benutzer." - -#: map.php:79 -msgid "User has no profile." -msgstr "Benutzer hat kein Profil." - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "Karte der Freunde von %s" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, php-format msgid "%1$s friends map, page %2$d" msgstr "Karte der Freunde von %1$s, Seite %2$d" -#: usermap.php:68 +msgid "No such user." +msgstr "Unbekannter Benutzer." + +msgid "User has no profile." +msgstr "Benutzer hat kein Profil." + #, php-format msgid "%s map, page %d" msgstr "%s-Karte, Seite %d" diff --git a/plugins/Mapstraction/locale/fi/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/fi/LC_MESSAGES/Mapstraction.po index 348e53b80d..58abd5e4b7 100644 --- a/plugins/Mapstraction/locale/fi/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/fi/LC_MESSAGES/Mapstraction.po @@ -9,56 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:19+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Finnish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "Kartta" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "Täysi koko" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." msgstr "" -#: map.php:72 -msgid "No such user." -msgstr "Käyttäjää ei ole." - -#: map.php:79 -msgid "User has no profile." -msgstr "Käyttäjällä ei ole profiilia." - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "Kartta käyttäjän %s ystävistä" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, fuzzy, php-format msgid "%1$s friends map, page %2$d" msgstr "Kartta käyttäjän %s ystävistä" -#: usermap.php:68 +msgid "No such user." +msgstr "Käyttäjää ei ole." + +msgid "User has no profile." +msgstr "Käyttäjällä ei ole profiilia." + #, php-format msgid "%s map, page %d" msgstr "" diff --git a/plugins/Mapstraction/locale/fr/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/fr/LC_MESSAGES/Mapstraction.po index 3376665f7f..9717377979 100644 --- a/plugins/Mapstraction/locale/fr/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/fr/LC_MESSAGES/Mapstraction.po @@ -10,28 +10,25 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:19+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "Cartographie" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "Pleine taille" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." @@ -39,29 +36,24 @@ msgstr "" "Affiche des cartes localisant les avis des utilisateurs et amis avec Mapstraction." -#: map.php:72 -msgid "No such user." -msgstr "Utilisateur inexistant." - -#: map.php:79 -msgid "User has no profile." -msgstr "Aucun profil ne correspond à cet utilisateur." - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "Carte des amis de %s" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, php-format msgid "%1$s friends map, page %2$d" msgstr "Carte des amis de %1$s, page %2$d" -#: usermap.php:68 +msgid "No such user." +msgstr "Utilisateur inexistant." + +msgid "User has no profile." +msgstr "Aucun profil ne correspond à cet utilisateur." + #, php-format msgid "%s map, page %d" msgstr "Carte %s, page %d" diff --git a/plugins/Mapstraction/locale/fur/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/fur/LC_MESSAGES/Mapstraction.po index 41f14b0f18..e1f7494289 100644 --- a/plugins/Mapstraction/locale/fur/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/fur/LC_MESSAGES/Mapstraction.po @@ -9,28 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:11+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Friulian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-03 00:37:38+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fur\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "Mape" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "Dimension plene" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." @@ -38,29 +35,24 @@ msgstr "" "Mostre lis mapis dai avîs dai utents e dai amis cun Mapstraction." -#: map.php:72 -msgid "No such user." -msgstr "Utent no cjatât." - -#: map.php:79 -msgid "User has no profile." -msgstr "L'utent nol à un profîl." - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "Mape dai amîs di %s" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, php-format msgid "%1$s friends map, page %2$d" msgstr "Mape dai amîs di %1$s, pagjine %2$d" -#: usermap.php:68 +msgid "No such user." +msgstr "Utent no cjatât." + +msgid "User has no profile." +msgstr "L'utent nol à un profîl." + #, php-format msgid "%s map, page %d" msgstr "Mape di %s, pagjine %d" diff --git a/plugins/Mapstraction/locale/gl/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/gl/LC_MESSAGES/Mapstraction.po index 5bae4dff6a..3a363a14cb 100644 --- a/plugins/Mapstraction/locale/gl/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/gl/LC_MESSAGES/Mapstraction.po @@ -9,56 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:19+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Galician \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: gl\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "Mapa" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "Tamaño completo" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." msgstr "" -#: map.php:72 -msgid "No such user." -msgstr "Non existe tal usuario." - -#: map.php:79 -msgid "User has no profile." -msgstr "O usuario non ten perfil." - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, php-format msgid "%1$s friends map, page %2$d" msgstr "" -#: usermap.php:68 +msgid "No such user." +msgstr "Non existe tal usuario." + +msgid "User has no profile." +msgstr "O usuario non ten perfil." + #, php-format msgid "%s map, page %d" msgstr "" diff --git a/plugins/Mapstraction/locale/ia/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/ia/LC_MESSAGES/Mapstraction.po index 28d978163f..4d4ce2f8b3 100644 --- a/plugins/Mapstraction/locale/ia/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/ia/LC_MESSAGES/Mapstraction.po @@ -9,28 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:20+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "Mappa" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "Dimension complete" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." @@ -38,29 +35,24 @@ msgstr "" "Monstra mappas de notas de usatores e amicos con Mapstraction." -#: map.php:72 -msgid "No such user." -msgstr "Iste usator non existe." - -#: map.php:79 -msgid "User has no profile." -msgstr "Le usator non ha un profilo." - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "Mappa del amicos de %s" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, php-format msgid "%1$s friends map, page %2$d" msgstr "Mappa de amicos de %1$s, pagina %2$d" -#: usermap.php:68 +msgid "No such user." +msgstr "Iste usator non existe." + +msgid "User has no profile." +msgstr "Le usator non ha un profilo." + #, php-format msgid "%s map, page %d" msgstr "Mappa de %s, pagina %d" diff --git a/plugins/Mapstraction/locale/mk/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/mk/LC_MESSAGES/Mapstraction.po index afa0cf8cac..c2f3da9da7 100644 --- a/plugins/Mapstraction/locale/mk/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/mk/LC_MESSAGES/Mapstraction.po @@ -9,28 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:20+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "Карта" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "Полна големина" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." @@ -38,29 +35,24 @@ msgstr "" "Прикажувај карти со забелешките на корисниците и пријателите со Mapstraction" -#: map.php:72 -msgid "No such user." -msgstr "Нема таков корисник." - -#: map.php:79 -msgid "User has no profile." -msgstr "Корисникот нема профил." - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "Карта на пријатели на %s" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, php-format msgid "%1$s friends map, page %2$d" msgstr "Карта на пријатели на %1$s, страница %2$d" -#: usermap.php:68 +msgid "No such user." +msgstr "Нема таков корисник." + +msgid "User has no profile." +msgstr "Корисникот нема профил." + #, php-format msgid "%s map, page %d" msgstr "Карта на %s, стр. %d" diff --git a/plugins/Mapstraction/locale/nb/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/nb/LC_MESSAGES/Mapstraction.po index 8aa1b702ac..61d246aabb 100644 --- a/plugins/Mapstraction/locale/nb/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/nb/LC_MESSAGES/Mapstraction.po @@ -9,28 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:20+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "Kart" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "Full størrelse" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." @@ -38,29 +35,24 @@ msgstr "" "Vis kart over brukeres og venners notiser med Mapstraction." -#: map.php:72 -msgid "No such user." -msgstr "Ingen slik bruker." - -#: map.php:79 -msgid "User has no profile." -msgstr "Bruker har ingen profil." - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "%s vennekart" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, php-format msgid "%1$s friends map, page %2$d" msgstr "%1$s vennekart, side %2$d" -#: usermap.php:68 +msgid "No such user." +msgstr "Ingen slik bruker." + +msgid "User has no profile." +msgstr "Bruker har ingen profil." + #, php-format msgid "%s map, page %d" msgstr "%s kart, side %d" diff --git a/plugins/Mapstraction/locale/nl/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/nl/LC_MESSAGES/Mapstraction.po index 531ce086d7..738f77bd0c 100644 --- a/plugins/Mapstraction/locale/nl/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/nl/LC_MESSAGES/Mapstraction.po @@ -10,28 +10,25 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:20+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "Kaart" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "Groter" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." @@ -39,29 +36,24 @@ msgstr "" "Geeft een kaart met de mededelingen van de gebruiker en vrienden weer met " "behulp van Mapstraction." -#: map.php:72 -msgid "No such user." -msgstr "Deze gebruiker bestaat niet" - -#: map.php:79 -msgid "User has no profile." -msgstr "Deze gebruiker heeft geen profiel." - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "Kaart van %s en vrienden" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, php-format msgid "%1$s friends map, page %2$d" msgstr "Kaart van vrienden van %1$s, pagina %2$d" -#: usermap.php:68 +msgid "No such user." +msgstr "Deze gebruiker bestaat niet" + +msgid "User has no profile." +msgstr "Deze gebruiker heeft geen profiel." + #, php-format msgid "%s map, page %d" msgstr "Kaart van %s, pagina %d" diff --git a/plugins/Mapstraction/locale/ru/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/ru/LC_MESSAGES/Mapstraction.po index 237778dd43..62def638ac 100644 --- a/plugins/Mapstraction/locale/ru/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/ru/LC_MESSAGES/Mapstraction.po @@ -9,57 +9,49 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:20+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "Карта" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "Полный размер" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." msgstr "" -#: map.php:72 -msgid "No such user." -msgstr "Нет такого пользователя." - -#: map.php:79 -msgid "User has no profile." -msgstr "У пользователя нет профиля." - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "Карта друзей: %s" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, fuzzy, php-format msgid "%1$s friends map, page %2$d" msgstr "Карта друзей: %s" -#: usermap.php:68 +msgid "No such user." +msgstr "Нет такого пользователя." + +msgid "User has no profile." +msgstr "У пользователя нет профиля." + #, php-format msgid "%s map, page %d" msgstr "" diff --git a/plugins/Mapstraction/locale/ta/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/ta/LC_MESSAGES/Mapstraction.po index 8845678733..16c1875d4b 100644 --- a/plugins/Mapstraction/locale/ta/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/ta/LC_MESSAGES/Mapstraction.po @@ -9,56 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:20+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Tamil \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ta\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "வரைபடம்" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "முழு அளவு" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." msgstr "" -#: map.php:72 -msgid "No such user." -msgstr "அப்படியொரு பயனர் இல்லை." - -#: map.php:79 -msgid "User has no profile." -msgstr "" - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, php-format msgid "%1$s friends map, page %2$d" msgstr "" -#: usermap.php:68 +msgid "No such user." +msgstr "அப்படியொரு பயனர் இல்லை." + +msgid "User has no profile." +msgstr "" + #, php-format msgid "%s map, page %d" msgstr "" diff --git a/plugins/Mapstraction/locale/te/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/te/LC_MESSAGES/Mapstraction.po index c5e7433f4f..9c5bb50ada 100644 --- a/plugins/Mapstraction/locale/te/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/te/LC_MESSAGES/Mapstraction.po @@ -9,56 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 23:30+0000\n" -"PO-Revision-Date: 2011-02-02 23:37:12+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Telugu \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:25:36+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81409); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "పటం" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "పూర్తి పరిమాణం" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." msgstr "" -#: map.php:72 -msgid "No such user." -msgstr "" - -#: map.php:79 -msgid "User has no profile." -msgstr "" - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "%s మిత్రుల పటం" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, php-format msgid "%1$s friends map, page %2$d" msgstr "" -#: usermap.php:68 +msgid "No such user." +msgstr "" + +msgid "User has no profile." +msgstr "" + #, php-format msgid "%s map, page %d" msgstr "%s పటం, పుట %d" diff --git a/plugins/Mapstraction/locale/tl/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/tl/LC_MESSAGES/Mapstraction.po index bfa5204349..fa0452da8d 100644 --- a/plugins/Mapstraction/locale/tl/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/tl/LC_MESSAGES/Mapstraction.po @@ -9,28 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:20+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "Mapa" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "Buong sukat" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." @@ -38,29 +35,24 @@ msgstr "" "Nagpapakita ng mga mapa ng mga pabatid ng mga tagagamit at ng mga kaibigan " "sa pamamagitan ng Mapstraction." -#: map.php:72 -msgid "No such user." -msgstr "Walang ganyang tagagamit." - -#: map.php:79 -msgid "User has no profile." -msgstr "Walang balangkas ang tagagamit." - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "%s na mapa ng mga kaibigan" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, php-format msgid "%1$s friends map, page %2$d" msgstr " %1$s mapa ng mga kaibigan, pahina %2$d" -#: usermap.php:68 +msgid "No such user." +msgstr "Walang ganyang tagagamit." + +msgid "User has no profile." +msgstr "Walang balangkas ang tagagamit." + #, php-format msgid "%s map, page %d" msgstr "%s na mapa, pahina %d" diff --git a/plugins/Mapstraction/locale/uk/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/uk/LC_MESSAGES/Mapstraction.po index d22236a9dc..8750b37529 100644 --- a/plugins/Mapstraction/locale/uk/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/uk/LC_MESSAGES/Mapstraction.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:20+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "Мапа" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "Повний розмір" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." @@ -39,29 +36,24 @@ msgstr "" "Показ мапи дописів користувачів і друзів за допомогою Mapstraction." -#: map.php:72 -msgid "No such user." -msgstr "Такого користувача немає." - -#: map.php:79 -msgid "User has no profile." -msgstr "Користувач не має профілю." - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "Мапа друзів %s." #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, php-format msgid "%1$s friends map, page %2$d" msgstr "Мапа друзів %1$s, сторінка %2$d" -#: usermap.php:68 +msgid "No such user." +msgstr "Такого користувача немає." + +msgid "User has no profile." +msgstr "Користувач не має профілю." + #, php-format msgid "%s map, page %d" msgstr "Мапа друзів %s, сторінка %d" diff --git a/plugins/Mapstraction/locale/zh_CN/LC_MESSAGES/Mapstraction.po b/plugins/Mapstraction/locale/zh_CN/LC_MESSAGES/Mapstraction.po index 074fa10366..621cc89298 100644 --- a/plugins/Mapstraction/locale/zh_CN/LC_MESSAGES/Mapstraction.po +++ b/plugins/Mapstraction/locale/zh_CN/LC_MESSAGES/Mapstraction.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Mapstraction\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:20+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:00+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:29+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-mapstraction\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: MapstractionPlugin.php:187 msgid "Map" msgstr "地图" #. TRANS: Clickable item to allow opening the map in full size. -#: MapstractionPlugin.php:199 msgid "Full size" msgstr "完整尺寸" -#: MapstractionPlugin.php:211 msgid "" "Show maps of users' and friends' notices with Mapstraction." @@ -39,29 +36,24 @@ msgstr "" "使用 Mapstraction 显示用户和好友" "的消息地图。" -#: map.php:72 -msgid "No such user." -msgstr "没有这个用户。" - -#: map.php:79 -msgid "User has no profile." -msgstr "用户没有个人信息。" - #. TRANS: Page title. #. TRANS: %s is a user nickname. -#: allmap.php:69 #, php-format msgid "%s friends map" msgstr "%s 好友地图" #. TRANS: Page title. #. TRANS: %1$s is a user nickname, %2$d is a page number. -#: allmap.php:75 #, php-format msgid "%1$s friends map, page %2$d" msgstr "%1$s 好友地图,第 %2$d 页。" -#: usermap.php:68 +msgid "No such user." +msgstr "没有这个用户。" + +msgid "User has no profile." +msgstr "用户没有个人信息。" + #, php-format msgid "%s map, page %d" msgstr "%s 地图,第 %d 页" diff --git a/plugins/Memcache/locale/Memcache.pot b/plugins/Memcache/locale/Memcache.pot index e611af98b0..9011ec810b 100644 --- a/plugins/Memcache/locale/Memcache.pot +++ b/plugins/Memcache/locale/Memcache.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Memcache/locale/de/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/de/LC_MESSAGES/Memcache.po index acec4b3d4b..aee2c68a54 100644 --- a/plugins/Memcache/locale/de/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/de/LC_MESSAGES/Memcache.po @@ -10,19 +10,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:20+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcache/locale/es/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/es/LC_MESSAGES/Memcache.po index cc3ab1f5b6..4bec479c01 100644 --- a/plugins/Memcache/locale/es/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/es/LC_MESSAGES/Memcache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcache/locale/fi/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/fi/LC_MESSAGES/Memcache.po new file mode 100644 index 0000000000..9649406c9a --- /dev/null +++ b/plugins/Memcache/locale/fi/LC_MESSAGES/Memcache.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - Memcache to Finnish (Suomi) +# Exported from translatewiki.net +# +# Author: Nike +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcache\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" +"Language-Team: Finnish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fi\n" +"X-Message-Group: #out-statusnet-plugin-memcache\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Käytä memcached-ohjelmaa " +"kyselytulosten välimuistina." diff --git a/plugins/Memcache/locale/fr/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/fr/LC_MESSAGES/Memcache.po index 67ce5b77dd..75bc732263 100644 --- a/plugins/Memcache/locale/fr/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/fr/LC_MESSAGES/Memcache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcache/locale/he/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/he/LC_MESSAGES/Memcache.po index 579f2ba469..26b08d7f96 100644 --- a/plugins/Memcache/locale/he/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/he/LC_MESSAGES/Memcache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcache/locale/ia/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/ia/LC_MESSAGES/Memcache.po index 035ae7e454..58ae5f3f36 100644 --- a/plugins/Memcache/locale/ia/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/ia/LC_MESSAGES/Memcache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcache/locale/mk/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/mk/LC_MESSAGES/Memcache.po index b41851eddb..f5094b9b1c 100644 --- a/plugins/Memcache/locale/mk/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/mk/LC_MESSAGES/Memcache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcache/locale/nb/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/nb/LC_MESSAGES/Memcache.po index 21e815b2dd..bd98472193 100644 --- a/plugins/Memcache/locale/nb/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/nb/LC_MESSAGES/Memcache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcache/locale/nl/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/nl/LC_MESSAGES/Memcache.po index b5868c7007..cde053fd03 100644 --- a/plugins/Memcache/locale/nl/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/nl/LC_MESSAGES/Memcache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcache/locale/pt/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/pt/LC_MESSAGES/Memcache.po index fb378637b8..c3ee6988ca 100644 --- a/plugins/Memcache/locale/pt/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/pt/LC_MESSAGES/Memcache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcache/locale/pt_BR/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/pt_BR/LC_MESSAGES/Memcache.po index 8a74bc3c21..f5c383b53b 100644 --- a/plugins/Memcache/locale/pt_BR/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/pt_BR/LC_MESSAGES/Memcache.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: Brazilian Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcache/locale/ru/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/ru/LC_MESSAGES/Memcache.po index e53619bd59..037d7594eb 100644 --- a/plugins/Memcache/locale/ru/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/ru/LC_MESSAGES/Memcache.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcache/locale/tl/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/tl/LC_MESSAGES/Memcache.po index 5b06c9cd9c..4d38b2493a 100644 --- a/plugins/Memcache/locale/tl/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/tl/LC_MESSAGES/Memcache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcache/locale/uk/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/uk/LC_MESSAGES/Memcache.po index 23b98248ad..f3ebf3ce99 100644 --- a/plugins/Memcache/locale/uk/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/uk/LC_MESSAGES/Memcache.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcache/locale/zh_CN/LC_MESSAGES/Memcache.po b/plugins/Memcache/locale/zh_CN/LC_MESSAGES/Memcache.po index cedcc60b3a..42220cc847 100644 --- a/plugins/Memcache/locale/zh_CN/LC_MESSAGES/Memcache.po +++ b/plugins/Memcache/locale/zh_CN/LC_MESSAGES/Memcache.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:22+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:01+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-memcache\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: MemcachePlugin.php:246 msgid "" "Use Memcached to cache query results." msgstr "使用 Memcached 来缓存查询结果。" diff --git a/plugins/Memcached/locale/Memcached.pot b/plugins/Memcached/locale/Memcached.pot index c72698a316..b62f8c88e4 100644 --- a/plugins/Memcached/locale/Memcached.pot +++ b/plugins/Memcached/locale/Memcached.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Memcached/locale/de/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/de/LC_MESSAGES/Memcached.po index ad70afdc07..b8b59226ee 100644 --- a/plugins/Memcached/locale/de/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/de/LC_MESSAGES/Memcached.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:22+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/es/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/es/LC_MESSAGES/Memcached.po index 8f0e5d816a..c4c1ee5109 100644 --- a/plugins/Memcached/locale/es/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/es/LC_MESSAGES/Memcached.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:22+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/fi/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/fi/LC_MESSAGES/Memcached.po new file mode 100644 index 0000000000..62af90d1dd --- /dev/null +++ b/plugins/Memcached/locale/fi/LC_MESSAGES/Memcached.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - Memcached to Finnish (Suomi) +# Exported from translatewiki.net +# +# Author: Nike +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Memcached\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" +"Language-Team: Finnish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fi\n" +"X-Message-Group: #out-statusnet-plugin-memcached\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "" +"Use Memcached to cache query results." +msgstr "" +"Käytä memcached-ohjelmaa " +"kyselytulosten välimuistina." diff --git a/plugins/Memcached/locale/fr/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/fr/LC_MESSAGES/Memcached.po index c1814b2b96..98cd6675ca 100644 --- a/plugins/Memcached/locale/fr/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/fr/LC_MESSAGES/Memcached.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:22+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/he/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/he/LC_MESSAGES/Memcached.po index c40ec233e0..a80c2d3b32 100644 --- a/plugins/Memcached/locale/he/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/he/LC_MESSAGES/Memcached.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:22+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/ia/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/ia/LC_MESSAGES/Memcached.po index c8fff4d8cb..90e1b9d35f 100644 --- a/plugins/Memcached/locale/ia/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/ia/LC_MESSAGES/Memcached.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:22+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/id/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/id/LC_MESSAGES/Memcached.po index bd2627a6ba..aa204f3c57 100644 --- a/plugins/Memcached/locale/id/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/id/LC_MESSAGES/Memcached.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:22+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/ja/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/ja/LC_MESSAGES/Memcached.po index f6f8182f89..fd68100ca3 100644 --- a/plugins/Memcached/locale/ja/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/ja/LC_MESSAGES/Memcached.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:22+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: Japanese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/mk/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/mk/LC_MESSAGES/Memcached.po index b4d4227ebc..a2c0ac58fb 100644 --- a/plugins/Memcached/locale/mk/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/mk/LC_MESSAGES/Memcached.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:22+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/nb/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/nb/LC_MESSAGES/Memcached.po index e900bc4d3a..ab26cbca14 100644 --- a/plugins/Memcached/locale/nb/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/nb/LC_MESSAGES/Memcached.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:23+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/nl/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/nl/LC_MESSAGES/Memcached.po index e8074ad3df..92911e9a66 100644 --- a/plugins/Memcached/locale/nl/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/nl/LC_MESSAGES/Memcached.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:22+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/pt/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/pt/LC_MESSAGES/Memcached.po index f84ad7012d..be8cad385a 100644 --- a/plugins/Memcached/locale/pt/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/pt/LC_MESSAGES/Memcached.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:23+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/ru/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/ru/LC_MESSAGES/Memcached.po index 96b856badf..a05080ecdd 100644 --- a/plugins/Memcached/locale/ru/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/ru/LC_MESSAGES/Memcached.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:23+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/tl/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/tl/LC_MESSAGES/Memcached.po index 7593badbf7..3f1681aacf 100644 --- a/plugins/Memcached/locale/tl/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/tl/LC_MESSAGES/Memcached.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:23+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/uk/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/uk/LC_MESSAGES/Memcached.po index 0602f55dda..1ce37401c7 100644 --- a/plugins/Memcached/locale/uk/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/uk/LC_MESSAGES/Memcached.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:23+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "" diff --git a/plugins/Memcached/locale/zh_CN/LC_MESSAGES/Memcached.po b/plugins/Memcached/locale/zh_CN/LC_MESSAGES/Memcached.po index 2abc094200..ea41d6eb1c 100644 --- a/plugins/Memcached/locale/zh_CN/LC_MESSAGES/Memcached.po +++ b/plugins/Memcached/locale/zh_CN/LC_MESSAGES/Memcached.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Memcached\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:23+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:02+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:30+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-memcached\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: MemcachedPlugin.php:218 msgid "" "Use Memcached to cache query results." msgstr "使用 Memcached 来缓存查询结果。" diff --git a/plugins/Meteor/locale/Meteor.pot b/plugins/Meteor/locale/Meteor.pot index 7a2db76ab0..c0d6acff3f 100644 --- a/plugins/Meteor/locale/Meteor.pot +++ b/plugins/Meteor/locale/Meteor.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Meteor/locale/de/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/de/LC_MESSAGES/Meteor.po index d82006d399..69f4051498 100644 --- a/plugins/Meteor/locale/de/LC_MESSAGES/Meteor.po +++ b/plugins/Meteor/locale/de/LC_MESSAGES/Meteor.po @@ -9,30 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Meteor\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:23+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:03+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-meteor\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Exception. %1$s is the control server, %2$s is the control port. -#: MeteorPlugin.php:115 #, php-format msgid "Couldn't connect to %1$s on %2$s." msgstr "Konnte nicht mit %1$s auf %2$s verbinden." #. TRANS: Exception. %s is the Meteor message that could not be added. -#: MeteorPlugin.php:128 #, php-format msgid "Error adding meteor message \"%s\"" msgstr "Fehler beim Hinzufügen der Meteor-Nachricht „%s“" -#: MeteorPlugin.php:158 msgid "Plugin to do \"real time\" updates using Comet/Bayeux." msgstr "Plugin für Echtzeit-Aktualisierungen mit Comet/Bayeux." diff --git a/plugins/Meteor/locale/fr/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/fr/LC_MESSAGES/Meteor.po index c5e2754c65..df2cd36ce0 100644 --- a/plugins/Meteor/locale/fr/LC_MESSAGES/Meteor.po +++ b/plugins/Meteor/locale/fr/LC_MESSAGES/Meteor.po @@ -9,31 +9,28 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Meteor\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:23+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:03+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-meteor\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANS: Exception. %1$s is the control server, %2$s is the control port. -#: MeteorPlugin.php:115 #, php-format msgid "Couldn't connect to %1$s on %2$s." msgstr "Impossible de se connecter à %1$s sur le port %2$s." #. TRANS: Exception. %s is the Meteor message that could not be added. -#: MeteorPlugin.php:128 #, php-format msgid "Error adding meteor message \"%s\"" msgstr "Erreur lors de l’ajout d'un message du message meteor « %s »" -#: MeteorPlugin.php:158 msgid "Plugin to do \"real time\" updates using Comet/Bayeux." msgstr "" "Extension pour réaliser des mises à jour « en temps réel » en utilisant Comet/" diff --git a/plugins/Meteor/locale/ia/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/ia/LC_MESSAGES/Meteor.po index 80423e2f5f..3677e49ed7 100644 --- a/plugins/Meteor/locale/ia/LC_MESSAGES/Meteor.po +++ b/plugins/Meteor/locale/ia/LC_MESSAGES/Meteor.po @@ -9,30 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Meteor\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:23+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:03+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-meteor\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Exception. %1$s is the control server, %2$s is the control port. -#: MeteorPlugin.php:115 #, php-format msgid "Couldn't connect to %1$s on %2$s." msgstr "Non poteva connecter a %1$s sur %2$s." #. TRANS: Exception. %s is the Meteor message that could not be added. -#: MeteorPlugin.php:128 #, php-format msgid "Error adding meteor message \"%s\"" msgstr "Error durante le addition del message Meteor \"%s\"" -#: MeteorPlugin.php:158 msgid "Plugin to do \"real time\" updates using Comet/Bayeux." msgstr "Plug-in pro facer actualisationes \"in directo\" usante Comet/Bayeux." diff --git a/plugins/Meteor/locale/id/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/id/LC_MESSAGES/Meteor.po index ce6b355405..69b00fc388 100644 --- a/plugins/Meteor/locale/id/LC_MESSAGES/Meteor.po +++ b/plugins/Meteor/locale/id/LC_MESSAGES/Meteor.po @@ -9,30 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Meteor\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:23+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:03+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-meteor\n" "Plural-Forms: nplurals=1; plural=0;\n" #. TRANS: Exception. %1$s is the control server, %2$s is the control port. -#: MeteorPlugin.php:115 #, php-format msgid "Couldn't connect to %1$s on %2$s." msgstr "Tidak dapat terhubung ke %1$s di %2$s." #. TRANS: Exception. %s is the Meteor message that could not be added. -#: MeteorPlugin.php:128 #, php-format msgid "Error adding meteor message \"%s\"" msgstr "Kesalahan menambahkan pesan meteor \"%s\"" -#: MeteorPlugin.php:158 msgid "Plugin to do \"real time\" updates using Comet/Bayeux." msgstr "Pengaya untuk membuat pemutakhiran langsung menggunakan Comet/Bayeux." diff --git a/plugins/Meteor/locale/mk/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/mk/LC_MESSAGES/Meteor.po index 95975f55da..cb486e5354 100644 --- a/plugins/Meteor/locale/mk/LC_MESSAGES/Meteor.po +++ b/plugins/Meteor/locale/mk/LC_MESSAGES/Meteor.po @@ -9,30 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Meteor\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:23+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:03+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-meteor\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" #. TRANS: Exception. %1$s is the control server, %2$s is the control port. -#: MeteorPlugin.php:115 #, php-format msgid "Couldn't connect to %1$s on %2$s." msgstr "Не можев да се поврзам со %1$s на %2$s." #. TRANS: Exception. %s is the Meteor message that could not be added. -#: MeteorPlugin.php:128 #, php-format msgid "Error adding meteor message \"%s\"" msgstr "Грешка при додавање на Meteor-овата порака „%s“" -#: MeteorPlugin.php:158 msgid "Plugin to do \"real time\" updates using Comet/Bayeux." msgstr "Приклучок за вршење на поднови „во живо“ со Comet/Bayeux." diff --git a/plugins/Meteor/locale/nb/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/nb/LC_MESSAGES/Meteor.po index 16a0d02755..0b87de8e02 100644 --- a/plugins/Meteor/locale/nb/LC_MESSAGES/Meteor.po +++ b/plugins/Meteor/locale/nb/LC_MESSAGES/Meteor.po @@ -9,30 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Meteor\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:23+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:03+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-meteor\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Exception. %1$s is the control server, %2$s is the control port. -#: MeteorPlugin.php:115 #, php-format msgid "Couldn't connect to %1$s on %2$s." msgstr "Kunne ikke koble til %1$s på %2$s." #. TRANS: Exception. %s is the Meteor message that could not be added. -#: MeteorPlugin.php:128 #, php-format msgid "Error adding meteor message \"%s\"" msgstr "Mislyktes å legge til meteormelding «%s»" -#: MeteorPlugin.php:158 msgid "Plugin to do \"real time\" updates using Comet/Bayeux." msgstr "Utvidelse for å gjøre «sanntids»-oppdateringer med Comet/Bayeux." diff --git a/plugins/Meteor/locale/nl/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/nl/LC_MESSAGES/Meteor.po index c9edc086a5..0915a52a01 100644 --- a/plugins/Meteor/locale/nl/LC_MESSAGES/Meteor.po +++ b/plugins/Meteor/locale/nl/LC_MESSAGES/Meteor.po @@ -9,30 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Meteor\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:23+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:03+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-meteor\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Exception. %1$s is the control server, %2$s is the control port. -#: MeteorPlugin.php:115 #, php-format msgid "Couldn't connect to %1$s on %2$s." msgstr "Het was niet mogelijk te verbinden met %1$s op %2$s." #. TRANS: Exception. %s is the Meteor message that could not be added. -#: MeteorPlugin.php:128 #, php-format msgid "Error adding meteor message \"%s\"" msgstr "Fout bij het toevoegen van meteorbericht \"%s\"" -#: MeteorPlugin.php:158 msgid "Plugin to do \"real time\" updates using Comet/Bayeux." msgstr "Plug-in voor het maken van \"real time\" updates via Comet/Bayeux." diff --git a/plugins/Meteor/locale/tl/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/tl/LC_MESSAGES/Meteor.po index db23c208ef..8951b5b83a 100644 --- a/plugins/Meteor/locale/tl/LC_MESSAGES/Meteor.po +++ b/plugins/Meteor/locale/tl/LC_MESSAGES/Meteor.po @@ -9,31 +9,28 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Meteor\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:03+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-meteor\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Exception. %1$s is the control server, %2$s is the control port. -#: MeteorPlugin.php:115 #, php-format msgid "Couldn't connect to %1$s on %2$s." msgstr "Hindi makaugnay sa %1$s sa %2$s." #. TRANS: Exception. %s is the Meteor message that could not be added. -#: MeteorPlugin.php:128 #, php-format msgid "Error adding meteor message \"%s\"" msgstr "Kamalian sa pagdaragdag ng mensahe ng meteor na \"%s\"" -#: MeteorPlugin.php:158 msgid "Plugin to do \"real time\" updates using Comet/Bayeux." msgstr "" "Pamasak upang makagawa ng mga pagsasapanahong nasa \"tunay na panahon\" na " diff --git a/plugins/Meteor/locale/uk/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/uk/LC_MESSAGES/Meteor.po index 56fc32503c..138884d837 100644 --- a/plugins/Meteor/locale/uk/LC_MESSAGES/Meteor.po +++ b/plugins/Meteor/locale/uk/LC_MESSAGES/Meteor.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Meteor\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:03+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-meteor\n" @@ -23,18 +23,15 @@ msgstr "" "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" #. TRANS: Exception. %1$s is the control server, %2$s is the control port. -#: MeteorPlugin.php:115 #, php-format msgid "Couldn't connect to %1$s on %2$s." msgstr "Не вдається підключитися до %1$s на %2$s." #. TRANS: Exception. %s is the Meteor message that could not be added. -#: MeteorPlugin.php:128 #, php-format msgid "Error adding meteor message \"%s\"" msgstr "Помилка при додаванні швидкого повідомлення «%s»" -#: MeteorPlugin.php:158 msgid "Plugin to do \"real time\" updates using Comet/Bayeux." msgstr "" "Додаток для оновлення стрічки повідомлень у «реальному часі» використовуючи " diff --git a/plugins/Meteor/locale/zh_CN/LC_MESSAGES/Meteor.po b/plugins/Meteor/locale/zh_CN/LC_MESSAGES/Meteor.po index 0636a3e8f7..836d23318c 100644 --- a/plugins/Meteor/locale/zh_CN/LC_MESSAGES/Meteor.po +++ b/plugins/Meteor/locale/zh_CN/LC_MESSAGES/Meteor.po @@ -9,31 +9,28 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Meteor\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:03+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-meteor\n" "Plural-Forms: nplurals=1; plural=0;\n" #. TRANS: Exception. %1$s is the control server, %2$s is the control port. -#: MeteorPlugin.php:115 #, php-format msgid "Couldn't connect to %1$s on %2$s." msgstr "无法连在 %2$s 端口连接到 %1$s。" #. TRANS: Exception. %s is the Meteor message that could not be added. -#: MeteorPlugin.php:128 #, php-format msgid "Error adding meteor message \"%s\"" msgstr "添加 meteor 消息“%s”出错。" -#: MeteorPlugin.php:158 msgid "Plugin to do \"real time\" updates using Comet/Bayeux." msgstr "通过 Comet/Bayeux 实现“实时更新”的插件。" diff --git a/plugins/Minify/locale/Minify.pot b/plugins/Minify/locale/Minify.pot index 5c1b704a83..9c961b9417 100644 --- a/plugins/Minify/locale/Minify.pot +++ b/plugins/Minify/locale/Minify.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,6 +16,12 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +#: MinifyPlugin.php:179 +msgid "" +"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " +"whitespace and comments." +msgstr "" + #: minify.php:49 msgid "The parameter \"f\" is not a valid path." msgstr "" @@ -27,9 +33,3 @@ msgstr "" #: minify.php:111 msgid "File type not supported." msgstr "" - -#: MinifyPlugin.php:179 -msgid "" -"The Minify plugin minifies StatusNet's CSS and JavaScript, removing " -"whitespace and comments." -msgstr "" diff --git a/plugins/Minify/locale/de/LC_MESSAGES/Minify.po b/plugins/Minify/locale/de/LC_MESSAGES/Minify.po index aa604b1662..3b376bcb06 100644 --- a/plugins/Minify/locale/de/LC_MESSAGES/Minify.po +++ b/plugins/Minify/locale/de/LC_MESSAGES/Minify.po @@ -9,34 +9,30 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Minify\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:04+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-minify\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: minify.php:49 -msgid "The parameter \"f\" is not a valid path." -msgstr "Der Parameter „f“ ist keine gültige Pfadangabe." - -#: minify.php:53 -msgid "The parameter \"f\" is required but missing." -msgstr "Der Parameter „f“ ist erfordert, fehlt jedoch." - -#: minify.php:111 -msgid "File type not supported." -msgstr "Dateityp nicht unterstützt." - -#: MinifyPlugin.php:179 msgid "" "The Minify plugin minifies StatusNet's CSS and JavaScript, removing " "whitespace and comments." msgstr "" "Das Minify-Plugin minimiert das CSS und JavaScript von StatusNet durch " "Entfernen von Leerzeichen und Kommentaren." + +msgid "The parameter \"f\" is not a valid path." +msgstr "Der Parameter „f“ ist keine gültige Pfadangabe." + +msgid "The parameter \"f\" is required but missing." +msgstr "Der Parameter „f“ ist erfordert, fehlt jedoch." + +msgid "File type not supported." +msgstr "Dateityp nicht unterstützt." diff --git a/plugins/Minify/locale/fr/LC_MESSAGES/Minify.po b/plugins/Minify/locale/fr/LC_MESSAGES/Minify.po index c3b03baa66..9d1a119fad 100644 --- a/plugins/Minify/locale/fr/LC_MESSAGES/Minify.po +++ b/plugins/Minify/locale/fr/LC_MESSAGES/Minify.po @@ -9,34 +9,30 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Minify\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:04+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-minify\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: minify.php:49 -msgid "The parameter \"f\" is not a valid path." -msgstr "Le paramètre « f » ne contient pas un chemin valide." - -#: minify.php:53 -msgid "The parameter \"f\" is required but missing." -msgstr "Le paramètre « f » est nécessaire mais absent." - -#: minify.php:111 -msgid "File type not supported." -msgstr "Type de fichier non pris en charge." - -#: MinifyPlugin.php:179 msgid "" "The Minify plugin minifies StatusNet's CSS and JavaScript, removing " "whitespace and comments." msgstr "" "Le greffon Minify minimise vos CSS et Javascript, en supprimant les espaces " "et les commentaires." + +msgid "The parameter \"f\" is not a valid path." +msgstr "Le paramètre « f » ne contient pas un chemin valide." + +msgid "The parameter \"f\" is required but missing." +msgstr "Le paramètre « f » est nécessaire mais absent." + +msgid "File type not supported." +msgstr "Type de fichier non pris en charge." diff --git a/plugins/Minify/locale/ia/LC_MESSAGES/Minify.po b/plugins/Minify/locale/ia/LC_MESSAGES/Minify.po index 02338bc0a1..37ed40544e 100644 --- a/plugins/Minify/locale/ia/LC_MESSAGES/Minify.po +++ b/plugins/Minify/locale/ia/LC_MESSAGES/Minify.po @@ -9,34 +9,30 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Minify\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:04+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-minify\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: minify.php:49 -msgid "The parameter \"f\" is not a valid path." -msgstr "Le parametro \"f\" non es un cammino valide." - -#: minify.php:53 -msgid "The parameter \"f\" is required but missing." -msgstr "Le parametro \"f\" es necessari, ma manca." - -#: minify.php:111 -msgid "File type not supported." -msgstr "Typo de file non supportate." - -#: MinifyPlugin.php:179 msgid "" "The Minify plugin minifies StatusNet's CSS and JavaScript, removing " "whitespace and comments." msgstr "" "Le plug-in Minify minimisa le CSS e JavaScript de StatusNet, removente " "spatio blanc e commentos." + +msgid "The parameter \"f\" is not a valid path." +msgstr "Le parametro \"f\" non es un cammino valide." + +msgid "The parameter \"f\" is required but missing." +msgstr "Le parametro \"f\" es necessari, ma manca." + +msgid "File type not supported." +msgstr "Typo de file non supportate." diff --git a/plugins/Minify/locale/mk/LC_MESSAGES/Minify.po b/plugins/Minify/locale/mk/LC_MESSAGES/Minify.po index 1bd0de380b..6b1ce71a78 100644 --- a/plugins/Minify/locale/mk/LC_MESSAGES/Minify.po +++ b/plugins/Minify/locale/mk/LC_MESSAGES/Minify.po @@ -9,34 +9,30 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Minify\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:04+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-minify\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: minify.php:49 -msgid "The parameter \"f\" is not a valid path." -msgstr "Параметарот „f“ не претставува важечка патека." - -#: minify.php:53 -msgid "The parameter \"f\" is required but missing." -msgstr "Параметарот „f“ е задолжителен, но недостасува." - -#: minify.php:111 -msgid "File type not supported." -msgstr "Овој топ на податотека не е поддржан." - -#: MinifyPlugin.php:179 msgid "" "The Minify plugin minifies StatusNet's CSS and JavaScript, removing " "whitespace and comments." msgstr "" "Приклучокот Minify ги смалува CSS и JavaScript на StatusNet, отстранувајќи " "бели простори и коментари." + +msgid "The parameter \"f\" is not a valid path." +msgstr "Параметарот „f“ не претставува важечка патека." + +msgid "The parameter \"f\" is required but missing." +msgstr "Параметарот „f“ е задолжителен, но недостасува." + +msgid "File type not supported." +msgstr "Овој топ на податотека не е поддржан." diff --git a/plugins/Minify/locale/nb/LC_MESSAGES/Minify.po b/plugins/Minify/locale/nb/LC_MESSAGES/Minify.po index 437dba6420..ed75f93d51 100644 --- a/plugins/Minify/locale/nb/LC_MESSAGES/Minify.po +++ b/plugins/Minify/locale/nb/LC_MESSAGES/Minify.po @@ -9,34 +9,30 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Minify\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:04+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-minify\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: minify.php:49 -msgid "The parameter \"f\" is not a valid path." -msgstr "Parameteren «f» er ikke en gyldig sti." - -#: minify.php:53 -msgid "The parameter \"f\" is required but missing." -msgstr "Parameteren «f» er nødvendig, men mangler." - -#: minify.php:111 -msgid "File type not supported." -msgstr "Filtype støttes ikke." - -#: MinifyPlugin.php:179 msgid "" "The Minify plugin minifies StatusNet's CSS and JavaScript, removing " "whitespace and comments." msgstr "" "Utvidelsen Minify minimerer StatusNets CSS og JavaScript og fjerner " "mellomrom og kommentarer." + +msgid "The parameter \"f\" is not a valid path." +msgstr "Parameteren «f» er ikke en gyldig sti." + +msgid "The parameter \"f\" is required but missing." +msgstr "Parameteren «f» er nødvendig, men mangler." + +msgid "File type not supported." +msgstr "Filtype støttes ikke." diff --git a/plugins/Minify/locale/nl/LC_MESSAGES/Minify.po b/plugins/Minify/locale/nl/LC_MESSAGES/Minify.po index 5ab3dfd3d1..b43b3d26b6 100644 --- a/plugins/Minify/locale/nl/LC_MESSAGES/Minify.po +++ b/plugins/Minify/locale/nl/LC_MESSAGES/Minify.po @@ -9,34 +9,30 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Minify\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:04+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-minify\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: minify.php:49 -msgid "The parameter \"f\" is not a valid path." -msgstr "De parameter \"f\" is geen geldig pad." - -#: minify.php:53 -msgid "The parameter \"f\" is required but missing." -msgstr "De parameter \"f\" is vereist, maar ontbreekt." - -#: minify.php:111 -msgid "File type not supported." -msgstr "Dit bestandstype wordt niet ondersteund" - -#: MinifyPlugin.php:179 msgid "" "The Minify plugin minifies StatusNet's CSS and JavaScript, removing " "whitespace and comments." msgstr "" "De plug-in Minify maakt CSS en JavaScript kleiner door witruimte en " "opmerkingen te verwijderen." + +msgid "The parameter \"f\" is not a valid path." +msgstr "De parameter \"f\" is geen geldig pad." + +msgid "The parameter \"f\" is required but missing." +msgstr "De parameter \"f\" is vereist, maar ontbreekt." + +msgid "File type not supported." +msgstr "Dit bestandstype wordt niet ondersteund" diff --git a/plugins/Minify/locale/ru/LC_MESSAGES/Minify.po b/plugins/Minify/locale/ru/LC_MESSAGES/Minify.po index 3808e78c2f..751237c2ee 100644 --- a/plugins/Minify/locale/ru/LC_MESSAGES/Minify.po +++ b/plugins/Minify/locale/ru/LC_MESSAGES/Minify.po @@ -10,35 +10,31 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Minify\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:04+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-minify\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: minify.php:49 -msgid "The parameter \"f\" is not a valid path." -msgstr "Параметр «f» содержит неправильный путь." - -#: minify.php:53 -msgid "The parameter \"f\" is required but missing." -msgstr "Требуется параметр «f», но он отсутствует." - -#: minify.php:111 -msgid "File type not supported." -msgstr "Тип файла не поддерживается." - -#: MinifyPlugin.php:179 msgid "" "The Minify plugin minifies StatusNet's CSS and JavaScript, removing " "whitespace and comments." msgstr "" "Плагин «Minify» сжимает CSS и JavaScript StatusNet'а, удаляя лишние пробелы и " "комментарии." + +msgid "The parameter \"f\" is not a valid path." +msgstr "Параметр «f» содержит неправильный путь." + +msgid "The parameter \"f\" is required but missing." +msgstr "Требуется параметр «f», но он отсутствует." + +msgid "File type not supported." +msgstr "Тип файла не поддерживается." diff --git a/plugins/Minify/locale/tl/LC_MESSAGES/Minify.po b/plugins/Minify/locale/tl/LC_MESSAGES/Minify.po index 1d18e7c642..3d0e5b7f46 100644 --- a/plugins/Minify/locale/tl/LC_MESSAGES/Minify.po +++ b/plugins/Minify/locale/tl/LC_MESSAGES/Minify.po @@ -9,34 +9,30 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Minify\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:04+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-minify\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: minify.php:49 -msgid "The parameter \"f\" is not a valid path." -msgstr "Ang parametrong \"f\" ay hindi isang tanggap na landas." - -#: minify.php:53 -msgid "The parameter \"f\" is required but missing." -msgstr "Ang parametrong \"f\" ay kailangan ngunit nawawala." - -#: minify.php:111 -msgid "File type not supported." -msgstr "Hindi tinatangkilik ang uri ng talaksan." - -#: MinifyPlugin.php:179 msgid "" "The Minify plugin minifies StatusNet's CSS and JavaScript, removing " "whitespace and comments." msgstr "" "Ang pamasak na Minify ay nagpapaliit sa CSS at JavaScript ng StatusNet, na " "nagtatanggal ng puting puwang at mga puna." + +msgid "The parameter \"f\" is not a valid path." +msgstr "Ang parametrong \"f\" ay hindi isang tanggap na landas." + +msgid "The parameter \"f\" is required but missing." +msgstr "Ang parametrong \"f\" ay kailangan ngunit nawawala." + +msgid "File type not supported." +msgstr "Hindi tinatangkilik ang uri ng talaksan." diff --git a/plugins/Minify/locale/uk/LC_MESSAGES/Minify.po b/plugins/Minify/locale/uk/LC_MESSAGES/Minify.po index 33b4bd8c0a..b166a42362 100644 --- a/plugins/Minify/locale/uk/LC_MESSAGES/Minify.po +++ b/plugins/Minify/locale/uk/LC_MESSAGES/Minify.po @@ -9,35 +9,31 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Minify\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:04+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-minify\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: minify.php:49 -msgid "The parameter \"f\" is not a valid path." -msgstr "Параметр «f» не є правильним шляхом." - -#: minify.php:53 -msgid "The parameter \"f\" is required but missing." -msgstr "Параметр «f» має бути зазначено, але він відсутній." - -#: minify.php:111 -msgid "File type not supported." -msgstr "Тип файлу не підтримується." - -#: MinifyPlugin.php:179 msgid "" "The Minify plugin minifies StatusNet's CSS and JavaScript, removing " "whitespace and comments." msgstr "" "Додаток Minify мінімізує CSS та JavaScript сайту StatusNet, усуваючи " "пропуски і коментарі." + +msgid "The parameter \"f\" is not a valid path." +msgstr "Параметр «f» не є правильним шляхом." + +msgid "The parameter \"f\" is required but missing." +msgstr "Параметр «f» має бути зазначено, але він відсутній." + +msgid "File type not supported." +msgstr "Тип файлу не підтримується." diff --git a/plugins/Minify/locale/zh_CN/LC_MESSAGES/Minify.po b/plugins/Minify/locale/zh_CN/LC_MESSAGES/Minify.po index 5c3cecb22c..05217da639 100644 --- a/plugins/Minify/locale/zh_CN/LC_MESSAGES/Minify.po +++ b/plugins/Minify/locale/zh_CN/LC_MESSAGES/Minify.po @@ -9,33 +9,29 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Minify\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:25+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:04+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-minify\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: minify.php:49 -msgid "The parameter \"f\" is not a valid path." -msgstr "参数 \"f\" 不是个有效的路径。" - -#: minify.php:53 -msgid "The parameter \"f\" is required but missing." -msgstr "需要参数 \"f\" 但是丢失了。" - -#: minify.php:111 -msgid "File type not supported." -msgstr "文件类型不支持。" - -#: MinifyPlugin.php:179 msgid "" "The Minify plugin minifies StatusNet's CSS and JavaScript, removing " "whitespace and comments." msgstr "Minify 插件通过删除空白和注释缩小 StatusNet 的 CSS 和 JavaScript。" + +msgid "The parameter \"f\" is not a valid path." +msgstr "参数 \"f\" 不是个有效的路径。" + +msgid "The parameter \"f\" is required but missing." +msgstr "需要参数 \"f\" 但是丢失了。" + +msgid "File type not supported." +msgstr "文件类型不支持。" diff --git a/plugins/MobileProfile/locale/MobileProfile.pot b/plugins/MobileProfile/locale/MobileProfile.pot index 40d70f71f9..e5f22ae402 100644 --- a/plugins/MobileProfile/locale/MobileProfile.pot +++ b/plugins/MobileProfile/locale/MobileProfile.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/MobileProfile/locale/br/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/br/LC_MESSAGES/MobileProfile.po index 6a79108fee..7ff2fa556b 100644 --- a/plugins/MobileProfile/locale/br/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/br/LC_MESSAGES/MobileProfile.po @@ -9,80 +9,64 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:05+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "" -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "Degemer" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "Kont" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "Kevreañ" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "Merour" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "Kemmañ arventennoù al lec'hienn" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "Pediñ" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "Digevreañ" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "Marilhañ" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "Kevreañ" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "Klask" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "Stagañ" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "Stagañ ur restr" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." msgstr "" #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." msgstr "" -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "" diff --git a/plugins/MobileProfile/locale/ce/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/ce/LC_MESSAGES/MobileProfile.po index 157e5f58e5..47bf8d98be 100644 --- a/plugins/MobileProfile/locale/ce/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/ce/LC_MESSAGES/MobileProfile.po @@ -9,80 +9,64 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:05+0000\n" "Language-Team: Chechen \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ce\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "Агlо схьа ца гойту ишта тайпнара чун, ахьа лелош йолу." -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "Цlехьа" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "Дlавазвалар" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "Зlе тасар" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "Адаманкуьйгалхо" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "Схьакхайкха" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "Ара валар" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "Дlавазвалар" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "Вовзийта хьой" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "Лаха" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "Тlечlагlде" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "Тlечlагlйе хlума" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." msgstr "" #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." msgstr "" -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "XHTML MobileProfile арайокху иза лелочу декъашхошна аттон." diff --git a/plugins/MobileProfile/locale/de/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/de/LC_MESSAGES/MobileProfile.po index 511eb04f02..2464a26af3 100644 --- a/plugins/MobileProfile/locale/de/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/de/LC_MESSAGES/MobileProfile.po @@ -9,80 +9,64 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:05+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "Diese Seite liegt in keinem von Ihnen akzeptierten Medientyp vor." -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "Startseite" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "Konto" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "Verbinden" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "Administration" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "Seitenkonfiguration ändern" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "Einladen" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "Abmelden" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "Registrieren" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "Anmelden" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "Suche" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "Anhängen" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "Datei anhängen" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." msgstr "" #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." msgstr "" -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "XHTML-MobileProfile-Ausgabe zur Unterstützung von User-Agents." diff --git a/plugins/MobileProfile/locale/fr/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/fr/LC_MESSAGES/MobileProfile.po index a48a0edbf7..7f6484928c 100644 --- a/plugins/MobileProfile/locale/fr/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/fr/LC_MESSAGES/MobileProfile.po @@ -10,81 +10,65 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:05+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "" "Cette page n’est pas disponible dans un des types de média que vous acceptez." -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "Accueil" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "Compte" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "Connexion" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "Administrateur" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "Modifier la configuration du site" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "Inviter" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "Déconnexion" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "S’inscrire" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "Connexion" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "Rechercher" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "Joindre" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "Joindre un fichier" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." msgstr "" #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." msgstr "" -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "Sortie XHTML MobileProfile pour les navigateurs compatibles." diff --git a/plugins/MobileProfile/locale/gl/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/gl/LC_MESSAGES/MobileProfile.po index a16052b790..60c1dfe11a 100644 --- a/plugins/MobileProfile/locale/gl/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/gl/LC_MESSAGES/MobileProfile.po @@ -9,80 +9,64 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:05+0000\n" "Language-Team: Galician \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: gl\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "" -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "Inicio" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "Conta" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "Conectar" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "Administrador" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "Cambiar a configuración do sitio" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "Convidar" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "Saír" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "Rexistrarse" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "Rexistro" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "Procurar" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "Anexar" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "Anexar un ficheiro" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." msgstr "" #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." msgstr "" -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "" diff --git a/plugins/MobileProfile/locale/ia/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/ia/LC_MESSAGES/MobileProfile.po index 13e1f18e36..a727ae723d 100644 --- a/plugins/MobileProfile/locale/ia/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/ia/LC_MESSAGES/MobileProfile.po @@ -9,81 +9,65 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:05+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "Iste pagina non es disponibile in un formato que tu accepta." -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "Initio" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "Conto" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "Connecter" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "Admin" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "Modificar le configuration del sito" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "Invitar" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "Clauder session" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "Crear conto" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "Aperir session" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "Cercar" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "Annexar" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "Annexar un file" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." -msgstr "" +msgstr "Cambiar al disposition de sito a scriptorio." #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." -msgstr "" +msgstr "Cambiar al disposition de sito mobile." -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "" "Production de XHTML MobileProfile pro le programmas de usator que lo " diff --git a/plugins/MobileProfile/locale/mk/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/mk/LC_MESSAGES/MobileProfile.po index 7e463a787c..50120c516d 100644 --- a/plugins/MobileProfile/locale/mk/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/mk/LC_MESSAGES/MobileProfile.po @@ -9,80 +9,64 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "Страницава не е достапна во форматот кој Вие го прифаќате." -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "Почетна" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "Сметка" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "Поврзи се" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "Администратор" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "Промена на поставките на мрежното место" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "Покани" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "Одјава" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "Регистрација" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "Најава" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "Пребарај" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "Приложи" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "Приложи податотека" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." -msgstr "" +msgstr "Префрли ме на столен распоред." #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." -msgstr "" +msgstr "Префрли ме на мобилен распоред." -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "Излез „XHTML MobileProfile“ за поддршка на кориснички агенти." diff --git a/plugins/MobileProfile/locale/nb/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/nb/LC_MESSAGES/MobileProfile.po index ea90e967ca..c2c7ea527d 100644 --- a/plugins/MobileProfile/locale/nb/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/nb/LC_MESSAGES/MobileProfile.po @@ -9,80 +9,64 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "Denne siden er ikke tilgjengelig i en mediatype du aksepterer." -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "Hjem" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "Konto" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "Koble til" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "Admin" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "Endre nettstedskonfigurasjon" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "Inviter" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "Logg ut" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "Registrer" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "Logg inn" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "Søk" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "Legg ved" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "Legg ved en fil" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." msgstr "" #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." msgstr "" -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "XHTML MobileProfile-utdata for støttede brukeragenter." diff --git a/plugins/MobileProfile/locale/nl/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/nl/LC_MESSAGES/MobileProfile.po index 0887a8f63a..0d636e58be 100644 --- a/plugins/MobileProfile/locale/nl/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/nl/LC_MESSAGES/MobileProfile.po @@ -10,81 +10,65 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "Deze pagina is niet beschikbaar in een mediumtype dat u accepteert." -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "Hoofdmenu" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "Gebruiker" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "Koppelen" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "Beheer" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "Websiteinstellingen wijzigen" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "Uitnodigen" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "Afmelden" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "Registreren" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "Aanmelden" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "Zoeken" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "Toevoegen" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "Bestand toevoegen" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." -msgstr "" +msgstr "Omschakelen naar de vormgeving van de desktopsite." #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." -msgstr "" +msgstr "Omschakelen naar de vormgeving van de mobiele site." -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "" "Uitvoer in MobileProfile XHTML voor de gebruikersprogramma's die dat " diff --git a/plugins/MobileProfile/locale/ps/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/ps/LC_MESSAGES/MobileProfile.po index 6122ae2385..052a223520 100644 --- a/plugins/MobileProfile/locale/ps/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/ps/LC_MESSAGES/MobileProfile.po @@ -9,80 +9,64 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Pashto \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ps\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "" -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "کور" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "ګڼون" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "پازوال" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "وتل" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "نومليکل" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "ننوتل" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "پلټل" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." msgstr "" #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." msgstr "" -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "" diff --git a/plugins/MobileProfile/locale/ru/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/ru/LC_MESSAGES/MobileProfile.po index f6c5dd2257..912bc7e423 100644 --- a/plugins/MobileProfile/locale/ru/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/ru/LC_MESSAGES/MobileProfile.po @@ -10,81 +10,65 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "Страница недоступна для того типа, который вы задействовали." -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "Домой" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "Аккаунт" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "Подключиться" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "Администратор" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "Изменить конфигурацию сайта" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "Пригласить" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "Выйти" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "Регистрация" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "Представиться" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "Поиск" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "Прикрепить" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "Прикрепить файл" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." msgstr "" #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." msgstr "" -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "XHTML MobileProfile вывод для поддерживаемых пользовательских агентов." diff --git a/plugins/MobileProfile/locale/ta/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/ta/LC_MESSAGES/MobileProfile.po index a19892a8d9..2434cc44cd 100644 --- a/plugins/MobileProfile/locale/ta/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/ta/LC_MESSAGES/MobileProfile.po @@ -9,80 +9,64 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Tamil \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ta\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "" -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "கணக்கு" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "இணை" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "விடுபதிகை" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "பதிவு செய்" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "புகுபதிகை" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "தேடுக" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "இணை" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "ஒரு கோப்பை இணைக்கவும்" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." msgstr "" #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." msgstr "" -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "" diff --git a/plugins/MobileProfile/locale/te/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/te/LC_MESSAGES/MobileProfile.po index c2b871c7b2..f93dd0acec 100644 --- a/plugins/MobileProfile/locale/te/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/te/LC_MESSAGES/MobileProfile.po @@ -9,80 +9,64 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Telugu \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "" -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "ముంగిలి" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "ఖాతా" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "ఆహ్వానించు" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "నిష్క్రమించండి" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "నమోదవ్వండి" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "ప్రవేశించండి" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "వెతుకు" -#: MobileProfilePlugin.php:365 msgid "Attach" -msgstr "" +msgstr "జోడించు" -#: MobileProfilePlugin.php:369 msgid "Attach a file" -msgstr "" +msgstr "ఒక దస్త్రాన్ని జోడించండి" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." msgstr "" #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." msgstr "" -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "" diff --git a/plugins/MobileProfile/locale/tl/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/tl/LC_MESSAGES/MobileProfile.po index 1c7ab8af4f..e95fee0e35 100644 --- a/plugins/MobileProfile/locale/tl/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/tl/LC_MESSAGES/MobileProfile.po @@ -9,81 +9,65 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "Ang pahinang ito ay hindi makukuha sa uri ng midya na tinanggap mo." -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "Tahanan" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "Akawnt" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "Umugnay" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "Tagapangasiwa" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "Baguhin ang pagkakaayos ng sityo" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "Anyayahan" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "Umalis sa pagkakalagda" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "Magpatala" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "Lumagda" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "Humanap" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "Ilakip" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "Maglakip ng isang talaksan" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." msgstr "" #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." msgstr "" -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "" "Mga paglalabas na XHTML na MobileProfile para sa pagtataguyo ng mga ahente " diff --git a/plugins/MobileProfile/locale/uk/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/uk/LC_MESSAGES/MobileProfile.po index 8a1dd30b85..3c75a56e39 100644 --- a/plugins/MobileProfile/locale/uk/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/uk/LC_MESSAGES/MobileProfile.po @@ -9,82 +9,66 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "Ця сторінка не доступна для того типу медіа, з яким ви погодились." -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "Дім" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "Акаунт" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "З’єднання" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "Адмін" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "Змінити конфігурацію сайту" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "Запросити" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "Вийти" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "Реєстрація" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "Увійти" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "Пошук" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "Вкласти" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "Вкласти файл" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." -msgstr "" +msgstr "Перемкнути вигляд сайту на варіант для робочого столу." #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." -msgstr "" +msgstr "Перемкнути вигляд сайту на варіант для мобільних пристроїв." -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "" "Додаток MobileProfile генерує XHTML прийнятний для мобільних пристроїв." diff --git a/plugins/MobileProfile/locale/zh_CN/LC_MESSAGES/MobileProfile.po b/plugins/MobileProfile/locale/zh_CN/LC_MESSAGES/MobileProfile.po index 5c6dd90c5a..f440fd4a9c 100644 --- a/plugins/MobileProfile/locale/zh_CN/LC_MESSAGES/MobileProfile.po +++ b/plugins/MobileProfile/locale/zh_CN/LC_MESSAGES/MobileProfile.po @@ -10,81 +10,65 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - MobileProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:20:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:20+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-mobileprofile\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: MobileProfilePlugin.php:196 msgid "This page is not available in a media type you accept." msgstr "此页不在您接受的媒体类型中可用。" -#: MobileProfilePlugin.php:313 msgid "Home" msgstr "首页" -#: MobileProfilePlugin.php:315 msgid "Account" msgstr "账号" -#: MobileProfilePlugin.php:317 msgid "Connect" msgstr "关联" -#: MobileProfilePlugin.php:320 msgid "Admin" msgstr "管理" -#: MobileProfilePlugin.php:320 msgid "Change site configuration" msgstr "更改网站配置" -#: MobileProfilePlugin.php:324 msgid "Invite" msgstr "邀请" -#: MobileProfilePlugin.php:327 msgid "Logout" msgstr "登出" -#: MobileProfilePlugin.php:331 msgid "Register" msgstr "注册" -#: MobileProfilePlugin.php:334 msgid "Login" msgstr "登录" -#: MobileProfilePlugin.php:338 msgid "Search" msgstr "搜索" -#: MobileProfilePlugin.php:365 msgid "Attach" msgstr "附件" -#: MobileProfilePlugin.php:369 msgid "Attach a file" msgstr "添加一个文件附件" #. TRANS: Link to switch site layout from mobile to desktop mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:410 msgid "Switch to desktop site layout." msgstr "" #. TRANS: Link to switch site layout from desktop to mobile mode. Appears at very bottom of page. -#: MobileProfilePlugin.php:414 msgid "Switch to mobile site layout." msgstr "" -#: MobileProfilePlugin.php:451 msgid "XHTML MobileProfile output for supporting user agents." msgstr "XHTML MobileProfile 支持用户代理的输出。" diff --git a/plugins/MobileProfile/mp-screen.css b/plugins/MobileProfile/mp-screen.css index fcd88277e5..d82486182a 100644 --- a/plugins/MobileProfile/mp-screen.css +++ b/plugins/MobileProfile/mp-screen.css @@ -108,7 +108,7 @@ iPhone/iPod Touch, Android, Opera Mini Simulator #form_notice label[for="notice_data-attach"] { display:none; } -#form_notice #notice_data-attach { +#form_notice input.notice_data-attach { position:static; clear:both; width:65%; diff --git a/plugins/ModHelper/locale/ModHelper.pot b/plugins/ModHelper/locale/ModHelper.pot index 4d7d2a8a81..4eb4670b1a 100644 --- a/plugins/ModHelper/locale/ModHelper.pot +++ b/plugins/ModHelper/locale/ModHelper.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/ModHelper/locale/de/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/de/LC_MESSAGES/ModHelper.po index 32123bf1c9..79ae792ef2 100644 --- a/plugins/ModHelper/locale/de/LC_MESSAGES/ModHelper.po +++ b/plugins/ModHelper/locale/de/LC_MESSAGES/ModHelper.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModHelper\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:08:52+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:25:42+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-08 01:22:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-modhelper\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ModHelperPlugin.php:37 msgid "" "Lets users who have been manually marked as \"modhelper\"s silence accounts." msgstr "" diff --git a/plugins/ModHelper/locale/es/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/es/LC_MESSAGES/ModHelper.po index 20b3f5c1cc..e5a7f47e80 100644 --- a/plugins/ModHelper/locale/es/LC_MESSAGES/ModHelper.po +++ b/plugins/ModHelper/locale/es/LC_MESSAGES/ModHelper.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModHelper\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:27+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-modhelper\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ModHelperPlugin.php:37 msgid "" "Lets users who have been manually marked as \"modhelper\"s silence accounts." msgstr "" diff --git a/plugins/ModHelper/locale/fr/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/fr/LC_MESSAGES/ModHelper.po index 0d4db36a47..8b25335a4b 100644 --- a/plugins/ModHelper/locale/fr/LC_MESSAGES/ModHelper.po +++ b/plugins/ModHelper/locale/fr/LC_MESSAGES/ModHelper.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModHelper\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:27+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-modhelper\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: ModHelperPlugin.php:37 msgid "" "Lets users who have been manually marked as \"modhelper\"s silence accounts." msgstr "" diff --git a/plugins/ModHelper/locale/he/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/he/LC_MESSAGES/ModHelper.po index ae8b96a96b..1ad17008fb 100644 --- a/plugins/ModHelper/locale/he/LC_MESSAGES/ModHelper.po +++ b/plugins/ModHelper/locale/he/LC_MESSAGES/ModHelper.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModHelper\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:27+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-modhelper\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ModHelperPlugin.php:37 msgid "" "Lets users who have been manually marked as \"modhelper\"s silence accounts." msgstr "מתן האפשרות למשתמשים שסומנו כ־\"modhelper\" להשתיק חשבונות." diff --git a/plugins/ModHelper/locale/ia/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/ia/LC_MESSAGES/ModHelper.po index a442e68488..1c20ef17da 100644 --- a/plugins/ModHelper/locale/ia/LC_MESSAGES/ModHelper.po +++ b/plugins/ModHelper/locale/ia/LC_MESSAGES/ModHelper.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModHelper\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:27+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-modhelper\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ModHelperPlugin.php:37 msgid "" "Lets users who have been manually marked as \"modhelper\"s silence accounts." msgstr "" diff --git a/plugins/ModHelper/locale/mk/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/mk/LC_MESSAGES/ModHelper.po index 44ffdcc600..bb5c9a0bdb 100644 --- a/plugins/ModHelper/locale/mk/LC_MESSAGES/ModHelper.po +++ b/plugins/ModHelper/locale/mk/LC_MESSAGES/ModHelper.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModHelper\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:27+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-modhelper\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: ModHelperPlugin.php:37 msgid "" "Lets users who have been manually marked as \"modhelper\"s silence accounts." msgstr "" diff --git a/plugins/ModHelper/locale/nl/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/nl/LC_MESSAGES/ModHelper.po index 2292dc30c0..1ed29519b0 100644 --- a/plugins/ModHelper/locale/nl/LC_MESSAGES/ModHelper.po +++ b/plugins/ModHelper/locale/nl/LC_MESSAGES/ModHelper.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModHelper\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:27+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:06+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-modhelper\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ModHelperPlugin.php:37 msgid "" "Lets users who have been manually marked as \"modhelper\"s silence accounts." msgstr "" diff --git a/plugins/ModHelper/locale/pt/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/pt/LC_MESSAGES/ModHelper.po new file mode 100644 index 0000000000..dbe123c7d2 --- /dev/null +++ b/plugins/ModHelper/locale/pt/LC_MESSAGES/ModHelper.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - ModHelper to Portuguese (Português) +# Exported from translatewiki.net +# +# Author: SandroHc +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - ModHelper\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:07+0000\n" +"Language-Team: Portuguese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-08 01:22:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-modhelper\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "" +"Lets users who have been manually marked as \"modhelper\"s silence accounts." +msgstr "" +"Permite que os usuários que tenham sido manualmente marcados como \"modhelper" +"\" silenciem contas." diff --git a/plugins/ModHelper/locale/ru/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/ru/LC_MESSAGES/ModHelper.po index fcc68f1a50..7bdb8ffa00 100644 --- a/plugins/ModHelper/locale/ru/LC_MESSAGES/ModHelper.po +++ b/plugins/ModHelper/locale/ru/LC_MESSAGES/ModHelper.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModHelper\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:27+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:07+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-modhelper\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: ModHelperPlugin.php:37 msgid "" "Lets users who have been manually marked as \"modhelper\"s silence accounts." msgstr "" diff --git a/plugins/ModHelper/locale/uk/LC_MESSAGES/ModHelper.po b/plugins/ModHelper/locale/uk/LC_MESSAGES/ModHelper.po index 194954dde7..f1ab8eca3e 100644 --- a/plugins/ModHelper/locale/uk/LC_MESSAGES/ModHelper.po +++ b/plugins/ModHelper/locale/uk/LC_MESSAGES/ModHelper.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModHelper\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:27+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:07+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:10+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-modhelper\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: ModHelperPlugin.php:37 msgid "" "Lets users who have been manually marked as \"modhelper\"s silence accounts." msgstr "" diff --git a/plugins/ModPlus/ModPlusPlugin.php b/plugins/ModPlus/ModPlusPlugin.php index d2b7c09346..f8351f0988 100644 --- a/plugins/ModPlus/ModPlusPlugin.php +++ b/plugins/ModPlus/ModPlusPlugin.php @@ -84,7 +84,7 @@ class ModPlusPlugin extends Plugin } /** - * Add OpenID-related paths to the router table + * Add ModPlus-related paths to the router table * * Hook for RouterInitialized event. * @@ -101,16 +101,45 @@ class ModPlusPlugin extends Plugin return true; } + /** + * Add per-profile info popup menu for author on notice lists. + * + * @param NoticeListItem $item + * @return boolean hook value + */ function onStartShowNoticeItem($item) { - $profile = $item->profile; + $this->showProfileOptions($item->out, $item->profile); + return true; + } + + /** + * Add per-profile info popup menu on profile lists. + * + * @param ProfileListItem $item + */ + function onStartProfileListItemProfile($item) + { + $this->showProfileOptions($item->out, $item->profile); + return true; + } + + /** + * Build common remote-profile options structure. + * Currently only adds output for remote profiles, nothing for local users. + * + * @param HTMLOutputter $out + * @param Profile $profile + */ + protected function showProfileOptions(HTMLOutputter $out, Profile $profile) + { $isRemote = !(User::staticGet('id', $profile->id)); if ($isRemote) { $target = common_local_url('remoteprofile', array('id' => $profile->id)); $label = _m('Remote profile options...'); - $item->out->elementStart('div', 'remote-profile-options'); - $item->out->element('a', array('href' => $target), $label); - $item->out->elementEnd('div'); + $out->elementStart('div', 'remote-profile-options'); + $out->element('a', array('href' => $target), $label); + $out->elementEnd('div'); } } } diff --git a/plugins/ModPlus/locale/ModPlus.pot b/plugins/ModPlus/locale/ModPlus.pot index 4036032d37..fb1588fffa 100644 --- a/plugins/ModPlus/locale/ModPlus.pot +++ b/plugins/ModPlus/locale/ModPlus.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,14 +16,6 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: ModPlusPlugin.php:39 -msgid "UI extensions for profile moderation actions." -msgstr "" - -#: ModPlusPlugin.php:110 -msgid "Remote profile options..." -msgstr "" - #: remoteprofileaction.php:51 #, php-format msgid "%s on %s" @@ -41,3 +33,11 @@ msgid "" "Site moderators have silenced this profile, which prevents delivery of new " "messages to any users on this site." msgstr "" + +#: ModPlusPlugin.php:39 +msgid "UI extensions for profile moderation actions." +msgstr "" + +#: ModPlusPlugin.php:110 +msgid "Remote profile options..." +msgstr "" diff --git a/plugins/ModPlus/locale/de/LC_MESSAGES/ModPlus.po b/plugins/ModPlus/locale/de/LC_MESSAGES/ModPlus.po index 2e55da6617..6545af0b29 100644 --- a/plugins/ModPlus/locale/de/LC_MESSAGES/ModPlus.po +++ b/plugins/ModPlus/locale/de/LC_MESSAGES/ModPlus.po @@ -9,32 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:08:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:07+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:25:43+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:33+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-modplus\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ModPlusPlugin.php:39 -msgid "UI extensions for profile moderation actions." -msgstr "Benutzerobeflächenerweiterungen zur Moderation von Profilen." - -#: ModPlusPlugin.php:110 -msgid "Remote profile options..." -msgstr "Remoteprofil-Einstellungen…" - -#: remoteprofileaction.php:51 #, php-format msgid "%s on %s" msgstr "%s auf %s" -#: remoteprofileaction.php:62 #, php-format msgid "" "This remote profile is registered on another site; see [%s's original " @@ -43,10 +33,15 @@ msgstr "" "Dieses entfernte Profil ist auf einer anderen Seite registriert; siehe [%ss " "Original-Profilseite auf %s](%s)" -#: remoteprofileaction.php:70 msgid "" "Site moderators have silenced this profile, which prevents delivery of new " "messages to any users on this site." msgstr "" "Moderatoren haben dieses Profil stumm geschaltet, was die Zustellung neuer " "Nachrichten an andere Benutzer dieser Seite unterbindet." + +msgid "UI extensions for profile moderation actions." +msgstr "Benutzerobeflächenerweiterungen zur Moderation von Profilen." + +msgid "Remote profile options..." +msgstr "Remoteprofil-Einstellungen…" diff --git a/plugins/ModPlus/locale/fr/LC_MESSAGES/ModPlus.po b/plugins/ModPlus/locale/fr/LC_MESSAGES/ModPlus.po index 7233dd4635..abd705166a 100644 --- a/plugins/ModPlus/locale/fr/LC_MESSAGES/ModPlus.po +++ b/plugins/ModPlus/locale/fr/LC_MESSAGES/ModPlus.po @@ -10,34 +10,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:28+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:07+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:33+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-modplus\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: ModPlusPlugin.php:39 -msgid "UI extensions for profile moderation actions." -msgstr "" -"Extensions d’interface utilisateur pour les actions de modération des " -"profils." - -#: ModPlusPlugin.php:110 -msgid "Remote profile options..." -msgstr "Options de profil distantes..." - -#: remoteprofileaction.php:51 #, php-format msgid "%s on %s" msgstr "%s sur %s" -#: remoteprofileaction.php:62 #, php-format msgid "" "This remote profile is registered on another site; see [%s's original " @@ -46,10 +34,17 @@ msgstr "" "Ce profil distant est enregistré sur un autre site ; voir [la page de profil " "originale de %s sur %s](%s)." -#: remoteprofileaction.php:70 msgid "" "Site moderators have silenced this profile, which prevents delivery of new " "messages to any users on this site." msgstr "" "Les modérateurs du site ont réduit ce profil au silence, ce qui empêche " "l’envoi de nouveaux messages aux utilisateurs de ce site." + +msgid "UI extensions for profile moderation actions." +msgstr "" +"Extensions d’interface utilisateur pour les actions de modération des " +"profils." + +msgid "Remote profile options..." +msgstr "Options de profil distantes..." diff --git a/plugins/ModPlus/locale/ia/LC_MESSAGES/ModPlus.po b/plugins/ModPlus/locale/ia/LC_MESSAGES/ModPlus.po index a3a0b59a4b..8a9138b5b0 100644 --- a/plugins/ModPlus/locale/ia/LC_MESSAGES/ModPlus.po +++ b/plugins/ModPlus/locale/ia/LC_MESSAGES/ModPlus.po @@ -9,33 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:28+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:07+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:33+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-modplus\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ModPlusPlugin.php:39 -msgid "UI extensions for profile moderation actions." -msgstr "" -"Extensiones del interfacie de usator pro actiones de moderation de profilos." - -#: ModPlusPlugin.php:110 -msgid "Remote profile options..." -msgstr "Optiones de profilo remote..." - -#: remoteprofileaction.php:51 #, php-format msgid "%s on %s" msgstr "%s in %s" -#: remoteprofileaction.php:62 #, php-format msgid "" "This remote profile is registered on another site; see [%s's original " @@ -44,10 +33,16 @@ msgstr "" "Iste profilo remote es registrate in un altere sito; vide [le pagina de " "profilo original de %s in %s](%s)." -#: remoteprofileaction.php:70 msgid "" "Site moderators have silenced this profile, which prevents delivery of new " "messages to any users on this site." msgstr "" "Le moderatores del sito ha silentiate iste profilo, impediente le livration " "de nove messages al usatores de iste sito." + +msgid "UI extensions for profile moderation actions." +msgstr "" +"Extensiones del interfacie de usator pro actiones de moderation de profilos." + +msgid "Remote profile options..." +msgstr "Optiones de profilo remote..." diff --git a/plugins/ModPlus/locale/mk/LC_MESSAGES/ModPlus.po b/plugins/ModPlus/locale/mk/LC_MESSAGES/ModPlus.po index 4fe47e2b38..91207da60f 100644 --- a/plugins/ModPlus/locale/mk/LC_MESSAGES/ModPlus.po +++ b/plugins/ModPlus/locale/mk/LC_MESSAGES/ModPlus.po @@ -9,34 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:28+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:07+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:33+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-modplus\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: ModPlusPlugin.php:39 -msgid "UI extensions for profile moderation actions." -msgstr "" -"Додатоци за кориснички посредник наменети за постапки за административна " -"контрола на профили." - -#: ModPlusPlugin.php:110 -msgid "Remote profile options..." -msgstr "Нагодувања на далечински профил..." - -#: remoteprofileaction.php:51 #, php-format msgid "%s on %s" msgstr "%s на %s" -#: remoteprofileaction.php:62 #, php-format msgid "" "This remote profile is registered on another site; see [%s's original " @@ -45,10 +33,17 @@ msgstr "" "Овој далечински профил е регистриран на друго мреж. место. Погледајте ја [%" "s's изворната профилна страница на %s](%s)." -#: remoteprofileaction.php:70 msgid "" "Site moderators have silenced this profile, which prevents delivery of new " "messages to any users on this site." msgstr "" "Администраторите го замолчиле овој профил, што оневозможува праќање нови " "пораки на било кој корисник на мрежното место." + +msgid "UI extensions for profile moderation actions." +msgstr "" +"Додатоци за кориснички посредник наменети за постапки за административна " +"контрола на профили." + +msgid "Remote profile options..." +msgstr "Нагодувања на далечински профил..." diff --git a/plugins/ModPlus/locale/nl/LC_MESSAGES/ModPlus.po b/plugins/ModPlus/locale/nl/LC_MESSAGES/ModPlus.po index a977f185f4..cc6439ea36 100644 --- a/plugins/ModPlus/locale/nl/LC_MESSAGES/ModPlus.po +++ b/plugins/ModPlus/locale/nl/LC_MESSAGES/ModPlus.po @@ -10,34 +10,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:28+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:07+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:33+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-modplus\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ModPlusPlugin.php:39 -msgid "UI extensions for profile moderation actions." -msgstr "" -"Uitbreiding van de gebruikersinterface voor handelingen ten aanzien van " -"profielmoderatie." - -#: ModPlusPlugin.php:110 -msgid "Remote profile options..." -msgstr "Instellingen voor profiel op andere server..." - -#: remoteprofileaction.php:51 #, php-format msgid "%s on %s" msgstr "%s op %s" -#: remoteprofileaction.php:62 #, php-format msgid "" "This remote profile is registered on another site; see [%s's original " @@ -46,7 +34,6 @@ msgstr "" "Dit profiel op een andere server is geregistreerd bij een andere site. Zie " "[de originele profielpagina van %s op %s](%s)." -#: remoteprofileaction.php:70 msgid "" "Site moderators have silenced this profile, which prevents delivery of new " "messages to any users on this site." @@ -54,3 +41,11 @@ msgstr "" "Moderatoren van de site hebben dit profiel het zwijgen opgelegd, waardoor " "het niet mogelijk is nieuwe berichten aan gebruikers van deze site te " "verzenden." + +msgid "UI extensions for profile moderation actions." +msgstr "" +"Uitbreiding van de gebruikersinterface voor handelingen ten aanzien van " +"profielmoderatie." + +msgid "Remote profile options..." +msgstr "Instellingen voor profiel op andere server..." diff --git a/plugins/ModPlus/locale/uk/LC_MESSAGES/ModPlus.po b/plugins/ModPlus/locale/uk/LC_MESSAGES/ModPlus.po index bb52aa38fc..d68df3992c 100644 --- a/plugins/ModPlus/locale/uk/LC_MESSAGES/ModPlus.po +++ b/plugins/ModPlus/locale/uk/LC_MESSAGES/ModPlus.po @@ -9,33 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ModPlus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:28+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:07+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:33+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-modplus\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: ModPlusPlugin.php:39 -msgid "UI extensions for profile moderation actions." -msgstr "Розширення користувацького інтерфейсу для модерування профілю." - -#: ModPlusPlugin.php:110 -msgid "Remote profile options..." -msgstr "Опції віддаленого профілю..." - -#: remoteprofileaction.php:51 #, php-format msgid "%s on %s" msgstr "%s на %s" -#: remoteprofileaction.php:62 #, php-format msgid "" "This remote profile is registered on another site; see [%s's original " @@ -44,10 +34,15 @@ msgstr "" "Це віддалений профіль, зареєстрований на іншому сайті; див. [справжній " "профіль %s на сайті %s](%s)." -#: remoteprofileaction.php:70 msgid "" "Site moderators have silenced this profile, which prevents delivery of new " "messages to any users on this site." msgstr "" "Модератори сайту позбавили права голосу даний профіль, що перешкоджає " "доставці нових повідомлень для всіх користувачів на цьому сайті." + +msgid "UI extensions for profile moderation actions." +msgstr "Розширення користувацького інтерфейсу для модерування профілю." + +msgid "Remote profile options..." +msgstr "Опції віддаленого профілю..." diff --git a/plugins/ModPlus/modplus.js b/plugins/ModPlus/modplus.js index 2e90de4f19..511e8ee144 100644 --- a/plugins/ModPlus/modplus.js +++ b/plugins/ModPlus/modplus.js @@ -4,20 +4,36 @@ */ $(function() { - function ModPlus_setup(notice) { - if ($(notice).find('.remote-profile-options').size()) { - var $options = $(notice).find('.remote-profile-options'); - $options.prepend($()) - $(notice).find('.author').mouseenter(function(event) { - $(notice).find('.remote-profile-options').fadeIn(); - }); - $(notice).mouseleave(function(event) { - $(notice).find('.remote-profile-options').fadeOut(); - }); + // Notice lists... + $('.notice .author').live('mouseenter', function(e) { + var notice = $(this).closest('.notice'); + var popup = notice.find('.remote-profile-options'); + if (popup.length) { + popup.fadeIn(); } - } - - $('.notice').each(function() { - ModPlus_setup(this); }); + $('.notice').live('mouseleave', function(e) { + var notice = $(this); + var popup = notice.find('.remote-profile-options'); + if (popup.length) { + popup.fadeOut(); + } + }); + + // Profile lists... + $('.profile .avatar').live('mouseenter', function(e) { + var profile = $(this).closest('.profile'); + var popup = profile.find('.remote-profile-options'); + if (popup.length) { + popup.fadeIn(); + } + }); + $('.profile').live('mouseleave', function(e) { + var profile = $(this); + var popup = profile.find('.remote-profile-options'); + if (popup.length) { + popup.fadeOut(); + } + }); + }); diff --git a/plugins/Msn/extlib/phpmsnclass/msn.class.php b/plugins/Msn/extlib/phpmsnclass/msn.class.php index 996c5571c2..3d10c25b2c 100644 --- a/plugins/Msn/extlib/phpmsnclass/msn.class.php +++ b/plugins/Msn/extlib/phpmsnclass/msn.class.php @@ -2995,8 +2995,37 @@ X-OIM-Sequence-Num: 1 // no ticket found! if (count($matches) == 0) { - $this->debug_message('*** Could not get passport ticket!'); - return false; + // Since 2011/2/15, the return value will be Compact2, not PPToken2 + + // we need ticket and secret code + // RST1: messengerclear.live.com + // t=tick&p= + // binary secret + // RST2: messenger.msn.com + // t=tick + // RST3: contacts.msn.com + // t=tick&p= + // RST4: messengersecure.live.com + // t=tick&p= + // RST5: spaces.live.com + // t=tick&p= + // RST6: storage.msn.com + // t=tick&p= + preg_match("#". + "(.*)(.*)". + "(.*)(.*)". + "(.*)(.*)". + "(.*)(.*)". + "(.*)(.*)". + "(.*)(.*)". + "(.*)(.*)". + "#", + $data, $matches); + // no ticket found! + if (count($matches) == 0) { + $this->debug_message("*** Can't get passport ticket!"); + return false; + } } //$this->debug_message(var_export($matches, true)); diff --git a/plugins/Msn/locale/Msn.pot b/plugins/Msn/locale/Msn.pot index a032d4759f..775d771286 100644 --- a/plugins/Msn/locale/Msn.pot +++ b/plugins/Msn/locale/Msn.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Msn/locale/br/LC_MESSAGES/Msn.po b/plugins/Msn/locale/br/LC_MESSAGES/Msn.po new file mode 100644 index 0000000000..67775a66d2 --- /dev/null +++ b/plugins/Msn/locale/br/LC_MESSAGES/Msn.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Msn to Breton (Brezhoneg) +# Exported from translatewiki.net +# +# Author: Y-M D +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Msn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:08+0000\n" +"Language-Team: Breton \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 10:24:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: br\n" +"X-Message-Group: #out-statusnet-plugin-msn\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +msgid "MSN" +msgstr "MSN" + +msgid "" +"The MSN plugin allows users to send and receive notices over the MSN network." +msgstr "" diff --git a/plugins/Msn/locale/el/LC_MESSAGES/Msn.po b/plugins/Msn/locale/el/LC_MESSAGES/Msn.po new file mode 100644 index 0000000000..e8a708e233 --- /dev/null +++ b/plugins/Msn/locale/el/LC_MESSAGES/Msn.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Msn to Greek (Ελληνικά) +# Exported from translatewiki.net +# +# Author: Evropi +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Msn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:08+0000\n" +"Language-Team: Greek \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 10:24:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: el\n" +"X-Message-Group: #out-statusnet-plugin-msn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "MSN" +msgstr "MSN" + +msgid "" +"The MSN plugin allows users to send and receive notices over the MSN network." +msgstr "" diff --git a/plugins/Msn/locale/ia/LC_MESSAGES/Msn.po b/plugins/Msn/locale/ia/LC_MESSAGES/Msn.po new file mode 100644 index 0000000000..1650c568f5 --- /dev/null +++ b/plugins/Msn/locale/ia/LC_MESSAGES/Msn.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Msn to Interlingua (Interlingua) +# Exported from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Msn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:08+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 10:24:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-msn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "MSN" +msgstr "MSN" + +msgid "" +"The MSN plugin allows users to send and receive notices over the MSN network." +msgstr "" +"Le plug-in de MSN permitte que usatores invia e recipe notas per le rete de " +"MSN." diff --git a/plugins/Msn/locale/mk/LC_MESSAGES/Msn.po b/plugins/Msn/locale/mk/LC_MESSAGES/Msn.po new file mode 100644 index 0000000000..483e7752aa --- /dev/null +++ b/plugins/Msn/locale/mk/LC_MESSAGES/Msn.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Msn to Macedonian (Македонски) +# Exported from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Msn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:08+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 10:24:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-msn\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +msgid "MSN" +msgstr "MSN" + +msgid "" +"The MSN plugin allows users to send and receive notices over the MSN network." +msgstr "" +"Приклучокот за MSN им овозможува на корисниците да испраќаат и примаат " +"забелешки преку мрежата на MSN." diff --git a/plugins/Msn/locale/nl/LC_MESSAGES/Msn.po b/plugins/Msn/locale/nl/LC_MESSAGES/Msn.po new file mode 100644 index 0000000000..51bb78d362 --- /dev/null +++ b/plugins/Msn/locale/nl/LC_MESSAGES/Msn.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Msn to Dutch (Nederlands) +# Exported from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Msn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:08+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 10:24:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-msn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "MSN" +msgstr "MSN" + +msgid "" +"The MSN plugin allows users to send and receive notices over the MSN network." +msgstr "" +"Maakt het mogelijk om mededelingen te zenden naar en ontvangen van het MSN-" +"netwerk." diff --git a/plugins/Msn/locale/pt/LC_MESSAGES/Msn.po b/plugins/Msn/locale/pt/LC_MESSAGES/Msn.po new file mode 100644 index 0000000000..ea7e5719d8 --- /dev/null +++ b/plugins/Msn/locale/pt/LC_MESSAGES/Msn.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - Msn to Portuguese (Português) +# Exported from translatewiki.net +# +# Author: SandroHc +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Msn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:08+0000\n" +"Language-Team: Portuguese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 10:24:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-msn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "MSN" +msgstr "MSN" + +msgid "" +"The MSN plugin allows users to send and receive notices over the MSN network." +msgstr "" diff --git a/plugins/Msn/locale/sv/LC_MESSAGES/Msn.po b/plugins/Msn/locale/sv/LC_MESSAGES/Msn.po new file mode 100644 index 0000000000..d8edf3a616 --- /dev/null +++ b/plugins/Msn/locale/sv/LC_MESSAGES/Msn.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Msn to Swedish (Svenska) +# Exported from translatewiki.net +# +# Author: WikiPhoenix +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Msn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:08+0000\n" +"Language-Team: Swedish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 10:24:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: sv\n" +"X-Message-Group: #out-statusnet-plugin-msn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "MSN" +msgstr "MSN" + +msgid "" +"The MSN plugin allows users to send and receive notices over the MSN network." +msgstr "" +"MSN-tillägget tillåter användare skicka och ta emot meddelanden över MSN-" +"nätverket." diff --git a/plugins/Msn/locale/uk/LC_MESSAGES/Msn.po b/plugins/Msn/locale/uk/LC_MESSAGES/Msn.po new file mode 100644 index 0000000000..6a26fa920e --- /dev/null +++ b/plugins/Msn/locale/uk/LC_MESSAGES/Msn.po @@ -0,0 +1,31 @@ +# Translation of StatusNet - Msn to Ukrainian (Українська) +# Exported from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Msn\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:08+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 10:24:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-msn\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +msgid "MSN" +msgstr "MSN" + +msgid "" +"The MSN plugin allows users to send and receive notices over the MSN network." +msgstr "" +"Додаток MSN дозволяє користувачам надсилати і отримувати дописи у мережі MSN." diff --git a/plugins/NewMenu/locale/ar/LC_MESSAGES/NewMenu.po b/plugins/NewMenu/locale/ar/LC_MESSAGES/NewMenu.po new file mode 100644 index 0000000000..5dbdfaefb1 --- /dev/null +++ b/plugins/NewMenu/locale/ar/LC_MESSAGES/NewMenu.po @@ -0,0 +1,81 @@ +# Translation of StatusNet - NewMenu to Arabic (العربية) +# Exported from translatewiki.net +# +# Author: OsamaK +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NewMenu\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-01-29 21:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:09+0000\n" +"Language-Team: Arabic \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ar\n" +"X-Message-Group: #out-statusnet-plugin-newmenu\n" +"Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ( (n == 1) ? 1 : ( (n == " +"2) ? 2 : ( (n%100 >= 3 && n%100 <= 10) ? 3 : ( (n%100 >= 11 && n%100 <= " +"99) ? 4 : 5 ) ) ) );\n" + +msgid "Home" +msgstr "" + +msgid "Friends timeline" +msgstr "" + +msgid "Profile" +msgstr "" + +msgid "Your profile" +msgstr "" + +msgid "Public" +msgstr "" + +msgid "Everyone on this site" +msgstr "" + +msgid "Settings" +msgstr "" + +msgid "Change your personal settings" +msgstr "" + +msgid "Admin" +msgstr "" + +msgid "Site configuration" +msgstr "" + +msgid "Logout" +msgstr "" + +msgid "Logout from the site" +msgstr "" + +msgid "Login" +msgstr "ادخل" + +msgid "Login to the site" +msgstr "ادخل الموقع" + +msgid "Search" +msgstr "ابحث" + +msgid "Search the site" +msgstr "ابحث في الموقع" + +msgid "IM" +msgstr "المراسلة الفورية" + +msgid "SMS" +msgstr "الرسائل القصيرة" + +msgid "A preview of the new menu layout in StatusNet 1.0." +msgstr "معاينة لتخطيط القوائم الجديد في ستاتسنت 1.0." diff --git a/plugins/NewMenu/locale/br/LC_MESSAGES/NewMenu.po b/plugins/NewMenu/locale/br/LC_MESSAGES/NewMenu.po index 083cd48165..fe661a03d7 100644 --- a/plugins/NewMenu/locale/br/LC_MESSAGES/NewMenu.po +++ b/plugins/NewMenu/locale/br/LC_MESSAGES/NewMenu.po @@ -9,90 +9,71 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NewMenu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:08:58+0000\n" +"POT-Creation-Date: 2011-01-29 21:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:09+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-03 23:18:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-newmenu\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: NewMenuPlugin.php:74 msgid "Home" msgstr "Degemer" -#: NewMenuPlugin.php:75 msgid "Friends timeline" msgstr "" -#: NewMenuPlugin.php:80 msgid "Profile" msgstr "Profil" -#: NewMenuPlugin.php:81 msgid "Your profile" msgstr "Ho profil" -#: NewMenuPlugin.php:85 NewMenuPlugin.php:108 msgid "Public" msgstr "Foran" -#: NewMenuPlugin.php:86 NewMenuPlugin.php:109 msgid "Everyone on this site" msgstr "" -#: NewMenuPlugin.php:90 msgid "Settings" -msgstr "" +msgstr "Arventennoù" -#: NewMenuPlugin.php:91 msgid "Change your personal settings" -msgstr "" +msgstr "Kemmañ hoc'h arventennoù hiniennel" -#: NewMenuPlugin.php:96 msgid "Admin" msgstr "Merour" -#: NewMenuPlugin.php:97 msgid "Site configuration" -msgstr "" +msgstr "Kefluniadur al lec'hienn" -#: NewMenuPlugin.php:102 msgid "Logout" msgstr "Digevreañ" -#: NewMenuPlugin.php:103 msgid "Logout from the site" -msgstr "" +msgstr "Digevreañ diouzh al lec'hienn" -#: NewMenuPlugin.php:113 msgid "Login" msgstr "Kevreañ" -#: NewMenuPlugin.php:114 msgid "Login to the site" -msgstr "" +msgstr "Kevreañ d'al lec'hienn" -#: NewMenuPlugin.php:121 msgid "Search" msgstr "Klask" -#: NewMenuPlugin.php:122 msgid "Search the site" -msgstr "" +msgstr "Klask el lec'hienn" -#: NewMenuPlugin.php:307 msgid "IM" -msgstr "" +msgstr "IM" -#: NewMenuPlugin.php:314 msgid "SMS" msgstr "SMS" -#: NewMenuPlugin.php:406 msgid "A preview of the new menu layout in StatusNet 1.0." msgstr "" diff --git a/plugins/NewMenu/locale/de/LC_MESSAGES/NewMenu.po b/plugins/NewMenu/locale/de/LC_MESSAGES/NewMenu.po index 16bc9b5d8a..5f7b32da1f 100644 --- a/plugins/NewMenu/locale/de/LC_MESSAGES/NewMenu.po +++ b/plugins/NewMenu/locale/de/LC_MESSAGES/NewMenu.po @@ -9,90 +9,71 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NewMenu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:08:58+0000\n" +"POT-Creation-Date: 2011-01-29 21:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:09+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-03 23:18:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-newmenu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: NewMenuPlugin.php:74 msgid "Home" msgstr "Startseite" -#: NewMenuPlugin.php:75 msgid "Friends timeline" msgstr "Zeitstrahl deiner Freunde" -#: NewMenuPlugin.php:80 msgid "Profile" msgstr "Profil" -#: NewMenuPlugin.php:81 msgid "Your profile" msgstr "Ihr Profil" -#: NewMenuPlugin.php:85 NewMenuPlugin.php:108 msgid "Public" msgstr "Öffentlich" -#: NewMenuPlugin.php:86 NewMenuPlugin.php:109 msgid "Everyone on this site" msgstr "Jeder auf dieser Seite" -#: NewMenuPlugin.php:90 msgid "Settings" msgstr "Einstellungen" -#: NewMenuPlugin.php:91 msgid "Change your personal settings" msgstr "Persönliche Einstellungen ändern" -#: NewMenuPlugin.php:96 msgid "Admin" msgstr "Administrator" -#: NewMenuPlugin.php:97 msgid "Site configuration" msgstr "Seitenkonfiguration" -#: NewMenuPlugin.php:102 msgid "Logout" msgstr "Abmelden" -#: NewMenuPlugin.php:103 msgid "Logout from the site" msgstr "Von der Seite abmelden" -#: NewMenuPlugin.php:113 msgid "Login" msgstr "Anmelden" -#: NewMenuPlugin.php:114 msgid "Login to the site" msgstr "Auf der Seite anmelden" -#: NewMenuPlugin.php:121 msgid "Search" msgstr "Suche" -#: NewMenuPlugin.php:122 msgid "Search the site" msgstr "Seite durchsuchen" -#: NewMenuPlugin.php:307 msgid "IM" msgstr "IM" -#: NewMenuPlugin.php:314 msgid "SMS" msgstr "SMS" -#: NewMenuPlugin.php:406 msgid "A preview of the new menu layout in StatusNet 1.0." msgstr "Eine Vorschau auf das neue Menü-Layout in StatusNet 1.0." diff --git a/plugins/NewMenu/locale/ia/LC_MESSAGES/NewMenu.po b/plugins/NewMenu/locale/ia/LC_MESSAGES/NewMenu.po index 1c8a5ffee1..5379e9a424 100644 --- a/plugins/NewMenu/locale/ia/LC_MESSAGES/NewMenu.po +++ b/plugins/NewMenu/locale/ia/LC_MESSAGES/NewMenu.po @@ -10,89 +10,70 @@ msgstr "" "Project-Id-Version: StatusNet - NewMenu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:30+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:09+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-20 20:16:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-newmenu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: NewMenuPlugin.php:74 msgid "Home" msgstr "Initio" -#: NewMenuPlugin.php:75 msgid "Friends timeline" msgstr "Chronologia de amicos" -#: NewMenuPlugin.php:80 msgid "Profile" msgstr "Profilo" -#: NewMenuPlugin.php:81 msgid "Your profile" msgstr "Tu profilo" -#: NewMenuPlugin.php:85 NewMenuPlugin.php:108 msgid "Public" msgstr "Public" -#: NewMenuPlugin.php:86 NewMenuPlugin.php:109 msgid "Everyone on this site" msgstr "Omnes in iste sito" -#: NewMenuPlugin.php:90 msgid "Settings" msgstr "Configurationes" -#: NewMenuPlugin.php:91 msgid "Change your personal settings" msgstr "Cambiar tu optiones personal" -#: NewMenuPlugin.php:96 msgid "Admin" msgstr "Admin" -#: NewMenuPlugin.php:97 msgid "Site configuration" msgstr "Configuration del sito" -#: NewMenuPlugin.php:102 msgid "Logout" msgstr "Clauder session" -#: NewMenuPlugin.php:103 msgid "Logout from the site" msgstr "Terminar le session del sito" -#: NewMenuPlugin.php:113 msgid "Login" msgstr "Aperir session" -#: NewMenuPlugin.php:114 msgid "Login to the site" msgstr "Authenticar te a iste sito" -#: NewMenuPlugin.php:121 msgid "Search" msgstr "Recerca" -#: NewMenuPlugin.php:122 msgid "Search the site" msgstr "Cercar in le sito" -#: NewMenuPlugin.php:307 msgid "IM" msgstr "MI" -#: NewMenuPlugin.php:314 msgid "SMS" msgstr "SMS" -#: NewMenuPlugin.php:406 msgid "A preview of the new menu layout in StatusNet 1.0." msgstr "Un previsualisation del nove apparentia del menus in StatusNet 1.0." diff --git a/plugins/NewMenu/locale/mk/LC_MESSAGES/NewMenu.po b/plugins/NewMenu/locale/mk/LC_MESSAGES/NewMenu.po index 6c409201d0..4b1b47c6bc 100644 --- a/plugins/NewMenu/locale/mk/LC_MESSAGES/NewMenu.po +++ b/plugins/NewMenu/locale/mk/LC_MESSAGES/NewMenu.po @@ -10,89 +10,70 @@ msgstr "" "Project-Id-Version: StatusNet - NewMenu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:30+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:09+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-20 20:16:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-newmenu\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: NewMenuPlugin.php:74 msgid "Home" msgstr "Почетна" -#: NewMenuPlugin.php:75 msgid "Friends timeline" msgstr "Хронологија на пријатели" -#: NewMenuPlugin.php:80 msgid "Profile" msgstr "Профил" -#: NewMenuPlugin.php:81 msgid "Your profile" msgstr "Вашиот профил" -#: NewMenuPlugin.php:85 NewMenuPlugin.php:108 msgid "Public" msgstr "Јавно" -#: NewMenuPlugin.php:86 NewMenuPlugin.php:109 msgid "Everyone on this site" msgstr "Секој на мрежново место" -#: NewMenuPlugin.php:90 msgid "Settings" msgstr "Нагодувања" -#: NewMenuPlugin.php:91 msgid "Change your personal settings" msgstr "Промена на личните нагодувања" -#: NewMenuPlugin.php:96 msgid "Admin" msgstr "Админ" -#: NewMenuPlugin.php:97 msgid "Site configuration" msgstr "Поставки за мрежното место" -#: NewMenuPlugin.php:102 msgid "Logout" msgstr "Одјава" -#: NewMenuPlugin.php:103 msgid "Logout from the site" msgstr "Одјава од мрежното место" -#: NewMenuPlugin.php:113 msgid "Login" msgstr "Најава" -#: NewMenuPlugin.php:114 msgid "Login to the site" msgstr "Најава на мрежното место" -#: NewMenuPlugin.php:121 msgid "Search" msgstr "Пребарај" -#: NewMenuPlugin.php:122 msgid "Search the site" msgstr "Пребарување на мрежното место" -#: NewMenuPlugin.php:307 msgid "IM" msgstr "НП" -#: NewMenuPlugin.php:314 msgid "SMS" msgstr "СМС" -#: NewMenuPlugin.php:406 msgid "A preview of the new menu layout in StatusNet 1.0." msgstr "Преглед на новиот распоред на менито во StatusNet 1.0." diff --git a/plugins/NewMenu/locale/nl/LC_MESSAGES/NewMenu.po b/plugins/NewMenu/locale/nl/LC_MESSAGES/NewMenu.po index 0670ab301e..b1c7cf4913 100644 --- a/plugins/NewMenu/locale/nl/LC_MESSAGES/NewMenu.po +++ b/plugins/NewMenu/locale/nl/LC_MESSAGES/NewMenu.po @@ -10,89 +10,70 @@ msgstr "" "Project-Id-Version: StatusNet - NewMenu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:30+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:10+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-20 20:16:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-newmenu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: NewMenuPlugin.php:74 msgid "Home" msgstr "Hoofdmenu" -#: NewMenuPlugin.php:75 msgid "Friends timeline" msgstr "Tijdlijn van vrienden" -#: NewMenuPlugin.php:80 msgid "Profile" msgstr "Profiel" -#: NewMenuPlugin.php:81 msgid "Your profile" msgstr "Uw profiel" -#: NewMenuPlugin.php:85 NewMenuPlugin.php:108 msgid "Public" msgstr "Publiek" -#: NewMenuPlugin.php:86 NewMenuPlugin.php:109 msgid "Everyone on this site" msgstr "Iedereen binnen deze site" -#: NewMenuPlugin.php:90 msgid "Settings" msgstr "Instellingen" -#: NewMenuPlugin.php:91 msgid "Change your personal settings" msgstr "Uw persoonlijke instellingen wijzigen" -#: NewMenuPlugin.php:96 msgid "Admin" msgstr "Beheer" -#: NewMenuPlugin.php:97 msgid "Site configuration" msgstr "Siteinstellingen" -#: NewMenuPlugin.php:102 msgid "Logout" msgstr "Afmelden" -#: NewMenuPlugin.php:103 msgid "Logout from the site" msgstr "Afmelden van de site" -#: NewMenuPlugin.php:113 msgid "Login" msgstr "Aanmelden" -#: NewMenuPlugin.php:114 msgid "Login to the site" msgstr "Aanmelden bij deze site" -#: NewMenuPlugin.php:121 msgid "Search" msgstr "Zoeken" -#: NewMenuPlugin.php:122 msgid "Search the site" msgstr "De site doorzoeken" -#: NewMenuPlugin.php:307 msgid "IM" msgstr "IM" -#: NewMenuPlugin.php:314 msgid "SMS" msgstr "SMS" -#: NewMenuPlugin.php:406 msgid "A preview of the new menu layout in StatusNet 1.0." msgstr "Een voorproefje van het nieuwe uiterlijk in StatusNet 1.0." diff --git a/plugins/NewMenu/locale/te/LC_MESSAGES/NewMenu.po b/plugins/NewMenu/locale/te/LC_MESSAGES/NewMenu.po index fe7ede2ff7..b7f813c3fe 100644 --- a/plugins/NewMenu/locale/te/LC_MESSAGES/NewMenu.po +++ b/plugins/NewMenu/locale/te/LC_MESSAGES/NewMenu.po @@ -9,90 +9,71 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NewMenu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-02 23:30+0000\n" -"PO-Revision-Date: 2011-02-02 23:37:26+0000\n" +"POT-Creation-Date: 2011-01-29 21:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:10+0000\n" "Language-Team: Telugu \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:25:45+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81409); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: #out-statusnet-plugin-newmenu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: NewMenuPlugin.php:74 msgid "Home" msgstr "ముంగిలి" -#: NewMenuPlugin.php:75 msgid "Friends timeline" msgstr "మిత్రుల కాలరేఖ" -#: NewMenuPlugin.php:80 msgid "Profile" msgstr "ప్రొఫైలు" -#: NewMenuPlugin.php:81 msgid "Your profile" msgstr "మీ ప్రొఫైలు" -#: NewMenuPlugin.php:85 NewMenuPlugin.php:108 msgid "Public" msgstr "బహిరంగం" -#: NewMenuPlugin.php:86 NewMenuPlugin.php:109 msgid "Everyone on this site" msgstr "ఈ సైటులోని ప్రతీ ఒక్కరూ" -#: NewMenuPlugin.php:90 msgid "Settings" msgstr "అమరికలు" -#: NewMenuPlugin.php:91 msgid "Change your personal settings" msgstr "మీ వ్యక్తిగత అమరికలను మార్చుకోండి" -#: NewMenuPlugin.php:96 msgid "Admin" msgstr "" -#: NewMenuPlugin.php:97 msgid "Site configuration" msgstr "సైటు స్వరూపణం" -#: NewMenuPlugin.php:102 msgid "Logout" msgstr "నిష్క్రమించు" -#: NewMenuPlugin.php:103 msgid "Logout from the site" msgstr "సైటు నుండి నిష్క్రమించండి" -#: NewMenuPlugin.php:113 msgid "Login" msgstr "" -#: NewMenuPlugin.php:114 msgid "Login to the site" msgstr "" -#: NewMenuPlugin.php:121 msgid "Search" msgstr "వెతుకు" -#: NewMenuPlugin.php:122 msgid "Search the site" msgstr "సైటులో వెతకండి" -#: NewMenuPlugin.php:307 msgid "IM" msgstr "" -#: NewMenuPlugin.php:314 msgid "SMS" msgstr "" -#: NewMenuPlugin.php:406 msgid "A preview of the new menu layout in StatusNet 1.0." msgstr "" diff --git a/plugins/NewMenu/locale/uk/LC_MESSAGES/NewMenu.po b/plugins/NewMenu/locale/uk/LC_MESSAGES/NewMenu.po index 297e9820f9..1ec1240254 100644 --- a/plugins/NewMenu/locale/uk/LC_MESSAGES/NewMenu.po +++ b/plugins/NewMenu/locale/uk/LC_MESSAGES/NewMenu.po @@ -10,90 +10,71 @@ msgstr "" "Project-Id-Version: StatusNet - NewMenu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:30+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:10+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-20 20:16:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-newmenu\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: NewMenuPlugin.php:74 msgid "Home" msgstr "Дім" -#: NewMenuPlugin.php:75 msgid "Friends timeline" msgstr "Стрічка друзів" -#: NewMenuPlugin.php:80 msgid "Profile" msgstr "Профіль" -#: NewMenuPlugin.php:81 msgid "Your profile" msgstr "Ваш профіль" -#: NewMenuPlugin.php:85 NewMenuPlugin.php:108 msgid "Public" msgstr "Загал" -#: NewMenuPlugin.php:86 NewMenuPlugin.php:109 msgid "Everyone on this site" msgstr "Всі на цьому сайті" -#: NewMenuPlugin.php:90 msgid "Settings" msgstr "Параметри" -#: NewMenuPlugin.php:91 msgid "Change your personal settings" msgstr "Змінити налаштування профілю" -#: NewMenuPlugin.php:96 msgid "Admin" msgstr "Адмін" -#: NewMenuPlugin.php:97 msgid "Site configuration" msgstr "Конфігурація сайту" -#: NewMenuPlugin.php:102 msgid "Logout" msgstr "Вийти" -#: NewMenuPlugin.php:103 msgid "Logout from the site" msgstr "Вийти з сайту" -#: NewMenuPlugin.php:113 msgid "Login" msgstr "Увійти" -#: NewMenuPlugin.php:114 msgid "Login to the site" msgstr "Увійти на сайт" -#: NewMenuPlugin.php:121 msgid "Search" msgstr "Пошук" -#: NewMenuPlugin.php:122 msgid "Search the site" msgstr "Пошук на сайті" -#: NewMenuPlugin.php:307 msgid "IM" msgstr "ІМ" -#: NewMenuPlugin.php:314 msgid "SMS" msgstr "СМС" -#: NewMenuPlugin.php:406 msgid "A preview of the new menu layout in StatusNet 1.0." msgstr "Попередній перегляд нового макета меню в StatusNet 1.0" diff --git a/plugins/NewMenu/locale/zh_CN/LC_MESSAGES/NewMenu.po b/plugins/NewMenu/locale/zh_CN/LC_MESSAGES/NewMenu.po index 8fe563a170..ced03ff4f3 100644 --- a/plugins/NewMenu/locale/zh_CN/LC_MESSAGES/NewMenu.po +++ b/plugins/NewMenu/locale/zh_CN/LC_MESSAGES/NewMenu.po @@ -9,91 +9,72 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NewMenu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-24 10:32+0000\n" -"PO-Revision-Date: 2011-02-24 10:39:55+0000\n" +"POT-Creation-Date: 2011-01-29 21:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:10+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:21:59+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82712); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-newmenu\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: NewMenuPlugin.php:74 msgid "Home" msgstr "首页" -#: NewMenuPlugin.php:75 msgid "Friends timeline" msgstr "时间轴的朋友" -#: NewMenuPlugin.php:80 msgid "Profile" msgstr "配置文件" -#: NewMenuPlugin.php:81 msgid "Your profile" msgstr "您的配置文件" -#: NewMenuPlugin.php:85 NewMenuPlugin.php:108 msgid "Public" msgstr "市民" -#: NewMenuPlugin.php:86 NewMenuPlugin.php:109 msgid "Everyone on this site" msgstr "此站点上的每个人" -#: NewMenuPlugin.php:90 msgid "Settings" msgstr "设置" -#: NewMenuPlugin.php:91 msgid "Change your personal settings" msgstr "更改您的个人设置" -#: NewMenuPlugin.php:96 msgid "Admin" msgstr "管理员" -#: NewMenuPlugin.php:97 msgid "Site configuration" msgstr "网站配置" -#: NewMenuPlugin.php:102 msgid "Logout" msgstr "注销" -#: NewMenuPlugin.php:103 msgid "Logout from the site" msgstr "从网站登出" -#: NewMenuPlugin.php:113 msgid "Login" msgstr "登录" -#: NewMenuPlugin.php:114 msgid "Login to the site" msgstr "登录这个网站" -#: NewMenuPlugin.php:121 msgid "Search" msgstr "搜索" -#: NewMenuPlugin.php:122 msgid "Search the site" msgstr "" -#: NewMenuPlugin.php:307 msgid "IM" msgstr "" -#: NewMenuPlugin.php:314 msgid "SMS" msgstr "" -#: NewMenuPlugin.php:406 msgid "A preview of the new menu layout in StatusNet 1.0." msgstr "" diff --git a/plugins/NoticeTitle/locale/NoticeTitle.pot b/plugins/NoticeTitle/locale/NoticeTitle.pot index babb054ff8..47446bab8e 100644 --- a/plugins/NoticeTitle/locale/NoticeTitle.pot +++ b/plugins/NoticeTitle/locale/NoticeTitle.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/NoticeTitle/locale/ar/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/ar/LC_MESSAGES/NoticeTitle.po index 574eaa808b..ad8fcf7b33 100644 --- a/plugins/NoticeTitle/locale/ar/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/ar/LC_MESSAGES/NoticeTitle.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:31+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:10+0000\n" "Language-Team: Arabic \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ar\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" @@ -23,12 +23,10 @@ msgstr "" "2) ? 2 : ( (n%100 >= 3 && n%100 <= 10) ? 3 : ( (n%100 >= 11 && n%100 <= " "99) ? 4 : 5 ) ) ) );\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "يضيف عناوين اختيارية إلى الإشعارات." #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/br/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/br/LC_MESSAGES/NoticeTitle.po index 7ae383144d..49d5c48155 100644 --- a/plugins/NoticeTitle/locale/br/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/br/LC_MESSAGES/NoticeTitle.po @@ -10,24 +10,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:31+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:10+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "Ouzhpennañ a ra titloù diret d'ar c'hemennoù." #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/de/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/de/LC_MESSAGES/NoticeTitle.po index 8b2f97a0a2..a5273e5d10 100644 --- a/plugins/NoticeTitle/locale/de/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/de/LC_MESSAGES/NoticeTitle.po @@ -9,24 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:31+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:10+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "Fügt Nachrichten optionale Titel hinzu." #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s – %2$s" diff --git a/plugins/NoticeTitle/locale/fr/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/fr/LC_MESSAGES/NoticeTitle.po index 6b725e4b3a..71903d452e 100644 --- a/plugins/NoticeTitle/locale/fr/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/fr/LC_MESSAGES/NoticeTitle.po @@ -9,24 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:31+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:10+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "Ajoute des titres optionnels aux avis." #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s — %2$s" diff --git a/plugins/NoticeTitle/locale/he/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/he/LC_MESSAGES/NoticeTitle.po index c1244362c1..b96e3d3d49 100644 --- a/plugins/NoticeTitle/locale/he/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/he/LC_MESSAGES/NoticeTitle.po @@ -9,24 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:31+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:10+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "הוספת כותרת (לא הכרחית) להתרעות." #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s – %2$s" diff --git a/plugins/NoticeTitle/locale/ia/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/ia/LC_MESSAGES/NoticeTitle.po index 1d573eaa7b..e958165796 100644 --- a/plugins/NoticeTitle/locale/ia/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/ia/LC_MESSAGES/NoticeTitle.po @@ -9,24 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:31+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:10+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "Adde optional titulos a notas." #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/mk/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/mk/LC_MESSAGES/NoticeTitle.po index 1ef0b05bff..ab461b42cc 100644 --- a/plugins/NoticeTitle/locale/mk/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/mk/LC_MESSAGES/NoticeTitle.po @@ -9,24 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:31+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:10+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "Додава наслови на забелешките (по избор)." #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/nb/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/nb/LC_MESSAGES/NoticeTitle.po index b3a2e5360c..334758d0e8 100644 --- a/plugins/NoticeTitle/locale/nb/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/nb/LC_MESSAGES/NoticeTitle.po @@ -9,24 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:31+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "Legger valgfrie titler til notiser." #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/ne/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/ne/LC_MESSAGES/NoticeTitle.po index eb4c85bdaf..50f736c384 100644 --- a/plugins/NoticeTitle/locale/ne/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/ne/LC_MESSAGES/NoticeTitle.po @@ -9,24 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:31+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:10+0000\n" "Language-Team: Nepali \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ne\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "सूचनाकोलागि वैकल्पिक शीर्षकहरु जोड्छ" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/nl/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/nl/LC_MESSAGES/NoticeTitle.po index 86d0ae00bb..ecae6a2024 100644 --- a/plugins/NoticeTitle/locale/nl/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/nl/LC_MESSAGES/NoticeTitle.po @@ -9,24 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:31+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:10+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "Voegt optioneel titels toe aan mededelingen." #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/pl/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/pl/LC_MESSAGES/NoticeTitle.po index 6645d10dd8..9f8f29edea 100644 --- a/plugins/NoticeTitle/locale/pl/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/pl/LC_MESSAGES/NoticeTitle.po @@ -9,25 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:31+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" "Language-Team: Polish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pl\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && " "(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/pt/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/pt/LC_MESSAGES/NoticeTitle.po new file mode 100644 index 0000000000..6ed3c55591 --- /dev/null +++ b/plugins/NoticeTitle/locale/pt/LC_MESSAGES/NoticeTitle.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - NoticeTitle to Portuguese (Português) +# Exported from translatewiki.net +# +# Author: SandroHc +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - NoticeTitle\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" +"Language-Team: Portuguese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-noticetitle\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Adds optional titles to notices." +msgstr "" + +#. TRANS: Page title. %1$s is the title, %2$s is the site name. +#, php-format +msgid "%1$s - %2$s" +msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/ru/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/ru/LC_MESSAGES/NoticeTitle.po index 20dde0703d..0d3feb0416 100644 --- a/plugins/NoticeTitle/locale/ru/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/ru/LC_MESSAGES/NoticeTitle.po @@ -9,25 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:31+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "Добавляет необязательный заголовок для сообщений." #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s — %2$s" diff --git a/plugins/NoticeTitle/locale/te/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/te/LC_MESSAGES/NoticeTitle.po index 3140493f65..b6c05ccc8c 100644 --- a/plugins/NoticeTitle/locale/te/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/te/LC_MESSAGES/NoticeTitle.po @@ -9,24 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:32+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" "Language-Team: Telugu \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/tl/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/tl/LC_MESSAGES/NoticeTitle.po index 91c19e793d..cd4a9ad4fe 100644 --- a/plugins/NoticeTitle/locale/tl/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/tl/LC_MESSAGES/NoticeTitle.po @@ -9,24 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:32+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "Nagdaragdag ng maaaring wala na mga pamagat sa mga pabatid." #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr " %1$s - %2$s" diff --git a/plugins/NoticeTitle/locale/uk/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/uk/LC_MESSAGES/NoticeTitle.po index d8d7dc497e..291e0e0694 100644 --- a/plugins/NoticeTitle/locale/uk/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/uk/LC_MESSAGES/NoticeTitle.po @@ -9,25 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:32+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "Додавати до повідомлень необов’язкові заголовки." #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "%1$s — %2$s" diff --git a/plugins/NoticeTitle/locale/zh_CN/LC_MESSAGES/NoticeTitle.po b/plugins/NoticeTitle/locale/zh_CN/LC_MESSAGES/NoticeTitle.po index 0a5f69783c..8773f709a2 100644 --- a/plugins/NoticeTitle/locale/zh_CN/LC_MESSAGES/NoticeTitle.po +++ b/plugins/NoticeTitle/locale/zh_CN/LC_MESSAGES/NoticeTitle.po @@ -9,25 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - NoticeTitle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:32+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-noticetitle\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: NoticeTitlePlugin.php:132 msgid "Adds optional titles to notices." msgstr "为消息添加可选的标题。" #. TRANS: Page title. %1$s is the title, %2$s is the site name. -#: NoticeTitlePlugin.php:314 #, php-format msgid "%1$s - %2$s" msgstr "" diff --git a/plugins/OStatus/OStatusPlugin.php b/plugins/OStatus/OStatusPlugin.php index 666683affc..77b64dbb1d 100644 --- a/plugins/OStatus/OStatusPlugin.php +++ b/plugins/OStatus/OStatusPlugin.php @@ -232,18 +232,21 @@ class OStatusPlugin extends Plugin return false; } - function onStartGroupSubscribe($output, $group) + function onStartGroupSubscribe($widget, $group) { $cur = common_current_user(); if (empty($cur)) { - // Add an OStatus subscribe + $output->elementStart('li', 'entity_subscribe'); + $profile = $peopletag->getTagger(); $url = common_local_url('ostatusinit', array('group' => $group->nickname)); - $output->element('a', array('href' => $url, + $widget->out->element('a', array('href' => $url, 'class' => 'entity_remote_subscribe'), - _m('Join')); + _m('Subscribe')); + $output->elementEnd('li'); + return false; } return true; diff --git a/plugins/OStatus/locale/OStatus.pot b/plugins/OStatus/locale/OStatus.pot index ce414e189c..2bcc527741 100644 --- a/plugins/OStatus/locale/OStatus.pot +++ b/plugins/OStatus/locale/OStatus.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,6 +16,10 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +#: tests/gettext-speedtest.php:57 +msgid "Feeds" +msgstr "" + #. TRANS: Link description for link to subscribe to a remote user. #. TRANS: Link text for a user to subscribe to an OStatus user. #: OStatusPlugin.php:223 OStatusPlugin.php:933 @@ -111,6 +115,388 @@ msgid "" "org/\">OStatus." msgstr "" +#. TRANS: Client exception. +#: actions/pushhub.php:70 +msgid "Publishing outside feeds not supported." +msgstr "" + +#. TRANS: Client exception. %s is a mode. +#: actions/pushhub.php:73 +#, php-format +msgid "Unrecognized mode \"%s\"." +msgstr "" + +#. TRANS: Client exception. %s is a topic. +#: actions/pushhub.php:93 +#, php-format +msgid "" +"Unsupported hub.topic %s this hub only serves local user and group Atom " +"feeds." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:99 +#, php-format +msgid "Invalid hub.verify \"%s\". It must be sync or async." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:105 +#, php-format +msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:113 +#, php-format +msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:165 +#, php-format +msgid "Invalid hub.topic \"%s\". User doesn't exist." +msgstr "" + +#. TRANS: Client exception. +#: actions/pushhub.php:174 +#, php-format +msgid "Invalid hub.topic \"%s\". Group doesn't exist." +msgstr "" + +#. TRANS: Client exception. +#. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. +#: actions/pushhub.php:199 +#, php-format +msgid "Invalid URL passed for %1$s: \"%2$s\"" +msgstr "" + +#: actions/pushcallback.php:50 +msgid "Empty or invalid feed id." +msgstr "" + +#. TRANS: Server exception. %s is a feed ID. +#: actions/pushcallback.php:56 +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "" + +#. TRANS: Client exception. %s is an invalid feed name. +#: actions/pushcallback.php:96 +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "" + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#: actions/pushcallback.php:101 +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "" + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:108 +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "" + +#. TRANS: Client exception. %s is an invalid topic. +#: actions/pushcallback.php:113 +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "" + +#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "No such user." +msgstr "" + +#. TRANS: Field label for a field that takes an OStatus user address. +#: actions/ostatussub.php:68 +msgid "Subscribe to" +msgstr "" + +#. TRANS: Tooltip for field label "Subscribe to". +#: actions/ostatussub.php:71 +msgid "" +"OStatus user's address, like nickname@example.com or http://example.net/" +"nickname" +msgstr "" + +#. TRANS: Button text. +#: actions/ostatussub.php:75 actions/ostatusgroup.php:86 +msgctxt "BUTTON" +msgid "Continue" +msgstr "" + +#. TRANS: Button text. +#. TRANS: Tooltip for button "Join". +#: actions/ostatussub.php:112 +msgctxt "BUTTON" +msgid "Join this group" +msgstr "" + +#. TRANS: Button text. +#: actions/ostatussub.php:115 +msgctxt "BUTTON" +msgid "Confirm" +msgstr "" + +#. TRANS: Tooltip for button "Confirm". +#: actions/ostatussub.php:117 +msgid "Subscribe to this user" +msgstr "" + +#: actions/ostatussub.php:138 +msgid "You are already subscribed to this user." +msgstr "" + +#. TRANS: Error text. +#: actions/ostatussub.php:232 actions/ostatussub.php:239 +#: actions/ostatussub.php:264 +msgid "" +"Sorry, we could not reach that address. Please make sure that the OStatus " +"address is like nickname@example.com or http://example.net/nickname." +msgstr "" + +#. TRANS: Error text. +#: actions/ostatussub.php:243 actions/ostatussub.php:247 +#: actions/ostatussub.php:251 actions/ostatussub.php:255 +#: actions/ostatussub.php:259 +msgid "" +"Sorry, we could not reach that feed. Please try that OStatus address again " +"later." +msgstr "" + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:293 +msgid "Already subscribed!" +msgstr "" + +#. TRANS: OStatus remote subscription dialog error. +#: actions/ostatussub.php:298 +msgid "Remote subscription failed!" +msgstr "" + +#: actions/ostatussub.php:345 actions/ostatusinit.php:64 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#. TRANS: Form title. +#: actions/ostatussub.php:373 actions/ostatusinit.php:83 +msgid "Subscribe to user" +msgstr "" + +#. TRANS: Page title for OStatus remote subscription form +#: actions/ostatussub.php:393 +msgid "Confirm" +msgstr "" + +#. TRANS: Instructions. +#: actions/ostatussub.php:405 +msgid "" +"You can subscribe to users from other supported sites. Paste their address " +"or profile URI below:" +msgstr "" + +#. TRANS: Field label. +#: actions/ostatusgroup.php:78 +msgid "Join group" +msgstr "" + +#. TRANS: Tooltip for field label "Join group". +#: actions/ostatusgroup.php:81 +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" + +#: actions/ostatusgroup.php:105 +msgid "You are already a member of this group." +msgstr "" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:140 +msgid "Already a member!" +msgstr "" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:151 +msgid "Remote group join failed!" +msgstr "" + +#. TRANS: OStatus remote group subscription dialog error. +#: actions/ostatusgroup.php:155 +msgid "Remote group join aborted!" +msgstr "" + +#. TRANS: Page title for OStatus remote group join form +#: actions/ostatusgroup.php:167 +msgid "Confirm joining remote group" +msgstr "" + +#. TRANS: Instructions. +#: actions/ostatusgroup.php:178 +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" + +#. TRANS: Client error. +#: actions/usersalmon.php:37 actions/groupsalmon.php:40 +msgid "No ID." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:83 +msgid "In reply to unknown notice." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:88 +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:165 +msgid "Could not save new favorite." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:197 +msgid "Can't favorite/unfavorite without an object." +msgstr "" + +#. TRANS: Client exception. +#: actions/usersalmon.php:209 +msgid "Can't handle that kind of object for liking/faving." +msgstr "" + +#. TRANS: Client exception. %s is an object ID. +#: actions/usersalmon.php:216 +#, php-format +msgid "Notice with ID %s unknown." +msgstr "" + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#: actions/usersalmon.php:221 +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "" + +#. TRANS: Client error. +#: actions/groupsalmon.php:47 +msgid "No such group." +msgstr "" + +#. TRANS: Client error. +#: actions/groupsalmon.php:56 +msgid "Can't accept remote posts for a remote group." +msgstr "" + +#. TRANS: Client error. +#: actions/groupsalmon.php:130 +msgid "Can't read profile to set up group membership." +msgstr "" + +#. TRANS: Client error. +#: actions/groupsalmon.php:134 actions/groupsalmon.php:177 +msgid "Groups can't join groups." +msgstr "" + +#: actions/groupsalmon.php:147 +msgid "You have been blocked from that group by the admin." +msgstr "" + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:162 +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "" + +#: actions/groupsalmon.php:174 +msgid "Can't read profile to cancel group membership." +msgstr "" + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#: actions/groupsalmon.php:191 +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "" + +#. TRANS: Client error. +#: actions/ostatusinit.php:42 +msgid "You can use the local subscription!" +msgstr "" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:98 +#, php-format +msgid "Join group %s" +msgstr "" + +#. TRANS: Button text. +#: actions/ostatusinit.php:100 +msgctxt "BUTTON" +msgid "Join" +msgstr "" + +#. TRANS: Form legend. +#: actions/ostatusinit.php:103 +#, php-format +msgid "Subscribe to %s" +msgstr "" + +#. TRANS: Button text. +#: actions/ostatusinit.php:105 +msgctxt "BUTTON" +msgid "Subscribe" +msgstr "" + +#. TRANS: Field label. +#: actions/ostatusinit.php:119 +msgid "Group nickname" +msgstr "" + +#: actions/ostatusinit.php:120 +msgid "Nickname of the group you want to join." +msgstr "" + +#. TRANS: Field label. +#: actions/ostatusinit.php:123 +msgid "User nickname" +msgstr "" + +#: actions/ostatusinit.php:124 +msgid "Nickname of the user you want to follow." +msgstr "" + +#. TRANS: Field label. +#: actions/ostatusinit.php:129 +msgid "Profile Account" +msgstr "" + +#. TRANS: Tooltip for field label "Profile Account". +#: actions/ostatusinit.php:131 +msgid "Your account id (e.g. user@identi.ca)." +msgstr "" + +#. TRANS: Client error. +#: actions/ostatusinit.php:153 +msgid "Must provide a remote profile." +msgstr "" + +#. TRANS: Client error. +#: actions/ostatusinit.php:165 +msgid "Couldn't look up OStatus account profile." +msgstr "" + +#. TRANS: Client error. +#: actions/ostatusinit.php:178 +msgid "Couldn't confirm remote profile address." +msgstr "" + +#. TRANS: Page title. +#: actions/ostatusinit.php:223 +msgid "OStatus Connect" +msgstr "" + #: classes/FeedSub.php:252 msgid "Attempting to start PuSH subscription for feed with no hub." msgstr "" @@ -267,6 +653,16 @@ msgstr "" msgid "Callback returned status: %1$s. Body: %2$s" msgstr "" +#. TRANS: Exception. +#: lib/magicenvelope.php:80 +msgid "Unable to locate signer public key." +msgstr "" + +#. TRANS: Exception. +#: lib/salmon.php:126 +msgid "Salmon invalid actor for signing." +msgstr "" + #. TRANS: Client error. POST is a HTTP command. It should not be translated. #: lib/salmonaction.php:43 msgid "This method requires a POST." @@ -336,399 +732,3 @@ msgstr "" #: lib/salmonaction.php:200 msgid "Received a salmon slap from unidentified actor." msgstr "" - -#. TRANS: Exception. -#: lib/magicenvelope.php:80 -msgid "Unable to locate signer public key." -msgstr "" - -#. TRANS: Exception. -#: lib/salmon.php:126 -msgid "Salmon invalid actor for signing." -msgstr "" - -#: tests/gettext-speedtest.php:57 -msgid "Feeds" -msgstr "" - -#. TRANS: Client exception. -#: actions/pushhub.php:70 -msgid "Publishing outside feeds not supported." -msgstr "" - -#. TRANS: Client exception. %s is a mode. -#: actions/pushhub.php:73 -#, php-format -msgid "Unrecognized mode \"%s\"." -msgstr "" - -#. TRANS: Client exception. %s is a topic. -#: actions/pushhub.php:93 -#, php-format -msgid "" -"Unsupported hub.topic %s this hub only serves local user and group Atom " -"feeds." -msgstr "" - -#. TRANS: Client exception. -#: actions/pushhub.php:99 -#, php-format -msgid "Invalid hub.verify \"%s\". It must be sync or async." -msgstr "" - -#. TRANS: Client exception. -#: actions/pushhub.php:105 -#, php-format -msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." -msgstr "" - -#. TRANS: Client exception. -#: actions/pushhub.php:113 -#, php-format -msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." -msgstr "" - -#. TRANS: Client exception. -#: actions/pushhub.php:165 -#, php-format -msgid "Invalid hub.topic \"%s\". User doesn't exist." -msgstr "" - -#. TRANS: Client exception. -#: actions/pushhub.php:174 -#, php-format -msgid "Invalid hub.topic \"%s\". Group doesn't exist." -msgstr "" - -#. TRANS: Client exception. -#. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. -#: actions/pushhub.php:199 -#, php-format -msgid "Invalid URL passed for %1$s: \"%2$s\"" -msgstr "" - -#: actions/ownerxrd.php:39 actions/usersalmon.php:43 -msgid "No such user." -msgstr "" - -#. TRANS: Client error. -#: actions/usersalmon.php:37 actions/groupsalmon.php:40 -msgid "No ID." -msgstr "" - -#. TRANS: Client exception. -#: actions/usersalmon.php:83 -msgid "In reply to unknown notice." -msgstr "" - -#. TRANS: Client exception. -#: actions/usersalmon.php:88 -msgid "In reply to a notice not by this user and not mentioning this user." -msgstr "" - -#. TRANS: Client exception. -#: actions/usersalmon.php:165 -msgid "Could not save new favorite." -msgstr "" - -#. TRANS: Client exception. -#: actions/usersalmon.php:197 -msgid "Can't favorite/unfavorite without an object." -msgstr "" - -#. TRANS: Client exception. -#: actions/usersalmon.php:209 -msgid "Can't handle that kind of object for liking/faving." -msgstr "" - -#. TRANS: Client exception. %s is an object ID. -#: actions/usersalmon.php:216 -#, php-format -msgid "Notice with ID %s unknown." -msgstr "" - -#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. -#: actions/usersalmon.php:221 -#, php-format -msgid "Notice with ID %1$s not posted by %2$s." -msgstr "" - -#. TRANS: Field label. -#: actions/ostatusgroup.php:78 -msgid "Join group" -msgstr "" - -#. TRANS: Tooltip for field label "Join group". -#: actions/ostatusgroup.php:81 -msgid "OStatus group's address, like http://example.net/group/nickname." -msgstr "" - -#. TRANS: Button text. -#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 -msgctxt "BUTTON" -msgid "Continue" -msgstr "" - -#: actions/ostatusgroup.php:105 -msgid "You are already a member of this group." -msgstr "" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:140 -msgid "Already a member!" -msgstr "" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:151 -msgid "Remote group join failed!" -msgstr "" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:155 -msgid "Remote group join aborted!" -msgstr "" - -#. TRANS: Page title for OStatus remote group join form -#: actions/ostatusgroup.php:167 -msgid "Confirm joining remote group" -msgstr "" - -#. TRANS: Instructions. -#: actions/ostatusgroup.php:178 -msgid "" -"You can subscribe to groups from other supported sites. Paste the group's " -"profile URI below:" -msgstr "" - -#. TRANS: Client error. -#: actions/groupsalmon.php:47 -msgid "No such group." -msgstr "" - -#. TRANS: Client error. -#: actions/groupsalmon.php:56 -msgid "Can't accept remote posts for a remote group." -msgstr "" - -#. TRANS: Client error. -#: actions/groupsalmon.php:130 -msgid "Can't read profile to set up group membership." -msgstr "" - -#. TRANS: Client error. -#: actions/groupsalmon.php:134 actions/groupsalmon.php:177 -msgid "Groups can't join groups." -msgstr "" - -#: actions/groupsalmon.php:147 -msgid "You have been blocked from that group by the admin." -msgstr "" - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:162 -#, php-format -msgid "Could not join remote user %1$s to group %2$s." -msgstr "" - -#: actions/groupsalmon.php:174 -msgid "Can't read profile to cancel group membership." -msgstr "" - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:191 -#, php-format -msgid "Could not remove remote user %1$s from group %2$s." -msgstr "" - -#. TRANS: Field label for a field that takes an OStatus user address. -#: actions/ostatussub.php:68 -msgid "Subscribe to" -msgstr "" - -#. TRANS: Tooltip for field label "Subscribe to". -#: actions/ostatussub.php:71 -msgid "" -"OStatus user's address, like nickname@example.com or http://example.net/" -"nickname" -msgstr "" - -#. TRANS: Button text. -#. TRANS: Tooltip for button "Join". -#: actions/ostatussub.php:112 -msgctxt "BUTTON" -msgid "Join this group" -msgstr "" - -#. TRANS: Button text. -#: actions/ostatussub.php:115 -msgctxt "BUTTON" -msgid "Confirm" -msgstr "" - -#. TRANS: Tooltip for button "Confirm". -#: actions/ostatussub.php:117 -msgid "Subscribe to this user" -msgstr "" - -#: actions/ostatussub.php:138 -msgid "You are already subscribed to this user." -msgstr "" - -#. TRANS: Error text. -#: actions/ostatussub.php:232 actions/ostatussub.php:239 -#: actions/ostatussub.php:264 -msgid "" -"Sorry, we could not reach that address. Please make sure that the OStatus " -"address is like nickname@example.com or http://example.net/nickname." -msgstr "" - -#. TRANS: Error text. -#: actions/ostatussub.php:243 actions/ostatussub.php:247 -#: actions/ostatussub.php:251 actions/ostatussub.php:255 -#: actions/ostatussub.php:259 -msgid "" -"Sorry, we could not reach that feed. Please try that OStatus address again " -"later." -msgstr "" - -#. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:293 -msgid "Already subscribed!" -msgstr "" - -#. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:298 -msgid "Remote subscription failed!" -msgstr "" - -#: actions/ostatussub.php:345 actions/ostatusinit.php:64 -msgid "There was a problem with your session token. Try again, please." -msgstr "" - -#. TRANS: Form title. -#: actions/ostatussub.php:373 actions/ostatusinit.php:83 -msgid "Subscribe to user" -msgstr "" - -#. TRANS: Page title for OStatus remote subscription form -#: actions/ostatussub.php:393 -msgid "Confirm" -msgstr "" - -#. TRANS: Instructions. -#: actions/ostatussub.php:405 -msgid "" -"You can subscribe to users from other supported sites. Paste their address " -"or profile URI below:" -msgstr "" - -#. TRANS: Client error. -#: actions/ostatusinit.php:42 -msgid "You can use the local subscription!" -msgstr "" - -#. TRANS: Form legend. -#: actions/ostatusinit.php:98 -#, php-format -msgid "Join group %s" -msgstr "" - -#. TRANS: Button text. -#: actions/ostatusinit.php:100 -msgctxt "BUTTON" -msgid "Join" -msgstr "" - -#. TRANS: Form legend. -#: actions/ostatusinit.php:103 -#, php-format -msgid "Subscribe to %s" -msgstr "" - -#. TRANS: Button text. -#: actions/ostatusinit.php:105 -msgctxt "BUTTON" -msgid "Subscribe" -msgstr "" - -#. TRANS: Field label. -#: actions/ostatusinit.php:119 -msgid "Group nickname" -msgstr "" - -#: actions/ostatusinit.php:120 -msgid "Nickname of the group you want to join." -msgstr "" - -#. TRANS: Field label. -#: actions/ostatusinit.php:123 -msgid "User nickname" -msgstr "" - -#: actions/ostatusinit.php:124 -msgid "Nickname of the user you want to follow." -msgstr "" - -#. TRANS: Field label. -#: actions/ostatusinit.php:129 -msgid "Profile Account" -msgstr "" - -#. TRANS: Tooltip for field label "Profile Account". -#: actions/ostatusinit.php:131 -msgid "Your account id (e.g. user@identi.ca)." -msgstr "" - -#. TRANS: Client error. -#: actions/ostatusinit.php:153 -msgid "Must provide a remote profile." -msgstr "" - -#. TRANS: Client error. -#: actions/ostatusinit.php:165 -msgid "Couldn't look up OStatus account profile." -msgstr "" - -#. TRANS: Client error. -#: actions/ostatusinit.php:178 -msgid "Couldn't confirm remote profile address." -msgstr "" - -#. TRANS: Page title. -#: actions/ostatusinit.php:223 -msgid "OStatus Connect" -msgstr "" - -#: actions/pushcallback.php:50 -msgid "Empty or invalid feed id." -msgstr "" - -#. TRANS: Server exception. %s is a feed ID. -#: actions/pushcallback.php:56 -#, php-format -msgid "Unknown PuSH feed id %s" -msgstr "" - -#. TRANS: Client exception. %s is an invalid feed name. -#: actions/pushcallback.php:96 -#, php-format -msgid "Bad hub.topic feed \"%s\"." -msgstr "" - -#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. -#: actions/pushcallback.php:101 -#, php-format -msgid "Bad hub.verify_token %1$s for %2$s." -msgstr "" - -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:108 -#, php-format -msgid "Unexpected subscribe request for %s." -msgstr "" - -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:113 -#, php-format -msgid "Unexpected unsubscribe request for %s." -msgstr "" diff --git a/plugins/OStatus/locale/de/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/de/LC_MESSAGES/OStatus.po index 9566496f7e..3934b46fc5 100644 --- a/plugins/OStatus/locale/de/LC_MESSAGES/OStatus.po +++ b/plugins/OStatus/locale/de/LC_MESSAGES/OStatus.po @@ -10,108 +10,94 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OStatus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:45+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:28+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:01+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-ostatus\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Feeds" +msgstr "Feeds" + #. TRANS: Link description for link to subscribe to a remote user. #. TRANS: Link text for a user to subscribe to an OStatus user. -#: OStatusPlugin.php:223 OStatusPlugin.php:933 msgid "Subscribe" msgstr "Abonnieren" #. TRANS: Link description for link to join a remote group. -#: OStatusPlugin.php:242 OStatusPlugin.php:651 actions/ostatussub.php:109 msgid "Join" msgstr "Beitreten" #. TRANSLATE: %s is a domain. -#: OStatusPlugin.php:455 #, php-format msgid "Sent from %s via OStatus" msgstr "Gesendet von %s über OStatus" #. TRANS: Exception. -#: OStatusPlugin.php:527 msgid "Could not set up remote subscription." msgstr "Konnte Remote-Abonnement nicht einrichten." -#: OStatusPlugin.php:601 msgid "Unfollow" msgstr "Nicht mehr beachten" #. TRANS: Success message for unsubscribe from user attempt through OStatus. #. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. -#: OStatusPlugin.php:604 #, php-format msgid "%1$s stopped following %2$s." msgstr "%1$s folgt %2$s nicht mehr." -#: OStatusPlugin.php:632 msgid "Could not set up remote group membership." msgstr "Konnte Remotegruppenmitgliedschaft nicht einrichten." #. TRANS: Success message for subscribe to group attempt through OStatus. #. TRANS: %1$s is the member name, %2$s is the subscribed group's name. -#: OStatusPlugin.php:654 #, php-format msgid "%1$s has joined group %2$s." msgstr "%1$s ist der Gruppe %2$s beigetreten" #. TRANS: Exception. -#: OStatusPlugin.php:663 msgid "Failed joining remote group." msgstr "Fehler beim Beitreten der Remotegruppe." -#: OStatusPlugin.php:703 msgid "Leave" msgstr "Verlassen" #. TRANS: Success message for unsubscribe from group attempt through OStatus. #. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. -#: OStatusPlugin.php:706 #, php-format msgid "%1$s has left group %2$s." msgstr "%1$s hat die Gruppe %2$s verlassen" -#: OStatusPlugin.php:781 msgid "Disfavor" msgstr "" #. TRANS: Success message for remove a favorite notice through OStatus. #. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. -#: OStatusPlugin.php:784 #, php-format msgid "%1$s marked notice %2$s as no longer a favorite." msgstr "%1$s markierte Nachricht %2$s nicht mehr als Favorit." #. TRANS: Link text for link to remote subscribe. -#: OStatusPlugin.php:860 msgid "Remote" msgstr "" #. TRANS: Title for activity. -#: OStatusPlugin.php:900 msgid "Profile update" msgstr "Profil aktualisieren" #. TRANS: Ping text for remote profile update through OStatus. #. TRANS: %s is user that updated their profile. -#: OStatusPlugin.php:903 #, php-format msgid "%s has updated their profile page." msgstr "%s hat die Profil-Seite aktualisiert." #. TRANS: Plugin description. -#: OStatusPlugin.php:948 msgid "" "Follow people across social networks that implement OStatus." @@ -119,272 +105,16 @@ msgstr "" "Folge Leuten quer durch die sozialen Netzwerke, die OStatus implementieren." -#: classes/FeedSub.php:252 -msgid "Attempting to start PuSH subscription for feed with no hub." -msgstr "" -"Es wird versucht, ein PuSH-Abonnemont für einen Feed ohne Hub zu starten." - -#: classes/FeedSub.php:282 -msgid "Attempting to end PuSH subscription for feed with no hub." -msgstr "" -"Es wird versucht, ein PuSH-Abonnemont für einen Feed ohne Hub zu beenden." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:154 -#, php-format -msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." -msgstr "" -"Ungültiger ostatus_profile-Zustand: Sowohl Gruppen- als auch Profil-ID für %" -"s gesetzt." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:157 -#, php-format -msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." -msgstr "" -"Ungültiger ostatus_profile-Zustand: Sowohl Gruppen- als auch Profil-ID für %" -"s sind leer." - -#. TRANS: Server exception. -#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. -#: classes/Ostatus_profile.php:247 -#, php-format -msgid "Invalid actor passed to %1$s: %2$s." -msgstr "Ungültiger actor an %1$s übergeben: %2$s." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:341 -msgid "" -"Invalid type passed to Ostatus_profile::notify. It must be XML string or " -"Activity entry." -msgstr "" -"Ungültiger Typ an Ostatus_profile::notify übergeben. Es muss ein XML-String " -"oder ein Activity-Eintrag sein." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:372 -msgid "Unknown feed format." -msgstr "Unbekanntes Feed-Format." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:396 -msgid "RSS feed without a channel." -msgstr "RSS-Feed ohne einen Kanal." - #. TRANS: Client exception. -#: classes/Ostatus_profile.php:442 -msgid "Can't handle that kind of post." -msgstr "Kann diese Art von Post nicht verarbeiten." - -#. TRANS: Client exception. %s is a source URI. -#: classes/Ostatus_profile.php:500 -#, php-format -msgid "No content for notice %s." -msgstr "Kein Inhalt für Nachricht %s." - -#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime -#. TRANS: this will usually be replaced with localised text from StatusNet core messages. -#: classes/Ostatus_profile.php:535 -msgid "Show more" -msgstr "Mehr anzeigen" - -#. TRANS: Exception. %s is a profile URL. -#: classes/Ostatus_profile.php:728 -#, php-format -msgid "Could not reach profile page %s." -msgstr "Konnte Profilseite %s nicht erreichen." - -#. TRANS: Exception. %s is a URL. -#: classes/Ostatus_profile.php:786 -#, php-format -msgid "Could not find a feed URL for profile page %s." -msgstr "Konnte keinen Feed-URL für die Profilseite %s finden." - -#. TRANS: Feed sub exception. -#: classes/Ostatus_profile.php:885 -msgid "Can't find enough profile information to make a feed." -msgstr "" -"Kann nicht genug Profilinformationen finden, um einen Feed zu erstellen." - -#. TRANS: Server exception. %s is a URL. -#: classes/Ostatus_profile.php:949 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "Ungültiger Avatar-URL %s." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:960 -#, php-format -msgid "Tried to update avatar for unsaved remote profile %s." -msgstr "" -"Versuchte den Avatar für ein ungespeichertes Remoteprofil %s zu " -"aktualisieren." - -#. TRANS: Server exception. %s is a URL. -#: classes/Ostatus_profile.php:970 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "Kann den Avatar von %s nicht abrufen." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1197 -msgid "Local user can't be referenced as remote." -msgstr "Lokaler Benutzer kann nicht als remote verwiesen werden." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1202 -msgid "Local group can't be referenced as remote." -msgstr "Lokale Gruppe kann nicht als remote verwiesen werden." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1254 classes/Ostatus_profile.php:1265 -msgid "Can't save local profile." -msgstr "Lokales Profil kann nicht gespeichert werden." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1273 -msgid "Can't save OStatus profile." -msgstr "OStatus-Profil kann nicht gespeichert werden." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1561 classes/Ostatus_profile.php:1589 -msgid "Not a valid webfinger address." -msgstr "Ungültige Webfinger-Adresse." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1671 -#, php-format -msgid "Couldn't save profile for \"%s\"." -msgstr "Profil für „%s“ konnte nicht gespeichert werden." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1690 -#, php-format -msgid "Couldn't save ostatus_profile for \"%s\"." -msgstr "Ostatus_profile für „%s“ konnte nicht gespeichert werden." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1698 -#, php-format -msgid "Couldn't find a valid profile for \"%s\"." -msgstr "Es konnte kein gültiges Profil für „%s“ gefunden werden." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1741 -msgid "Could not store HTML content of long post as file." -msgstr "" -"HTML-Inhalt eines langen Posts konnte nicht als Datei nicht gespeichert " -"werden." - -#. TRANS: Client exception. %s is a HTTP status code. -#: classes/HubSub.php:212 -#, php-format -msgid "Hub subscriber verification returned HTTP %s." -msgstr "Hub-Abonnenten-Überprüfung gab HTTP %s zurück." - -#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. -#: classes/HubSub.php:359 -#, php-format -msgid "Callback returned status: %1$s. Body: %2$s" -msgstr "Der Aufruf gab folgenden Status zurück: %1$s. Body: %2$s" - -#. TRANS: Client error. POST is a HTTP command. It should not be translated. -#: lib/salmonaction.php:43 -msgid "This method requires a POST." -msgstr "Diese Methode benötigt ein POST." - -#. TRANS: Client error. Do not translate "application/magic-envelope+xml" -#: lib/salmonaction.php:48 -msgid "Salmon requires \"application/magic-envelope+xml\"." -msgstr "Salmon erfordert „application/magic-envelope+xml“." - -#. TRANS: Client error. -#: lib/salmonaction.php:58 -msgid "Salmon signature verification failed." -msgstr "Salmon-Signaturpfüung fehlgeschlagen." - -#. TRANS: Client error. -#: lib/salmonaction.php:70 -msgid "Salmon post must be an Atom entry." -msgstr "Salmon-Post muss ein Atom-Eintrag sein." - -#. TRANS: Client exception. -#: lib/salmonaction.php:120 -msgid "Unrecognized activity type." -msgstr "Unbekannter Aktivitätstyp." - -#. TRANS: Client exception. -#: lib/salmonaction.php:130 -msgid "This target doesn't understand posts." -msgstr "Dieses Ziel versteht keine Posts." - -#. TRANS: Client exception. -#: lib/salmonaction.php:136 -msgid "This target doesn't understand follows." -msgstr "Dieses Ziel versteht keine Follows." - -#. TRANS: Client exception. -#: lib/salmonaction.php:142 -msgid "This target doesn't understand unfollows." -msgstr "Dieses Ziel versteht keine Unfollows." - -#. TRANS: Client exception. -#: lib/salmonaction.php:148 -msgid "This target doesn't understand favorites." -msgstr "Dieses Ziel versteht keine Favoriten." - -#. TRANS: Client exception. -#: lib/salmonaction.php:154 -msgid "This target doesn't understand unfavorites." -msgstr "Dieses Ziel versteht keine Unfavorites." - -#. TRANS: Client exception. -#: lib/salmonaction.php:160 -msgid "This target doesn't understand share events." -msgstr "Dieses Ziel versteht das Teilen von Events nicht." - -#. TRANS: Client exception. -#: lib/salmonaction.php:166 -msgid "This target doesn't understand joins." -msgstr "Dieses Ziel versteht keine Joins." - -#. TRANS: Client exception. -#: lib/salmonaction.php:172 -msgid "This target doesn't understand leave events." -msgstr "Dieses Ziel versteht das Verlassen von Events nicht." - -#. TRANS: Exception. -#: lib/salmonaction.php:200 -msgid "Received a salmon slap from unidentified actor." -msgstr "Einen Salmon-Slap von einem unidentifizierten Aktor empfangen." - -#. TRANS: Exception. -#: lib/magicenvelope.php:80 -msgid "Unable to locate signer public key." -msgstr "Konnte den öffentlichen Schlüssel des Unterzeichners nicht finden." - -#. TRANS: Exception. -#: lib/salmon.php:126 -msgid "Salmon invalid actor for signing." -msgstr "" - -#: tests/gettext-speedtest.php:57 -msgid "Feeds" -msgstr "Feeds" - -#. TRANS: Client exception. -#: actions/pushhub.php:70 msgid "Publishing outside feeds not supported." msgstr "Veröffentlichung von äußeren Feeds nicht unterstützt." #. TRANS: Client exception. %s is a mode. -#: actions/pushhub.php:73 #, php-format msgid "Unrecognized mode \"%s\"." msgstr "Unbekannter Modus \"%s\"." #. TRANS: Client exception. %s is a topic. -#: actions/pushhub.php:93 #, php-format msgid "" "Unsupported hub.topic %s this hub only serves local user and group Atom " @@ -394,188 +124,73 @@ msgstr "" "Benutzer und Gruppen zur verfügung." #. TRANS: Client exception. -#: actions/pushhub.php:99 #, php-format msgid "Invalid hub.verify \"%s\". It must be sync or async." msgstr "Ungültiger hub.verify „%s“. Es muss sync oder async sein." #. TRANS: Client exception. -#: actions/pushhub.php:105 #, php-format msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." msgstr "" "Ungültiger hub.lease „%s“. Es muss eine leere oder positive Ganzzahl sein." #. TRANS: Client exception. -#: actions/pushhub.php:113 #, php-format msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." msgstr "Ungültiges hub.secret „%s“. Es muss kleiner als 200 Bytes sein." #. TRANS: Client exception. -#: actions/pushhub.php:165 #, php-format msgid "Invalid hub.topic \"%s\". User doesn't exist." msgstr "Ungültiges hub.topic „%s“. Benutzer existiert nicht." #. TRANS: Client exception. -#: actions/pushhub.php:174 #, php-format msgid "Invalid hub.topic \"%s\". Group doesn't exist." msgstr "Ungültiges hub.topic „%s“. Gruppe existiert nicht." #. TRANS: Client exception. #. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. -#: actions/pushhub.php:199 #, php-format msgid "Invalid URL passed for %1$s: \"%2$s\"" msgstr "Ungültiger URL für %1$s übergeben: „%2$s“" -#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "Empty or invalid feed id." +msgstr "Leere oder ungültige Feed-ID." + +#. TRANS: Server exception. %s is a feed ID. +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "Unbekannte PuSH Feed-ID %s" + +#. TRANS: Client exception. %s is an invalid feed name. +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "Ungültiger hub.topic-Feed „%s“." + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "Ungültiger hub.verify_token %1$s für %2$s." + +#. TRANS: Client exception. %s is an invalid topic. +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "Unerwartete Deabonnement-Anfrage für %s." + +#. TRANS: Client exception. %s is an invalid topic. +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "Unerwartete Deabonnement-Anfrage für %s." + msgid "No such user." msgstr "Unbekannter Benutzer." -#. TRANS: Client error. -#: actions/usersalmon.php:37 actions/groupsalmon.php:40 -msgid "No ID." -msgstr "Keine ID" - -#. TRANS: Client exception. -#: actions/usersalmon.php:83 -msgid "In reply to unknown notice." -msgstr "In der Antwort auf unbekannte Nachricht." - -#. TRANS: Client exception. -#: actions/usersalmon.php:88 -msgid "In reply to a notice not by this user and not mentioning this user." -msgstr "" -"In einer Antowrt auf eine Nachricht, die nicht von diesem Benutzer stammt " -"und diesen Benutzer nicht erwähnt." - -#. TRANS: Client exception. -#: actions/usersalmon.php:165 -msgid "Could not save new favorite." -msgstr "Neuer Favorit konnte nicht gespeichert werden." - -#. TRANS: Client exception. -#: actions/usersalmon.php:197 -msgid "Can't favorite/unfavorite without an object." -msgstr "Kann nicht ohne Objekt (ent)favorisieren." - -#. TRANS: Client exception. -#: actions/usersalmon.php:209 -msgid "Can't handle that kind of object for liking/faving." -msgstr "Kann diese Art von Objekt nicht für mögen/favorisieren verarbeiten." - -#. TRANS: Client exception. %s is an object ID. -#: actions/usersalmon.php:216 -#, php-format -msgid "Notice with ID %s unknown." -msgstr "Nachricht mit ID %s unbekannt." - -#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. -#: actions/usersalmon.php:221 -#, php-format -msgid "Notice with ID %1$s not posted by %2$s." -msgstr "Nachricht mit ID %1$s wurde nicht von %2$s geschrieben." - -#. TRANS: Field label. -#: actions/ostatusgroup.php:78 -msgid "Join group" -msgstr "Gruppe beitreten" - -#. TRANS: Tooltip for field label "Join group". -#: actions/ostatusgroup.php:81 -msgid "OStatus group's address, like http://example.net/group/nickname." -msgstr "" -"OStatus-Adresse der Gruppe. Beispiel: http://example.net/group/nickname." - -#. TRANS: Button text. -#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 -msgctxt "BUTTON" -msgid "Continue" -msgstr "Weiter" - -#: actions/ostatusgroup.php:105 -msgid "You are already a member of this group." -msgstr "Du bist bereits Mitglied dieser Gruppe." - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:140 -msgid "Already a member!" -msgstr "Bereits Mitglied!" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:151 -msgid "Remote group join failed!" -msgstr "Beitritt in Remote-Gruppe fehlgeschlagen!" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:155 -msgid "Remote group join aborted!" -msgstr "Beitritt in Remote-Gruppe abgebrochen!" - -#. TRANS: Page title for OStatus remote group join form -#: actions/ostatusgroup.php:167 -msgid "Confirm joining remote group" -msgstr "Bestätige das Beitreten einer Remotegruppe" - -#. TRANS: Instructions. -#: actions/ostatusgroup.php:178 -msgid "" -"You can subscribe to groups from other supported sites. Paste the group's " -"profile URI below:" -msgstr "" -"Du kannst Gruppen von anderen unterstützten Websites abonnieren. Füge die " -"URI der Gruppe unten ein:" - -#. TRANS: Client error. -#: actions/groupsalmon.php:47 -msgid "No such group." -msgstr "Keine derartige Gruppe." - -#. TRANS: Client error. -#: actions/groupsalmon.php:56 -msgid "Can't accept remote posts for a remote group." -msgstr "Kann Remoteposts für Remotegruppen nicht akzeptieren." - -#. TRANS: Client error. -#: actions/groupsalmon.php:130 -msgid "Can't read profile to set up group membership." -msgstr "Kann Profil nicht lesen, um die Gruppenmitgliedschaft einzurichten." - -#. TRANS: Client error. -#: actions/groupsalmon.php:134 actions/groupsalmon.php:177 -msgid "Groups can't join groups." -msgstr "Gruppen können Remotegruppen nicht beitreten." - -#: actions/groupsalmon.php:147 -msgid "You have been blocked from that group by the admin." -msgstr "Der Admin dieser Gruppe hat dich blockiert." - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:162 -#, php-format -msgid "Could not join remote user %1$s to group %2$s." -msgstr "Konnte Remotebenutzer %1$s nicht der Gruppe %2$s hinzufügen." - -#: actions/groupsalmon.php:174 -msgid "Can't read profile to cancel group membership." -msgstr "Kann Profil nicht lesen, um die Gruppenmitgliedschaft zu kündigen." - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:191 -#, php-format -msgid "Could not remove remote user %1$s from group %2$s." -msgstr "Konnte Remotebenutzer %1$s nicht aus der Gruppe %2$s entfernen." - #. TRANS: Field label for a field that takes an OStatus user address. -#: actions/ostatussub.php:68 msgid "Subscribe to" msgstr "Abonniere" #. TRANS: Tooltip for field label "Subscribe to". -#: actions/ostatussub.php:71 msgid "" "OStatus user's address, like nickname@example.com or http://example.net/" "nickname" @@ -583,31 +198,30 @@ msgstr "" "Adresse des OStatus-Benutzers, wie nickname@example.com oder http://example." "net/nickname" +#. TRANS: Button text. +msgctxt "BUTTON" +msgid "Continue" +msgstr "Weiter" + #. TRANS: Button text. #. TRANS: Tooltip for button "Join". -#: actions/ostatussub.php:112 msgctxt "BUTTON" msgid "Join this group" msgstr "Dieser Gruppe beitreten" #. TRANS: Button text. -#: actions/ostatussub.php:115 msgctxt "BUTTON" msgid "Confirm" msgstr "Bestätigen" #. TRANS: Tooltip for button "Confirm". -#: actions/ostatussub.php:117 msgid "Subscribe to this user" msgstr "Abonniere diesen Benutzer" -#: actions/ostatussub.php:138 msgid "You are already subscribed to this user." msgstr "Du hast diesen Benutzer bereits abonniert:" #. TRANS: Error text. -#: actions/ostatussub.php:232 actions/ostatussub.php:239 -#: actions/ostatussub.php:264 msgid "" "Sorry, we could not reach that address. Please make sure that the OStatus " "address is like nickname@example.com or http://example.net/nickname." @@ -617,9 +231,6 @@ msgstr "" "http://example.net/nickname." #. TRANS: Error text. -#: actions/ostatussub.php:243 actions/ostatussub.php:247 -#: actions/ostatussub.php:251 actions/ostatussub.php:255 -#: actions/ostatussub.php:259 msgid "" "Sorry, we could not reach that feed. Please try that OStatus address again " "later." @@ -628,31 +239,25 @@ msgstr "" "diese OStatus-Adresse später noch einmal." #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:293 msgid "Already subscribed!" msgstr "Bereits abonniert!" #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:298 msgid "Remote subscription failed!" msgstr "Remoteabonnement fehlgeschlagen!" -#: actions/ostatussub.php:345 actions/ostatusinit.php:64 msgid "There was a problem with your session token. Try again, please." msgstr "Es gab ein Problem mit deinem Sitzungstoken. Bitte versuche es erneut." #. TRANS: Form title. -#: actions/ostatussub.php:373 actions/ostatusinit.php:83 msgid "Subscribe to user" msgstr "Abonniere diesen Benutzer" #. TRANS: Page title for OStatus remote subscription form -#: actions/ostatussub.php:393 msgid "Confirm" msgstr "Bestätigen" #. TRANS: Instructions. -#: actions/ostatussub.php:405 msgid "" "You can subscribe to users from other supported sites. Paste their address " "or profile URI below:" @@ -660,128 +265,373 @@ msgstr "" "Du kannst Benutzer von anderen unterstützten Websites abonnieren. Füge ihre " "Adresse oder Profil-URI unten ein:" +#. TRANS: Field label. +msgid "Join group" +msgstr "Gruppe beitreten" + +#. TRANS: Tooltip for field label "Join group". +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" +"OStatus-Adresse der Gruppe. Beispiel: http://example.net/group/nickname." + +msgid "You are already a member of this group." +msgstr "Du bist bereits Mitglied dieser Gruppe." + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Already a member!" +msgstr "Bereits Mitglied!" + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Remote group join failed!" +msgstr "Beitritt in Remote-Gruppe fehlgeschlagen!" + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Remote group join aborted!" +msgstr "Beitritt in Remote-Gruppe abgebrochen!" + +#. TRANS: Page title for OStatus remote group join form +msgid "Confirm joining remote group" +msgstr "Bestätige das Beitreten einer Remotegruppe" + +#. TRANS: Instructions. +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" +"Du kannst Gruppen von anderen unterstützten Websites abonnieren. Füge die " +"URI der Gruppe unten ein:" + +#. TRANS: Client error. +msgid "No ID." +msgstr "Keine ID" + +#. TRANS: Client exception. +msgid "In reply to unknown notice." +msgstr "In der Antwort auf unbekannte Nachricht." + +#. TRANS: Client exception. +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" +"In einer Antowrt auf eine Nachricht, die nicht von diesem Benutzer stammt " +"und diesen Benutzer nicht erwähnt." + +#. TRANS: Client exception. +msgid "Could not save new favorite." +msgstr "Neuer Favorit konnte nicht gespeichert werden." + +#. TRANS: Client exception. +msgid "Can't favorite/unfavorite without an object." +msgstr "Kann nicht ohne Objekt (ent)favorisieren." + +#. TRANS: Client exception. +msgid "Can't handle that kind of object for liking/faving." +msgstr "Kann diese Art von Objekt nicht für mögen/favorisieren verarbeiten." + +#. TRANS: Client exception. %s is an object ID. +#, php-format +msgid "Notice with ID %s unknown." +msgstr "Nachricht mit ID %s unbekannt." + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "Nachricht mit ID %1$s wurde nicht von %2$s geschrieben." + +#. TRANS: Client error. +msgid "No such group." +msgstr "Keine derartige Gruppe." + +#. TRANS: Client error. +msgid "Can't accept remote posts for a remote group." +msgstr "Kann Remoteposts für Remotegruppen nicht akzeptieren." + +#. TRANS: Client error. +msgid "Can't read profile to set up group membership." +msgstr "Kann Profil nicht lesen, um die Gruppenmitgliedschaft einzurichten." + +#. TRANS: Client error. +msgid "Groups can't join groups." +msgstr "Gruppen können Remotegruppen nicht beitreten." + +msgid "You have been blocked from that group by the admin." +msgstr "Der Admin dieser Gruppe hat dich blockiert." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "Konnte Remotebenutzer %1$s nicht der Gruppe %2$s hinzufügen." + +msgid "Can't read profile to cancel group membership." +msgstr "Kann Profil nicht lesen, um die Gruppenmitgliedschaft zu kündigen." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "Konnte Remotebenutzer %1$s nicht aus der Gruppe %2$s entfernen." + #. TRANS: Client error. -#: actions/ostatusinit.php:42 msgid "You can use the local subscription!" msgstr "Du kannst ein lokales Abonnement erstellen!" #. TRANS: Form legend. -#: actions/ostatusinit.php:98 #, php-format msgid "Join group %s" msgstr "Gruppe %s beitreten" #. TRANS: Button text. -#: actions/ostatusinit.php:100 msgctxt "BUTTON" msgid "Join" msgstr "Beitreten" #. TRANS: Form legend. -#: actions/ostatusinit.php:103 #, php-format msgid "Subscribe to %s" msgstr "Abonniere %s" #. TRANS: Button text. -#: actions/ostatusinit.php:105 msgctxt "BUTTON" msgid "Subscribe" msgstr "Abonnieren" #. TRANS: Field label. -#: actions/ostatusinit.php:119 msgid "Group nickname" msgstr "Gruppe-Nickname" -#: actions/ostatusinit.php:120 msgid "Nickname of the group you want to join." msgstr "Spitzname der Gruppe, der Sie beitreten möchten." #. TRANS: Field label. -#: actions/ostatusinit.php:123 msgid "User nickname" msgstr "Benutzername" -#: actions/ostatusinit.php:124 msgid "Nickname of the user you want to follow." msgstr "Name des Benutzers, dem du folgen möchtest" #. TRANS: Field label. -#: actions/ostatusinit.php:129 msgid "Profile Account" msgstr "Profil-Konto" #. TRANS: Tooltip for field label "Profile Account". -#: actions/ostatusinit.php:131 msgid "Your account id (e.g. user@identi.ca)." msgstr "Deine Konto-ID (z.B. user@identi.ca)." #. TRANS: Client error. -#: actions/ostatusinit.php:153 msgid "Must provide a remote profile." msgstr "Du musst ein Remoteprofil angeben." #. TRANS: Client error. -#: actions/ostatusinit.php:165 msgid "Couldn't look up OStatus account profile." msgstr "Konnte OStatus-Konto-Profil nicht nachschauen." #. TRANS: Client error. -#: actions/ostatusinit.php:178 msgid "Couldn't confirm remote profile address." msgstr "Konnte Remoteprofiladresse nicht bestätigen." #. TRANS: Page title. -#: actions/ostatusinit.php:223 msgid "OStatus Connect" msgstr "OStatus-Verbindung" -#: actions/pushcallback.php:50 -msgid "Empty or invalid feed id." -msgstr "Leere oder ungültige Feed-ID." +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "" +"Es wird versucht, ein PuSH-Abonnemont für einen Feed ohne Hub zu starten." -#. TRANS: Server exception. %s is a feed ID. -#: actions/pushcallback.php:56 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "" +"Es wird versucht, ein PuSH-Abonnemont für einen Feed ohne Hub zu beenden." + +#. TRANS: Server exception. %s is a URI. #, php-format -msgid "Unknown PuSH feed id %s" -msgstr "Unbekannte PuSH Feed-ID %s" +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" +"Ungültiger ostatus_profile-Zustand: Sowohl Gruppen- als auch Profil-ID für %" +"s gesetzt." -#. TRANS: Client exception. %s is an invalid feed name. -#: actions/pushcallback.php:96 +#. TRANS: Server exception. %s is a URI. #, php-format -msgid "Bad hub.topic feed \"%s\"." -msgstr "Ungültiger hub.topic-Feed „%s“." +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" +"Ungültiger ostatus_profile-Zustand: Sowohl Gruppen- als auch Profil-ID für %" +"s sind leer." -#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. -#: actions/pushcallback.php:101 +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. #, php-format -msgid "Bad hub.verify_token %1$s for %2$s." -msgstr "Ungültiger hub.verify_token %1$s für %2$s." +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "Ungültiger actor an %1$s übergeben: %2$s." -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:108 +#. TRANS: Server exception. +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" +"Ungültiger Typ an Ostatus_profile::notify übergeben. Es muss ein XML-String " +"oder ein Activity-Eintrag sein." + +#. TRANS: Exception. +msgid "Unknown feed format." +msgstr "Unbekanntes Feed-Format." + +#. TRANS: Exception. +msgid "RSS feed without a channel." +msgstr "RSS-Feed ohne einen Kanal." + +#. TRANS: Client exception. +msgid "Can't handle that kind of post." +msgstr "Kann diese Art von Post nicht verarbeiten." + +#. TRANS: Client exception. %s is a source URI. #, php-format -msgid "Unexpected subscribe request for %s." -msgstr "Unerwartete Deabonnement-Anfrage für %s." +msgid "No content for notice %s." +msgstr "Kein Inhalt für Nachricht %s." -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:113 +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +msgid "Show more" +msgstr "Mehr anzeigen" + +#. TRANS: Exception. %s is a profile URL. #, php-format -msgid "Unexpected unsubscribe request for %s." -msgstr "Unerwartete Deabonnement-Anfrage für %s." +msgid "Could not reach profile page %s." +msgstr "Konnte Profilseite %s nicht erreichen." -#~ msgid "Photo" -#~ msgstr "Foto" +#. TRANS: Exception. %s is a URL. +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "Konnte keinen Feed-URL für die Profilseite %s finden." -#~ msgid "Nickname" -#~ msgstr "Benutzername" +#. TRANS: Feed sub exception. +msgid "Can't find enough profile information to make a feed." +msgstr "" +"Kann nicht genug Profilinformationen finden, um einen Feed zu erstellen." -#~ msgid "Location" -#~ msgstr "Ort" +#. TRANS: Server exception. %s is a URL. +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Ungültiger Avatar-URL %s." -#~ msgid "URL" -#~ msgstr "URL" +#. TRANS: Server exception. %s is a URI. +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "" +"Versuchte den Avatar für ein ungespeichertes Remoteprofil %s zu " +"aktualisieren." -#~ msgid "Note" -#~ msgstr "Notiz" +#. TRANS: Server exception. %s is a URL. +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Kann den Avatar von %s nicht abrufen." + +#. TRANS: Exception. +msgid "Local user can't be referenced as remote." +msgstr "Lokaler Benutzer kann nicht als remote verwiesen werden." + +#. TRANS: Exception. +msgid "Local group can't be referenced as remote." +msgstr "Lokale Gruppe kann nicht als remote verwiesen werden." + +#. TRANS: Server exception. +msgid "Can't save local profile." +msgstr "Lokales Profil kann nicht gespeichert werden." + +#. TRANS: Server exception. +msgid "Can't save OStatus profile." +msgstr "OStatus-Profil kann nicht gespeichert werden." + +#. TRANS: Exception. +msgid "Not a valid webfinger address." +msgstr "Ungültige Webfinger-Adresse." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "Profil für „%s“ konnte nicht gespeichert werden." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "Ostatus_profile für „%s“ konnte nicht gespeichert werden." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "Es konnte kein gültiges Profil für „%s“ gefunden werden." + +#. TRANS: Server exception. +msgid "Could not store HTML content of long post as file." +msgstr "" +"HTML-Inhalt eines langen Posts konnte nicht als Datei nicht gespeichert " +"werden." + +#. TRANS: Client exception. %s is a HTTP status code. +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "Hub-Abonnenten-Überprüfung gab HTTP %s zurück." + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "Der Aufruf gab folgenden Status zurück: %1$s. Body: %2$s" + +#. TRANS: Exception. +msgid "Unable to locate signer public key." +msgstr "Konnte den öffentlichen Schlüssel des Unterzeichners nicht finden." + +#. TRANS: Exception. +msgid "Salmon invalid actor for signing." +msgstr "" + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +msgid "This method requires a POST." +msgstr "Diese Methode benötigt ein POST." + +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +msgid "Salmon requires \"application/magic-envelope+xml\"." +msgstr "Salmon erfordert „application/magic-envelope+xml“." + +#. TRANS: Client error. +msgid "Salmon signature verification failed." +msgstr "Salmon-Signaturpfüung fehlgeschlagen." + +#. TRANS: Client error. +msgid "Salmon post must be an Atom entry." +msgstr "Salmon-Post muss ein Atom-Eintrag sein." + +#. TRANS: Client exception. +msgid "Unrecognized activity type." +msgstr "Unbekannter Aktivitätstyp." + +#. TRANS: Client exception. +msgid "This target doesn't understand posts." +msgstr "Dieses Ziel versteht keine Posts." + +#. TRANS: Client exception. +msgid "This target doesn't understand follows." +msgstr "Dieses Ziel versteht keine Follows." + +#. TRANS: Client exception. +msgid "This target doesn't understand unfollows." +msgstr "Dieses Ziel versteht keine Unfollows." + +#. TRANS: Client exception. +msgid "This target doesn't understand favorites." +msgstr "Dieses Ziel versteht keine Favoriten." + +#. TRANS: Client exception. +msgid "This target doesn't understand unfavorites." +msgstr "Dieses Ziel versteht keine Unfavorites." + +#. TRANS: Client exception. +msgid "This target doesn't understand share events." +msgstr "Dieses Ziel versteht das Teilen von Events nicht." + +#. TRANS: Client exception. +msgid "This target doesn't understand joins." +msgstr "Dieses Ziel versteht keine Joins." + +#. TRANS: Client exception. +msgid "This target doesn't understand leave events." +msgstr "Dieses Ziel versteht das Verlassen von Events nicht." + +#. TRANS: Exception. +msgid "Received a salmon slap from unidentified actor." +msgstr "Einen Salmon-Slap von einem unidentifizierten Aktor empfangen." diff --git a/plugins/OStatus/locale/fr/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/fr/LC_MESSAGES/OStatus.po index e47a6c0fa9..4caaa92951 100644 --- a/plugins/OStatus/locale/fr/LC_MESSAGES/OStatus.po +++ b/plugins/OStatus/locale/fr/LC_MESSAGES/OStatus.po @@ -11,108 +11,94 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OStatus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:45+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:28+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:01+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-ostatus\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +msgid "Feeds" +msgstr "Flux d’informations" + #. TRANS: Link description for link to subscribe to a remote user. #. TRANS: Link text for a user to subscribe to an OStatus user. -#: OStatusPlugin.php:223 OStatusPlugin.php:933 msgid "Subscribe" msgstr "S'abonner" #. TRANS: Link description for link to join a remote group. -#: OStatusPlugin.php:242 OStatusPlugin.php:651 actions/ostatussub.php:109 msgid "Join" msgstr "Rejoindre" #. TRANSLATE: %s is a domain. -#: OStatusPlugin.php:455 #, php-format msgid "Sent from %s via OStatus" msgstr "Envoyé depuis %s via OStatus" #. TRANS: Exception. -#: OStatusPlugin.php:527 msgid "Could not set up remote subscription." msgstr "Impossible de mettre en place l’abonnement distant." -#: OStatusPlugin.php:601 msgid "Unfollow" msgstr "Ne plus suivre" #. TRANS: Success message for unsubscribe from user attempt through OStatus. #. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. -#: OStatusPlugin.php:604 #, php-format msgid "%1$s stopped following %2$s." msgstr "%1$s a cessé de suivre %2$s." -#: OStatusPlugin.php:632 msgid "Could not set up remote group membership." msgstr "Impossible de mettre en place l’appartenance au groupe distant." #. TRANS: Success message for subscribe to group attempt through OStatus. #. TRANS: %1$s is the member name, %2$s is the subscribed group's name. -#: OStatusPlugin.php:654 #, php-format msgid "%1$s has joined group %2$s." msgstr "%1$s a rejoint le groupe %2$s." #. TRANS: Exception. -#: OStatusPlugin.php:663 msgid "Failed joining remote group." msgstr "Échec lors de l’adhésion au groupe distant." -#: OStatusPlugin.php:703 msgid "Leave" msgstr "Sortir" #. TRANS: Success message for unsubscribe from group attempt through OStatus. #. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. -#: OStatusPlugin.php:706 #, php-format msgid "%1$s has left group %2$s." msgstr "%1$s a quitté le groupe %2$s." -#: OStatusPlugin.php:781 msgid "Disfavor" msgstr "Retirer des favoris" #. TRANS: Success message for remove a favorite notice through OStatus. #. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. -#: OStatusPlugin.php:784 #, php-format msgid "%1$s marked notice %2$s as no longer a favorite." msgstr "%1$s a retiré l’avis %2$s de ses favoris." #. TRANS: Link text for link to remote subscribe. -#: OStatusPlugin.php:860 msgid "Remote" msgstr "À distance" #. TRANS: Title for activity. -#: OStatusPlugin.php:900 msgid "Profile update" msgstr "Mise à jour du profil" #. TRANS: Ping text for remote profile update through OStatus. #. TRANS: %s is user that updated their profile. -#: OStatusPlugin.php:903 #, php-format msgid "%s has updated their profile page." msgstr "%s a mis à jour sa page de profil." #. TRANS: Plugin description. -#: OStatusPlugin.php:948 msgid "" "Follow people across social networks that implement OStatus." @@ -120,278 +106,16 @@ msgstr "" "Suivez les personnes à travers les réseaux sociaux mettant en œuvre OStatus ." -#: classes/FeedSub.php:252 -msgid "Attempting to start PuSH subscription for feed with no hub." -msgstr "" -"Tente de démarrer l’inscription PuSH à un flux d’information sans " -"concentrateur." - -#: classes/FeedSub.php:282 -msgid "Attempting to end PuSH subscription for feed with no hub." -msgstr "" -"Tente d’arrêter l’inscription PuSH à un flux d’information sans " -"concentrateur." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:154 -#, php-format -msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." -msgstr "" -"État invalide du profil OStatus : identifiants à la fois de groupe et de " -"profil définis pour « %s »." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:157 -#, php-format -msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." -msgstr "" -"État invalide du profil OStatus : identifiants à la fois de groupe et de " -"profil non renseignés pour « %s »." - -#. TRANS: Server exception. -#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. -#: classes/Ostatus_profile.php:247 -#, php-format -msgid "Invalid actor passed to %1$s: %2$s." -msgstr "Type d’acteur invalide passé à la méthode « %1$s » : « %2$s »." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:341 -msgid "" -"Invalid type passed to Ostatus_profile::notify. It must be XML string or " -"Activity entry." -msgstr "" -"Type invalide passé à la méthode « Ostatus_profile::notify ». Ce doit être " -"une chaîne XML ou une entrée « Activity »." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:372 -msgid "Unknown feed format." -msgstr "Format de flux d’information inconnu." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:396 -msgid "RSS feed without a channel." -msgstr "Flux RSS sans canal." - #. TRANS: Client exception. -#: classes/Ostatus_profile.php:442 -msgid "Can't handle that kind of post." -msgstr "Impossible de gérer cette sorte de publication." - -#. TRANS: Client exception. %s is a source URI. -#: classes/Ostatus_profile.php:500 -#, php-format -msgid "No content for notice %s." -msgstr "Aucun contenu dans l’avis « %s »." - -#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime -#. TRANS: this will usually be replaced with localised text from StatusNet core messages. -#: classes/Ostatus_profile.php:535 -msgid "Show more" -msgstr "Voir davantage" - -#. TRANS: Exception. %s is a profile URL. -#: classes/Ostatus_profile.php:728 -#, php-format -msgid "Could not reach profile page %s." -msgstr "Impossible d’atteindre la page de profil « %s »." - -#. TRANS: Exception. %s is a URL. -#: classes/Ostatus_profile.php:786 -#, php-format -msgid "Could not find a feed URL for profile page %s." -msgstr "" -"Impossible de trouver une adresse URL de flux d’information pour la page de " -"profil « %s »." - -#. TRANS: Feed sub exception. -#: classes/Ostatus_profile.php:885 -msgid "Can't find enough profile information to make a feed." -msgstr "" -"Impossible de trouver assez d’informations de profil pour créer un flux " -"d’information." - -#. TRANS: Server exception. %s is a URL. -#: classes/Ostatus_profile.php:949 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "Adresse URL d’avatar « %s » invalide." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:960 -#, php-format -msgid "Tried to update avatar for unsaved remote profile %s." -msgstr "" -"Tente de mettre à jour l’avatar associé au profil distant non sauvegardé « %s " -"»." - -#. TRANS: Server exception. %s is a URL. -#: classes/Ostatus_profile.php:970 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "Impossible de récupérer l’avatar depuis « %s »." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1197 -msgid "Local user can't be referenced as remote." -msgstr "L’utilisateur local ne peut être référencé comme distant." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1202 -msgid "Local group can't be referenced as remote." -msgstr "Le groupe local ne peut être référencé comme distant." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1254 classes/Ostatus_profile.php:1265 -msgid "Can't save local profile." -msgstr "Impossible de sauvegarder le profil local." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1273 -msgid "Can't save OStatus profile." -msgstr "Impossible de sauvegarder le profil OStatus." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1561 classes/Ostatus_profile.php:1589 -msgid "Not a valid webfinger address." -msgstr "Ce n’est pas une adresse « webfinger » valide." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1671 -#, php-format -msgid "Couldn't save profile for \"%s\"." -msgstr "Impossible de sauvegarder le profil pour « %s »." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1690 -#, php-format -msgid "Couldn't save ostatus_profile for \"%s\"." -msgstr "Impossible d’enregistrer le profil OStatus pour « %s »." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1698 -#, php-format -msgid "Couldn't find a valid profile for \"%s\"." -msgstr "Impossible de trouver un profil valide pour « %s »." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1741 -msgid "Could not store HTML content of long post as file." -msgstr "" -"Impossible de stocker le contenu HTML d’une longue publication en un fichier." - -#. TRANS: Client exception. %s is a HTTP status code. -#: classes/HubSub.php:212 -#, php-format -msgid "Hub subscriber verification returned HTTP %s." -msgstr "" -"La vérification d’abonné sur le concentrateur a retourné le statut HTTP « %s " -"»." - -#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. -#: classes/HubSub.php:359 -#, php-format -msgid "Callback returned status: %1$s. Body: %2$s" -msgstr "La routine de rappel a retourné le statut « %1$s ». Corps : %2$s" - -#. TRANS: Client error. POST is a HTTP command. It should not be translated. -#: lib/salmonaction.php:43 -msgid "This method requires a POST." -msgstr "Cette méthode nécessite une commande HTTP « POST »." - -#. TRANS: Client error. Do not translate "application/magic-envelope+xml" -#: lib/salmonaction.php:48 -msgid "Salmon requires \"application/magic-envelope+xml\"." -msgstr "Salmon exige le type « application/magic-envelope+xml »." - -#. TRANS: Client error. -#: lib/salmonaction.php:58 -msgid "Salmon signature verification failed." -msgstr "La vérification de signature Salmon a échoué." - -#. TRANS: Client error. -#: lib/salmonaction.php:70 -msgid "Salmon post must be an Atom entry." -msgstr "Une publication Salmon doit être une entrée « Atom »." - -#. TRANS: Client exception. -#: lib/salmonaction.php:120 -msgid "Unrecognized activity type." -msgstr "Type d’activité non reconnu." - -#. TRANS: Client exception. -#: lib/salmonaction.php:130 -msgid "This target doesn't understand posts." -msgstr "Cette cible ne reconnaît pas les publications." - -#. TRANS: Client exception. -#: lib/salmonaction.php:136 -msgid "This target doesn't understand follows." -msgstr "Cette cible ne reconnaît pas les indications de début de suivi." - -#. TRANS: Client exception. -#: lib/salmonaction.php:142 -msgid "This target doesn't understand unfollows." -msgstr "Cette cible ne reconnaît pas les indications de fin de suivi." - -#. TRANS: Client exception. -#: lib/salmonaction.php:148 -msgid "This target doesn't understand favorites." -msgstr "Cette cible ne reconnaît pas les indications de mise en favoris." - -#. TRANS: Client exception. -#: lib/salmonaction.php:154 -msgid "This target doesn't understand unfavorites." -msgstr "Cette cible ne reconnaît pas les indications de retrait des favoris." - -#. TRANS: Client exception. -#: lib/salmonaction.php:160 -msgid "This target doesn't understand share events." -msgstr "Cette cible ne reconnaît pas les évènements partagés." - -#. TRANS: Client exception. -#: lib/salmonaction.php:166 -msgid "This target doesn't understand joins." -msgstr "Cette cible ne reconnaît pas les indications d’adhésion." - -#. TRANS: Client exception. -#: lib/salmonaction.php:172 -msgid "This target doesn't understand leave events." -msgstr "Cette cible ne reconnaît pas les indications de retrait d’évènements." - -#. TRANS: Exception. -#: lib/salmonaction.php:200 -msgid "Received a salmon slap from unidentified actor." -msgstr "Réception d’une giffle Salmon d’un acteur non identifié." - -#. TRANS: Exception. -#: lib/magicenvelope.php:80 -msgid "Unable to locate signer public key." -msgstr "Impossible de trouver la clé publique du signataire." - -#. TRANS: Exception. -#: lib/salmon.php:126 -msgid "Salmon invalid actor for signing." -msgstr "Acteur Salmon invalide pour la signature." - -#: tests/gettext-speedtest.php:57 -msgid "Feeds" -msgstr "Flux d’informations" - -#. TRANS: Client exception. -#: actions/pushhub.php:70 msgid "Publishing outside feeds not supported." msgstr "La publication des flux externes n’est pas supportée." #. TRANS: Client exception. %s is a mode. -#: actions/pushhub.php:73 #, php-format msgid "Unrecognized mode \"%s\"." msgstr "Mode « %s » non reconnu." #. TRANS: Client exception. %s is a topic. -#: actions/pushhub.php:93 #, php-format msgid "" "Unsupported hub.topic %s this hub only serves local user and group Atom " @@ -401,7 +125,6 @@ msgstr "" "que les flux Atom d’utilisateurs et groupes locaux." #. TRANS: Client exception. -#: actions/pushhub.php:99 #, php-format msgid "Invalid hub.verify \"%s\". It must be sync or async." msgstr "" @@ -409,7 +132,6 @@ msgstr "" "« async »." #. TRANS: Client exception. -#: actions/pushhub.php:105 #, php-format msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." msgstr "" @@ -417,7 +139,6 @@ msgstr "" "positif." #. TRANS: Client exception. -#: actions/pushhub.php:113 #, php-format msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." msgstr "" @@ -425,174 +146,60 @@ msgstr "" "octets." #. TRANS: Client exception. -#: actions/pushhub.php:165 #, php-format msgid "Invalid hub.topic \"%s\". User doesn't exist." msgstr "" "Le sujet de concentrateur « %s » est invalide. L’utilisateur n’existe pas." #. TRANS: Client exception. -#: actions/pushhub.php:174 #, php-format msgid "Invalid hub.topic \"%s\". Group doesn't exist." msgstr "Le sujet de concentrateur « %s » est invalide. Le groupe n’existe pas." #. TRANS: Client exception. #. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. -#: actions/pushhub.php:199 #, php-format msgid "Invalid URL passed for %1$s: \"%2$s\"" msgstr "URL invalide passée à la méthode « %1$s » : « %2$s »" -#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "Empty or invalid feed id." +msgstr "Identifiant de flux vide ou invalide." + +#. TRANS: Server exception. %s is a feed ID. +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "Identifiant de flux PuSH inconnu : « %s »" + +#. TRANS: Client exception. %s is an invalid feed name. +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "Flux de sujet de concentrateur incorrect : « %s »" + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "" +"Jeton de vérification de concentrateur incorrect « %1$s » pour le sujet « %2$s " +"»." + +#. TRANS: Client exception. %s is an invalid topic. +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "Demande d’abonnement inattendue pour le sujet invalide « %s »." + +#. TRANS: Client exception. %s is an invalid topic. +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "Demande de désabonnement inattendue pour le sujet invalide « %s »." + msgid "No such user." msgstr "Utilisateur inexistant." -#. TRANS: Client error. -#: actions/usersalmon.php:37 actions/groupsalmon.php:40 -msgid "No ID." -msgstr "Aucun identifiant." - -#. TRANS: Client exception. -#: actions/usersalmon.php:83 -msgid "In reply to unknown notice." -msgstr "En réponse à l’avis inconnu." - -#. TRANS: Client exception. -#: actions/usersalmon.php:88 -msgid "In reply to a notice not by this user and not mentioning this user." -msgstr "" -"En réponse à un avis non émis par cet utilisateur et ne mentionnant pas cet " -"utilisateur." - -#. TRANS: Client exception. -#: actions/usersalmon.php:165 -msgid "Could not save new favorite." -msgstr "Impossible de sauvegarder le nouveau favori." - -#. TRANS: Client exception. -#: actions/usersalmon.php:197 -msgid "Can't favorite/unfavorite without an object." -msgstr "Impossible de mettre en favoris ou retirer des favoris sans un objet." - -#. TRANS: Client exception. -#: actions/usersalmon.php:209 -msgid "Can't handle that kind of object for liking/faving." -msgstr "" -"Impossible de gérer ce genre d’objet parmi les sujets appréciés ou favoris." - -#. TRANS: Client exception. %s is an object ID. -#: actions/usersalmon.php:216 -#, php-format -msgid "Notice with ID %s unknown." -msgstr "Avis d’identifiant « %s » inconnu." - -#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. -#: actions/usersalmon.php:221 -#, php-format -msgid "Notice with ID %1$s not posted by %2$s." -msgstr "Avis d’identifiant « %1$s » non publié par %2$s." - -#. TRANS: Field label. -#: actions/ostatusgroup.php:78 -msgid "Join group" -msgstr "Rejoindre le groupe" - -#. TRANS: Tooltip for field label "Join group". -#: actions/ostatusgroup.php:81 -msgid "OStatus group's address, like http://example.net/group/nickname." -msgstr "" -"Une adresse de groupe OStatus telle que « http://example.net/group/pseudonyme " -"»." - -#. TRANS: Button text. -#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 -msgctxt "BUTTON" -msgid "Continue" -msgstr "Continuer" - -#: actions/ostatusgroup.php:105 -msgid "You are already a member of this group." -msgstr "Vous êtes déjà membre de ce groupe." - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:140 -msgid "Already a member!" -msgstr "Déjà membre !" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:151 -msgid "Remote group join failed!" -msgstr "L’adhésion au groupe distant a échoué !" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:155 -msgid "Remote group join aborted!" -msgstr "L’adhésion au groupe distant a été avortée !" - -#. TRANS: Page title for OStatus remote group join form -#: actions/ostatusgroup.php:167 -msgid "Confirm joining remote group" -msgstr "Confirmer l’adhésion au groupe distant" - -#. TRANS: Instructions. -#: actions/ostatusgroup.php:178 -msgid "" -"You can subscribe to groups from other supported sites. Paste the group's " -"profile URI below:" -msgstr "" -"Vous pouvez souscrire aux groupes d’autres sites supportés. Collez l’adresse " -"URI du profil du groupe ci-dessous :" - -#. TRANS: Client error. -#: actions/groupsalmon.php:47 -msgid "No such group." -msgstr "Groupe inexistant." - -#. TRANS: Client error. -#: actions/groupsalmon.php:56 -msgid "Can't accept remote posts for a remote group." -msgstr "" -"Impossible d’accepter des envois distants de messages pour un groupe distant." - -#. TRANS: Client error. -#: actions/groupsalmon.php:130 -msgid "Can't read profile to set up group membership." -msgstr "" -"Impossible de lire le profil pour mettre en place l’adhésion à un groupe." - -#. TRANS: Client error. -#: actions/groupsalmon.php:134 actions/groupsalmon.php:177 -msgid "Groups can't join groups." -msgstr "Les groupes ne peuvent pas adhérer à des groupes." - -#: actions/groupsalmon.php:147 -msgid "You have been blocked from that group by the admin." -msgstr "Vous avez été bloqué de ce groupe par l’administrateur." - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:162 -#, php-format -msgid "Could not join remote user %1$s to group %2$s." -msgstr "Impossible d’inscrire l’utilisateur distant %1$s au groupe %2$s." - -#: actions/groupsalmon.php:174 -msgid "Can't read profile to cancel group membership." -msgstr "Impossible de lire le profil pour annuler l’adhésion à un groupe." - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:191 -#, php-format -msgid "Could not remove remote user %1$s from group %2$s." -msgstr "Impossible de retirer l’utilisateur distant %1$s du groupe %2$s." - #. TRANS: Field label for a field that takes an OStatus user address. -#: actions/ostatussub.php:68 msgid "Subscribe to" msgstr "S’abonner à" #. TRANS: Tooltip for field label "Subscribe to". -#: actions/ostatussub.php:71 msgid "" "OStatus user's address, like nickname@example.com or http://example.net/" "nickname" @@ -600,31 +207,30 @@ msgstr "" "Adresse d’un utilisateur OStatus ou de sa page de profil, telle que " "pseudonyme@example.com ou http://example.net/pseudonyme" +#. TRANS: Button text. +msgctxt "BUTTON" +msgid "Continue" +msgstr "Continuer" + #. TRANS: Button text. #. TRANS: Tooltip for button "Join". -#: actions/ostatussub.php:112 msgctxt "BUTTON" msgid "Join this group" msgstr "Rejoindre ce groupe" #. TRANS: Button text. -#: actions/ostatussub.php:115 msgctxt "BUTTON" msgid "Confirm" msgstr "Confirmer" #. TRANS: Tooltip for button "Confirm". -#: actions/ostatussub.php:117 msgid "Subscribe to this user" msgstr "S’abonner à cet utilisateur" -#: actions/ostatussub.php:138 msgid "You are already subscribed to this user." msgstr "Vous êtes déjà abonné à cet utilisateur." #. TRANS: Error text. -#: actions/ostatussub.php:232 actions/ostatussub.php:239 -#: actions/ostatussub.php:264 msgid "" "Sorry, we could not reach that address. Please make sure that the OStatus " "address is like nickname@example.com or http://example.net/nickname." @@ -634,9 +240,6 @@ msgstr "" "forme pseudonyme@example.com ou http://example.net/pseudonyme." #. TRANS: Error text. -#: actions/ostatussub.php:243 actions/ostatussub.php:247 -#: actions/ostatussub.php:251 actions/ostatussub.php:255 -#: actions/ostatussub.php:259 msgid "" "Sorry, we could not reach that feed. Please try that OStatus address again " "later." @@ -645,33 +248,27 @@ msgstr "" "cette adresse OStatus." #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:293 msgid "Already subscribed!" msgstr "Déjà abonné !" #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:298 msgid "Remote subscription failed!" msgstr "Ĺ’abonnement distant a échoué !" -#: actions/ostatussub.php:345 actions/ostatusinit.php:64 msgid "There was a problem with your session token. Try again, please." msgstr "" "Un problème est survenu avec votre jeton de session. Veuillez essayer à " "nouveau." #. TRANS: Form title. -#: actions/ostatussub.php:373 actions/ostatusinit.php:83 msgid "Subscribe to user" msgstr "S’abonner à un utilisateur" #. TRANS: Page title for OStatus remote subscription form -#: actions/ostatussub.php:393 msgid "Confirm" msgstr "Confirmer" #. TRANS: Instructions. -#: actions/ostatussub.php:405 msgid "" "You can subscribe to users from other supported sites. Paste their address " "or profile URI below:" @@ -679,130 +276,383 @@ msgstr "" "Vous pouvez vous abonner aux utilisateurs d’autres sites pris en charge. " "Collez leur adresse ou l’URI de leur profil ci-dessous :" +#. TRANS: Field label. +msgid "Join group" +msgstr "Rejoindre le groupe" + +#. TRANS: Tooltip for field label "Join group". +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" +"Une adresse de groupe OStatus telle que « http://example.net/group/pseudonyme " +"»." + +msgid "You are already a member of this group." +msgstr "Vous êtes déjà membre de ce groupe." + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Already a member!" +msgstr "Déjà membre !" + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Remote group join failed!" +msgstr "L’adhésion au groupe distant a échoué !" + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Remote group join aborted!" +msgstr "L’adhésion au groupe distant a été avortée !" + +#. TRANS: Page title for OStatus remote group join form +msgid "Confirm joining remote group" +msgstr "Confirmer l’adhésion au groupe distant" + +#. TRANS: Instructions. +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" +"Vous pouvez souscrire aux groupes d’autres sites supportés. Collez l’adresse " +"URI du profil du groupe ci-dessous :" + +#. TRANS: Client error. +msgid "No ID." +msgstr "Aucun identifiant." + +#. TRANS: Client exception. +msgid "In reply to unknown notice." +msgstr "En réponse à l’avis inconnu." + +#. TRANS: Client exception. +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" +"En réponse à un avis non émis par cet utilisateur et ne mentionnant pas cet " +"utilisateur." + +#. TRANS: Client exception. +msgid "Could not save new favorite." +msgstr "Impossible de sauvegarder le nouveau favori." + +#. TRANS: Client exception. +msgid "Can't favorite/unfavorite without an object." +msgstr "Impossible de mettre en favoris ou retirer des favoris sans un objet." + +#. TRANS: Client exception. +msgid "Can't handle that kind of object for liking/faving." +msgstr "" +"Impossible de gérer ce genre d’objet parmi les sujets appréciés ou favoris." + +#. TRANS: Client exception. %s is an object ID. +#, php-format +msgid "Notice with ID %s unknown." +msgstr "Avis d’identifiant « %s » inconnu." + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "Avis d’identifiant « %1$s » non publié par %2$s." + +#. TRANS: Client error. +msgid "No such group." +msgstr "Groupe inexistant." + +#. TRANS: Client error. +msgid "Can't accept remote posts for a remote group." +msgstr "" +"Impossible d’accepter des envois distants de messages pour un groupe distant." + +#. TRANS: Client error. +msgid "Can't read profile to set up group membership." +msgstr "" +"Impossible de lire le profil pour mettre en place l’adhésion à un groupe." + +#. TRANS: Client error. +msgid "Groups can't join groups." +msgstr "Les groupes ne peuvent pas adhérer à des groupes." + +msgid "You have been blocked from that group by the admin." +msgstr "Vous avez été bloqué de ce groupe par l’administrateur." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "Impossible d’inscrire l’utilisateur distant %1$s au groupe %2$s." + +msgid "Can't read profile to cancel group membership." +msgstr "Impossible de lire le profil pour annuler l’adhésion à un groupe." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "Impossible de retirer l’utilisateur distant %1$s du groupe %2$s." + #. TRANS: Client error. -#: actions/ostatusinit.php:42 msgid "You can use the local subscription!" msgstr "Vous pouvez utiliser l’abonnement local !" #. TRANS: Form legend. -#: actions/ostatusinit.php:98 #, php-format msgid "Join group %s" msgstr "Rejoindre le groupe « %s »" #. TRANS: Button text. -#: actions/ostatusinit.php:100 msgctxt "BUTTON" msgid "Join" msgstr "Rejoindre" #. TRANS: Form legend. -#: actions/ostatusinit.php:103 #, php-format msgid "Subscribe to %s" msgstr "S’abonner à « %s »" #. TRANS: Button text. -#: actions/ostatusinit.php:105 msgctxt "BUTTON" msgid "Subscribe" msgstr "S’abonner" #. TRANS: Field label. -#: actions/ostatusinit.php:119 msgid "Group nickname" msgstr "Pseudonyme du groupe" -#: actions/ostatusinit.php:120 msgid "Nickname of the group you want to join." msgstr "Pseudonyme du groupe que vous voulez rejoindre." #. TRANS: Field label. -#: actions/ostatusinit.php:123 msgid "User nickname" msgstr "Pseudonyme de l’utilisateur" -#: actions/ostatusinit.php:124 msgid "Nickname of the user you want to follow." msgstr "Pseudonyme de l’utilisateur que vous voulez suivre." #. TRANS: Field label. -#: actions/ostatusinit.php:129 msgid "Profile Account" msgstr "Compte de profil" #. TRANS: Tooltip for field label "Profile Account". -#: actions/ostatusinit.php:131 msgid "Your account id (e.g. user@identi.ca)." msgstr "Votre identifiant de compte (utilisateur@identi.ca, par exemple)." #. TRANS: Client error. -#: actions/ostatusinit.php:153 msgid "Must provide a remote profile." msgstr "Vous devez fournir un profil distant." #. TRANS: Client error. -#: actions/ostatusinit.php:165 msgid "Couldn't look up OStatus account profile." msgstr "Impossible de consulter le profil de compte OStatus." #. TRANS: Client error. -#: actions/ostatusinit.php:178 msgid "Couldn't confirm remote profile address." msgstr "Impossible de confirmer l’adresse de profil distant." #. TRANS: Page title. -#: actions/ostatusinit.php:223 msgid "OStatus Connect" msgstr "Connexion OStatus" -#: actions/pushcallback.php:50 -msgid "Empty or invalid feed id." -msgstr "Identifiant de flux vide ou invalide." - -#. TRANS: Server exception. %s is a feed ID. -#: actions/pushcallback.php:56 -#, php-format -msgid "Unknown PuSH feed id %s" -msgstr "Identifiant de flux PuSH inconnu : « %s »" - -#. TRANS: Client exception. %s is an invalid feed name. -#: actions/pushcallback.php:96 -#, php-format -msgid "Bad hub.topic feed \"%s\"." -msgstr "Flux de sujet de concentrateur incorrect : « %s »" - -#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. -#: actions/pushcallback.php:101 -#, php-format -msgid "Bad hub.verify_token %1$s for %2$s." +msgid "Attempting to start PuSH subscription for feed with no hub." msgstr "" -"Jeton de vérification de concentrateur incorrect « %1$s » pour le sujet « %2$s " +"Tente de démarrer l’inscription PuSH à un flux d’information sans " +"concentrateur." + +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "" +"Tente d’arrêter l’inscription PuSH à un flux d’information sans " +"concentrateur." + +#. TRANS: Server exception. %s is a URI. +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" +"État invalide du profil OStatus : identifiants à la fois de groupe et de " +"profil définis pour « %s »." + +#. TRANS: Server exception. %s is a URI. +#, php-format +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" +"État invalide du profil OStatus : identifiants à la fois de groupe et de " +"profil non renseignés pour « %s »." + +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. +#, php-format +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "Type d’acteur invalide passé à la méthode « %1$s » : « %2$s »." + +#. TRANS: Server exception. +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" +"Type invalide passé à la méthode « Ostatus_profile::notify ». Ce doit être " +"une chaîne XML ou une entrée « Activity »." + +#. TRANS: Exception. +msgid "Unknown feed format." +msgstr "Format de flux d’information inconnu." + +#. TRANS: Exception. +msgid "RSS feed without a channel." +msgstr "Flux RSS sans canal." + +#. TRANS: Client exception. +msgid "Can't handle that kind of post." +msgstr "Impossible de gérer cette sorte de publication." + +#. TRANS: Client exception. %s is a source URI. +#, php-format +msgid "No content for notice %s." +msgstr "Aucun contenu dans l’avis « %s »." + +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +msgid "Show more" +msgstr "Voir davantage" + +#. TRANS: Exception. %s is a profile URL. +#, php-format +msgid "Could not reach profile page %s." +msgstr "Impossible d’atteindre la page de profil « %s »." + +#. TRANS: Exception. %s is a URL. +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "" +"Impossible de trouver une adresse URL de flux d’information pour la page de " +"profil « %s »." + +#. TRANS: Feed sub exception. +msgid "Can't find enough profile information to make a feed." +msgstr "" +"Impossible de trouver assez d’informations de profil pour créer un flux " +"d’information." + +#. TRANS: Server exception. %s is a URL. +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Adresse URL d’avatar « %s » invalide." + +#. TRANS: Server exception. %s is a URI. +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "" +"Tente de mettre à jour l’avatar associé au profil distant non sauvegardé « %s " "»." -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:108 +#. TRANS: Server exception. %s is a URL. #, php-format -msgid "Unexpected subscribe request for %s." -msgstr "Demande d’abonnement inattendue pour le sujet invalide « %s »." +msgid "Unable to fetch avatar from %s." +msgstr "Impossible de récupérer l’avatar depuis « %s »." -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:113 +#. TRANS: Exception. +msgid "Local user can't be referenced as remote." +msgstr "L’utilisateur local ne peut être référencé comme distant." + +#. TRANS: Exception. +msgid "Local group can't be referenced as remote." +msgstr "Le groupe local ne peut être référencé comme distant." + +#. TRANS: Server exception. +msgid "Can't save local profile." +msgstr "Impossible de sauvegarder le profil local." + +#. TRANS: Server exception. +msgid "Can't save OStatus profile." +msgstr "Impossible de sauvegarder le profil OStatus." + +#. TRANS: Exception. +msgid "Not a valid webfinger address." +msgstr "Ce n’est pas une adresse « webfinger » valide." + +#. TRANS: Exception. %s is a webfinger address. #, php-format -msgid "Unexpected unsubscribe request for %s." -msgstr "Demande de désabonnement inattendue pour le sujet invalide « %s »." +msgid "Couldn't save profile for \"%s\"." +msgstr "Impossible de sauvegarder le profil pour « %s »." -#~ msgid "Photo" -#~ msgstr "Photo" +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "Impossible d’enregistrer le profil OStatus pour « %s »." -#~ msgid "Nickname" -#~ msgstr "Pseudonyme" +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "Impossible de trouver un profil valide pour « %s »." -#~ msgid "Location" -#~ msgstr "Emplacement" +#. TRANS: Server exception. +msgid "Could not store HTML content of long post as file." +msgstr "" +"Impossible de stocker le contenu HTML d’une longue publication en un fichier." -#~ msgid "URL" -#~ msgstr "Adresse URL" +#. TRANS: Client exception. %s is a HTTP status code. +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "" +"La vérification d’abonné sur le concentrateur a retourné le statut HTTP « %s " +"»." -#~ msgid "Note" -#~ msgstr "Note" +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "La routine de rappel a retourné le statut « %1$s ». Corps : %2$s" + +#. TRANS: Exception. +msgid "Unable to locate signer public key." +msgstr "Impossible de trouver la clé publique du signataire." + +#. TRANS: Exception. +msgid "Salmon invalid actor for signing." +msgstr "Acteur Salmon invalide pour la signature." + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +msgid "This method requires a POST." +msgstr "Cette méthode nécessite une commande HTTP « POST »." + +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +msgid "Salmon requires \"application/magic-envelope+xml\"." +msgstr "Salmon exige le type « application/magic-envelope+xml »." + +#. TRANS: Client error. +msgid "Salmon signature verification failed." +msgstr "La vérification de signature Salmon a échoué." + +#. TRANS: Client error. +msgid "Salmon post must be an Atom entry." +msgstr "Une publication Salmon doit être une entrée « Atom »." + +#. TRANS: Client exception. +msgid "Unrecognized activity type." +msgstr "Type d’activité non reconnu." + +#. TRANS: Client exception. +msgid "This target doesn't understand posts." +msgstr "Cette cible ne reconnaît pas les publications." + +#. TRANS: Client exception. +msgid "This target doesn't understand follows." +msgstr "Cette cible ne reconnaît pas les indications de début de suivi." + +#. TRANS: Client exception. +msgid "This target doesn't understand unfollows." +msgstr "Cette cible ne reconnaît pas les indications de fin de suivi." + +#. TRANS: Client exception. +msgid "This target doesn't understand favorites." +msgstr "Cette cible ne reconnaît pas les indications de mise en favoris." + +#. TRANS: Client exception. +msgid "This target doesn't understand unfavorites." +msgstr "Cette cible ne reconnaît pas les indications de retrait des favoris." + +#. TRANS: Client exception. +msgid "This target doesn't understand share events." +msgstr "Cette cible ne reconnaît pas les évènements partagés." + +#. TRANS: Client exception. +msgid "This target doesn't understand joins." +msgstr "Cette cible ne reconnaît pas les indications d’adhésion." + +#. TRANS: Client exception. +msgid "This target doesn't understand leave events." +msgstr "Cette cible ne reconnaît pas les indications de retrait d’évènements." + +#. TRANS: Exception. +msgid "Received a salmon slap from unidentified actor." +msgstr "Réception d’une giffle Salmon d’un acteur non identifié." diff --git a/plugins/OStatus/locale/ia/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/ia/LC_MESSAGES/OStatus.po index ad166ccece..6ac9d94701 100644 --- a/plugins/OStatus/locale/ia/LC_MESSAGES/OStatus.po +++ b/plugins/OStatus/locale/ia/LC_MESSAGES/OStatus.po @@ -9,108 +9,94 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OStatus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:45+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:28+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:01+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-ostatus\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Feeds" +msgstr "Syndicationes" + #. TRANS: Link description for link to subscribe to a remote user. #. TRANS: Link text for a user to subscribe to an OStatus user. -#: OStatusPlugin.php:223 OStatusPlugin.php:933 msgid "Subscribe" msgstr "Subscriber" #. TRANS: Link description for link to join a remote group. -#: OStatusPlugin.php:242 OStatusPlugin.php:651 actions/ostatussub.php:109 msgid "Join" msgstr "Inscriber" #. TRANSLATE: %s is a domain. -#: OStatusPlugin.php:455 #, php-format msgid "Sent from %s via OStatus" msgstr "Inviate de %s via OStatus" #. TRANS: Exception. -#: OStatusPlugin.php:527 msgid "Could not set up remote subscription." msgstr "Non poteva configurar le subscription remote." -#: OStatusPlugin.php:601 msgid "Unfollow" msgstr "Non plus sequer" #. TRANS: Success message for unsubscribe from user attempt through OStatus. #. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. -#: OStatusPlugin.php:604 #, php-format msgid "%1$s stopped following %2$s." msgstr "%1$s cessava de sequer %2$s." -#: OStatusPlugin.php:632 msgid "Could not set up remote group membership." msgstr "Non poteva configurar le membrato del gruppo remote." #. TRANS: Success message for subscribe to group attempt through OStatus. #. TRANS: %1$s is the member name, %2$s is the subscribed group's name. -#: OStatusPlugin.php:654 #, php-format msgid "%1$s has joined group %2$s." msgstr "%1$s se ha jungite al gruppo %2$s." #. TRANS: Exception. -#: OStatusPlugin.php:663 msgid "Failed joining remote group." msgstr "Falleva de facer se membro del gruppo remote." -#: OStatusPlugin.php:703 msgid "Leave" msgstr "Quitar" #. TRANS: Success message for unsubscribe from group attempt through OStatus. #. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. -#: OStatusPlugin.php:706 #, php-format msgid "%1$s has left group %2$s." msgstr "%1$s ha quitate le gruppo %2$s." -#: OStatusPlugin.php:781 msgid "Disfavor" msgstr "Disfavorir" #. TRANS: Success message for remove a favorite notice through OStatus. #. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. -#: OStatusPlugin.php:784 #, php-format msgid "%1$s marked notice %2$s as no longer a favorite." msgstr "%1$s marcava le nota %2$s como non plus favorite." #. TRANS: Link text for link to remote subscribe. -#: OStatusPlugin.php:860 msgid "Remote" msgstr "Remote" #. TRANS: Title for activity. -#: OStatusPlugin.php:900 msgid "Profile update" msgstr "Actualisation de profilo" #. TRANS: Ping text for remote profile update through OStatus. #. TRANS: %s is user that updated their profile. -#: OStatusPlugin.php:903 #, php-format msgid "%s has updated their profile page." msgstr "%s ha actualisate su pagina de profilo." #. TRANS: Plugin description. -#: OStatusPlugin.php:948 msgid "" "Follow people across social networks that implement OStatus." @@ -118,264 +104,16 @@ msgstr "" "Sequer personas trans retes social que implementa OStatus." -#: classes/FeedSub.php:252 -msgid "Attempting to start PuSH subscription for feed with no hub." -msgstr "Tentativa de comenciar subscription PuSH pro syndication sin centro." - -#: classes/FeedSub.php:282 -msgid "Attempting to end PuSH subscription for feed with no hub." -msgstr "Tentativa de terminar subscription PuSH pro syndication sin centro." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:154 -#, php-format -msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." -msgstr "" -"Stato ostatus_profile invalide: IDs e de gruppo e de profilo definite pro %s." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:157 -#, php-format -msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." -msgstr "" -"Stato ostatus_profile invalide: IDs e de gruppo e de profilo vacue pro %s." - -#. TRANS: Server exception. -#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. -#: classes/Ostatus_profile.php:247 -#, php-format -msgid "Invalid actor passed to %1$s: %2$s." -msgstr "Actor invalide passate a %1$s: %2$s." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:341 -msgid "" -"Invalid type passed to Ostatus_profile::notify. It must be XML string or " -"Activity entry." -msgstr "" -"Typo invalide passate a Ostatos_profile::notify. Illo debe esser catena XML " -"o entrata Activity." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:372 -msgid "Unknown feed format." -msgstr "Formato de syndication incognite." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:396 -msgid "RSS feed without a channel." -msgstr "Syndication RSS sin canal." - #. TRANS: Client exception. -#: classes/Ostatus_profile.php:442 -msgid "Can't handle that kind of post." -msgstr "Non pote tractar iste typo de message." - -#. TRANS: Client exception. %s is a source URI. -#: classes/Ostatus_profile.php:500 -#, php-format -msgid "No content for notice %s." -msgstr "Nulle contento pro nota %s." - -#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime -#. TRANS: this will usually be replaced with localised text from StatusNet core messages. -#: classes/Ostatus_profile.php:535 -msgid "Show more" -msgstr "Monstrar plus" - -#. TRANS: Exception. %s is a profile URL. -#: classes/Ostatus_profile.php:728 -#, php-format -msgid "Could not reach profile page %s." -msgstr "Non poteva attinger pagina de profilo %s." - -#. TRANS: Exception. %s is a URL. -#: classes/Ostatus_profile.php:786 -#, php-format -msgid "Could not find a feed URL for profile page %s." -msgstr "Non poteva trovar un URL de syndication pro pagina de profilo %s." - -#. TRANS: Feed sub exception. -#: classes/Ostatus_profile.php:885 -msgid "Can't find enough profile information to make a feed." -msgstr "" -"Non pote trovar satis de information de profilo pro facer un syndication." - -#. TRANS: Server exception. %s is a URL. -#: classes/Ostatus_profile.php:949 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "URL de avatar %s invalide." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:960 -#, php-format -msgid "Tried to update avatar for unsaved remote profile %s." -msgstr "Tentava actualisar avatar pro profilo remote non salveguardate %s." - -#. TRANS: Server exception. %s is a URL. -#: classes/Ostatus_profile.php:970 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "Incapace de obtener avatar ab %s." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1197 -msgid "Local user can't be referenced as remote." -msgstr "Usator local non pote esser referentiate como remote." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1202 -msgid "Local group can't be referenced as remote." -msgstr "Gruppo local non pote esser referentiate como remote." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1254 classes/Ostatus_profile.php:1265 -msgid "Can't save local profile." -msgstr "Non pote salveguardar profilo local." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1273 -msgid "Can't save OStatus profile." -msgstr "Non pote salveguardar profilo OStatus." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1561 classes/Ostatus_profile.php:1589 -msgid "Not a valid webfinger address." -msgstr "Adresse webfinger invalide." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1671 -#, php-format -msgid "Couldn't save profile for \"%s\"." -msgstr "Non poteva salveguardar profilo pro \"%s\"." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1690 -#, php-format -msgid "Couldn't save ostatus_profile for \"%s\"." -msgstr "Non poteva salveguardar osatus_profile pro %s." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1698 -#, php-format -msgid "Couldn't find a valid profile for \"%s\"." -msgstr "Non poteva trovar un profilo valide pro \"%s\"." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1741 -msgid "Could not store HTML content of long post as file." -msgstr "Non poteva immagazinar contento HTML de longe message como file." - -#. TRANS: Client exception. %s is a HTTP status code. -#: classes/HubSub.php:212 -#, php-format -msgid "Hub subscriber verification returned HTTP %s." -msgstr "Verification de subscriptor de centro retornava HTTP %s." - -#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. -#: classes/HubSub.php:359 -#, php-format -msgid "Callback returned status: %1$s. Body: %2$s" -msgstr "Appello de retorno retornava stato: %1$s. Corpore: %2$s" - -#. TRANS: Client error. POST is a HTTP command. It should not be translated. -#: lib/salmonaction.php:43 -msgid "This method requires a POST." -msgstr "Iste methodo require un POST." - -#. TRANS: Client error. Do not translate "application/magic-envelope+xml" -#: lib/salmonaction.php:48 -msgid "Salmon requires \"application/magic-envelope+xml\"." -msgstr "Salmon require \"application/magic-envelope+xml\"." - -#. TRANS: Client error. -#: lib/salmonaction.php:58 -msgid "Salmon signature verification failed." -msgstr "Verification de signatura Salmon falleva." - -#. TRANS: Client error. -#: lib/salmonaction.php:70 -msgid "Salmon post must be an Atom entry." -msgstr "Message Salmon debe esser un entrata Atom." - -#. TRANS: Client exception. -#: lib/salmonaction.php:120 -msgid "Unrecognized activity type." -msgstr "Typo de activitate non recognoscite." - -#. TRANS: Client exception. -#: lib/salmonaction.php:130 -msgid "This target doesn't understand posts." -msgstr "Iste destination non comprende messages." - -#. TRANS: Client exception. -#: lib/salmonaction.php:136 -msgid "This target doesn't understand follows." -msgstr "Iste destination non comprende sequimentos." - -#. TRANS: Client exception. -#: lib/salmonaction.php:142 -msgid "This target doesn't understand unfollows." -msgstr "Iste destination non comprende cessationes de sequimento." - -#. TRANS: Client exception. -#: lib/salmonaction.php:148 -msgid "This target doesn't understand favorites." -msgstr "Iste destination non comprende le addition de favorites." - -#. TRANS: Client exception. -#: lib/salmonaction.php:154 -msgid "This target doesn't understand unfavorites." -msgstr "Iste destination non comprende le remotion de favorites." - -#. TRANS: Client exception. -#: lib/salmonaction.php:160 -msgid "This target doesn't understand share events." -msgstr "Iste destination non comprende eventos commun." - -#. TRANS: Client exception. -#: lib/salmonaction.php:166 -msgid "This target doesn't understand joins." -msgstr "Iste destination non comprende indicationes de adhesion." - -#. TRANS: Client exception. -#: lib/salmonaction.php:172 -msgid "This target doesn't understand leave events." -msgstr "Iste destination non comprende eventos de partita." - -#. TRANS: Exception. -#: lib/salmonaction.php:200 -msgid "Received a salmon slap from unidentified actor." -msgstr "Recipeva un claffo de salmon de un actor non identificate." - -#. TRANS: Exception. -#: lib/magicenvelope.php:80 -msgid "Unable to locate signer public key." -msgstr "Incapace de localisar le clave public del signator." - -#. TRANS: Exception. -#: lib/salmon.php:126 -msgid "Salmon invalid actor for signing." -msgstr "Salmon: actor invalide pro signar." - -#: tests/gettext-speedtest.php:57 -msgid "Feeds" -msgstr "Syndicationes" - -#. TRANS: Client exception. -#: actions/pushhub.php:70 msgid "Publishing outside feeds not supported." msgstr "Le publication de syndicationes externe non es supportate." #. TRANS: Client exception. %s is a mode. -#: actions/pushhub.php:73 #, php-format msgid "Unrecognized mode \"%s\"." msgstr "Modo \"%s\" non recognoscite." #. TRANS: Client exception. %s is a topic. -#: actions/pushhub.php:93 #, php-format msgid "" "Unsupported hub.topic %s this hub only serves local user and group Atom " @@ -385,188 +123,73 @@ msgstr "" "syndicationes Atom de usatores e gruppos local." #. TRANS: Client exception. -#: actions/pushhub.php:99 #, php-format msgid "Invalid hub.verify \"%s\". It must be sync or async." msgstr "Invalide hub.verify \"%s\". Debe esser sync o async." #. TRANS: Client exception. -#: actions/pushhub.php:105 #, php-format msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." msgstr "" "Invalide hub.lease \"%s\". Debe esser vacue o un numero integre positive." #. TRANS: Client exception. -#: actions/pushhub.php:113 #, php-format msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." msgstr "Invalide hub.secret \"%s\". Debe pesar minus de 200 bytes." #. TRANS: Client exception. -#: actions/pushhub.php:165 #, php-format msgid "Invalid hub.topic \"%s\". User doesn't exist." msgstr "Invalide hub.topic \"%s\". Usator non existe." #. TRANS: Client exception. -#: actions/pushhub.php:174 #, php-format msgid "Invalid hub.topic \"%s\". Group doesn't exist." msgstr "Invalide hub.topic \"%s\". Gruppo non existe." #. TRANS: Client exception. #. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. -#: actions/pushhub.php:199 #, php-format msgid "Invalid URL passed for %1$s: \"%2$s\"" msgstr "Invalide URL passate pro %1$s: \"%2$s\"" -#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "Empty or invalid feed id." +msgstr "ID de syndication vacue o invalide." + +#. TRANS: Server exception. %s is a feed ID. +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "ID de syndication PuSH %s incognite" + +#. TRANS: Client exception. %s is an invalid feed name. +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "Syndication hub.topic \"%s\" incorrecte." + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "Incorrecte hub.verify_token %1$s pro %2$s." + +#. TRANS: Client exception. %s is an invalid topic. +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "Requesta de subscription inexpectate pro %s." + +#. TRANS: Client exception. %s is an invalid topic. +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "Requesta de cancellation de subscription inexpectate pro %s." + msgid "No such user." msgstr "Iste usator non existe." -#. TRANS: Client error. -#: actions/usersalmon.php:37 actions/groupsalmon.php:40 -msgid "No ID." -msgstr "Nulle ID." - -#. TRANS: Client exception. -#: actions/usersalmon.php:83 -msgid "In reply to unknown notice." -msgstr "In responsa a un nota incognite." - -#. TRANS: Client exception. -#: actions/usersalmon.php:88 -msgid "In reply to a notice not by this user and not mentioning this user." -msgstr "" -"In responsa a un nota non scribite per iste usator e que non mentiona iste " -"usator." - -#. TRANS: Client exception. -#: actions/usersalmon.php:165 -msgid "Could not save new favorite." -msgstr "Non poteva salveguardar le nove favorite." - -#. TRANS: Client exception. -#: actions/usersalmon.php:197 -msgid "Can't favorite/unfavorite without an object." -msgstr "Non pote favorir/disfavorir sin objecto." - -#. TRANS: Client exception. -#: actions/usersalmon.php:209 -msgid "Can't handle that kind of object for liking/faving." -msgstr "Non pote manear iste typo de objecto pro appreciar/favorir." - -#. TRANS: Client exception. %s is an object ID. -#: actions/usersalmon.php:216 -#, php-format -msgid "Notice with ID %s unknown." -msgstr "Nota con ID %s incognite." - -#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. -#: actions/usersalmon.php:221 -#, php-format -msgid "Notice with ID %1$s not posted by %2$s." -msgstr "Nota con ID %1$s non publicate per %2$s." - -#. TRANS: Field label. -#: actions/ostatusgroup.php:78 -msgid "Join group" -msgstr "Adherer al gruppo" - -#. TRANS: Tooltip for field label "Join group". -#: actions/ostatusgroup.php:81 -msgid "OStatus group's address, like http://example.net/group/nickname." -msgstr "" -"Un adresse de gruppo OStatus, como http://example.net/group/pseudonymo." - -#. TRANS: Button text. -#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 -msgctxt "BUTTON" -msgid "Continue" -msgstr "Continuar" - -#: actions/ostatusgroup.php:105 -msgid "You are already a member of this group." -msgstr "Tu es ja membro de iste gruppo." - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:140 -msgid "Already a member!" -msgstr "Ja membro!" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:151 -msgid "Remote group join failed!" -msgstr "Le adhesion al gruppo remote ha fallite!" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:155 -msgid "Remote group join aborted!" -msgstr "Le adhesion al gruppo remote ha essite abortate!" - -#. TRANS: Page title for OStatus remote group join form -#: actions/ostatusgroup.php:167 -msgid "Confirm joining remote group" -msgstr "Confirmar adhesion a gruppo remote" - -#. TRANS: Instructions. -#: actions/ostatusgroup.php:178 -msgid "" -"You can subscribe to groups from other supported sites. Paste the group's " -"profile URI below:" -msgstr "" -"Tu pote subscriber a gruppos de altere sitos supportate. Colla le URI del " -"profilo del gruppo hic infra:" - -#. TRANS: Client error. -#: actions/groupsalmon.php:47 -msgid "No such group." -msgstr "Gruppo non existe." - -#. TRANS: Client error. -#: actions/groupsalmon.php:56 -msgid "Can't accept remote posts for a remote group." -msgstr "Non pote acceptar messages remote pro un gruppo remote." - -#. TRANS: Client error. -#: actions/groupsalmon.php:130 -msgid "Can't read profile to set up group membership." -msgstr "Non pote leger profilo pro establir membrato de gruppo." - -#. TRANS: Client error. -#: actions/groupsalmon.php:134 actions/groupsalmon.php:177 -msgid "Groups can't join groups." -msgstr "Gruppos non pote adherer a gruppos." - -#: actions/groupsalmon.php:147 -msgid "You have been blocked from that group by the admin." -msgstr "Le administrator te ha blocate de iste gruppo." - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:162 -#, php-format -msgid "Could not join remote user %1$s to group %2$s." -msgstr "Non poteva inscriber le usator remote %1$s in le gruppo %2$s." - -#: actions/groupsalmon.php:174 -msgid "Can't read profile to cancel group membership." -msgstr "Non pote leger profilo pro cancellar membrato de gruppo." - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:191 -#, php-format -msgid "Could not remove remote user %1$s from group %2$s." -msgstr "Non poteva remover le usator remote %1$s del gruppo %2$s." - #. TRANS: Field label for a field that takes an OStatus user address. -#: actions/ostatussub.php:68 msgid "Subscribe to" msgstr "Subscriber a" #. TRANS: Tooltip for field label "Subscribe to". -#: actions/ostatussub.php:71 msgid "" "OStatus user's address, like nickname@example.com or http://example.net/" "nickname" @@ -574,31 +197,30 @@ msgstr "" "Le adresse de un usator OStatus, como pseudonymo@example.com o http://" "example.net/pseudonymo" +#. TRANS: Button text. +msgctxt "BUTTON" +msgid "Continue" +msgstr "Continuar" + #. TRANS: Button text. #. TRANS: Tooltip for button "Join". -#: actions/ostatussub.php:112 msgctxt "BUTTON" msgid "Join this group" msgstr "Adherer a iste gruppo" #. TRANS: Button text. -#: actions/ostatussub.php:115 msgctxt "BUTTON" msgid "Confirm" msgstr "Confirmar" #. TRANS: Tooltip for button "Confirm". -#: actions/ostatussub.php:117 msgid "Subscribe to this user" msgstr "Subscriber a iste usator" -#: actions/ostatussub.php:138 msgid "You are already subscribed to this user." msgstr "Tu es ja subscribite a iste usator." #. TRANS: Error text. -#: actions/ostatussub.php:232 actions/ostatussub.php:239 -#: actions/ostatussub.php:264 msgid "" "Sorry, we could not reach that address. Please make sure that the OStatus " "address is like nickname@example.com or http://example.net/nickname." @@ -608,9 +230,6 @@ msgstr "" "net/pseudonymo." #. TRANS: Error text. -#: actions/ostatussub.php:243 actions/ostatussub.php:247 -#: actions/ostatussub.php:251 actions/ostatussub.php:255 -#: actions/ostatussub.php:259 msgid "" "Sorry, we could not reach that feed. Please try that OStatus address again " "later." @@ -619,31 +238,25 @@ msgstr "" "reproba iste adresse OStatus plus tarde." #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:293 msgid "Already subscribed!" msgstr "Ja subscribite!" #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:298 msgid "Remote subscription failed!" msgstr "Subscription remote fallite!" -#: actions/ostatussub.php:345 actions/ostatusinit.php:64 msgid "There was a problem with your session token. Try again, please." msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." #. TRANS: Form title. -#: actions/ostatussub.php:373 actions/ostatusinit.php:83 msgid "Subscribe to user" msgstr "Subscriber a usator" #. TRANS: Page title for OStatus remote subscription form -#: actions/ostatussub.php:393 msgid "Confirm" msgstr "Confirmar" #. TRANS: Instructions. -#: actions/ostatussub.php:405 msgid "" "You can subscribe to users from other supported sites. Paste their address " "or profile URI below:" @@ -651,128 +264,365 @@ msgstr "" "Tu pote subscriber a usatores de altere sitos supportate. Colla su adresse o " "URI de profilo hic infra:" +#. TRANS: Field label. +msgid "Join group" +msgstr "Adherer al gruppo" + +#. TRANS: Tooltip for field label "Join group". +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" +"Un adresse de gruppo OStatus, como http://example.net/group/pseudonymo." + +msgid "You are already a member of this group." +msgstr "Tu es ja membro de iste gruppo." + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Already a member!" +msgstr "Ja membro!" + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Remote group join failed!" +msgstr "Le adhesion al gruppo remote ha fallite!" + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Remote group join aborted!" +msgstr "Le adhesion al gruppo remote ha essite abortate!" + +#. TRANS: Page title for OStatus remote group join form +msgid "Confirm joining remote group" +msgstr "Confirmar adhesion a gruppo remote" + +#. TRANS: Instructions. +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" +"Tu pote subscriber a gruppos de altere sitos supportate. Colla le URI del " +"profilo del gruppo hic infra:" + +#. TRANS: Client error. +msgid "No ID." +msgstr "Nulle ID." + +#. TRANS: Client exception. +msgid "In reply to unknown notice." +msgstr "In responsa a un nota incognite." + +#. TRANS: Client exception. +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" +"In responsa a un nota non scribite per iste usator e que non mentiona iste " +"usator." + +#. TRANS: Client exception. +msgid "Could not save new favorite." +msgstr "Non poteva salveguardar le nove favorite." + +#. TRANS: Client exception. +msgid "Can't favorite/unfavorite without an object." +msgstr "Non pote favorir/disfavorir sin objecto." + +#. TRANS: Client exception. +msgid "Can't handle that kind of object for liking/faving." +msgstr "Non pote manear iste typo de objecto pro appreciar/favorir." + +#. TRANS: Client exception. %s is an object ID. +#, php-format +msgid "Notice with ID %s unknown." +msgstr "Nota con ID %s incognite." + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "Nota con ID %1$s non publicate per %2$s." + +#. TRANS: Client error. +msgid "No such group." +msgstr "Gruppo non existe." + +#. TRANS: Client error. +msgid "Can't accept remote posts for a remote group." +msgstr "Non pote acceptar messages remote pro un gruppo remote." + +#. TRANS: Client error. +msgid "Can't read profile to set up group membership." +msgstr "Non pote leger profilo pro establir membrato de gruppo." + +#. TRANS: Client error. +msgid "Groups can't join groups." +msgstr "Gruppos non pote adherer a gruppos." + +msgid "You have been blocked from that group by the admin." +msgstr "Le administrator te ha blocate de iste gruppo." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "Non poteva inscriber le usator remote %1$s in le gruppo %2$s." + +msgid "Can't read profile to cancel group membership." +msgstr "Non pote leger profilo pro cancellar membrato de gruppo." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "Non poteva remover le usator remote %1$s del gruppo %2$s." + #. TRANS: Client error. -#: actions/ostatusinit.php:42 msgid "You can use the local subscription!" msgstr "Tu pote usar le subscription local!" #. TRANS: Form legend. -#: actions/ostatusinit.php:98 #, php-format msgid "Join group %s" msgstr "Adherer al gruppo %s" #. TRANS: Button text. -#: actions/ostatusinit.php:100 msgctxt "BUTTON" msgid "Join" msgstr "Inscriber" #. TRANS: Form legend. -#: actions/ostatusinit.php:103 #, php-format msgid "Subscribe to %s" msgstr "Subscriber a %s" #. TRANS: Button text. -#: actions/ostatusinit.php:105 msgctxt "BUTTON" msgid "Subscribe" msgstr "Subscriber" #. TRANS: Field label. -#: actions/ostatusinit.php:119 msgid "Group nickname" msgstr "Pseudonymo del gruppo" -#: actions/ostatusinit.php:120 msgid "Nickname of the group you want to join." msgstr "Le pseudonymo del gruppo a que tu vole adherer." #. TRANS: Field label. -#: actions/ostatusinit.php:123 msgid "User nickname" msgstr "Pseudonymo del usator" -#: actions/ostatusinit.php:124 msgid "Nickname of the user you want to follow." msgstr "Le pseudonymo del usator que tu vole sequer." #. TRANS: Field label. -#: actions/ostatusinit.php:129 msgid "Profile Account" msgstr "Conto de profilo" #. TRANS: Tooltip for field label "Profile Account". -#: actions/ostatusinit.php:131 msgid "Your account id (e.g. user@identi.ca)." msgstr "Le ID de tu conto (p.ex. usator@identi.ca)." #. TRANS: Client error. -#: actions/ostatusinit.php:153 msgid "Must provide a remote profile." msgstr "Debe fornir un profilo remote." #. TRANS: Client error. -#: actions/ostatusinit.php:165 msgid "Couldn't look up OStatus account profile." msgstr "Non poteva cercar le profilo del conto OStatus." #. TRANS: Client error. -#: actions/ostatusinit.php:178 msgid "Couldn't confirm remote profile address." msgstr "Non poteva confirmar le adresse del profilo remote." #. TRANS: Page title. -#: actions/ostatusinit.php:223 msgid "OStatus Connect" msgstr "Connexion OStatus" -#: actions/pushcallback.php:50 -msgid "Empty or invalid feed id." -msgstr "ID de syndication vacue o invalide." +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "Tentativa de comenciar subscription PuSH pro syndication sin centro." -#. TRANS: Server exception. %s is a feed ID. -#: actions/pushcallback.php:56 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "Tentativa de terminar subscription PuSH pro syndication sin centro." + +#. TRANS: Server exception. %s is a URI. #, php-format -msgid "Unknown PuSH feed id %s" -msgstr "ID de syndication PuSH %s incognite" +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" +"Stato ostatus_profile invalide: IDs e de gruppo e de profilo definite pro %s." -#. TRANS: Client exception. %s is an invalid feed name. -#: actions/pushcallback.php:96 +#. TRANS: Server exception. %s is a URI. #, php-format -msgid "Bad hub.topic feed \"%s\"." -msgstr "Syndication hub.topic \"%s\" incorrecte." +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" +"Stato ostatus_profile invalide: IDs e de gruppo e de profilo vacue pro %s." -#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. -#: actions/pushcallback.php:101 +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. #, php-format -msgid "Bad hub.verify_token %1$s for %2$s." -msgstr "Incorrecte hub.verify_token %1$s pro %2$s." +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "Actor invalide passate a %1$s: %2$s." -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:108 +#. TRANS: Server exception. +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" +"Typo invalide passate a Ostatos_profile::notify. Illo debe esser catena XML " +"o entrata Activity." + +#. TRANS: Exception. +msgid "Unknown feed format." +msgstr "Formato de syndication incognite." + +#. TRANS: Exception. +msgid "RSS feed without a channel." +msgstr "Syndication RSS sin canal." + +#. TRANS: Client exception. +msgid "Can't handle that kind of post." +msgstr "Non pote tractar iste typo de message." + +#. TRANS: Client exception. %s is a source URI. #, php-format -msgid "Unexpected subscribe request for %s." -msgstr "Requesta de subscription inexpectate pro %s." +msgid "No content for notice %s." +msgstr "Nulle contento pro nota %s." -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:113 +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +msgid "Show more" +msgstr "Monstrar plus" + +#. TRANS: Exception. %s is a profile URL. #, php-format -msgid "Unexpected unsubscribe request for %s." -msgstr "Requesta de cancellation de subscription inexpectate pro %s." +msgid "Could not reach profile page %s." +msgstr "Non poteva attinger pagina de profilo %s." -#~ msgid "Photo" -#~ msgstr "Photo" +#. TRANS: Exception. %s is a URL. +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "Non poteva trovar un URL de syndication pro pagina de profilo %s." -#~ msgid "Nickname" -#~ msgstr "Pseudonymo" +#. TRANS: Feed sub exception. +msgid "Can't find enough profile information to make a feed." +msgstr "" +"Non pote trovar satis de information de profilo pro facer un syndication." -#~ msgid "Location" -#~ msgstr "Loco" +#. TRANS: Server exception. %s is a URL. +#, php-format +msgid "Invalid avatar URL %s." +msgstr "URL de avatar %s invalide." -#~ msgid "URL" -#~ msgstr "URL" +#. TRANS: Server exception. %s is a URI. +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "Tentava actualisar avatar pro profilo remote non salveguardate %s." -#~ msgid "Note" -#~ msgstr "Nota" +#. TRANS: Server exception. %s is a URL. +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Incapace de obtener avatar ab %s." + +#. TRANS: Exception. +msgid "Local user can't be referenced as remote." +msgstr "Usator local non pote esser referentiate como remote." + +#. TRANS: Exception. +msgid "Local group can't be referenced as remote." +msgstr "Gruppo local non pote esser referentiate como remote." + +#. TRANS: Server exception. +msgid "Can't save local profile." +msgstr "Non pote salveguardar profilo local." + +#. TRANS: Server exception. +msgid "Can't save OStatus profile." +msgstr "Non pote salveguardar profilo OStatus." + +#. TRANS: Exception. +msgid "Not a valid webfinger address." +msgstr "Adresse webfinger invalide." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "Non poteva salveguardar profilo pro \"%s\"." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "Non poteva salveguardar osatus_profile pro %s." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "Non poteva trovar un profilo valide pro \"%s\"." + +#. TRANS: Server exception. +msgid "Could not store HTML content of long post as file." +msgstr "Non poteva immagazinar contento HTML de longe message como file." + +#. TRANS: Client exception. %s is a HTTP status code. +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "Verification de subscriptor de centro retornava HTTP %s." + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "Appello de retorno retornava stato: %1$s. Corpore: %2$s" + +#. TRANS: Exception. +msgid "Unable to locate signer public key." +msgstr "Incapace de localisar le clave public del signator." + +#. TRANS: Exception. +msgid "Salmon invalid actor for signing." +msgstr "Salmon: actor invalide pro signar." + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +msgid "This method requires a POST." +msgstr "Iste methodo require un POST." + +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +msgid "Salmon requires \"application/magic-envelope+xml\"." +msgstr "Salmon require \"application/magic-envelope+xml\"." + +#. TRANS: Client error. +msgid "Salmon signature verification failed." +msgstr "Verification de signatura Salmon falleva." + +#. TRANS: Client error. +msgid "Salmon post must be an Atom entry." +msgstr "Message Salmon debe esser un entrata Atom." + +#. TRANS: Client exception. +msgid "Unrecognized activity type." +msgstr "Typo de activitate non recognoscite." + +#. TRANS: Client exception. +msgid "This target doesn't understand posts." +msgstr "Iste destination non comprende messages." + +#. TRANS: Client exception. +msgid "This target doesn't understand follows." +msgstr "Iste destination non comprende sequimentos." + +#. TRANS: Client exception. +msgid "This target doesn't understand unfollows." +msgstr "Iste destination non comprende cessationes de sequimento." + +#. TRANS: Client exception. +msgid "This target doesn't understand favorites." +msgstr "Iste destination non comprende le addition de favorites." + +#. TRANS: Client exception. +msgid "This target doesn't understand unfavorites." +msgstr "Iste destination non comprende le remotion de favorites." + +#. TRANS: Client exception. +msgid "This target doesn't understand share events." +msgstr "Iste destination non comprende eventos commun." + +#. TRANS: Client exception. +msgid "This target doesn't understand joins." +msgstr "Iste destination non comprende indicationes de adhesion." + +#. TRANS: Client exception. +msgid "This target doesn't understand leave events." +msgstr "Iste destination non comprende eventos de partita." + +#. TRANS: Exception. +msgid "Received a salmon slap from unidentified actor." +msgstr "Recipeva un claffo de salmon de un actor non identificate." diff --git a/plugins/OStatus/locale/mk/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/mk/LC_MESSAGES/OStatus.po index 52cc874556..2fb9e780e6 100644 --- a/plugins/OStatus/locale/mk/LC_MESSAGES/OStatus.po +++ b/plugins/OStatus/locale/mk/LC_MESSAGES/OStatus.po @@ -9,108 +9,94 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OStatus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:45+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:28+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:01+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-ostatus\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" +msgid "Feeds" +msgstr "Канали" + #. TRANS: Link description for link to subscribe to a remote user. #. TRANS: Link text for a user to subscribe to an OStatus user. -#: OStatusPlugin.php:223 OStatusPlugin.php:933 msgid "Subscribe" msgstr "Претплати се" #. TRANS: Link description for link to join a remote group. -#: OStatusPlugin.php:242 OStatusPlugin.php:651 actions/ostatussub.php:109 msgid "Join" msgstr "Зачлени се" #. TRANSLATE: %s is a domain. -#: OStatusPlugin.php:455 #, php-format msgid "Sent from %s via OStatus" msgstr "Испратено од %s преку OStatus" #. TRANS: Exception. -#: OStatusPlugin.php:527 msgid "Could not set up remote subscription." msgstr "Не можев да ја поставам далечинската претплата." -#: OStatusPlugin.php:601 msgid "Unfollow" msgstr "Престани со следење" #. TRANS: Success message for unsubscribe from user attempt through OStatus. #. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. -#: OStatusPlugin.php:604 #, php-format msgid "%1$s stopped following %2$s." msgstr "%1$s престана да го/ја следи %2$s." -#: OStatusPlugin.php:632 msgid "Could not set up remote group membership." msgstr "Не можев да го поставам членството во далечинската група." #. TRANS: Success message for subscribe to group attempt through OStatus. #. TRANS: %1$s is the member name, %2$s is the subscribed group's name. -#: OStatusPlugin.php:654 #, php-format msgid "%1$s has joined group %2$s." msgstr "%1$s се зачлени во групата %2$s." #. TRANS: Exception. -#: OStatusPlugin.php:663 msgid "Failed joining remote group." msgstr "Не успеав да Ве зачленам во далечинската група." -#: OStatusPlugin.php:703 msgid "Leave" msgstr "Напушти" #. TRANS: Success message for unsubscribe from group attempt through OStatus. #. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. -#: OStatusPlugin.php:706 #, php-format msgid "%1$s has left group %2$s." msgstr "%1$s ја напушти групата %2$s." -#: OStatusPlugin.php:781 msgid "Disfavor" msgstr "Откажи бендисана" #. TRANS: Success message for remove a favorite notice through OStatus. #. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. -#: OStatusPlugin.php:784 #, php-format msgid "%1$s marked notice %2$s as no longer a favorite." msgstr "%1$s повеќе не ја бендисува забелешката %2$s." #. TRANS: Link text for link to remote subscribe. -#: OStatusPlugin.php:860 msgid "Remote" msgstr "Далечински" #. TRANS: Title for activity. -#: OStatusPlugin.php:900 msgid "Profile update" msgstr "Поднова на профил" #. TRANS: Ping text for remote profile update through OStatus. #. TRANS: %s is user that updated their profile. -#: OStatusPlugin.php:903 #, php-format msgid "%s has updated their profile page." msgstr "%s ја поднови својата профилна страница." #. TRANS: Plugin description. -#: OStatusPlugin.php:948 msgid "" "Follow people across social networks that implement OStatus." @@ -118,268 +104,16 @@ msgstr "" "Следете луѓе низ разни друштвени мрежи што го применуваат OStatus." -#: classes/FeedSub.php:252 -msgid "Attempting to start PuSH subscription for feed with no hub." -msgstr "Се обидов да ја започнам PuSH-претплатата за канал без средиште." - -#: classes/FeedSub.php:282 -msgid "Attempting to end PuSH subscription for feed with no hub." -msgstr "" -"Се обидувам да ставам крај на PuSH-претплатата за емитување без средиште." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:154 -#, php-format -msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." -msgstr "" -"Неважечка ostatus_profile-состојба: назнаките (ID) на групата и профилот се " -"наместени за %s." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:157 -#, php-format -msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." -msgstr "" -"Неважечка ostatus_profile-состојба: назнаките (ID) за групата и профилот се " -"празни за %s." - -#. TRANS: Server exception. -#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. -#: classes/Ostatus_profile.php:247 -#, php-format -msgid "Invalid actor passed to %1$s: %2$s." -msgstr "На %1$s е пренесен неважечки учесник: %2$s." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:341 -msgid "" -"Invalid type passed to Ostatus_profile::notify. It must be XML string or " -"Activity entry." -msgstr "" -"На Ostatus_profile::notify е пренесен неважечки тип. Мора да биде XML-низа " -"или ставка во Activity." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:372 -msgid "Unknown feed format." -msgstr "Непознат формат на каналско емитување." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:396 -msgid "RSS feed without a channel." -msgstr "RSS-емитување без канал." - #. TRANS: Client exception. -#: classes/Ostatus_profile.php:442 -msgid "Can't handle that kind of post." -msgstr "Не можам да работам со таква објава." - -#. TRANS: Client exception. %s is a source URI. -#: classes/Ostatus_profile.php:500 -#, php-format -msgid "No content for notice %s." -msgstr "Нема содржина за забелешката %s." - -#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime -#. TRANS: this will usually be replaced with localised text from StatusNet core messages. -#: classes/Ostatus_profile.php:535 -msgid "Show more" -msgstr "Повеќе" - -#. TRANS: Exception. %s is a profile URL. -#: classes/Ostatus_profile.php:728 -#, php-format -msgid "Could not reach profile page %s." -msgstr "Не можев да ја добијам профилната страница %s." - -#. TRANS: Exception. %s is a URL. -#: classes/Ostatus_profile.php:786 -#, php-format -msgid "Could not find a feed URL for profile page %s." -msgstr "Не можев да пронајдам каналска URL-адреса за профилната страница %s." - -#. TRANS: Feed sub exception. -#: classes/Ostatus_profile.php:885 -msgid "Can't find enough profile information to make a feed." -msgstr "Не можев да најдам доволно профилни податоци за да направам канал." - -#. TRANS: Server exception. %s is a URL. -#: classes/Ostatus_profile.php:949 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "Неважечка URL-адреса за аватарот: %s." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:960 -#, php-format -msgid "Tried to update avatar for unsaved remote profile %s." -msgstr "" -"Се обидов да го подновам аватарот за незачуваниот далечински профил %s." - -#. TRANS: Server exception. %s is a URL. -#: classes/Ostatus_profile.php:970 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "Не можам да го добијам аватарот од %s." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1197 -msgid "Local user can't be referenced as remote." -msgstr "Локалниот корисник не може да се наведе како далечински." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1202 -msgid "Local group can't be referenced as remote." -msgstr "Локалната група не може да се наведе како далечинска." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1254 classes/Ostatus_profile.php:1265 -msgid "Can't save local profile." -msgstr "Не можам да го зачувам локалниот профил." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1273 -msgid "Can't save OStatus profile." -msgstr "Не можам да го зачувам профилот од OStatus." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1561 classes/Ostatus_profile.php:1589 -msgid "Not a valid webfinger address." -msgstr "Ова не е важечка Webfinger-адреса" - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1671 -#, php-format -msgid "Couldn't save profile for \"%s\"." -msgstr "Не можам да го зачувам профилот за „%s“." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1690 -#, php-format -msgid "Couldn't save ostatus_profile for \"%s\"." -msgstr "Не можам да го зачувам ostatus_profile за „%s“." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1698 -#, php-format -msgid "Couldn't find a valid profile for \"%s\"." -msgstr "Не можев да пронајдам важечки профил за „%s“." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1741 -msgid "Could not store HTML content of long post as file." -msgstr "" -"Не можам да ја складирам HTML-содржината на долгата објава како податотека." - -#. TRANS: Client exception. %s is a HTTP status code. -#: classes/HubSub.php:212 -#, php-format -msgid "Hub subscriber verification returned HTTP %s." -msgstr "Потврдата на претплатникот на средиштето даде HTTP %s." - -#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. -#: classes/HubSub.php:359 -#, php-format -msgid "Callback returned status: %1$s. Body: %2$s" -msgstr "Повратниот повик даде статус: %1$s. Содржина: %2$s" - -#. TRANS: Client error. POST is a HTTP command. It should not be translated. -#: lib/salmonaction.php:43 -msgid "This method requires a POST." -msgstr "Овој метод бара POST." - -#. TRANS: Client error. Do not translate "application/magic-envelope+xml" -#: lib/salmonaction.php:48 -msgid "Salmon requires \"application/magic-envelope+xml\"." -msgstr "Salmon бара „програм/magic-envelope+xml“." - -#. TRANS: Client error. -#: lib/salmonaction.php:58 -msgid "Salmon signature verification failed." -msgstr "Salmon-овото потврдување на потпис не успеа." - -#. TRANS: Client error. -#: lib/salmonaction.php:70 -msgid "Salmon post must be an Atom entry." -msgstr "Salmon-овата објава мора да биде Atom-ова ставка." - -#. TRANS: Client exception. -#: lib/salmonaction.php:120 -msgid "Unrecognized activity type." -msgstr "Непризнаен вид на активност." - -#. TRANS: Client exception. -#: lib/salmonaction.php:130 -msgid "This target doesn't understand posts." -msgstr "Оваа цел не разбира објави." - -#. TRANS: Client exception. -#: lib/salmonaction.php:136 -msgid "This target doesn't understand follows." -msgstr "Оваа цел не разбира следења." - -#. TRANS: Client exception. -#: lib/salmonaction.php:142 -msgid "This target doesn't understand unfollows." -msgstr "Оваа цел не разбира прекини на следења." - -#. TRANS: Client exception. -#: lib/salmonaction.php:148 -msgid "This target doesn't understand favorites." -msgstr "Оваа цел не разбира бендисување на забелешки." - -#. TRANS: Client exception. -#: lib/salmonaction.php:154 -msgid "This target doesn't understand unfavorites." -msgstr "Оваа цел не разбира одбендисување на забелешки." - -#. TRANS: Client exception. -#: lib/salmonaction.php:160 -msgid "This target doesn't understand share events." -msgstr "Оваа цел не разбира споделување на настани." - -#. TRANS: Client exception. -#: lib/salmonaction.php:166 -msgid "This target doesn't understand joins." -msgstr "Оваа цел не разбира придружувања." - -#. TRANS: Client exception. -#: lib/salmonaction.php:172 -msgid "This target doesn't understand leave events." -msgstr "Оваа цел не разбира напуштање на настани." - -#. TRANS: Exception. -#: lib/salmonaction.php:200 -msgid "Received a salmon slap from unidentified actor." -msgstr "Примив Salmon-шамар од непознат учесник." - -#. TRANS: Exception. -#: lib/magicenvelope.php:80 -msgid "Unable to locate signer public key." -msgstr "Не можам да го пронајдам јавниот клуч на потписникот." - -#. TRANS: Exception. -#: lib/salmon.php:126 -msgid "Salmon invalid actor for signing." -msgstr "Ова е неважечки учесник во потпишувањето според Salmon." - -#: tests/gettext-speedtest.php:57 -msgid "Feeds" -msgstr "Канали" - -#. TRANS: Client exception. -#: actions/pushhub.php:70 msgid "Publishing outside feeds not supported." msgstr "Објавувањето вон каналите не е поддржано." #. TRANS: Client exception. %s is a mode. -#: actions/pushhub.php:73 #, php-format msgid "Unrecognized mode \"%s\"." msgstr "Непрепознат режим „%s“." #. TRANS: Client exception. %s is a topic. -#: actions/pushhub.php:93 #, php-format msgid "" "Unsupported hub.topic %s this hub only serves local user and group Atom " @@ -389,188 +123,72 @@ msgstr "" "локални корисници и групи." #. TRANS: Client exception. -#: actions/pushhub.php:99 #, php-format msgid "Invalid hub.verify \"%s\". It must be sync or async." msgstr "Неважечки hub.verify „%s“. Мора да биде sync или async." #. TRANS: Client exception. -#: actions/pushhub.php:105 #, php-format msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." msgstr "Неважечки hub.lease „%s“. Мора да биде празно или позитивен цел број." #. TRANS: Client exception. -#: actions/pushhub.php:113 #, php-format msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." msgstr "Неважечки hub.secret „%s“. Мора да биде под 200 бајти." #. TRANS: Client exception. -#: actions/pushhub.php:165 #, php-format msgid "Invalid hub.topic \"%s\". User doesn't exist." msgstr "Неважеки hub.topic „%s“. Корисникот не постои." #. TRANS: Client exception. -#: actions/pushhub.php:174 #, php-format msgid "Invalid hub.topic \"%s\". Group doesn't exist." msgstr "Неважечки hub.topic „%s“. Групата не постои." #. TRANS: Client exception. #. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. -#: actions/pushhub.php:199 #, php-format msgid "Invalid URL passed for %1$s: \"%2$s\"" msgstr "Добив неважечка URL-адреса за %1$s: „%2$s“" -#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "Empty or invalid feed id." +msgstr "Празен или неважечки ID за канал" + +#. TRANS: Server exception. %s is a feed ID. +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "Непознат ID %s за PuSH-канал" + +#. TRANS: Client exception. %s is an invalid feed name. +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "Лош hub.topic-канал „%s“." + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "Лош hub.verify_token %1$s за %2$s." + +#. TRANS: Client exception. %s is an invalid topic. +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "Неочекувано барање за претплата за %s." + +#. TRANS: Client exception. %s is an invalid topic. +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "Неочекувано барање за отпишување од претплата за %s." + msgid "No such user." msgstr "Нема таков корисник." -#. TRANS: Client error. -#: actions/usersalmon.php:37 actions/groupsalmon.php:40 -msgid "No ID." -msgstr "Нема ID." - -#. TRANS: Client exception. -#: actions/usersalmon.php:83 -msgid "In reply to unknown notice." -msgstr "Како одговор на непозната забелешка." - -#. TRANS: Client exception. -#: actions/usersalmon.php:88 -msgid "In reply to a notice not by this user and not mentioning this user." -msgstr "" -"Како одговор на забелешка која не е од овој корисник и не го споменува." - -#. TRANS: Client exception. -#: actions/usersalmon.php:165 -msgid "Could not save new favorite." -msgstr "Не можам да го зачувам новобендисаното." - -#. TRANS: Client exception. -#: actions/usersalmon.php:197 -msgid "Can't favorite/unfavorite without an object." -msgstr "Не можам да означам како бендисано или да тргнам бендисано без објект." - -#. TRANS: Client exception. -#: actions/usersalmon.php:209 -msgid "Can't handle that kind of object for liking/faving." -msgstr "" -"Не можам да работам со таков објект за ставање врски/означување бендисани." - -#. TRANS: Client exception. %s is an object ID. -#: actions/usersalmon.php:216 -#, php-format -msgid "Notice with ID %s unknown." -msgstr "Не ја распознавам забелешката со ID %s." - -#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. -#: actions/usersalmon.php:221 -#, php-format -msgid "Notice with ID %1$s not posted by %2$s." -msgstr "Забелешката со ID %1$s не е објавена од %2$s." - -#. TRANS: Field label. -#: actions/ostatusgroup.php:78 -msgid "Join group" -msgstr "Зачлени се во групата" - -#. TRANS: Tooltip for field label "Join group". -#: actions/ostatusgroup.php:81 -msgid "OStatus group's address, like http://example.net/group/nickname." -msgstr "" -"Адреса на групата на OStatus, како на пр. http://primer.net/group/prekar." - -#. TRANS: Button text. -#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 -msgctxt "BUTTON" -msgid "Continue" -msgstr "Продолжи" - -#: actions/ostatusgroup.php:105 -msgid "You are already a member of this group." -msgstr "Веќе членувате во групава." - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:140 -msgid "Already a member!" -msgstr "Веќе членувате!" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:151 -msgid "Remote group join failed!" -msgstr "Придружувањето на далечинската група не успеа!" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:155 -msgid "Remote group join aborted!" -msgstr "Придружувањето на далечинската група е откажано!" - -#. TRANS: Page title for OStatus remote group join form -#: actions/ostatusgroup.php:167 -msgid "Confirm joining remote group" -msgstr "Потврди придружување кон далечинска група." - -#. TRANS: Instructions. -#: actions/ostatusgroup.php:178 -msgid "" -"You can subscribe to groups from other supported sites. Paste the group's " -"profile URI below:" -msgstr "" -"Можете да се претплаќате на групи од други поддржани мреж. места. Подолу " -"залепете го URI-то на профилот на групата." - -#. TRANS: Client error. -#: actions/groupsalmon.php:47 -msgid "No such group." -msgstr "Нема таква група." - -#. TRANS: Client error. -#: actions/groupsalmon.php:56 -msgid "Can't accept remote posts for a remote group." -msgstr "Не можам да прифаќам далечински објави од далечинска група." - -#. TRANS: Client error. -#: actions/groupsalmon.php:130 -msgid "Can't read profile to set up group membership." -msgstr "" -"Не можев да го прочитам профилот за да го поставам членството во групата." - -#. TRANS: Client error. -#: actions/groupsalmon.php:134 actions/groupsalmon.php:177 -msgid "Groups can't join groups." -msgstr "Во групите не можат да се зачленуваат групи." - -#: actions/groupsalmon.php:147 -msgid "You have been blocked from that group by the admin." -msgstr "Блокирани сте на таа група од администратор." - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:162 -#, php-format -msgid "Could not join remote user %1$s to group %2$s." -msgstr "Не можев да го зачленам далечинскиот корисник %1$s во групата %2$s." - -#: actions/groupsalmon.php:174 -msgid "Can't read profile to cancel group membership." -msgstr "Не можам да го прочитам профилот за откажам членство во групата." - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:191 -#, php-format -msgid "Could not remove remote user %1$s from group %2$s." -msgstr "Не можев да го отстранам далечинскиот корисник %1$s од групата %2$s." - #. TRANS: Field label for a field that takes an OStatus user address. -#: actions/ostatussub.php:68 msgid "Subscribe to" msgstr "Претплати се" #. TRANS: Tooltip for field label "Subscribe to". -#: actions/ostatussub.php:71 msgid "" "OStatus user's address, like nickname@example.com or http://example.net/" "nickname" @@ -578,31 +196,30 @@ msgstr "" "Адреса на корисникот на OStatus, како на пр. prekar@primer.com or http://" "primer.net/prekar" +#. TRANS: Button text. +msgctxt "BUTTON" +msgid "Continue" +msgstr "Продолжи" + #. TRANS: Button text. #. TRANS: Tooltip for button "Join". -#: actions/ostatussub.php:112 msgctxt "BUTTON" msgid "Join this group" msgstr "Зачлени се во групава" #. TRANS: Button text. -#: actions/ostatussub.php:115 msgctxt "BUTTON" msgid "Confirm" msgstr "Потврди" #. TRANS: Tooltip for button "Confirm". -#: actions/ostatussub.php:117 msgid "Subscribe to this user" msgstr "Претплати се на корисников" -#: actions/ostatussub.php:138 msgid "You are already subscribed to this user." msgstr "Веќе сте претплатени на овој корисник." #. TRANS: Error text. -#: actions/ostatussub.php:232 actions/ostatussub.php:239 -#: actions/ostatussub.php:264 msgid "" "Sorry, we could not reach that address. Please make sure that the OStatus " "address is like nickname@example.com or http://example.net/nickname." @@ -611,9 +228,6 @@ msgstr "" "OStatus е од типот prekar@primer.com или http://primer.net/prekar." #. TRANS: Error text. -#: actions/ostatussub.php:243 actions/ostatussub.php:247 -#: actions/ostatussub.php:251 actions/ostatussub.php:255 -#: actions/ostatussub.php:259 msgid "" "Sorry, we could not reach that feed. Please try that OStatus address again " "later." @@ -622,31 +236,25 @@ msgstr "" "адреса подоцна." #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:293 msgid "Already subscribed!" msgstr "Веќе сте претплатени!" #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:298 msgid "Remote subscription failed!" msgstr "Далечинската претплата не успеа!" -#: actions/ostatussub.php:345 actions/ostatusinit.php:64 msgid "There was a problem with your session token. Try again, please." msgstr "Се појави проблем со жетонот на Вашата сесија. Обидете се повторно." #. TRANS: Form title. -#: actions/ostatussub.php:373 actions/ostatusinit.php:83 msgid "Subscribe to user" msgstr "Претплати се на корисник" #. TRANS: Page title for OStatus remote subscription form -#: actions/ostatussub.php:393 msgid "Confirm" msgstr "Потврди" #. TRANS: Instructions. -#: actions/ostatussub.php:405 msgid "" "You can subscribe to users from other supported sites. Paste their address " "or profile URI below:" @@ -654,128 +262,370 @@ msgstr "" "Можете да се претплатите на корисници од други поддржани мрежни места. " "Ископирајте ја нивната адреса или профилно URI подолу:" +#. TRANS: Field label. +msgid "Join group" +msgstr "Зачлени се во групата" + +#. TRANS: Tooltip for field label "Join group". +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" +"Адреса на групата на OStatus, како на пр. http://primer.net/group/prekar." + +msgid "You are already a member of this group." +msgstr "Веќе членувате во групава." + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Already a member!" +msgstr "Веќе членувате!" + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Remote group join failed!" +msgstr "Придружувањето на далечинската група не успеа!" + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Remote group join aborted!" +msgstr "Придружувањето на далечинската група е откажано!" + +#. TRANS: Page title for OStatus remote group join form +msgid "Confirm joining remote group" +msgstr "Потврди придружување кон далечинска група." + +#. TRANS: Instructions. +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" +"Можете да се претплаќате на групи од други поддржани мреж. места. Подолу " +"залепете го URI-то на профилот на групата." + +#. TRANS: Client error. +msgid "No ID." +msgstr "Нема ID." + +#. TRANS: Client exception. +msgid "In reply to unknown notice." +msgstr "Како одговор на непозната забелешка." + +#. TRANS: Client exception. +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" +"Како одговор на забелешка која не е од овој корисник и не го споменува." + +#. TRANS: Client exception. +msgid "Could not save new favorite." +msgstr "Не можам да го зачувам новобендисаното." + +#. TRANS: Client exception. +msgid "Can't favorite/unfavorite without an object." +msgstr "Не можам да означам како бендисано или да тргнам бендисано без објект." + +#. TRANS: Client exception. +msgid "Can't handle that kind of object for liking/faving." +msgstr "" +"Не можам да работам со таков објект за ставање врски/означување бендисани." + +#. TRANS: Client exception. %s is an object ID. +#, php-format +msgid "Notice with ID %s unknown." +msgstr "Не ја распознавам забелешката со ID %s." + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "Забелешката со ID %1$s не е објавена од %2$s." + +#. TRANS: Client error. +msgid "No such group." +msgstr "Нема таква група." + +#. TRANS: Client error. +msgid "Can't accept remote posts for a remote group." +msgstr "Не можам да прифаќам далечински објави од далечинска група." + +#. TRANS: Client error. +msgid "Can't read profile to set up group membership." +msgstr "" +"Не можев да го прочитам профилот за да го поставам членството во групата." + +#. TRANS: Client error. +msgid "Groups can't join groups." +msgstr "Во групите не можат да се зачленуваат групи." + +msgid "You have been blocked from that group by the admin." +msgstr "Блокирани сте на таа група од администратор." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "Не можев да го зачленам далечинскиот корисник %1$s во групата %2$s." + +msgid "Can't read profile to cancel group membership." +msgstr "Не можам да го прочитам профилот за откажам членство во групата." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "Не можев да го отстранам далечинскиот корисник %1$s од групата %2$s." + #. TRANS: Client error. -#: actions/ostatusinit.php:42 msgid "You can use the local subscription!" msgstr "Можете да ја користите локалната претплата!" #. TRANS: Form legend. -#: actions/ostatusinit.php:98 #, php-format msgid "Join group %s" msgstr "Зачлени се во групата %s" #. TRANS: Button text. -#: actions/ostatusinit.php:100 msgctxt "BUTTON" msgid "Join" msgstr "Зачлени се" #. TRANS: Form legend. -#: actions/ostatusinit.php:103 #, php-format msgid "Subscribe to %s" msgstr "Претплати се на %s" #. TRANS: Button text. -#: actions/ostatusinit.php:105 msgctxt "BUTTON" msgid "Subscribe" msgstr "Претплати се" #. TRANS: Field label. -#: actions/ostatusinit.php:119 msgid "Group nickname" msgstr "Прекар на групата" -#: actions/ostatusinit.php:120 msgid "Nickname of the group you want to join." msgstr "Прекар на групата кајшто сакате да се зачлените." #. TRANS: Field label. -#: actions/ostatusinit.php:123 msgid "User nickname" msgstr "Прекар на корисникот" -#: actions/ostatusinit.php:124 msgid "Nickname of the user you want to follow." msgstr "Прекарот на корисникот што сакате да го следите." #. TRANS: Field label. -#: actions/ostatusinit.php:129 msgid "Profile Account" msgstr "Профилна сметка" #. TRANS: Tooltip for field label "Profile Account". -#: actions/ostatusinit.php:131 msgid "Your account id (e.g. user@identi.ca)." msgstr "Вашата назнака (ID) на сметката (на пр. korisnik@identi.ca)." #. TRANS: Client error. -#: actions/ostatusinit.php:153 msgid "Must provide a remote profile." msgstr "Мора да наведете далечински профил." #. TRANS: Client error. -#: actions/ostatusinit.php:165 msgid "Couldn't look up OStatus account profile." msgstr "Не можев да го проверам профилот на OStatus-сметката." #. TRANS: Client error. -#: actions/ostatusinit.php:178 msgid "Couldn't confirm remote profile address." msgstr "Не можев да ја потврдам адресата на далечинскиот профил." #. TRANS: Page title. -#: actions/ostatusinit.php:223 msgid "OStatus Connect" msgstr "OStatus - Поврзување" -#: actions/pushcallback.php:50 -msgid "Empty or invalid feed id." -msgstr "Празен или неважечки ID за канал" +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "Се обидов да ја започнам PuSH-претплатата за канал без средиште." -#. TRANS: Server exception. %s is a feed ID. -#: actions/pushcallback.php:56 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "" +"Се обидувам да ставам крај на PuSH-претплатата за емитување без средиште." + +#. TRANS: Server exception. %s is a URI. #, php-format -msgid "Unknown PuSH feed id %s" -msgstr "Непознат ID %s за PuSH-канал" +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" +"Неважечка ostatus_profile-состојба: назнаките (ID) на групата и профилот се " +"наместени за %s." -#. TRANS: Client exception. %s is an invalid feed name. -#: actions/pushcallback.php:96 +#. TRANS: Server exception. %s is a URI. #, php-format -msgid "Bad hub.topic feed \"%s\"." -msgstr "Лош hub.topic-канал „%s“." +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" +"Неважечка ostatus_profile-состојба: назнаките (ID) за групата и профилот се " +"празни за %s." -#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. -#: actions/pushcallback.php:101 +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. #, php-format -msgid "Bad hub.verify_token %1$s for %2$s." -msgstr "Лош hub.verify_token %1$s за %2$s." +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "На %1$s е пренесен неважечки учесник: %2$s." -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:108 +#. TRANS: Server exception. +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" +"На Ostatus_profile::notify е пренесен неважечки тип. Мора да биде XML-низа " +"или ставка во Activity." + +#. TRANS: Exception. +msgid "Unknown feed format." +msgstr "Непознат формат на каналско емитување." + +#. TRANS: Exception. +msgid "RSS feed without a channel." +msgstr "RSS-емитување без канал." + +#. TRANS: Client exception. +msgid "Can't handle that kind of post." +msgstr "Не можам да работам со таква објава." + +#. TRANS: Client exception. %s is a source URI. #, php-format -msgid "Unexpected subscribe request for %s." -msgstr "Неочекувано барање за претплата за %s." +msgid "No content for notice %s." +msgstr "Нема содржина за забелешката %s." -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:113 +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +msgid "Show more" +msgstr "Повеќе" + +#. TRANS: Exception. %s is a profile URL. #, php-format -msgid "Unexpected unsubscribe request for %s." -msgstr "Неочекувано барање за отпишување од претплата за %s." +msgid "Could not reach profile page %s." +msgstr "Не можев да ја добијам профилната страница %s." -#~ msgid "Photo" -#~ msgstr "Слика" +#. TRANS: Exception. %s is a URL. +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "Не можев да пронајдам каналска URL-адреса за профилната страница %s." -#~ msgid "Nickname" -#~ msgstr "Прекар" +#. TRANS: Feed sub exception. +msgid "Can't find enough profile information to make a feed." +msgstr "Не можев да најдам доволно профилни податоци за да направам канал." -#~ msgid "Location" -#~ msgstr "Место" +#. TRANS: Server exception. %s is a URL. +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Неважечка URL-адреса за аватарот: %s." -#~ msgid "URL" -#~ msgstr "URL-адереса" +#. TRANS: Server exception. %s is a URI. +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "" +"Се обидов да го подновам аватарот за незачуваниот далечински профил %s." -#~ msgid "Note" -#~ msgstr "Белешка" +#. TRANS: Server exception. %s is a URL. +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Не можам да го добијам аватарот од %s." + +#. TRANS: Exception. +msgid "Local user can't be referenced as remote." +msgstr "Локалниот корисник не може да се наведе како далечински." + +#. TRANS: Exception. +msgid "Local group can't be referenced as remote." +msgstr "Локалната група не може да се наведе како далечинска." + +#. TRANS: Server exception. +msgid "Can't save local profile." +msgstr "Не можам да го зачувам локалниот профил." + +#. TRANS: Server exception. +msgid "Can't save OStatus profile." +msgstr "Не можам да го зачувам профилот од OStatus." + +#. TRANS: Exception. +msgid "Not a valid webfinger address." +msgstr "Ова не е важечка Webfinger-адреса" + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "Не можам да го зачувам профилот за „%s“." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "Не можам да го зачувам ostatus_profile за „%s“." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "Не можев да пронајдам важечки профил за „%s“." + +#. TRANS: Server exception. +msgid "Could not store HTML content of long post as file." +msgstr "" +"Не можам да ја складирам HTML-содржината на долгата објава како податотека." + +#. TRANS: Client exception. %s is a HTTP status code. +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "Потврдата на претплатникот на средиштето даде HTTP %s." + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "Повратниот повик даде статус: %1$s. Содржина: %2$s" + +#. TRANS: Exception. +msgid "Unable to locate signer public key." +msgstr "Не можам да го пронајдам јавниот клуч на потписникот." + +#. TRANS: Exception. +msgid "Salmon invalid actor for signing." +msgstr "Ова е неважечки учесник во потпишувањето според Salmon." + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +msgid "This method requires a POST." +msgstr "Овој метод бара POST." + +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +msgid "Salmon requires \"application/magic-envelope+xml\"." +msgstr "Salmon бара „програм/magic-envelope+xml“." + +#. TRANS: Client error. +msgid "Salmon signature verification failed." +msgstr "Salmon-овото потврдување на потпис не успеа." + +#. TRANS: Client error. +msgid "Salmon post must be an Atom entry." +msgstr "Salmon-овата објава мора да биде Atom-ова ставка." + +#. TRANS: Client exception. +msgid "Unrecognized activity type." +msgstr "Непризнаен вид на активност." + +#. TRANS: Client exception. +msgid "This target doesn't understand posts." +msgstr "Оваа цел не разбира објави." + +#. TRANS: Client exception. +msgid "This target doesn't understand follows." +msgstr "Оваа цел не разбира следења." + +#. TRANS: Client exception. +msgid "This target doesn't understand unfollows." +msgstr "Оваа цел не разбира прекини на следења." + +#. TRANS: Client exception. +msgid "This target doesn't understand favorites." +msgstr "Оваа цел не разбира бендисување на забелешки." + +#. TRANS: Client exception. +msgid "This target doesn't understand unfavorites." +msgstr "Оваа цел не разбира одбендисување на забелешки." + +#. TRANS: Client exception. +msgid "This target doesn't understand share events." +msgstr "Оваа цел не разбира споделување на настани." + +#. TRANS: Client exception. +msgid "This target doesn't understand joins." +msgstr "Оваа цел не разбира придружувања." + +#. TRANS: Client exception. +msgid "This target doesn't understand leave events." +msgstr "Оваа цел не разбира напуштање на настани." + +#. TRANS: Exception. +msgid "Received a salmon slap from unidentified actor." +msgstr "Примив Salmon-шамар од непознат учесник." diff --git a/plugins/OStatus/locale/nl/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/nl/LC_MESSAGES/OStatus.po index e8dae09893..665dc9c51c 100644 --- a/plugins/OStatus/locale/nl/LC_MESSAGES/OStatus.po +++ b/plugins/OStatus/locale/nl/LC_MESSAGES/OStatus.po @@ -10,53 +10,49 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OStatus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:45+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:29+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:01+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-ostatus\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Feeds" +msgstr "Feeds" + #. TRANS: Link description for link to subscribe to a remote user. #. TRANS: Link text for a user to subscribe to an OStatus user. -#: OStatusPlugin.php:223 OStatusPlugin.php:933 msgid "Subscribe" msgstr "Abonneren" #. TRANS: Link description for link to join a remote group. -#: OStatusPlugin.php:242 OStatusPlugin.php:651 actions/ostatussub.php:109 msgid "Join" msgstr "Toetreden" #. TRANSLATE: %s is a domain. -#: OStatusPlugin.php:455 #, php-format msgid "Sent from %s via OStatus" msgstr "Verzonden vanaf %s via OStatus" #. TRANS: Exception. -#: OStatusPlugin.php:527 msgid "Could not set up remote subscription." msgstr "" "Het was niet mogelijk het abonnement via een andere dienst in te stellen." -#: OStatusPlugin.php:601 msgid "Unfollow" msgstr "Niet langer volgen" #. TRANS: Success message for unsubscribe from user attempt through OStatus. #. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. -#: OStatusPlugin.php:604 #, php-format msgid "%1$s stopped following %2$s." msgstr "%1$s volgt %2$s niet langer." -#: OStatusPlugin.php:632 msgid "Could not set up remote group membership." msgstr "" "Het was niet mogelijk het groepslidmaatschap via een andere dienst in te " @@ -64,58 +60,48 @@ msgstr "" #. TRANS: Success message for subscribe to group attempt through OStatus. #. TRANS: %1$s is the member name, %2$s is the subscribed group's name. -#: OStatusPlugin.php:654 #, php-format msgid "%1$s has joined group %2$s." msgstr "%1$s is lid geworden van de groep %2$s." #. TRANS: Exception. -#: OStatusPlugin.php:663 msgid "Failed joining remote group." msgstr "" "Het was niet mogelijk toe te streden to de groep van een andere dienst." -#: OStatusPlugin.php:703 msgid "Leave" msgstr "Verlaten" #. TRANS: Success message for unsubscribe from group attempt through OStatus. #. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. -#: OStatusPlugin.php:706 #, php-format msgid "%1$s has left group %2$s." msgstr "%1$s heeft de groep %2$s verlaten" -#: OStatusPlugin.php:781 msgid "Disfavor" msgstr "Uit favorieten verwijderen" #. TRANS: Success message for remove a favorite notice through OStatus. #. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. -#: OStatusPlugin.php:784 #, php-format msgid "%1$s marked notice %2$s as no longer a favorite." msgstr "%1$s heeft de mededeling %2$s als favoriet verwijderd." #. TRANS: Link text for link to remote subscribe. -#: OStatusPlugin.php:860 msgid "Remote" msgstr "Via andere dienst" #. TRANS: Title for activity. -#: OStatusPlugin.php:900 msgid "Profile update" msgstr "Profielupdate" #. TRANS: Ping text for remote profile update through OStatus. #. TRANS: %s is user that updated their profile. -#: OStatusPlugin.php:903 #, php-format msgid "%s has updated their profile page." msgstr "Het profiel van %s is bijgewerkt." #. TRANS: Plugin description. -#: OStatusPlugin.php:948 msgid "" "Follow people across social networks that implement OStatus." @@ -123,277 +109,16 @@ msgstr "" "Mensen volgen over sociale netwerken die gebruik maken van OStatus." -#: classes/FeedSub.php:252 -msgid "Attempting to start PuSH subscription for feed with no hub." -msgstr "" -"Aan het proberen een PuSH-abonnement te krijgen op een feed zonder hub." - -#: classes/FeedSub.php:282 -msgid "Attempting to end PuSH subscription for feed with no hub." -msgstr "" -"Aan het proberen een PuSH-abonnement te verwijderen voor een feed zonder hub." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:154 -#, php-format -msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." -msgstr "" -"Ongeldige ostatus_profile status: het ID voor zowel de groep als het profiel " -"voor %s is ingesteld." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:157 -#, php-format -msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." -msgstr "" -"Ongeldige ostatus_profile status: het ID voor zowel de groep als het profiel " -"voor %s is leeg." - -#. TRANS: Server exception. -#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. -#: classes/Ostatus_profile.php:247 -#, php-format -msgid "Invalid actor passed to %1$s: %2$s." -msgstr "Ongeldige actor doorgegeven aan %1$s: %2$s." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:341 -msgid "" -"Invalid type passed to Ostatus_profile::notify. It must be XML string or " -"Activity entry." -msgstr "" -"Ongeldig type doorgegeven aan Ostatus_profile::notify. Het moet een XML-" -"string of Activity zijn." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:372 -msgid "Unknown feed format." -msgstr "Onbekend feedformaat" - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:396 -msgid "RSS feed without a channel." -msgstr "RSS-feed zonder kanaal." - #. TRANS: Client exception. -#: classes/Ostatus_profile.php:442 -msgid "Can't handle that kind of post." -msgstr "Dat type post kan niet verwerkt worden." - -#. TRANS: Client exception. %s is a source URI. -#: classes/Ostatus_profile.php:500 -#, php-format -msgid "No content for notice %s." -msgstr "Geen inhoud voor mededeling %s." - -#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime -#. TRANS: this will usually be replaced with localised text from StatusNet core messages. -#: classes/Ostatus_profile.php:535 -msgid "Show more" -msgstr "Meer weergeven" - -#. TRANS: Exception. %s is a profile URL. -#: classes/Ostatus_profile.php:728 -#, php-format -msgid "Could not reach profile page %s." -msgstr "Het was niet mogelijk de profielpagina %s te bereiken." - -#. TRANS: Exception. %s is a URL. -#: classes/Ostatus_profile.php:786 -#, php-format -msgid "Could not find a feed URL for profile page %s." -msgstr "Het was niet mogelijk de feed-URL voor de profielpagina %s te vinden." - -#. TRANS: Feed sub exception. -#: classes/Ostatus_profile.php:885 -msgid "Can't find enough profile information to make a feed." -msgstr "" -"Het was niet mogelijk voldoende profielinformatie te vinden om een feed te " -"maken." - -#. TRANS: Server exception. %s is a URL. -#: classes/Ostatus_profile.php:949 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "Ongeldige avatar-URL %s." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:960 -#, php-format -msgid "Tried to update avatar for unsaved remote profile %s." -msgstr "" -"Geprobeerd om een avatar bij te werken voor het niet opgeslagen profiel %s." - -#. TRANS: Server exception. %s is a URL. -#: classes/Ostatus_profile.php:970 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "Het was niet mogelijk de avatar op te halen van %s." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1197 -msgid "Local user can't be referenced as remote." -msgstr "" -"Naar een lokale gebruiker kan niet verwezen worden alsof die zich bij een " -"andere dienst bevindt." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1202 -msgid "Local group can't be referenced as remote." -msgstr "" -"Naar een lokale groep kan niet verwezen worden alsof die zich bij een andere " -"dienst bevindt." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1254 classes/Ostatus_profile.php:1265 -msgid "Can't save local profile." -msgstr "Het was niet mogelijk het lokale profiel op te slaan." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1273 -msgid "Can't save OStatus profile." -msgstr "Het was niet mogelijk het Ostatusprofiel op te slaan." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1561 classes/Ostatus_profile.php:1589 -msgid "Not a valid webfinger address." -msgstr "Geen geldig webfingeradres." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1671 -#, php-format -msgid "Couldn't save profile for \"%s\"." -msgstr "Het was niet mogelijk het profiel voor \"%s\" op te slaan." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1690 -#, php-format -msgid "Couldn't save ostatus_profile for \"%s\"." -msgstr "Het was niet mogelijk het ostatus_profile voor \"%s\" op te slaan." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1698 -#, php-format -msgid "Couldn't find a valid profile for \"%s\"." -msgstr "Er is geen geldig profiel voor \"%s\" gevonden." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1741 -msgid "Could not store HTML content of long post as file." -msgstr "" -"Het was niet mogelijk de HTML-inhoud van het lange bericht als bestand op te " -"slaan." - -#. TRANS: Client exception. %s is a HTTP status code. -#: classes/HubSub.php:212 -#, php-format -msgid "Hub subscriber verification returned HTTP %s." -msgstr "De controle voor de hubabonnee heeft een HTTP %s teruggegeven." - -#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. -#: classes/HubSub.php:359 -#, php-format -msgid "Callback returned status: %1$s. Body: %2$s" -msgstr "De callback heeft de status %1$s teruggegeven. Inhoud: %2$s." - -#. TRANS: Client error. POST is a HTTP command. It should not be translated. -#: lib/salmonaction.php:43 -msgid "This method requires a POST." -msgstr "Deze methode vereist een POST." - -#. TRANS: Client error. Do not translate "application/magic-envelope+xml" -#: lib/salmonaction.php:48 -msgid "Salmon requires \"application/magic-envelope+xml\"." -msgstr "Salmon vereist \"application/magic-envelope+xml\"." - -#. TRANS: Client error. -#: lib/salmonaction.php:58 -msgid "Salmon signature verification failed." -msgstr "De controle voor Salmon is mislukt." - -#. TRANS: Client error. -#: lib/salmonaction.php:70 -msgid "Salmon post must be an Atom entry." -msgstr "Een Salmonbericht moet in Atomopmaak gemaakt zijn." - -#. TRANS: Client exception. -#: lib/salmonaction.php:120 -msgid "Unrecognized activity type." -msgstr "Onbekend activiteitentype." - -#. TRANS: Client exception. -#: lib/salmonaction.php:130 -msgid "This target doesn't understand posts." -msgstr "Deze bestemming begrijpt berichten niet." - -#. TRANS: Client exception. -#: lib/salmonaction.php:136 -msgid "This target doesn't understand follows." -msgstr "Deze bestemming begrijpt volgen niet." - -#. TRANS: Client exception. -#: lib/salmonaction.php:142 -msgid "This target doesn't understand unfollows." -msgstr "Deze bestemming begrijpt niet langer volgen niet." - -#. TRANS: Client exception. -#: lib/salmonaction.php:148 -msgid "This target doesn't understand favorites." -msgstr "Deze bestemming begrijpt favorieten niet." - -#. TRANS: Client exception. -#: lib/salmonaction.php:154 -msgid "This target doesn't understand unfavorites." -msgstr "Deze bestemming begrijpt favorieten verwijderen niet." - -#. TRANS: Client exception. -#: lib/salmonaction.php:160 -msgid "This target doesn't understand share events." -msgstr "Deze bestemming begrijpt gebeurtenissen delen niet." - -#. TRANS: Client exception. -#: lib/salmonaction.php:166 -msgid "This target doesn't understand joins." -msgstr "Deze bestemming begrijpt lid worden niet." - -#. TRANS: Client exception. -#: lib/salmonaction.php:172 -msgid "This target doesn't understand leave events." -msgstr "Deze bestemming begrijpt uitschrijven van gebeurtenissen niet." - -#. TRANS: Exception. -#: lib/salmonaction.php:200 -msgid "Received a salmon slap from unidentified actor." -msgstr "Er is een Salmonslap ontvangen van een niet-geïdentificeerde actor." - -#. TRANS: Exception. -#: lib/magicenvelope.php:80 -msgid "Unable to locate signer public key." -msgstr "" -"Het was niet mogelijk de publieke sleutel van de ondertekenaar te vinden." - -#. TRANS: Exception. -#: lib/salmon.php:126 -msgid "Salmon invalid actor for signing." -msgstr "Ongeldige actor voor het ondertekenen van Salmon." - -#: tests/gettext-speedtest.php:57 -msgid "Feeds" -msgstr "Feeds" - -#. TRANS: Client exception. -#: actions/pushhub.php:70 msgid "Publishing outside feeds not supported." msgstr "Publiceren buiten feeds om wordt niet ondersteund." #. TRANS: Client exception. %s is a mode. -#: actions/pushhub.php:73 #, php-format msgid "Unrecognized mode \"%s\"." msgstr "Niet herkende modus \"%s\"." #. TRANS: Client exception. %s is a topic. -#: actions/pushhub.php:93 #, php-format msgid "" "Unsupported hub.topic %s this hub only serves local user and group Atom " @@ -403,14 +128,12 @@ msgstr "" "lokale gebruikers en groepen." #. TRANS: Client exception. -#: actions/pushhub.php:99 #, php-format msgid "Invalid hub.verify \"%s\". It must be sync or async." msgstr "" "Ongeldige waarde voor hub.verify \"%s\". Het moet \"sync\" of \"async\" zijn." #. TRANS: Client exception. -#: actions/pushhub.php:105 #, php-format msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." msgstr "" @@ -418,186 +141,63 @@ msgstr "" "positief geheel getal." #. TRANS: Client exception. -#: actions/pushhub.php:113 #, php-format msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." msgstr "" "Ongeldig hub.secret \"%s\". Het moet minder dan tweehonderd bytes bevatten." #. TRANS: Client exception. -#: actions/pushhub.php:165 #, php-format msgid "Invalid hub.topic \"%s\". User doesn't exist." msgstr "Ongeldig hub.topic \"%s\". De gebruiker bestaat niet." #. TRANS: Client exception. -#: actions/pushhub.php:174 #, php-format msgid "Invalid hub.topic \"%s\". Group doesn't exist." msgstr "Ongeldig hub.topic \"%s\". De groep bestaat niet." #. TRANS: Client exception. #. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. -#: actions/pushhub.php:199 #, php-format msgid "Invalid URL passed for %1$s: \"%2$s\"" msgstr "Er is een ongeldige URL doorgegeven voor %1$s: \"%2$s\"" -#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "Empty or invalid feed id." +msgstr "Het feed-ID is leeg of ongeldig." + +#. TRANS: Server exception. %s is a feed ID. +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "Het PuSH feed-ID %s is onbekend" + +#. TRANS: Client exception. %s is an invalid feed name. +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "Ongeldige hub.topic feed \"%s\"." + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "Ongeldig hub.verify_token %1$s voor %2$s." + +#. TRANS: Client exception. %s is an invalid topic. +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "Onverwacht abonneringsverzoek voor %s." + +#. TRANS: Client exception. %s is an invalid topic. +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "Onverwacht verzoek om abonnement op te hebben voor %s." + msgid "No such user." msgstr "Onbekende gebruiker." -#. TRANS: Client error. -#: actions/usersalmon.php:37 actions/groupsalmon.php:40 -msgid "No ID." -msgstr "Geen ID." - -#. TRANS: Client exception. -#: actions/usersalmon.php:83 -msgid "In reply to unknown notice." -msgstr "In antwoord op een onbekende mededeling." - -#. TRANS: Client exception. -#: actions/usersalmon.php:88 -msgid "In reply to a notice not by this user and not mentioning this user." -msgstr "" -"In antwoord op een mededeling niet door deze gebruiker en niet over of aan " -"deze gebruiker." - -#. TRANS: Client exception. -#: actions/usersalmon.php:165 -msgid "Could not save new favorite." -msgstr "Het was niet mogelijk de nieuwe favoriet op te slaan." - -#. TRANS: Client exception. -#: actions/usersalmon.php:197 -msgid "Can't favorite/unfavorite without an object." -msgstr "" -"Het is niet mogelijk (niet langer) als favoriet te markeren zonder object." - -#. TRANS: Client exception. -#: actions/usersalmon.php:209 -msgid "Can't handle that kind of object for liking/faving." -msgstr "" -"Dat object is niet beschikbaar voor (niet langer) als favoriet aanmerken." - -#. TRANS: Client exception. %s is an object ID. -#: actions/usersalmon.php:216 -#, php-format -msgid "Notice with ID %s unknown." -msgstr "De mededeling met ID %s is onbekend." - -#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. -#: actions/usersalmon.php:221 -#, php-format -msgid "Notice with ID %1$s not posted by %2$s." -msgstr "De mededeling met ID %1$s is niet geplaatst foor %2$s." - -#. TRANS: Field label. -#: actions/ostatusgroup.php:78 -msgid "Join group" -msgstr "Lid worden van groep" - -#. TRANS: Tooltip for field label "Join group". -#: actions/ostatusgroup.php:81 -msgid "OStatus group's address, like http://example.net/group/nickname." -msgstr "" -"Het adres voor de OStatusgroep. Bijvoorbeeld; http://example.net/group/" -"nickname." - -#. TRANS: Button text. -#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 -msgctxt "BUTTON" -msgid "Continue" -msgstr "Doorgaan" - -#: actions/ostatusgroup.php:105 -msgid "You are already a member of this group." -msgstr "U bent al lid van deze groep." - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:140 -msgid "Already a member!" -msgstr "U bent al lid!" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:151 -msgid "Remote group join failed!" -msgstr "Het verlaten van de groep bij een andere dienst is mislukt." - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:155 -msgid "Remote group join aborted!" -msgstr "Het lid worden van de groep bij een andere dienst is afgebroken." - -#. TRANS: Page title for OStatus remote group join form -#: actions/ostatusgroup.php:167 -msgid "Confirm joining remote group" -msgstr "Lid worden van groep bij andere dienst" - -#. TRANS: Instructions. -#: actions/ostatusgroup.php:178 -msgid "" -"You can subscribe to groups from other supported sites. Paste the group's " -"profile URI below:" -msgstr "" -"U kunt abonneren op groepen van andere ondersteunde sites. Plak hieronder de " -"URI van het groepsprofiel:" - -#. TRANS: Client error. -#: actions/groupsalmon.php:47 -msgid "No such group." -msgstr "De opgegeven groep bestaat niet." - -#. TRANS: Client error. -#: actions/groupsalmon.php:56 -msgid "Can't accept remote posts for a remote group." -msgstr "" -"Berichten van andere diensten voor groepen bij andere diensten worden niet " -"geaccepteerd." - -#. TRANS: Client error. -#: actions/groupsalmon.php:130 -msgid "Can't read profile to set up group membership." -msgstr "Het profiel om lid te worden van een groep kon niet gelezen worden." - -#. TRANS: Client error. -#: actions/groupsalmon.php:134 actions/groupsalmon.php:177 -msgid "Groups can't join groups." -msgstr "Groepen kunnen geen lid worden van groepen." - -#: actions/groupsalmon.php:147 -msgid "You have been blocked from that group by the admin." -msgstr "Een beheerder heeft ingesteld dat u geen lid mag worden van die groep." - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:162 -#, php-format -msgid "Could not join remote user %1$s to group %2$s." -msgstr "" -"De gebruiker %1$s van een andere dienst kon niet lid worden van de groep %2" -"$s." - -#: actions/groupsalmon.php:174 -msgid "Can't read profile to cancel group membership." -msgstr "" -"Het profiel om groepslidmaatschap te annuleren kon niet gelezen worden." - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:191 -#, php-format -msgid "Could not remove remote user %1$s from group %2$s." -msgstr "" -"Het was niet mogelijk gebruiker %1$s van een andere dienst uit de groep %2$s " -"te verwijderen." - #. TRANS: Field label for a field that takes an OStatus user address. -#: actions/ostatussub.php:68 msgid "Subscribe to" msgstr "Abonneren op" #. TRANS: Tooltip for field label "Subscribe to". -#: actions/ostatussub.php:71 msgid "" "OStatus user's address, like nickname@example.com or http://example.net/" "nickname" @@ -605,31 +205,30 @@ msgstr "" "Het OStatusadres van de gebruiker. Bijvoorbeeld nickname@example.com of " "http://example.net/nickname" +#. TRANS: Button text. +msgctxt "BUTTON" +msgid "Continue" +msgstr "Doorgaan" + #. TRANS: Button text. #. TRANS: Tooltip for button "Join". -#: actions/ostatussub.php:112 msgctxt "BUTTON" msgid "Join this group" msgstr "Lid worden van deze groep" #. TRANS: Button text. -#: actions/ostatussub.php:115 msgctxt "BUTTON" msgid "Confirm" msgstr "Bevestigen" #. TRANS: Tooltip for button "Confirm". -#: actions/ostatussub.php:117 msgid "Subscribe to this user" msgstr "Abonneren op deze gebruiker" -#: actions/ostatussub.php:138 msgid "You are already subscribed to this user." msgstr "U bent al geabonneerd op deze gebruiker." #. TRANS: Error text. -#: actions/ostatussub.php:232 actions/ostatussub.php:239 -#: actions/ostatussub.php:264 msgid "" "Sorry, we could not reach that address. Please make sure that the OStatus " "address is like nickname@example.com or http://example.net/nickname." @@ -638,9 +237,6 @@ msgstr "" "van gebruiker@example.com of http://example.net/gebruiker." #. TRANS: Error text. -#: actions/ostatussub.php:243 actions/ostatussub.php:247 -#: actions/ostatussub.php:251 actions/ostatussub.php:255 -#: actions/ostatussub.php:259 msgid "" "Sorry, we could not reach that feed. Please try that OStatus address again " "later." @@ -648,33 +244,27 @@ msgstr "" "Die feed was niet te bereiken. Probeer dat OStatusadres later nog een keer." #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:293 msgid "Already subscribed!" msgstr "U bent al gebonneerd!" #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:298 msgid "Remote subscription failed!" msgstr "Abonneren via een andere dienst is mislukt!" -#: actions/ostatussub.php:345 actions/ostatusinit.php:64 msgid "There was a problem with your session token. Try again, please." msgstr "" "Er is een probleem ontstaan met uw sessie. Probeer het nog een keer, " "alstublieft." #. TRANS: Form title. -#: actions/ostatussub.php:373 actions/ostatusinit.php:83 msgid "Subscribe to user" msgstr "Abonneren op gebruiker" #. TRANS: Page title for OStatus remote subscription form -#: actions/ostatussub.php:393 msgid "Confirm" msgstr "Bevestigen" #. TRANS: Instructions. -#: actions/ostatussub.php:405 msgid "" "You can subscribe to users from other supported sites. Paste their address " "or profile URI below:" @@ -682,129 +272,389 @@ msgstr "" "U kunt abonneren op gebruikers van andere ondersteunde sites. Plak hun adres " "of profiel-URI hieronder:" +#. TRANS: Field label. +msgid "Join group" +msgstr "Lid worden van groep" + +#. TRANS: Tooltip for field label "Join group". +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" +"Het adres voor de OStatusgroep. Bijvoorbeeld; http://example.net/group/" +"nickname." + +msgid "You are already a member of this group." +msgstr "U bent al lid van deze groep." + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Already a member!" +msgstr "U bent al lid!" + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Remote group join failed!" +msgstr "Het verlaten van de groep bij een andere dienst is mislukt." + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Remote group join aborted!" +msgstr "Het lid worden van de groep bij een andere dienst is afgebroken." + +#. TRANS: Page title for OStatus remote group join form +msgid "Confirm joining remote group" +msgstr "Lid worden van groep bij andere dienst" + +#. TRANS: Instructions. +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" +"U kunt abonneren op groepen van andere ondersteunde sites. Plak hieronder de " +"URI van het groepsprofiel:" + +#. TRANS: Client error. +msgid "No ID." +msgstr "Geen ID." + +#. TRANS: Client exception. +msgid "In reply to unknown notice." +msgstr "In antwoord op een onbekende mededeling." + +#. TRANS: Client exception. +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" +"In antwoord op een mededeling niet door deze gebruiker en niet over of aan " +"deze gebruiker." + +#. TRANS: Client exception. +msgid "Could not save new favorite." +msgstr "Het was niet mogelijk de nieuwe favoriet op te slaan." + +#. TRANS: Client exception. +msgid "Can't favorite/unfavorite without an object." +msgstr "" +"Het is niet mogelijk (niet langer) als favoriet te markeren zonder object." + +#. TRANS: Client exception. +msgid "Can't handle that kind of object for liking/faving." +msgstr "" +"Dat object is niet beschikbaar voor (niet langer) als favoriet aanmerken." + +#. TRANS: Client exception. %s is an object ID. +#, php-format +msgid "Notice with ID %s unknown." +msgstr "De mededeling met ID %s is onbekend." + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "De mededeling met ID %1$s is niet geplaatst foor %2$s." + +#. TRANS: Client error. +msgid "No such group." +msgstr "De opgegeven groep bestaat niet." + +#. TRANS: Client error. +msgid "Can't accept remote posts for a remote group." +msgstr "" +"Berichten van andere diensten voor groepen bij andere diensten worden niet " +"geaccepteerd." + +#. TRANS: Client error. +msgid "Can't read profile to set up group membership." +msgstr "Het profiel om lid te worden van een groep kon niet gelezen worden." + +#. TRANS: Client error. +msgid "Groups can't join groups." +msgstr "Groepen kunnen geen lid worden van groepen." + +msgid "You have been blocked from that group by the admin." +msgstr "Een beheerder heeft ingesteld dat u geen lid mag worden van die groep." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "" +"De gebruiker %1$s van een andere dienst kon niet lid worden van de groep %2" +"$s." + +msgid "Can't read profile to cancel group membership." +msgstr "" +"Het profiel om groepslidmaatschap te annuleren kon niet gelezen worden." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "" +"Het was niet mogelijk gebruiker %1$s van een andere dienst uit de groep %2$s " +"te verwijderen." + #. TRANS: Client error. -#: actions/ostatusinit.php:42 msgid "You can use the local subscription!" msgstr "U kunt het lokale abonnement gebruiken!" #. TRANS: Form legend. -#: actions/ostatusinit.php:98 #, php-format msgid "Join group %s" msgstr "Lid worden van de groep %s" #. TRANS: Button text. -#: actions/ostatusinit.php:100 msgctxt "BUTTON" msgid "Join" msgstr "Toetreden" #. TRANS: Form legend. -#: actions/ostatusinit.php:103 #, php-format msgid "Subscribe to %s" msgstr "Abonneren op %s" #. TRANS: Button text. -#: actions/ostatusinit.php:105 msgctxt "BUTTON" msgid "Subscribe" msgstr "Abonneren" #. TRANS: Field label. -#: actions/ostatusinit.php:119 msgid "Group nickname" msgstr "Korte groepsnaam" -#: actions/ostatusinit.php:120 msgid "Nickname of the group you want to join." msgstr "De naam van de groep die u wilt volgen." #. TRANS: Field label. -#: actions/ostatusinit.php:123 msgid "User nickname" msgstr "Gebruikersnaam" -#: actions/ostatusinit.php:124 msgid "Nickname of the user you want to follow." msgstr "Gebruikersnaam van de gebruiker waarop u wilt abonneren." #. TRANS: Field label. -#: actions/ostatusinit.php:129 msgid "Profile Account" msgstr "Gebruikersprofiel" #. TRANS: Tooltip for field label "Profile Account". -#: actions/ostatusinit.php:131 msgid "Your account id (e.g. user@identi.ca)." msgstr "Uw gebruikers-ID (bv. gebruiker@identi.ca)." #. TRANS: Client error. -#: actions/ostatusinit.php:153 msgid "Must provide a remote profile." msgstr "Er moet een profiel bij een andere dienst opgegeven worden." #. TRANS: Client error. -#: actions/ostatusinit.php:165 msgid "Couldn't look up OStatus account profile." msgstr "Het was niet mogelijk het OStatusgebruikersprofiel te vinden." #. TRANS: Client error. -#: actions/ostatusinit.php:178 msgid "Couldn't confirm remote profile address." msgstr "" "Het was niet mogelijk het profieladres bij de andere dienst te bevestigen." #. TRANS: Page title. -#: actions/ostatusinit.php:223 msgid "OStatus Connect" msgstr "OStatuskoppeling" -#: actions/pushcallback.php:50 -msgid "Empty or invalid feed id." -msgstr "Het feed-ID is leeg of ongeldig." +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "" +"Aan het proberen een PuSH-abonnement te krijgen op een feed zonder hub." -#. TRANS: Server exception. %s is a feed ID. -#: actions/pushcallback.php:56 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "" +"Aan het proberen een PuSH-abonnement te verwijderen voor een feed zonder hub." + +#. TRANS: Server exception. %s is a URI. #, php-format -msgid "Unknown PuSH feed id %s" -msgstr "Het PuSH feed-ID %s is onbekend" +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" +"Ongeldige ostatus_profile status: het ID voor zowel de groep als het profiel " +"voor %s is ingesteld." -#. TRANS: Client exception. %s is an invalid feed name. -#: actions/pushcallback.php:96 +#. TRANS: Server exception. %s is a URI. #, php-format -msgid "Bad hub.topic feed \"%s\"." -msgstr "Ongeldige hub.topic feed \"%s\"." +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" +"Ongeldige ostatus_profile status: het ID voor zowel de groep als het profiel " +"voor %s is leeg." -#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. -#: actions/pushcallback.php:101 +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. #, php-format -msgid "Bad hub.verify_token %1$s for %2$s." -msgstr "Ongeldig hub.verify_token %1$s voor %2$s." +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "Ongeldige actor doorgegeven aan %1$s: %2$s." -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:108 +#. TRANS: Server exception. +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" +"Ongeldig type doorgegeven aan Ostatus_profile::notify. Het moet een XML-" +"string of Activity zijn." + +#. TRANS: Exception. +msgid "Unknown feed format." +msgstr "Onbekend feedformaat" + +#. TRANS: Exception. +msgid "RSS feed without a channel." +msgstr "RSS-feed zonder kanaal." + +#. TRANS: Client exception. +msgid "Can't handle that kind of post." +msgstr "Dat type post kan niet verwerkt worden." + +#. TRANS: Client exception. %s is a source URI. #, php-format -msgid "Unexpected subscribe request for %s." -msgstr "Onverwacht abonneringsverzoek voor %s." +msgid "No content for notice %s." +msgstr "Geen inhoud voor mededeling %s." -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:113 +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +msgid "Show more" +msgstr "Meer weergeven" + +#. TRANS: Exception. %s is a profile URL. #, php-format -msgid "Unexpected unsubscribe request for %s." -msgstr "Onverwacht verzoek om abonnement op te hebben voor %s." +msgid "Could not reach profile page %s." +msgstr "Het was niet mogelijk de profielpagina %s te bereiken." -#~ msgid "Photo" -#~ msgstr "Foto" +#. TRANS: Exception. %s is a URL. +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "Het was niet mogelijk de feed-URL voor de profielpagina %s te vinden." -#~ msgid "Nickname" -#~ msgstr "Gebruikersnaam" +#. TRANS: Feed sub exception. +msgid "Can't find enough profile information to make a feed." +msgstr "" +"Het was niet mogelijk voldoende profielinformatie te vinden om een feed te " +"maken." -#~ msgid "Location" -#~ msgstr "Locatie" +#. TRANS: Server exception. %s is a URL. +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Ongeldige avatar-URL %s." -#~ msgid "URL" -#~ msgstr "URL" +#. TRANS: Server exception. %s is a URI. +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "" +"Geprobeerd om een avatar bij te werken voor het niet opgeslagen profiel %s." -#~ msgid "Note" -#~ msgstr "Opmerking" +#. TRANS: Server exception. %s is a URL. +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Het was niet mogelijk de avatar op te halen van %s." + +#. TRANS: Exception. +msgid "Local user can't be referenced as remote." +msgstr "" +"Naar een lokale gebruiker kan niet verwezen worden alsof die zich bij een " +"andere dienst bevindt." + +#. TRANS: Exception. +msgid "Local group can't be referenced as remote." +msgstr "" +"Naar een lokale groep kan niet verwezen worden alsof die zich bij een andere " +"dienst bevindt." + +#. TRANS: Server exception. +msgid "Can't save local profile." +msgstr "Het was niet mogelijk het lokale profiel op te slaan." + +#. TRANS: Server exception. +msgid "Can't save OStatus profile." +msgstr "Het was niet mogelijk het Ostatusprofiel op te slaan." + +#. TRANS: Exception. +msgid "Not a valid webfinger address." +msgstr "Geen geldig webfingeradres." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "Het was niet mogelijk het profiel voor \"%s\" op te slaan." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "Het was niet mogelijk het ostatus_profile voor \"%s\" op te slaan." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "Er is geen geldig profiel voor \"%s\" gevonden." + +#. TRANS: Server exception. +msgid "Could not store HTML content of long post as file." +msgstr "" +"Het was niet mogelijk de HTML-inhoud van het lange bericht als bestand op te " +"slaan." + +#. TRANS: Client exception. %s is a HTTP status code. +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "De controle voor de hubabonnee heeft een HTTP %s teruggegeven." + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "De callback heeft de status %1$s teruggegeven. Inhoud: %2$s." + +#. TRANS: Exception. +msgid "Unable to locate signer public key." +msgstr "" +"Het was niet mogelijk de publieke sleutel van de ondertekenaar te vinden." + +#. TRANS: Exception. +msgid "Salmon invalid actor for signing." +msgstr "Ongeldige actor voor het ondertekenen van Salmon." + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +msgid "This method requires a POST." +msgstr "Deze methode vereist een POST." + +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +msgid "Salmon requires \"application/magic-envelope+xml\"." +msgstr "Salmon vereist \"application/magic-envelope+xml\"." + +#. TRANS: Client error. +msgid "Salmon signature verification failed." +msgstr "De controle voor Salmon is mislukt." + +#. TRANS: Client error. +msgid "Salmon post must be an Atom entry." +msgstr "Een Salmonbericht moet in Atomopmaak gemaakt zijn." + +#. TRANS: Client exception. +msgid "Unrecognized activity type." +msgstr "Onbekend activiteitentype." + +#. TRANS: Client exception. +msgid "This target doesn't understand posts." +msgstr "Deze bestemming begrijpt berichten niet." + +#. TRANS: Client exception. +msgid "This target doesn't understand follows." +msgstr "Deze bestemming begrijpt volgen niet." + +#. TRANS: Client exception. +msgid "This target doesn't understand unfollows." +msgstr "Deze bestemming begrijpt niet langer volgen niet." + +#. TRANS: Client exception. +msgid "This target doesn't understand favorites." +msgstr "Deze bestemming begrijpt favorieten niet." + +#. TRANS: Client exception. +msgid "This target doesn't understand unfavorites." +msgstr "Deze bestemming begrijpt favorieten verwijderen niet." + +#. TRANS: Client exception. +msgid "This target doesn't understand share events." +msgstr "Deze bestemming begrijpt gebeurtenissen delen niet." + +#. TRANS: Client exception. +msgid "This target doesn't understand joins." +msgstr "Deze bestemming begrijpt lid worden niet." + +#. TRANS: Client exception. +msgid "This target doesn't understand leave events." +msgstr "Deze bestemming begrijpt uitschrijven van gebeurtenissen niet." + +#. TRANS: Exception. +msgid "Received a salmon slap from unidentified actor." +msgstr "Er is een Salmonslap ontvangen van een niet-geïdentificeerde actor." diff --git a/plugins/OStatus/locale/uk/LC_MESSAGES/OStatus.po b/plugins/OStatus/locale/uk/LC_MESSAGES/OStatus.po index eb6534502f..0d0ca48f21 100644 --- a/plugins/OStatus/locale/uk/LC_MESSAGES/OStatus.po +++ b/plugins/OStatus/locale/uk/LC_MESSAGES/OStatus.po @@ -9,109 +9,95 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OStatus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:46+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:29+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:01+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-ostatus\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" +msgid "Feeds" +msgstr "Веб-стрічки" + #. TRANS: Link description for link to subscribe to a remote user. #. TRANS: Link text for a user to subscribe to an OStatus user. -#: OStatusPlugin.php:223 OStatusPlugin.php:933 msgid "Subscribe" msgstr "Підписатись" #. TRANS: Link description for link to join a remote group. -#: OStatusPlugin.php:242 OStatusPlugin.php:651 actions/ostatussub.php:109 msgid "Join" msgstr "Приєднатися" #. TRANSLATE: %s is a domain. -#: OStatusPlugin.php:455 #, php-format msgid "Sent from %s via OStatus" msgstr "Надіслано з %s через OStatus" #. TRANS: Exception. -#: OStatusPlugin.php:527 msgid "Could not set up remote subscription." msgstr "Не вдалося створити віддалену підписку." -#: OStatusPlugin.php:601 msgid "Unfollow" msgstr "Не читати" #. TRANS: Success message for unsubscribe from user attempt through OStatus. #. TRANS: %1$s is the unsubscriber's name, %2$s is the unsubscribed user's name. -#: OStatusPlugin.php:604 #, php-format msgid "%1$s stopped following %2$s." msgstr "%1$s припинив читати ваші дописи %2$s." -#: OStatusPlugin.php:632 msgid "Could not set up remote group membership." msgstr "Не вдалося приєднатися до віддаленої спільноти." #. TRANS: Success message for subscribe to group attempt through OStatus. #. TRANS: %1$s is the member name, %2$s is the subscribed group's name. -#: OStatusPlugin.php:654 #, php-format msgid "%1$s has joined group %2$s." msgstr "%1$s приєднався до спільноти %2$s." #. TRANS: Exception. -#: OStatusPlugin.php:663 msgid "Failed joining remote group." msgstr "Помилка приєднання до віддаленої спільноти." -#: OStatusPlugin.php:703 msgid "Leave" msgstr "Залишити" #. TRANS: Success message for unsubscribe from group attempt through OStatus. #. TRANS: %1$s is the member name, %2$s is the unsubscribed group's name. -#: OStatusPlugin.php:706 #, php-format msgid "%1$s has left group %2$s." msgstr "%1$s залишив спільноту %2$s." -#: OStatusPlugin.php:781 msgid "Disfavor" msgstr "Не обраний" #. TRANS: Success message for remove a favorite notice through OStatus. #. TRANS: %1$s is the unfavoring user's name, %2$s is URI to the no longer favored notice. -#: OStatusPlugin.php:784 #, php-format msgid "%1$s marked notice %2$s as no longer a favorite." msgstr "%1$s позначив допис %2$s, як такий, що більше не є обраним." #. TRANS: Link text for link to remote subscribe. -#: OStatusPlugin.php:860 msgid "Remote" msgstr "Віддалено" #. TRANS: Title for activity. -#: OStatusPlugin.php:900 msgid "Profile update" msgstr "Оновлення профілю" #. TRANS: Ping text for remote profile update through OStatus. #. TRANS: %s is user that updated their profile. -#: OStatusPlugin.php:903 #, php-format msgid "%s has updated their profile page." msgstr "%s оновив сторінку свого профілю." #. TRANS: Plugin description. -#: OStatusPlugin.php:948 msgid "" "Follow people across social networks that implement OStatus." @@ -119,269 +105,16 @@ msgstr "" "Додає можливість слідкувати за дописами людей з інших мереж, які підтримують " "протокол OStatus." -#: classes/FeedSub.php:252 -msgid "Attempting to start PuSH subscription for feed with no hub." -msgstr "" -"Спроба підписатися за допомогою PuSH до веб-стрічки, котра не має вузла." - -#: classes/FeedSub.php:282 -msgid "Attempting to end PuSH subscription for feed with no hub." -msgstr "" -"Спроба скасувати підписку за допомогою PuSH до веб-стрічки, котра не має " -"вузла." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:154 -#, php-format -msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." -msgstr "" -"Невірний стан параметру ostatus_profile: як групові, так і персональні " -"ідентифікатори встановлено для %s." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:157 -#, php-format -msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." -msgstr "" -"Невірний стан параметру ostatus_profile: як групові, так і персональні " -"ідентифікатори порожні для %s." - -#. TRANS: Server exception. -#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. -#: classes/Ostatus_profile.php:247 -#, php-format -msgid "Invalid actor passed to %1$s: %2$s." -msgstr "До %1$s передано невірний об’єкт: %2$s." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:341 -msgid "" -"Invalid type passed to Ostatus_profile::notify. It must be XML string or " -"Activity entry." -msgstr "" -"До параметру Ostatus_profile::notify передано невірний тип. Це має бути або " -"рядок у форматі XML, або запис активності." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:372 -msgid "Unknown feed format." -msgstr "Невідомий формат веб-стрічки." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:396 -msgid "RSS feed without a channel." -msgstr "RSS-стрічка не має каналу." - #. TRANS: Client exception. -#: classes/Ostatus_profile.php:442 -msgid "Can't handle that kind of post." -msgstr "Не вдається обробити такий тип допису." - -#. TRANS: Client exception. %s is a source URI. -#: classes/Ostatus_profile.php:500 -#, php-format -msgid "No content for notice %s." -msgstr "Допис %s не має змісту." - -#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime -#. TRANS: this will usually be replaced with localised text from StatusNet core messages. -#: classes/Ostatus_profile.php:535 -msgid "Show more" -msgstr "Розгорнути" - -#. TRANS: Exception. %s is a profile URL. -#: classes/Ostatus_profile.php:728 -#, php-format -msgid "Could not reach profile page %s." -msgstr "Не вдалося досягти сторінки профілю %s." - -#. TRANS: Exception. %s is a URL. -#: classes/Ostatus_profile.php:786 -#, php-format -msgid "Could not find a feed URL for profile page %s." -msgstr "Не вдалося знайти URL веб-стрічки для сторінки профілю %s." - -#. TRANS: Feed sub exception. -#: classes/Ostatus_profile.php:885 -msgid "Can't find enough profile information to make a feed." -msgstr "" -"Не можу знайти достатньо інформації про профіль, аби сформувати веб-стрічку." - -#. TRANS: Server exception. %s is a URL. -#: classes/Ostatus_profile.php:949 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "Невірна URL-адреса аватари %s." - -#. TRANS: Server exception. %s is a URI. -#: classes/Ostatus_profile.php:960 -#, php-format -msgid "Tried to update avatar for unsaved remote profile %s." -msgstr "Намагаюся оновити аватару для не збереженого віддаленого профілю %s." - -#. TRANS: Server exception. %s is a URL. -#: classes/Ostatus_profile.php:970 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "Неможливо завантажити аватару з %s." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1197 -msgid "Local user can't be referenced as remote." -msgstr "Місцевий користувач не може бути зазначеним у якості віддаленого." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1202 -msgid "Local group can't be referenced as remote." -msgstr "Локальну спільноту не можна зазначити у якості віддаленої." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1254 classes/Ostatus_profile.php:1265 -msgid "Can't save local profile." -msgstr "Не вдається зберегти місцевий профіль." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1273 -msgid "Can't save OStatus profile." -msgstr "Не вдається зберегти профіль OStatus." - -#. TRANS: Exception. -#: classes/Ostatus_profile.php:1561 classes/Ostatus_profile.php:1589 -msgid "Not a valid webfinger address." -msgstr "Це недійсна адреса для протоколу WebFinger." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1671 -#, php-format -msgid "Couldn't save profile for \"%s\"." -msgstr "Не можу зберегти профіль для «%s»." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1690 -#, php-format -msgid "Couldn't save ostatus_profile for \"%s\"." -msgstr "Не можу зберегти профіль OStatus для «%s»." - -#. TRANS: Exception. %s is a webfinger address. -#: classes/Ostatus_profile.php:1698 -#, php-format -msgid "Couldn't find a valid profile for \"%s\"." -msgstr "не можу знайти відповідний й профіль для «%s»." - -#. TRANS: Server exception. -#: classes/Ostatus_profile.php:1741 -msgid "Could not store HTML content of long post as file." -msgstr "Не можу зберегти HTML місткого допису у якості файлу." - -#. TRANS: Client exception. %s is a HTTP status code. -#: classes/HubSub.php:212 -#, php-format -msgid "Hub subscriber verification returned HTTP %s." -msgstr "Перевірка вузла підписки завершилася зі статусом HTTP %s." - -#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. -#: classes/HubSub.php:359 -#, php-format -msgid "Callback returned status: %1$s. Body: %2$s" -msgstr "Зворотній виклик повернуто зі статусом: %1$s. Зміст: %2$s" - -#. TRANS: Client error. POST is a HTTP command. It should not be translated. -#: lib/salmonaction.php:43 -msgid "This method requires a POST." -msgstr "Цей метод вимагає команди POST." - -#. TRANS: Client error. Do not translate "application/magic-envelope+xml" -#: lib/salmonaction.php:48 -msgid "Salmon requires \"application/magic-envelope+xml\"." -msgstr "Протокол Salmon вимагає \"application/magic-envelope+xml\"." - -#. TRANS: Client error. -#: lib/salmonaction.php:58 -msgid "Salmon signature verification failed." -msgstr "Перевірка підпису протоколу Salmon не вдалася." - -#. TRANS: Client error. -#: lib/salmonaction.php:70 -msgid "Salmon post must be an Atom entry." -msgstr "Дописи за протоколом Salmon мають бути у форматі Atom." - -#. TRANS: Client exception. -#: lib/salmonaction.php:120 -msgid "Unrecognized activity type." -msgstr "Невідомий тип діяльності." - -#. TRANS: Client exception. -#: lib/salmonaction.php:130 -msgid "This target doesn't understand posts." -msgstr "Ціль не розуміє, що таке «дописи»." - -#. TRANS: Client exception. -#: lib/salmonaction.php:136 -msgid "This target doesn't understand follows." -msgstr "Ціль не розуміє, що таке «слідувати»." - -#. TRANS: Client exception. -#: lib/salmonaction.php:142 -msgid "This target doesn't understand unfollows." -msgstr "Ціль не розуміє, що таке «не слідувати»." - -#. TRANS: Client exception. -#: lib/salmonaction.php:148 -msgid "This target doesn't understand favorites." -msgstr "Ціль не розуміє, що таке «додати до обраних»." - -#. TRANS: Client exception. -#: lib/salmonaction.php:154 -msgid "This target doesn't understand unfavorites." -msgstr "Ціль не розуміє, що таке «вилучити з обраних»." - -#. TRANS: Client exception. -#: lib/salmonaction.php:160 -msgid "This target doesn't understand share events." -msgstr "Ціль не розуміє, що таке «поділитися подією»." - -#. TRANS: Client exception. -#: lib/salmonaction.php:166 -msgid "This target doesn't understand joins." -msgstr "Ціль не розуміє, що таке «приєднатися»." - -#. TRANS: Client exception. -#: lib/salmonaction.php:172 -msgid "This target doesn't understand leave events." -msgstr "Ціль не розуміє, що таке «залишати подію»." - -#. TRANS: Exception. -#: lib/salmonaction.php:200 -msgid "Received a salmon slap from unidentified actor." -msgstr "Отримано ляпаса від невизначеного учасника за протоколом Salmon." - -#. TRANS: Exception. -#: lib/magicenvelope.php:80 -msgid "Unable to locate signer public key." -msgstr "Не вдалося знайти публічного ключа підписанта." - -#. TRANS: Exception. -#: lib/salmon.php:126 -msgid "Salmon invalid actor for signing." -msgstr "Недійсний учасник подій за протоколом Salmon для підписання." - -#: tests/gettext-speedtest.php:57 -msgid "Feeds" -msgstr "Веб-стрічки" - -#. TRANS: Client exception. -#: actions/pushhub.php:70 msgid "Publishing outside feeds not supported." msgstr "Публікація змісту зовнішніх веб-стрічок не підтримується." #. TRANS: Client exception. %s is a mode. -#: actions/pushhub.php:73 #, php-format msgid "Unrecognized mode \"%s\"." msgstr "Невизначений режим «%s»." #. TRANS: Client exception. %s is a topic. -#: actions/pushhub.php:93 #, php-format msgid "" "Unsupported hub.topic %s this hub only serves local user and group Atom " @@ -391,13 +124,11 @@ msgstr "" "користувачами та групою веб-стрічок у форматі Atom." #. TRANS: Client exception. -#: actions/pushhub.php:99 #, php-format msgid "Invalid hub.verify \"%s\". It must be sync or async." msgstr "hub.verify «%s» невірний. Він має бути синхронним або ж асинхронним." #. TRANS: Client exception. -#: actions/pushhub.php:105 #, php-format msgid "Invalid hub.lease \"%s\". It must be empty or positive integer." msgstr "" @@ -405,182 +136,62 @@ msgstr "" "число." #. TRANS: Client exception. -#: actions/pushhub.php:113 #, php-format msgid "Invalid hub.secret \"%s\". It must be under 200 bytes." msgstr "hub.secret «%s» невірний. 200 байтів — не більше." #. TRANS: Client exception. -#: actions/pushhub.php:165 #, php-format msgid "Invalid hub.topic \"%s\". User doesn't exist." msgstr "hub.topic «%s» невірний. Користувача не існує." #. TRANS: Client exception. -#: actions/pushhub.php:174 #, php-format msgid "Invalid hub.topic \"%s\". Group doesn't exist." msgstr "hub.topic «%s» невірний. Спільноти не існує." #. TRANS: Client exception. #. TRANS: %1$s is this argument to the method this exception occurs in, %2$s is a URL. -#: actions/pushhub.php:199 #, php-format msgid "Invalid URL passed for %1$s: \"%2$s\"" msgstr "Для %1$s передано невірний URL: «%2$s»" -#: actions/ownerxrd.php:39 actions/usersalmon.php:43 +msgid "Empty or invalid feed id." +msgstr "Порожній або недійсний ідентифікатор веб-стрічки." + +#. TRANS: Server exception. %s is a feed ID. +#, php-format +msgid "Unknown PuSH feed id %s" +msgstr "Веб-стрічка за протоколом PuSH має невідомий ідентифікатор %s" + +#. TRANS: Client exception. %s is an invalid feed name. +#, php-format +msgid "Bad hub.topic feed \"%s\"." +msgstr "hub.topic веб-стрічки «%s» неправильний." + +#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. +#, php-format +msgid "Bad hub.verify_token %1$s for %2$s." +msgstr "hub.verify_token %1$s для %2$s неправильний." + +#. TRANS: Client exception. %s is an invalid topic. +#, php-format +msgid "Unexpected subscribe request for %s." +msgstr "Несподіваний запит підписки для %s." + +#. TRANS: Client exception. %s is an invalid topic. +#, php-format +msgid "Unexpected unsubscribe request for %s." +msgstr "Несподіваний запит щодо скасування підписки для %s." + msgid "No such user." msgstr "Такого користувача немає." -#. TRANS: Client error. -#: actions/usersalmon.php:37 actions/groupsalmon.php:40 -msgid "No ID." -msgstr "Немає ідентифікатора." - -#. TRANS: Client exception. -#: actions/usersalmon.php:83 -msgid "In reply to unknown notice." -msgstr "У відповідь на невідомий допис." - -#. TRANS: Client exception. -#: actions/usersalmon.php:88 -msgid "In reply to a notice not by this user and not mentioning this user." -msgstr "" -"У відповідь на допис іншого користувача, а даний користувач у ньому навіть " -"не згадується." - -#. TRANS: Client exception. -#: actions/usersalmon.php:165 -msgid "Could not save new favorite." -msgstr "Не вдалося зберегти як новий обраний допис." - -#. TRANS: Client exception. -#: actions/usersalmon.php:197 -msgid "Can't favorite/unfavorite without an object." -msgstr "" -"Неможливо додати до обраних або видалити зі списку обраних, якщо немає " -"об’єкта." - -#. TRANS: Client exception. -#: actions/usersalmon.php:209 -msgid "Can't handle that kind of object for liking/faving." -msgstr "" -"Не вдається обробити подібний об’єкт для додавання його до списку обраних." - -#. TRANS: Client exception. %s is an object ID. -#: actions/usersalmon.php:216 -#, php-format -msgid "Notice with ID %s unknown." -msgstr "Допис з ідентифікатором %s є невідомим." - -#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. -#: actions/usersalmon.php:221 -#, php-format -msgid "Notice with ID %1$s not posted by %2$s." -msgstr "Допис з ідентифікатором %1$s було надіслано не %2$s." - -#. TRANS: Field label. -#: actions/ostatusgroup.php:78 -msgid "Join group" -msgstr "Долучитися до спільноти" - -#. TRANS: Tooltip for field label "Join group". -#: actions/ostatusgroup.php:81 -msgid "OStatus group's address, like http://example.net/group/nickname." -msgstr "" -"Адреса спільноти згідно протоколу OStatus, наприклад http://example.net/" -"group/nickname." - -#. TRANS: Button text. -#: actions/ostatusgroup.php:86 actions/ostatussub.php:75 -msgctxt "BUTTON" -msgid "Continue" -msgstr "Продовжити" - -#: actions/ostatusgroup.php:105 -msgid "You are already a member of this group." -msgstr "Ви вже є учасником цієї спільноти." - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:140 -msgid "Already a member!" -msgstr "Ви вже учасник!" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:151 -msgid "Remote group join failed!" -msgstr "Приєднатися до віддаленої спільноти не вдалося!" - -#. TRANS: OStatus remote group subscription dialog error. -#: actions/ostatusgroup.php:155 -msgid "Remote group join aborted!" -msgstr "Приєднання до віддаленої спільноти перервано!" - -#. TRANS: Page title for OStatus remote group join form -#: actions/ostatusgroup.php:167 -msgid "Confirm joining remote group" -msgstr "Підтвердження приєднання до віддаленої спільноти" - -#. TRANS: Instructions. -#: actions/ostatusgroup.php:178 -msgid "" -"You can subscribe to groups from other supported sites. Paste the group's " -"profile URI below:" -msgstr "" -"Ви можете долучатися до спільнот на аналогічних сайтах. Просто вставте URI " -"профілю спільноти тут:" - -#. TRANS: Client error. -#: actions/groupsalmon.php:47 -msgid "No such group." -msgstr "Такої спільноти немає." - -#. TRANS: Client error. -#: actions/groupsalmon.php:56 -msgid "Can't accept remote posts for a remote group." -msgstr "Не можу узгодити віддалену пересилку дописів до віддаленої спільноти." - -#. TRANS: Client error. -#: actions/groupsalmon.php:130 -msgid "Can't read profile to set up group membership." -msgstr "Не можу прочитати профіль, аби долучитися до спільноти." - -#. TRANS: Client error. -#: actions/groupsalmon.php:134 actions/groupsalmon.php:177 -msgid "Groups can't join groups." -msgstr "Спільноти ніяк не можуть приєднуватися до спільнот." - -#: actions/groupsalmon.php:147 -msgid "You have been blocked from that group by the admin." -msgstr "Адміністратор спільноти заблокував ваш профіль." - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:162 -#, php-format -msgid "Could not join remote user %1$s to group %2$s." -msgstr "" -"Віддаленому користувачеві %1$s не вдалося долучитися до спільноти %2$s." - -#: actions/groupsalmon.php:174 -msgid "Can't read profile to cancel group membership." -msgstr "" -"Не вдається прочитати профіль користувача, щоб скасувати його перебування у " -"спільноті." - -#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. -#: actions/groupsalmon.php:191 -#, php-format -msgid "Could not remove remote user %1$s from group %2$s." -msgstr "Не вдалось видалити віддаленого користувача %1$s зі спільноти %2$s." - #. TRANS: Field label for a field that takes an OStatus user address. -#: actions/ostatussub.php:68 msgid "Subscribe to" msgstr "Підписатися" #. TRANS: Tooltip for field label "Subscribe to". -#: actions/ostatussub.php:71 msgid "" "OStatus user's address, like nickname@example.com or http://example.net/" "nickname" @@ -588,31 +199,30 @@ msgstr "" "Адреса користувача згідно протоколу OStatus, щось на зразок nickname@example." "com або http://example.net/nickname" +#. TRANS: Button text. +msgctxt "BUTTON" +msgid "Continue" +msgstr "Продовжити" + #. TRANS: Button text. #. TRANS: Tooltip for button "Join". -#: actions/ostatussub.php:112 msgctxt "BUTTON" msgid "Join this group" msgstr "Приєднатися до спільноти" #. TRANS: Button text. -#: actions/ostatussub.php:115 msgctxt "BUTTON" msgid "Confirm" msgstr "Підтвердити" #. TRANS: Tooltip for button "Confirm". -#: actions/ostatussub.php:117 msgid "Subscribe to this user" msgstr "Підписатись до цього користувача" -#: actions/ostatussub.php:138 msgid "You are already subscribed to this user." msgstr "Ви вже підписані до цього користувача." #. TRANS: Error text. -#: actions/ostatussub.php:232 actions/ostatussub.php:239 -#: actions/ostatussub.php:264 msgid "" "Sorry, we could not reach that address. Please make sure that the OStatus " "address is like nickname@example.com or http://example.net/nickname." @@ -622,9 +232,6 @@ msgstr "" "nickname@example.com або ж http://example.net/nickname." #. TRANS: Error text. -#: actions/ostatussub.php:243 actions/ostatussub.php:247 -#: actions/ostatussub.php:251 actions/ostatussub.php:255 -#: actions/ostatussub.php:259 msgid "" "Sorry, we could not reach that feed. Please try that OStatus address again " "later." @@ -633,31 +240,25 @@ msgstr "" "дану адресу ще раз пізніше." #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:293 msgid "Already subscribed!" msgstr "Вже підписаний!" #. TRANS: OStatus remote subscription dialog error. -#: actions/ostatussub.php:298 msgid "Remote subscription failed!" msgstr "Підписатися віддалено не вдалося!" -#: actions/ostatussub.php:345 actions/ostatusinit.php:64 msgid "There was a problem with your session token. Try again, please." msgstr "Виникли певні проблеми з токеном сесії. Спробуйте знов, будь ласка." #. TRANS: Form title. -#: actions/ostatussub.php:373 actions/ostatusinit.php:83 msgid "Subscribe to user" msgstr "Підписатися до користувача" #. TRANS: Page title for OStatus remote subscription form -#: actions/ostatussub.php:393 msgid "Confirm" msgstr "Підтвердити" #. TRANS: Instructions. -#: actions/ostatussub.php:405 msgid "" "You can subscribe to users from other supported sites. Paste their address " "or profile URI below:" @@ -665,128 +266,377 @@ msgstr "" "Ви маєте можливість підписуватись до користувачів на аналогічних сайтах. " "Просто вставте їхні адреси або URI профілів тут:" +#. TRANS: Field label. +msgid "Join group" +msgstr "Долучитися до спільноти" + +#. TRANS: Tooltip for field label "Join group". +msgid "OStatus group's address, like http://example.net/group/nickname." +msgstr "" +"Адреса спільноти згідно протоколу OStatus, наприклад http://example.net/" +"group/nickname." + +msgid "You are already a member of this group." +msgstr "Ви вже є учасником цієї спільноти." + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Already a member!" +msgstr "Ви вже учасник!" + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Remote group join failed!" +msgstr "Приєднатися до віддаленої спільноти не вдалося!" + +#. TRANS: OStatus remote group subscription dialog error. +msgid "Remote group join aborted!" +msgstr "Приєднання до віддаленої спільноти перервано!" + +#. TRANS: Page title for OStatus remote group join form +msgid "Confirm joining remote group" +msgstr "Підтвердження приєднання до віддаленої спільноти" + +#. TRANS: Instructions. +msgid "" +"You can subscribe to groups from other supported sites. Paste the group's " +"profile URI below:" +msgstr "" +"Ви можете долучатися до спільнот на аналогічних сайтах. Просто вставте URI " +"профілю спільноти тут:" + +#. TRANS: Client error. +msgid "No ID." +msgstr "Немає ідентифікатора." + +#. TRANS: Client exception. +msgid "In reply to unknown notice." +msgstr "У відповідь на невідомий допис." + +#. TRANS: Client exception. +msgid "In reply to a notice not by this user and not mentioning this user." +msgstr "" +"У відповідь на допис іншого користувача, а даний користувач у ньому навіть " +"не згадується." + +#. TRANS: Client exception. +msgid "Could not save new favorite." +msgstr "Не вдалося зберегти як новий обраний допис." + +#. TRANS: Client exception. +msgid "Can't favorite/unfavorite without an object." +msgstr "" +"Неможливо додати до обраних або видалити зі списку обраних, якщо немає " +"об’єкта." + +#. TRANS: Client exception. +msgid "Can't handle that kind of object for liking/faving." +msgstr "" +"Не вдається обробити подібний об’єкт для додавання його до списку обраних." + +#. TRANS: Client exception. %s is an object ID. +#, php-format +msgid "Notice with ID %s unknown." +msgstr "Допис з ідентифікатором %s є невідомим." + +#. TRANS: Client exception. %1$s is a notice ID, %2$s is a user ID. +#, php-format +msgid "Notice with ID %1$s not posted by %2$s." +msgstr "Допис з ідентифікатором %1$s було надіслано не %2$s." + +#. TRANS: Client error. +msgid "No such group." +msgstr "Такої спільноти немає." + +#. TRANS: Client error. +msgid "Can't accept remote posts for a remote group." +msgstr "Не можу узгодити віддалену пересилку дописів до віддаленої спільноти." + +#. TRANS: Client error. +msgid "Can't read profile to set up group membership." +msgstr "Не можу прочитати профіль, аби долучитися до спільноти." + +#. TRANS: Client error. +msgid "Groups can't join groups." +msgstr "Спільноти ніяк не можуть приєднуватися до спільнот." + +msgid "You have been blocked from that group by the admin." +msgstr "Адміністратор спільноти заблокував ваш профіль." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#, php-format +msgid "Could not join remote user %1$s to group %2$s." +msgstr "" +"Віддаленому користувачеві %1$s не вдалося долучитися до спільноти %2$s." + +msgid "Can't read profile to cancel group membership." +msgstr "" +"Не вдається прочитати профіль користувача, щоб скасувати його перебування у " +"спільноті." + +#. TRANS: Server error. %1$s is a profile URI, %2$s is a group nickname. +#, php-format +msgid "Could not remove remote user %1$s from group %2$s." +msgstr "Не вдалось видалити віддаленого користувача %1$s зі спільноти %2$s." + #. TRANS: Client error. -#: actions/ostatusinit.php:42 msgid "You can use the local subscription!" msgstr "Ви можете користуватись локальними підписками!" #. TRANS: Form legend. -#: actions/ostatusinit.php:98 #, php-format msgid "Join group %s" msgstr "Приєднатися до спільноти %s" #. TRANS: Button text. -#: actions/ostatusinit.php:100 msgctxt "BUTTON" msgid "Join" msgstr "Приєднатися" #. TRANS: Form legend. -#: actions/ostatusinit.php:103 #, php-format msgid "Subscribe to %s" msgstr "Підписатися до %s" #. TRANS: Button text. -#: actions/ostatusinit.php:105 msgctxt "BUTTON" msgid "Subscribe" msgstr "Підписатись" #. TRANS: Field label. -#: actions/ostatusinit.php:119 msgid "Group nickname" msgstr "Назва спільноти" -#: actions/ostatusinit.php:120 msgid "Nickname of the group you want to join." msgstr "Назва спільноти, до якої ви хотіли б приєднатися." #. TRANS: Field label. -#: actions/ostatusinit.php:123 msgid "User nickname" msgstr "Ім’я користувача" -#: actions/ostatusinit.php:124 msgid "Nickname of the user you want to follow." msgstr "Ім’я користувача, дописи якого ви хотіли б читати." #. TRANS: Field label. -#: actions/ostatusinit.php:129 msgid "Profile Account" msgstr "Профіль акаунту" #. TRANS: Tooltip for field label "Profile Account". -#: actions/ostatusinit.php:131 msgid "Your account id (e.g. user@identi.ca)." msgstr "Ідентифікатор вашого акаунту (щось на зразок user@identi.ca)" #. TRANS: Client error. -#: actions/ostatusinit.php:153 msgid "Must provide a remote profile." msgstr "Мусите зазначити віддалений профіль." #. TRANS: Client error. -#: actions/ostatusinit.php:165 msgid "Couldn't look up OStatus account profile." msgstr "Не вдалося знайти профіль акаунту за протоколом OStatus." #. TRANS: Client error. -#: actions/ostatusinit.php:178 msgid "Couldn't confirm remote profile address." msgstr "Не вдалося підтвердити адресу віддаленого профілю." #. TRANS: Page title. -#: actions/ostatusinit.php:223 msgid "OStatus Connect" msgstr "З’єднання OStatus" -#: actions/pushcallback.php:50 -msgid "Empty or invalid feed id." -msgstr "Порожній або недійсний ідентифікатор веб-стрічки." +msgid "Attempting to start PuSH subscription for feed with no hub." +msgstr "" +"Спроба підписатися за допомогою PuSH до веб-стрічки, котра не має вузла." -#. TRANS: Server exception. %s is a feed ID. -#: actions/pushcallback.php:56 +msgid "Attempting to end PuSH subscription for feed with no hub." +msgstr "" +"Спроба скасувати підписку за допомогою PuSH до веб-стрічки, котра не має " +"вузла." + +#. TRANS: Server exception. %s is a URI. #, php-format -msgid "Unknown PuSH feed id %s" -msgstr "Веб-стрічка за протоколом PuSH має невідомий ідентифікатор %s" +msgid "Invalid ostatus_profile state: both group and profile IDs set for %s." +msgstr "" +"Невірний стан параметру ostatus_profile: як групові, так і персональні " +"ідентифікатори встановлено для %s." -#. TRANS: Client exception. %s is an invalid feed name. -#: actions/pushcallback.php:96 +#. TRANS: Server exception. %s is a URI. #, php-format -msgid "Bad hub.topic feed \"%s\"." -msgstr "hub.topic веб-стрічки «%s» неправильний." +msgid "Invalid ostatus_profile state: both group and profile IDs empty for %s." +msgstr "" +"Невірний стан параметру ostatus_profile: як групові, так і персональні " +"ідентифікатори порожні для %s." -#. TRANS: Client exception. %1$s the invalid token, %2$s is the topic for which the invalid token was given. -#: actions/pushcallback.php:101 +#. TRANS: Server exception. +#. TRANS: %1$s is the method name the exception occured in, %2$s is the actor type. #, php-format -msgid "Bad hub.verify_token %1$s for %2$s." -msgstr "hub.verify_token %1$s для %2$s неправильний." +msgid "Invalid actor passed to %1$s: %2$s." +msgstr "До %1$s передано невірний об’єкт: %2$s." -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:108 +#. TRANS: Server exception. +msgid "" +"Invalid type passed to Ostatus_profile::notify. It must be XML string or " +"Activity entry." +msgstr "" +"До параметру Ostatus_profile::notify передано невірний тип. Це має бути або " +"рядок у форматі XML, або запис активності." + +#. TRANS: Exception. +msgid "Unknown feed format." +msgstr "Невідомий формат веб-стрічки." + +#. TRANS: Exception. +msgid "RSS feed without a channel." +msgstr "RSS-стрічка не має каналу." + +#. TRANS: Client exception. +msgid "Can't handle that kind of post." +msgstr "Не вдається обробити такий тип допису." + +#. TRANS: Client exception. %s is a source URI. #, php-format -msgid "Unexpected subscribe request for %s." -msgstr "Несподіваний запит підписки для %s." +msgid "No content for notice %s." +msgstr "Допис %s не має змісту." -#. TRANS: Client exception. %s is an invalid topic. -#: actions/pushcallback.php:113 +#. TRANS: Shown when a notice is longer than supported and/or when attachments are present. At runtime +#. TRANS: this will usually be replaced with localised text from StatusNet core messages. +msgid "Show more" +msgstr "Розгорнути" + +#. TRANS: Exception. %s is a profile URL. #, php-format -msgid "Unexpected unsubscribe request for %s." -msgstr "Несподіваний запит щодо скасування підписки для %s." +msgid "Could not reach profile page %s." +msgstr "Не вдалося досягти сторінки профілю %s." -#~ msgid "Photo" -#~ msgstr "Фото" +#. TRANS: Exception. %s is a URL. +#, php-format +msgid "Could not find a feed URL for profile page %s." +msgstr "Не вдалося знайти URL веб-стрічки для сторінки профілю %s." -#~ msgid "Nickname" -#~ msgstr "Псевдонім" +#. TRANS: Feed sub exception. +msgid "Can't find enough profile information to make a feed." +msgstr "" +"Не можу знайти достатньо інформації про профіль, аби сформувати веб-стрічку." -#~ msgid "Location" -#~ msgstr "Розташування" +#. TRANS: Server exception. %s is a URL. +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Невірна URL-адреса аватари %s." -#~ msgid "URL" -#~ msgstr "URL-адреса" +#. TRANS: Server exception. %s is a URI. +#, php-format +msgid "Tried to update avatar for unsaved remote profile %s." +msgstr "Намагаюся оновити аватару для не збереженого віддаленого профілю %s." -#~ msgid "Note" -#~ msgstr "Примітка" +#. TRANS: Server exception. %s is a URL. +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Неможливо завантажити аватару з %s." + +#. TRANS: Exception. +msgid "Local user can't be referenced as remote." +msgstr "Місцевий користувач не може бути зазначеним у якості віддаленого." + +#. TRANS: Exception. +msgid "Local group can't be referenced as remote." +msgstr "Локальну спільноту не можна зазначити у якості віддаленої." + +#. TRANS: Server exception. +msgid "Can't save local profile." +msgstr "Не вдається зберегти місцевий профіль." + +#. TRANS: Server exception. +msgid "Can't save OStatus profile." +msgstr "Не вдається зберегти профіль OStatus." + +#. TRANS: Exception. +msgid "Not a valid webfinger address." +msgstr "Це недійсна адреса для протоколу WebFinger." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't save profile for \"%s\"." +msgstr "Не можу зберегти профіль для «%s»." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't save ostatus_profile for \"%s\"." +msgstr "Не можу зберегти профіль OStatus для «%s»." + +#. TRANS: Exception. %s is a webfinger address. +#, php-format +msgid "Couldn't find a valid profile for \"%s\"." +msgstr "не можу знайти відповідний й профіль для «%s»." + +#. TRANS: Server exception. +msgid "Could not store HTML content of long post as file." +msgstr "Не можу зберегти HTML місткого допису у якості файлу." + +#. TRANS: Client exception. %s is a HTTP status code. +#, php-format +msgid "Hub subscriber verification returned HTTP %s." +msgstr "Перевірка вузла підписки завершилася зі статусом HTTP %s." + +#. TRANS: Exception. %1$s is a response status code, %2$s is the body of the response. +#, php-format +msgid "Callback returned status: %1$s. Body: %2$s" +msgstr "Зворотній виклик повернуто зі статусом: %1$s. Зміст: %2$s" + +#. TRANS: Exception. +msgid "Unable to locate signer public key." +msgstr "Не вдалося знайти публічного ключа підписанта." + +#. TRANS: Exception. +msgid "Salmon invalid actor for signing." +msgstr "Недійсний учасник подій за протоколом Salmon для підписання." + +#. TRANS: Client error. POST is a HTTP command. It should not be translated. +msgid "This method requires a POST." +msgstr "Цей метод вимагає команди POST." + +#. TRANS: Client error. Do not translate "application/magic-envelope+xml" +msgid "Salmon requires \"application/magic-envelope+xml\"." +msgstr "Протокол Salmon вимагає \"application/magic-envelope+xml\"." + +#. TRANS: Client error. +msgid "Salmon signature verification failed." +msgstr "Перевірка підпису протоколу Salmon не вдалася." + +#. TRANS: Client error. +msgid "Salmon post must be an Atom entry." +msgstr "Дописи за протоколом Salmon мають бути у форматі Atom." + +#. TRANS: Client exception. +msgid "Unrecognized activity type." +msgstr "Невідомий тип діяльності." + +#. TRANS: Client exception. +msgid "This target doesn't understand posts." +msgstr "Ціль не розуміє, що таке «дописи»." + +#. TRANS: Client exception. +msgid "This target doesn't understand follows." +msgstr "Ціль не розуміє, що таке «слідувати»." + +#. TRANS: Client exception. +msgid "This target doesn't understand unfollows." +msgstr "Ціль не розуміє, що таке «не слідувати»." + +#. TRANS: Client exception. +msgid "This target doesn't understand favorites." +msgstr "Ціль не розуміє, що таке «додати до обраних»." + +#. TRANS: Client exception. +msgid "This target doesn't understand unfavorites." +msgstr "Ціль не розуміє, що таке «вилучити з обраних»." + +#. TRANS: Client exception. +msgid "This target doesn't understand share events." +msgstr "Ціль не розуміє, що таке «поділитися подією»." + +#. TRANS: Client exception. +msgid "This target doesn't understand joins." +msgstr "Ціль не розуміє, що таке «приєднатися»." + +#. TRANS: Client exception. +msgid "This target doesn't understand leave events." +msgstr "Ціль не розуміє, що таке «залишати подію»." + +#. TRANS: Exception. +msgid "Received a salmon slap from unidentified actor." +msgstr "Отримано ляпаса від невизначеного учасника за протоколом Salmon." diff --git a/plugins/OpenExternalLinkTarget/locale/OpenExternalLinkTarget.pot b/plugins/OpenExternalLinkTarget/locale/OpenExternalLinkTarget.pot index ac02f79869..ea6333ad71 100644 --- a/plugins/OpenExternalLinkTarget/locale/OpenExternalLinkTarget.pot +++ b/plugins/OpenExternalLinkTarget/locale/OpenExternalLinkTarget.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/OpenExternalLinkTarget/locale/ar/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/ar/LC_MESSAGES/OpenExternalLinkTarget.po new file mode 100644 index 0000000000..af420f8193 --- /dev/null +++ b/plugins/OpenExternalLinkTarget/locale/ar/LC_MESSAGES/OpenExternalLinkTarget.po @@ -0,0 +1,28 @@ +# Translation of StatusNet - OpenExternalLinkTarget to Arabic (العربية) +# Exported from translatewiki.net +# +# Author: OsamaK +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" +"Language-Team: Arabic \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ar\n" +"X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" +"Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ( (n == 1) ? 1 : ( (n == " +"2) ? 2 : ( (n%100 >= 3 && n%100 <= 10) ? 3 : ( (n%100 >= 11 && n%100 <= " +"99) ? 4 : 5 ) ) ) );\n" + +msgid "Opens external links (i.e. with rel=external) on a new window or tab." +msgstr "" +"افتح الوصلات الخارجية (التي لها rel=external) في نافذة جديدة أو لسان جديد." diff --git a/plugins/OpenExternalLinkTarget/locale/de/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/de/LC_MESSAGES/OpenExternalLinkTarget.po index 55db030eaa..db6f29b19c 100644 --- a/plugins/OpenExternalLinkTarget/locale/de/LC_MESSAGES/OpenExternalLinkTarget.po +++ b/plugins/OpenExternalLinkTarget/locale/de/LC_MESSAGES/OpenExternalLinkTarget.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:32+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: OpenExternalLinkTargetPlugin.php:59 msgid "Opens external links (i.e. with rel=external) on a new window or tab." msgstr "" "Öffnet externe Links (mit rel=external) in einem neuen Fenster oder Tab." diff --git a/plugins/OpenExternalLinkTarget/locale/es/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/es/LC_MESSAGES/OpenExternalLinkTarget.po index a11b3668e7..9e9dc9fe6b 100644 --- a/plugins/OpenExternalLinkTarget/locale/es/LC_MESSAGES/OpenExternalLinkTarget.po +++ b/plugins/OpenExternalLinkTarget/locale/es/LC_MESSAGES/OpenExternalLinkTarget.po @@ -10,19 +10,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:32+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: OpenExternalLinkTargetPlugin.php:59 msgid "Opens external links (i.e. with rel=external) on a new window or tab." msgstr "" "Abre enlaces externos (por ejemplo, con rel=external) en una nueva ventana o " diff --git a/plugins/OpenExternalLinkTarget/locale/fr/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/fr/LC_MESSAGES/OpenExternalLinkTarget.po index c3c83c50fb..e01229b19a 100644 --- a/plugins/OpenExternalLinkTarget/locale/fr/LC_MESSAGES/OpenExternalLinkTarget.po +++ b/plugins/OpenExternalLinkTarget/locale/fr/LC_MESSAGES/OpenExternalLinkTarget.po @@ -10,19 +10,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:32+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: OpenExternalLinkTargetPlugin.php:59 msgid "Opens external links (i.e. with rel=external) on a new window or tab." msgstr "" "Ouvre les liens externes (p. ex., avec rel=external) dans une nouvelle " diff --git a/plugins/OpenExternalLinkTarget/locale/he/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/he/LC_MESSAGES/OpenExternalLinkTarget.po index 158d5d62eb..4ee1f6a526 100644 --- a/plugins/OpenExternalLinkTarget/locale/he/LC_MESSAGES/OpenExternalLinkTarget.po +++ b/plugins/OpenExternalLinkTarget/locale/he/LC_MESSAGES/OpenExternalLinkTarget.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:32+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: OpenExternalLinkTargetPlugin.php:59 msgid "Opens external links (i.e. with rel=external) on a new window or tab." msgstr "פתיחת קישורים חיצוניים (לדוגמה עם rel=external) בחלון או לשונית חדשים." diff --git a/plugins/OpenExternalLinkTarget/locale/ia/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/ia/LC_MESSAGES/OpenExternalLinkTarget.po index b5d1e4849d..445d7e1ea7 100644 --- a/plugins/OpenExternalLinkTarget/locale/ia/LC_MESSAGES/OpenExternalLinkTarget.po +++ b/plugins/OpenExternalLinkTarget/locale/ia/LC_MESSAGES/OpenExternalLinkTarget.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:32+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: OpenExternalLinkTargetPlugin.php:59 msgid "Opens external links (i.e. with rel=external) on a new window or tab." msgstr "" "Aperi ligamines externe (i.e. con rel=external) in un nove fenestra o scheda." diff --git a/plugins/OpenExternalLinkTarget/locale/mk/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/mk/LC_MESSAGES/OpenExternalLinkTarget.po index d39422388b..c498118112 100644 --- a/plugins/OpenExternalLinkTarget/locale/mk/LC_MESSAGES/OpenExternalLinkTarget.po +++ b/plugins/OpenExternalLinkTarget/locale/mk/LC_MESSAGES/OpenExternalLinkTarget.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:33+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:11+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: OpenExternalLinkTargetPlugin.php:59 msgid "Opens external links (i.e. with rel=external) on a new window or tab." msgstr "" "Отвора надворешни врски (т.е. со rel=external) во нов прозорец или јазиче." diff --git a/plugins/OpenExternalLinkTarget/locale/nb/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/nb/LC_MESSAGES/OpenExternalLinkTarget.po index 2c149e295e..8ad6df5a5d 100644 --- a/plugins/OpenExternalLinkTarget/locale/nb/LC_MESSAGES/OpenExternalLinkTarget.po +++ b/plugins/OpenExternalLinkTarget/locale/nb/LC_MESSAGES/OpenExternalLinkTarget.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:33+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:12+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: OpenExternalLinkTargetPlugin.php:59 msgid "Opens external links (i.e. with rel=external) on a new window or tab." msgstr "" "Åpner eksterne lenker (f.eks. med rel=external) i ett nytt vindu eller en ny " diff --git a/plugins/OpenExternalLinkTarget/locale/nl/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/nl/LC_MESSAGES/OpenExternalLinkTarget.po index fea899a168..11cce7c1c6 100644 --- a/plugins/OpenExternalLinkTarget/locale/nl/LC_MESSAGES/OpenExternalLinkTarget.po +++ b/plugins/OpenExternalLinkTarget/locale/nl/LC_MESSAGES/OpenExternalLinkTarget.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:33+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:12+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: OpenExternalLinkTargetPlugin.php:59 msgid "Opens external links (i.e. with rel=external) on a new window or tab." msgstr "" "Opent externe verwijzingen (met \"rel=external\") in een nieuw venster of " diff --git a/plugins/OpenExternalLinkTarget/locale/pt/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/pt/LC_MESSAGES/OpenExternalLinkTarget.po index 151a836374..be884813d2 100644 --- a/plugins/OpenExternalLinkTarget/locale/pt/LC_MESSAGES/OpenExternalLinkTarget.po +++ b/plugins/OpenExternalLinkTarget/locale/pt/LC_MESSAGES/OpenExternalLinkTarget.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:12+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:25:48+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: OpenExternalLinkTargetPlugin.php:59 msgid "Opens external links (i.e. with rel=external) on a new window or tab." msgstr "" "Abre links externos (por exemplo, com rel=external) num novo separador ou " diff --git a/plugins/OpenExternalLinkTarget/locale/ru/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/ru/LC_MESSAGES/OpenExternalLinkTarget.po index 607f3a0d37..a386be5dbc 100644 --- a/plugins/OpenExternalLinkTarget/locale/ru/LC_MESSAGES/OpenExternalLinkTarget.po +++ b/plugins/OpenExternalLinkTarget/locale/ru/LC_MESSAGES/OpenExternalLinkTarget.po @@ -10,20 +10,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:33+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:12+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: OpenExternalLinkTargetPlugin.php:59 msgid "Opens external links (i.e. with rel=external) on a new window or tab." msgstr "" "Открывать внешние ссылки (например, rel=external) в новом окне или вкладке." diff --git a/plugins/OpenExternalLinkTarget/locale/uk/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/uk/LC_MESSAGES/OpenExternalLinkTarget.po index c183a46511..6615a6a902 100644 --- a/plugins/OpenExternalLinkTarget/locale/uk/LC_MESSAGES/OpenExternalLinkTarget.po +++ b/plugins/OpenExternalLinkTarget/locale/uk/LC_MESSAGES/OpenExternalLinkTarget.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:33+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:12+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: OpenExternalLinkTargetPlugin.php:59 msgid "Opens external links (i.e. with rel=external) on a new window or tab." msgstr "" "Відкривати зовнішні посилання (тобто з rel=external) у новому вікні або " diff --git a/plugins/OpenExternalLinkTarget/locale/zh_CN/LC_MESSAGES/OpenExternalLinkTarget.po b/plugins/OpenExternalLinkTarget/locale/zh_CN/LC_MESSAGES/OpenExternalLinkTarget.po index 2e1c33eb33..568cf193c8 100644 --- a/plugins/OpenExternalLinkTarget/locale/zh_CN/LC_MESSAGES/OpenExternalLinkTarget.po +++ b/plugins/OpenExternalLinkTarget/locale/zh_CN/LC_MESSAGES/OpenExternalLinkTarget.po @@ -10,19 +10,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenExternalLinkTarget\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:33+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:12+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:05+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-openexternallinktarget\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: OpenExternalLinkTargetPlugin.php:59 msgid "Opens external links (i.e. with rel=external) on a new window or tab." msgstr "打开外部链接 (即与 rel = 外部) 在一个新窗口或选项卡。" diff --git a/plugins/OpenID/locale/OpenID.pot b/plugins/OpenID/locale/OpenID.pot index fa404286e7..539eba3071 100644 --- a/plugins/OpenID/locale/OpenID.pot +++ b/plugins/OpenID/locale/OpenID.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,229 +16,28 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: openidsettings.php:58 openidadminpanel.php:65 -msgid "OpenID settings" +#: openidtrust.php:52 +msgid "OpenID Identity Verification" msgstr "" -#: openidsettings.php:69 +#: openidtrust.php:70 +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" + +#: openidtrust.php:118 #, php-format msgid "" -"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " -"account. Manage your associated OpenIDs from here." +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." msgstr "" -#: openidsettings.php:100 -msgid "Add OpenID" +#: openidtrust.php:136 +msgid "Continue" msgstr "" -#: openidsettings.php:103 -msgid "" -"If you want to add an OpenID to your account, enter it in the box below and " -"click \"Add\"." -msgstr "" - -#. TRANS: OpenID plugin logon form field label. -#: openidsettings.php:108 OpenIDPlugin.php:703 openidlogin.php:152 -msgid "OpenID URL" -msgstr "" - -#: openidsettings.php:118 -msgid "Add" -msgstr "" - -#: openidsettings.php:130 -msgid "Remove OpenID" -msgstr "" - -#: openidsettings.php:135 -msgid "" -"Removing your only OpenID would make it impossible to log in! If you need to " -"remove it, add another OpenID first." -msgstr "" - -#: openidsettings.php:150 -msgid "" -"You can remove an OpenID from your account by clicking the button marked " -"\"Remove\"." -msgstr "" - -#: openidsettings.php:173 openidsettings.php:214 -msgid "Remove" -msgstr "" - -#: openidsettings.php:187 -msgid "OpenID Trusted Sites" -msgstr "" - -#: openidsettings.php:190 -msgid "" -"The following sites are allowed to access your identity and log you in. You " -"can remove a site from this list to deny it access to your OpenID." -msgstr "" - -#. TRANS: Message given when there is a problem with the user's session token. -#: openidsettings.php:232 finishopenidlogin.php:42 -msgid "There was a problem with your session token. Try again, please." -msgstr "" - -#: openidsettings.php:239 -msgid "Can't add new providers." -msgstr "" - -#: openidsettings.php:252 -msgid "Something weird happened." -msgstr "" - -#: openidsettings.php:276 -msgid "No such OpenID trustroot." -msgstr "" - -#: openidsettings.php:280 -msgid "Trustroots removed" -msgstr "" - -#: openidsettings.php:303 -msgid "No such OpenID." -msgstr "" - -#: openidsettings.php:308 -msgid "That OpenID does not belong to you." -msgstr "" - -#: openidsettings.php:312 -msgid "OpenID removed." -msgstr "" - -#: openidadminpanel.php:54 -msgid "OpenID" -msgstr "" - -#: openidadminpanel.php:147 -msgid "Invalid provider URL. Max length is 255 characters." -msgstr "" - -#: openidadminpanel.php:153 -msgid "Invalid team name. Max length is 255 characters." -msgstr "" - -#: openidadminpanel.php:210 -msgid "Trusted provider" -msgstr "" - -#: openidadminpanel.php:212 -msgid "" -"By default, users are allowed to authenticate with any OpenID provider. If " -"you are using your own OpenID service for shared sign-in, you can restrict " -"access to only your own users here." -msgstr "" - -#: openidadminpanel.php:220 -msgid "Provider URL" -msgstr "" - -#: openidadminpanel.php:221 -msgid "" -"All OpenID logins will be sent to this URL; other providers may not be used." -msgstr "" - -#: openidadminpanel.php:228 -msgid "Append a username to base URL" -msgstr "" - -#: openidadminpanel.php:230 -msgid "" -"Login form will show the base URL and prompt for a username to add at the " -"end. Use when OpenID provider URL should be the profile page for individual " -"users." -msgstr "" - -#: openidadminpanel.php:238 -msgid "Required team" -msgstr "" - -#: openidadminpanel.php:239 -msgid "Only allow logins from users in the given team (Launchpad extension)." -msgstr "" - -#: openidadminpanel.php:251 -msgid "Options" -msgstr "" - -#: openidadminpanel.php:258 -msgid "Enable OpenID-only mode" -msgstr "" - -#: openidadminpanel.php:260 -msgid "" -"Require all users to login via OpenID. Warning: disables password " -"authentication for all users!" -msgstr "" - -#: openidadminpanel.php:278 -msgid "Save OpenID settings" -msgstr "" - -#. TRANS: OpenID plugin server error. -#: openid.php:138 -msgid "Cannot instantiate OpenID consumer object." -msgstr "" - -#. TRANS: OpenID plugin message. Given when an OpenID is not valid. -#: openid.php:150 -msgid "Not a valid OpenID." -msgstr "" - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. -#. TRANS: %s is the failure message. -#: openid.php:155 -#, php-format -msgid "OpenID failure: %s" -msgstr "" - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. -#. TRANS: %s is the failure message. -#: openid.php:205 -#, php-format -msgid "Could not redirect to server: %s" -msgstr "" - -#. TRANS: OpenID plugin user instructions. -#: openid.php:244 -msgid "" -"This form should automatically submit itself. If not, click the submit " -"button to go to your OpenID provider." -msgstr "" - -#. TRANS: OpenID plugin server error. -#: openid.php:280 -msgid "Error saving the profile." -msgstr "" - -#. TRANS: OpenID plugin server error. -#: openid.php:292 -msgid "Error saving the user." -msgstr "" - -#. TRANS: OpenID plugin client exception (403). -#: openid.php:322 -msgid "Unauthorized URL used for OpenID login." -msgstr "" - -#. TRANS: Title -#: openid.php:370 -msgid "OpenID Login Submission" -msgstr "" - -#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. -#: openid.php:381 -msgid "Requesting authorization from your login provider..." -msgstr "" - -#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. -#: openid.php:385 -msgid "" -"If you are not redirected to your login provider in a few seconds, try " -"pushing the button below." +#: openidtrust.php:137 +msgid "Cancel" msgstr "" #. TRANS: Tooltip for main menu option "Login" @@ -331,27 +130,26 @@ msgstr "" msgid "You will be sent to the provider's site for authentication." msgstr "" +#. TRANS: OpenID plugin logon form field label. +#: OpenIDPlugin.php:703 openidsettings.php:108 openidlogin.php:152 +msgid "OpenID URL" +msgstr "" + #. TRANS: OpenID plugin logon form field instructions. #: OpenIDPlugin.php:706 openidlogin.php:155 msgid "Your OpenID URL" msgstr "" -#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). -#: openidserver.php:116 -#, php-format -msgid "You are not authorized to use the identity %s." -msgstr "" - -#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). -#: openidserver.php:137 -msgid "Just an OpenID provider. Nothing to see here, move along..." -msgstr "" - #. TRANS: Client error message trying to log on with OpenID while already logged on. #: finishopenidlogin.php:37 openidlogin.php:33 msgid "Already logged in." msgstr "" +#. TRANS: Message given when there is a problem with the user's session token. +#: finishopenidlogin.php:42 openidsettings.php:232 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + #. TRANS: Message given if user does not agree with the site's license. #: finishopenidlogin.php:48 msgid "You can't register if you don't agree to the license." @@ -487,66 +285,140 @@ msgstr "" msgid "Error connecting user to OpenID." msgstr "" -#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. -#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:74 +#. TRANS: OpenID plugin server error. +#: openid.php:138 +msgid "Cannot instantiate OpenID consumer object." +msgstr "" + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +#: openid.php:150 +msgid "Not a valid OpenID." +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#: openid.php:155 #, php-format -msgid "" -"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " -"before changing your settings." +msgid "OpenID failure: %s" msgstr "" -#. TRANS: OpenID plugin message. -#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:80 +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#: openid.php:205 #, php-format -msgid "Login with an [OpenID](%%doc.openid%%) account." +msgid "Could not redirect to server: %s" msgstr "" -#. TRANS: OpenID plugin message. Title. -#. TRANS: Title after getting the status of the OpenID authorisation request. -#: openidlogin.php:114 finishaddopenid.php:187 -msgid "OpenID Login" -msgstr "" - -#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. -#: openidlogin.php:160 -msgid "Remember me" -msgstr "" - -#. TRANS: OpenID plugin logon form field instructions. -#: openidlogin.php:162 -msgid "Automatically login in the future; not for shared computers!" -msgstr "" - -#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. -#: openidlogin.php:167 -msgctxt "BUTTON" -msgid "Login" -msgstr "" - -#: openidtrust.php:52 -msgid "OpenID Identity Verification" -msgstr "" - -#: openidtrust.php:70 +#. TRANS: OpenID plugin user instructions. +#: openid.php:244 msgid "" -"This page should only be reached during OpenID processing, not directly." +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." msgstr "" -#: openidtrust.php:118 -#, php-format +#. TRANS: OpenID plugin server error. +#: openid.php:280 +msgid "Error saving the profile." +msgstr "" + +#. TRANS: OpenID plugin server error. +#: openid.php:292 +msgid "Error saving the user." +msgstr "" + +#. TRANS: OpenID plugin client exception (403). +#: openid.php:322 +msgid "Unauthorized URL used for OpenID login." +msgstr "" + +#. TRANS: Title +#: openid.php:370 +msgid "OpenID Login Submission" +msgstr "" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +#: openid.php:381 +msgid "Requesting authorization from your login provider..." +msgstr "" + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +#: openid.php:385 msgid "" -"%s has asked to verify your identity. Click Continue to verify your " -"identity and login without creating a new password." +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." msgstr "" -#: openidtrust.php:136 -msgid "Continue" +#: openidadminpanel.php:54 +msgid "OpenID" msgstr "" -#: openidtrust.php:137 -msgid "Cancel" +#: openidadminpanel.php:65 openidsettings.php:58 +msgid "OpenID settings" +msgstr "" + +#: openidadminpanel.php:147 +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:153 +msgid "Invalid team name. Max length is 255 characters." +msgstr "" + +#: openidadminpanel.php:210 +msgid "Trusted provider" +msgstr "" + +#: openidadminpanel.php:212 +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" + +#: openidadminpanel.php:220 +msgid "Provider URL" +msgstr "" + +#: openidadminpanel.php:221 +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" + +#: openidadminpanel.php:228 +msgid "Append a username to base URL" +msgstr "" + +#: openidadminpanel.php:230 +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" + +#: openidadminpanel.php:238 +msgid "Required team" +msgstr "" + +#: openidadminpanel.php:239 +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" + +#: openidadminpanel.php:251 +msgid "Options" +msgstr "" + +#: openidadminpanel.php:258 +msgid "Enable OpenID-only mode" +msgstr "" + +#: openidadminpanel.php:260 +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" + +#: openidadminpanel.php:278 +msgid "Save OpenID settings" msgstr "" #. TRANS: Client error message @@ -573,3 +445,131 @@ msgstr "" #: finishaddopenid.php:145 msgid "Error updating profile" msgstr "" + +#. TRANS: Title after getting the status of the OpenID authorisation request. +#. TRANS: OpenID plugin message. Title. +#: finishaddopenid.php:187 openidlogin.php:114 +msgid "OpenID Login" +msgstr "" + +#: openidsettings.php:69 +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" + +#: openidsettings.php:100 +msgid "Add OpenID" +msgstr "" + +#: openidsettings.php:103 +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" + +#: openidsettings.php:118 +msgid "Add" +msgstr "" + +#: openidsettings.php:130 +msgid "Remove OpenID" +msgstr "" + +#: openidsettings.php:135 +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" + +#: openidsettings.php:150 +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" + +#: openidsettings.php:173 openidsettings.php:214 +msgid "Remove" +msgstr "" + +#: openidsettings.php:187 +msgid "OpenID Trusted Sites" +msgstr "" + +#: openidsettings.php:190 +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" + +#: openidsettings.php:239 +msgid "Can't add new providers." +msgstr "" + +#: openidsettings.php:252 +msgid "Something weird happened." +msgstr "" + +#: openidsettings.php:276 +msgid "No such OpenID trustroot." +msgstr "" + +#: openidsettings.php:280 +msgid "Trustroots removed" +msgstr "" + +#: openidsettings.php:303 +msgid "No such OpenID." +msgstr "" + +#: openidsettings.php:308 +msgid "That OpenID does not belong to you." +msgstr "" + +#: openidsettings.php:312 +msgid "OpenID removed." +msgstr "" + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#: openidserver.php:116 +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "" + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +#: openidserver.php:137 +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" + +#. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:74 +#, php-format +msgid "" +"For security reasons, please re-login with your [OpenID](%%doc.openid%%) " +"before changing your settings." +msgstr "" + +#. TRANS: OpenID plugin message. +#. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". +#: openidlogin.php:80 +#, php-format +msgid "Login with an [OpenID](%%doc.openid%%) account." +msgstr "" + +#. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. +#: openidlogin.php:160 +msgid "Remember me" +msgstr "" + +#. TRANS: OpenID plugin logon form field instructions. +#: openidlogin.php:162 +msgid "Automatically login in the future; not for shared computers!" +msgstr "" + +#. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. +#: openidlogin.php:167 +msgctxt "BUTTON" +msgid "Login" +msgstr "" diff --git a/plugins/OpenID/locale/br/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/br/LC_MESSAGES/OpenID.po index ba67bd35ba..4490cae1bf 100644 --- a/plugins/OpenID/locale/br/LC_MESSAGES/OpenID.po +++ b/plugins/OpenID/locale/br/LC_MESSAGES/OpenID.po @@ -9,275 +9,63 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenID\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:34+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:18+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:00+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-openid\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: openidsettings.php:58 openidadminpanel.php:65 -msgid "OpenID settings" -msgstr "Arventenn OpenID" +msgid "OpenID Identity Verification" +msgstr "" + +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" -#: openidsettings.php:69 #, php-format msgid "" -"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " -"account. Manage your associated OpenIDs from here." +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." msgstr "" -#: openidsettings.php:100 -msgid "Add OpenID" -msgstr "Ouzhpennañ OpenID" +msgid "Continue" +msgstr "Kenderc'hel" -#: openidsettings.php:103 -msgid "" -"If you want to add an OpenID to your account, enter it in the box below and " -"click \"Add\"." -msgstr "" - -#. TRANS: OpenID plugin logon form field label. -#: openidsettings.php:108 OpenIDPlugin.php:703 openidlogin.php:152 -msgid "OpenID URL" -msgstr "URL OpenID" - -#: openidsettings.php:118 -msgid "Add" -msgstr "Ouzhpennañ" - -#: openidsettings.php:130 -msgid "Remove OpenID" -msgstr "Dilemel OpenID" - -#: openidsettings.php:135 -msgid "" -"Removing your only OpenID would make it impossible to log in! If you need to " -"remove it, add another OpenID first." -msgstr "" - -#: openidsettings.php:150 -msgid "" -"You can remove an OpenID from your account by clicking the button marked " -"\"Remove\"." -msgstr "" - -#: openidsettings.php:173 openidsettings.php:214 -msgid "Remove" -msgstr "Dilemel" - -#: openidsettings.php:187 -msgid "OpenID Trusted Sites" -msgstr "" - -#: openidsettings.php:190 -msgid "" -"The following sites are allowed to access your identity and log you in. You " -"can remove a site from this list to deny it access to your OpenID." -msgstr "" - -#. TRANS: Message given when there is a problem with the user's session token. -#: openidsettings.php:232 finishopenidlogin.php:42 -msgid "There was a problem with your session token. Try again, please." -msgstr "" - -#: openidsettings.php:239 -msgid "Can't add new providers." -msgstr "Dibosupl eo ouzhpennañ pourvezerien nevez." - -#: openidsettings.php:252 -msgid "Something weird happened." -msgstr "" - -#: openidsettings.php:276 -msgid "No such OpenID trustroot." -msgstr "" - -#: openidsettings.php:280 -msgid "Trustroots removed" -msgstr "" - -#: openidsettings.php:303 -msgid "No such OpenID." -msgstr "N'eus ket eus ar gont OpenID." - -#: openidsettings.php:308 -msgid "That OpenID does not belong to you." -msgstr "" - -#: openidsettings.php:312 -msgid "OpenID removed." -msgstr "Kont OpenID dilamet." - -#: openidadminpanel.php:54 -msgid "OpenID" -msgstr "OpenID" - -#: openidadminpanel.php:147 -msgid "Invalid provider URL. Max length is 255 characters." -msgstr "" - -#: openidadminpanel.php:153 -msgid "Invalid team name. Max length is 255 characters." -msgstr "" - -#: openidadminpanel.php:210 -msgid "Trusted provider" -msgstr "" - -#: openidadminpanel.php:212 -msgid "" -"By default, users are allowed to authenticate with any OpenID provider. If " -"you are using your own OpenID service for shared sign-in, you can restrict " -"access to only your own users here." -msgstr "" - -#: openidadminpanel.php:220 -msgid "Provider URL" -msgstr "" - -#: openidadminpanel.php:221 -msgid "" -"All OpenID logins will be sent to this URL; other providers may not be used." -msgstr "" - -#: openidadminpanel.php:228 -msgid "Append a username to base URL" -msgstr "" - -#: openidadminpanel.php:230 -msgid "" -"Login form will show the base URL and prompt for a username to add at the " -"end. Use when OpenID provider URL should be the profile page for individual " -"users." -msgstr "" - -#: openidadminpanel.php:238 -msgid "Required team" -msgstr "Skipailh ret" - -#: openidadminpanel.php:239 -msgid "Only allow logins from users in the given team (Launchpad extension)." -msgstr "" - -#: openidadminpanel.php:251 -msgid "Options" -msgstr "Dibarzhioù" - -#: openidadminpanel.php:258 -msgid "Enable OpenID-only mode" -msgstr "" - -#: openidadminpanel.php:260 -msgid "" -"Require all users to login via OpenID. Warning: disables password " -"authentication for all users!" -msgstr "" - -#: openidadminpanel.php:278 -msgid "Save OpenID settings" -msgstr "" - -#. TRANS: OpenID plugin server error. -#: openid.php:138 -msgid "Cannot instantiate OpenID consumer object." -msgstr "" - -#. TRANS: OpenID plugin message. Given when an OpenID is not valid. -#: openid.php:150 -msgid "Not a valid OpenID." -msgstr "" - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. -#. TRANS: %s is the failure message. -#: openid.php:155 -#, php-format -msgid "OpenID failure: %s" -msgstr "" - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. -#. TRANS: %s is the failure message. -#: openid.php:205 -#, php-format -msgid "Could not redirect to server: %s" -msgstr "" - -#. TRANS: OpenID plugin user instructions. -#: openid.php:244 -msgid "" -"This form should automatically submit itself. If not, click the submit " -"button to go to your OpenID provider." -msgstr "" - -#. TRANS: OpenID plugin server error. -#: openid.php:280 -msgid "Error saving the profile." -msgstr "Ur fazi 'zo bet pa veze enrollet ar profil." - -#. TRANS: OpenID plugin server error. -#: openid.php:292 -msgid "Error saving the user." -msgstr "Ur fazi 'zo bet pa veze enrollet an implijer." - -#. TRANS: OpenID plugin client exception (403). -#: openid.php:322 -msgid "Unauthorized URL used for OpenID login." -msgstr "" - -#. TRANS: Title -#: openid.php:370 -msgid "OpenID Login Submission" -msgstr "" - -#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. -#: openid.php:381 -msgid "Requesting authorization from your login provider..." -msgstr "" - -#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. -#: openid.php:385 -msgid "" -"If you are not redirected to your login provider in a few seconds, try " -"pushing the button below." -msgstr "" +msgid "Cancel" +msgstr "Nullañ" #. TRANS: Tooltip for main menu option "Login" -#: OpenIDPlugin.php:218 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Kevreañ d'al lec'hienn" #. TRANS: Main menu option when not logged in to log in -#: OpenIDPlugin.php:221 msgctxt "MENU" msgid "Login" msgstr "Kevreañ" #. TRANS: Tooltip for main menu option "Help" -#: OpenIDPlugin.php:226 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Sikour din !" #. TRANS: Main menu option for help on the StatusNet site -#: OpenIDPlugin.php:229 msgctxt "MENU" msgid "Help" msgstr "Skoazell" #. TRANS: Tooltip for main menu option "Search" -#: OpenIDPlugin.php:235 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Klask tud pe un tamm testenn" #. TRANS: Main menu option when logged in or when the StatusNet instance is not private -#: OpenIDPlugin.php:238 msgctxt "MENU" msgid "Search" msgstr "Klask" @@ -285,93 +73,75 @@ msgstr "Klask" #. TRANS: OpenID plugin menu item on site logon page. #. TRANS: OpenID plugin menu item on user settings page. #. TRANS: OpenID configuration menu item. -#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 msgctxt "MENU" msgid "OpenID" msgstr "OpenID" #. TRANS: OpenID plugin tooltip for logon menu item. -#: OpenIDPlugin.php:297 msgid "Login or register with OpenID" msgstr "" #. TRANS: OpenID plugin tooltip for user settings menu item. -#: OpenIDPlugin.php:333 msgid "Add or remove OpenIDs" msgstr "" #. TRANS: Tooltip for OpenID configuration menu item. -#: OpenIDPlugin.php:607 msgid "OpenID configuration" msgstr "Kefluniadur OpenID" #. TRANS: OpenID plugin description. -#: OpenIDPlugin.php:653 msgid "Use OpenID to login to the site." msgstr "" #. TRANS: button label for OAuth authorization page when needing OpenID authentication first. -#: OpenIDPlugin.php:663 msgctxt "BUTTON" msgid "Continue" msgstr "Kenderc'hel" #. TRANS: OpenID plugin logon form legend. -#: OpenIDPlugin.php:680 openidlogin.php:132 msgid "OpenID login" msgstr "" #. TRANS: Field label. -#: OpenIDPlugin.php:688 openidlogin.php:139 msgid "OpenID provider" msgstr "" #. TRANS: Form guide. -#: OpenIDPlugin.php:697 openidlogin.php:147 msgid "Enter your username." msgstr "Ebarzhit hoc'h anv implijer" #. TRANS: Form guide. -#: OpenIDPlugin.php:699 openidlogin.php:148 msgid "You will be sent to the provider's site for authentication." msgstr "" +#. TRANS: OpenID plugin logon form field label. +msgid "OpenID URL" +msgstr "URL OpenID" + #. TRANS: OpenID plugin logon form field instructions. -#: OpenIDPlugin.php:706 openidlogin.php:155 msgid "Your OpenID URL" msgstr "" -#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). -#: openidserver.php:116 -#, php-format -msgid "You are not authorized to use the identity %s." -msgstr "" - -#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). -#: openidserver.php:137 -msgid "Just an OpenID provider. Nothing to see here, move along..." -msgstr "" - #. TRANS: Client error message trying to log on with OpenID while already logged on. -#: finishopenidlogin.php:37 openidlogin.php:33 msgid "Already logged in." msgstr "Kevreet oc'h dija." +#. TRANS: Message given when there is a problem with the user's session token. +msgid "There was a problem with your session token. Try again, please." +msgstr "" + #. TRANS: Message given if user does not agree with the site's license. -#: finishopenidlogin.php:48 msgid "You can't register if you don't agree to the license." msgstr "" "Rankout a rit bezañ a-du gant termenoù an aotre-implijout evit krouiñ ur " "gont." #. TRANS: Messag given on an unknown error. -#: finishopenidlogin.php:57 msgid "An unknown error has occured." msgstr "Ur gudenn dizanv a zo bet." #. TRANS: Instructions given after a first successful logon using OpenID. #. TRANS: %s is the site name. -#: finishopenidlogin.php:73 #, php-format msgid "" "This is the first time you've logged into %s so we must connect your OpenID " @@ -380,123 +150,305 @@ msgid "" msgstr "" #. TRANS: Title -#: finishopenidlogin.php:80 msgid "OpenID Account Setup" msgstr "" -#: finishopenidlogin.php:117 msgid "Create new account" msgstr "Krouiñ ur gont nevez" -#: finishopenidlogin.php:119 msgid "Create a new user with this nickname." msgstr "Krouiñ un implijer nevez gant al lesanv-se." -#: finishopenidlogin.php:126 msgid "New nickname" msgstr "Lesanv nevez" -#: finishopenidlogin.php:128 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" #. TRANS: Button label in form in which to create a new user on the site for an OpenID. -#: finishopenidlogin.php:162 msgctxt "BUTTON" msgid "Create" msgstr "Krouiñ" #. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:176 msgid "Connect existing account" msgstr "" #. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:179 msgid "" "If you already have an account, login with your username and password to " "connect it to your OpenID." msgstr "" #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:183 msgid "Existing nickname" msgstr "Lesanv a zo dioutañ" #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:187 msgid "Password" msgstr "Ger-tremen" #. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:191 msgctxt "BUTTON" msgid "Connect" msgstr "Kevreañ" #. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. -#: finishopenidlogin.php:237 finishaddopenid.php:90 msgid "OpenID authentication cancelled." msgstr "" #. TRANS: OpenID authentication failed; display the error message. %s is the error message. #. TRANS: OpenID authentication failed; display the error message. #. TRANS: %s is the error message. -#: finishopenidlogin.php:241 finishaddopenid.php:95 #, php-format msgid "OpenID authentication failed: %s" msgstr "" -#: finishopenidlogin.php:261 finishaddopenid.php:111 msgid "" "OpenID authentication aborted: you are not allowed to login to this site." msgstr "" #. TRANS: OpenID plugin message. No new user registration is allowed on the site. #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. -#: finishopenidlogin.php:317 finishopenidlogin.php:327 msgid "Registration not allowed." msgstr "N'eo ket aotreet krouiñ kontoù." #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. -#: finishopenidlogin.php:335 msgid "Not a valid invitation code." msgstr "N'eo ket reizh ar c'hod pedadenn." #. TRANS: OpenID plugin message. The entered new user name is blacklisted. -#: finishopenidlogin.php:349 msgid "Nickname not allowed." msgstr "Lesanv nann-aotreet." #. TRANS: OpenID plugin message. The entered new user name is already used. -#: finishopenidlogin.php:355 msgid "Nickname already in use. Try another one." msgstr "Implijet eo dija al lesanv-se. Klaskit unan all." #. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. #. TRANS: OpenID plugin server error. A stored OpenID cannot be found. -#: finishopenidlogin.php:363 finishopenidlogin.php:449 msgid "Stored OpenID not found." msgstr "" #. TRANS: OpenID plugin server error. -#: finishopenidlogin.php:373 msgid "Creating new account for OpenID that already has a user." msgstr "" #. TRANS: OpenID plugin message. -#: finishopenidlogin.php:437 msgid "Invalid username or password." msgstr "" #. TRANS: OpenID plugin server error. The user or user profile could not be saved. -#: finishopenidlogin.php:457 msgid "Error connecting user to OpenID." msgstr "" +#. TRANS: OpenID plugin server error. +msgid "Cannot instantiate OpenID consumer object." +msgstr "" + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +msgid "Not a valid OpenID." +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#, php-format +msgid "OpenID failure: %s" +msgstr "" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#, php-format +msgid "Could not redirect to server: %s" +msgstr "" + +#. TRANS: OpenID plugin user instructions. +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" + +#. TRANS: OpenID plugin server error. +msgid "Error saving the profile." +msgstr "Ur fazi 'zo bet pa veze enrollet ar profil." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the user." +msgstr "Ur fazi 'zo bet pa veze enrollet an implijer." + +#. TRANS: OpenID plugin client exception (403). +msgid "Unauthorized URL used for OpenID login." +msgstr "" + +#. TRANS: Title +msgid "OpenID Login Submission" +msgstr "" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +msgid "Requesting authorization from your login provider..." +msgstr "" + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" + +msgid "OpenID" +msgstr "OpenID" + +msgid "OpenID settings" +msgstr "Arventenn OpenID" + +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" + +msgid "Invalid team name. Max length is 255 characters." +msgstr "" + +msgid "Trusted provider" +msgstr "" + +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" + +msgid "Provider URL" +msgstr "" + +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" + +msgid "Append a username to base URL" +msgstr "" + +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" + +msgid "Required team" +msgstr "Skipailh ret" + +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" + +msgid "Options" +msgstr "Dibarzhioù" + +msgid "Enable OpenID-only mode" +msgstr "" + +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" + +msgid "Save OpenID settings" +msgstr "" + +#. TRANS: Client error message +msgid "Not logged in." +msgstr "Nann-kevreet." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +msgid "You already have this OpenID!" +msgstr "Kevreet oc'h dija gant an OpenID-se !" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +msgid "Someone else already has this OpenID." +msgstr "" + +#. TRANS: message in case the OpenID object cannot be connected to the user. +msgid "Error connecting user." +msgstr "" + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +msgid "Error updating profile" +msgstr "" + +#. TRANS: Title after getting the status of the OpenID authorisation request. +#. TRANS: OpenID plugin message. Title. +msgid "OpenID Login" +msgstr "" + +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" + +msgid "Add OpenID" +msgstr "Ouzhpennañ OpenID" + +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" + +msgid "Add" +msgstr "Ouzhpennañ" + +msgid "Remove OpenID" +msgstr "Dilemel OpenID" + +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" + +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" + +msgid "Remove" +msgstr "Dilemel" + +msgid "OpenID Trusted Sites" +msgstr "" + +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" + +msgid "Can't add new providers." +msgstr "Dibosupl eo ouzhpennañ pourvezerien nevez." + +msgid "Something weird happened." +msgstr "" + +msgid "No such OpenID trustroot." +msgstr "" + +msgid "Trustroots removed" +msgstr "" + +msgid "No such OpenID." +msgstr "N'eus ket eus ar gont OpenID." + +msgid "That OpenID does not belong to you." +msgstr "" + +msgid "OpenID removed." +msgstr "Kont OpenID dilamet." + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "" + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" + #. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:74 #, php-format msgid "" "For security reasons, please re-login with your [OpenID](%%doc.openid%%) " @@ -505,78 +457,19 @@ msgstr "" #. TRANS: OpenID plugin message. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:80 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "Kevreañ gant ur gont [OpenID](%%doc.openid%%)." -#. TRANS: OpenID plugin message. Title. -#. TRANS: Title after getting the status of the OpenID authorisation request. -#: openidlogin.php:114 finishaddopenid.php:187 -msgid "OpenID Login" -msgstr "" - #. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. -#: openidlogin.php:160 msgid "Remember me" msgstr "Derc'hel soñj ac'hanon" #. TRANS: OpenID plugin logon form field instructions. -#: openidlogin.php:162 msgid "Automatically login in the future; not for shared computers!" msgstr "" #. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. -#: openidlogin.php:167 msgctxt "BUTTON" msgid "Login" msgstr "Kevreañ" - -#: openidtrust.php:52 -msgid "OpenID Identity Verification" -msgstr "" - -#: openidtrust.php:70 -msgid "" -"This page should only be reached during OpenID processing, not directly." -msgstr "" - -#: openidtrust.php:118 -#, php-format -msgid "" -"%s has asked to verify your identity. Click Continue to verify your " -"identity and login without creating a new password." -msgstr "" - -#: openidtrust.php:136 -msgid "Continue" -msgstr "Kenderc'hel" - -#: openidtrust.php:137 -msgid "Cancel" -msgstr "Nullañ" - -#. TRANS: Client error message -#: finishaddopenid.php:68 -msgid "Not logged in." -msgstr "Nann-kevreet." - -#. TRANS: message in case a user tries to add an OpenID that is already connected to them. -#: finishaddopenid.php:122 -msgid "You already have this OpenID!" -msgstr "Kevreet oc'h dija gant an OpenID-se !" - -#. TRANS: message in case a user tries to add an OpenID that is already used by another user. -#: finishaddopenid.php:125 -msgid "Someone else already has this OpenID." -msgstr "" - -#. TRANS: message in case the OpenID object cannot be connected to the user. -#: finishaddopenid.php:138 -msgid "Error connecting user." -msgstr "" - -#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. -#: finishaddopenid.php:145 -msgid "Error updating profile" -msgstr "" diff --git a/plugins/OpenID/locale/ca/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/ca/LC_MESSAGES/OpenID.po index d3e1ab1425..71b9430dfb 100644 --- a/plugins/OpenID/locale/ca/LC_MESSAGES/OpenID.po +++ b/plugins/OpenID/locale/ca/LC_MESSAGES/OpenID.po @@ -9,293 +9,67 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenID\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:34+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:18+0000\n" "Language-Team: Catalan \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:00+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: #out-statusnet-plugin-openid\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: openidsettings.php:58 openidadminpanel.php:65 -msgid "OpenID settings" -msgstr "Paràmetres de l'OpenID" +msgid "OpenID Identity Verification" +msgstr "Verificació de la identitat d'OpenID" + +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"Hauria d'arribar-se a aquesta pàgina només durant el processament de " +"l'OpenID, no directament." -#: openidsettings.php:69 #, php-format msgid "" -"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " -"account. Manage your associated OpenIDs from here." +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." msgstr "" -"[OpenID](%%doc.openid%%) us permet iniciar una sessió a molts llocs amb un " -"mateix compte d'usuari. Gestioneu les vostres connexions OpenID associades " -"des d'aquí." +"%s us ha demanat verificar la identitat. Feu clic a Continuar per verificar " +"la vostra identitat i iniciar una sessió sense crear cap contrasenya nova." -#: openidsettings.php:100 -msgid "Add OpenID" -msgstr "Afegeix una connexió OpenID" +msgid "Continue" +msgstr "Continua" -#: openidsettings.php:103 -msgid "" -"If you want to add an OpenID to your account, enter it in the box below and " -"click \"Add\"." -msgstr "" -"Si voleu afegir una connexió OpenID al vostre compte, introduïu-la en la " -"caixa a continuació i feu clic a «Afegeix»." - -#. TRANS: OpenID plugin logon form field label. -#: openidsettings.php:108 OpenIDPlugin.php:703 openidlogin.php:152 -msgid "OpenID URL" -msgstr "URL de la connexió OpenID" - -#: openidsettings.php:118 -msgid "Add" -msgstr "Afegeix" - -#: openidsettings.php:130 -msgid "Remove OpenID" -msgstr "Suprimeix la connexió OpenID" - -#: openidsettings.php:135 -msgid "" -"Removing your only OpenID would make it impossible to log in! If you need to " -"remove it, add another OpenID first." -msgstr "" -"Si suprimiu la vostra única connexió OpenID, serà impossible que hi inicieu " -"cap sessió. Si cal que la suprimiu, primer afegiu-ne una altra." - -#: openidsettings.php:150 -msgid "" -"You can remove an OpenID from your account by clicking the button marked " -"\"Remove\"." -msgstr "" -"Podeu suprimir una connexió OpenID del vostre compte si feu clic al botó " -"marcat amb «Suprimeix»." - -#: openidsettings.php:173 openidsettings.php:214 -msgid "Remove" -msgstr "Suprimeix" - -#: openidsettings.php:187 -msgid "OpenID Trusted Sites" -msgstr "Llocs de confiança de l'OpenID" - -#: openidsettings.php:190 -msgid "" -"The following sites are allowed to access your identity and log you in. You " -"can remove a site from this list to deny it access to your OpenID." -msgstr "" - -#. TRANS: Message given when there is a problem with the user's session token. -#: openidsettings.php:232 finishopenidlogin.php:42 -msgid "There was a problem with your session token. Try again, please." -msgstr "" -"S'ha produït un problema amb el vostre testimoni de sessió. Proveu-ho de nou." - -#: openidsettings.php:239 -msgid "Can't add new providers." -msgstr "No es poden afegir proveïdors nous." - -#: openidsettings.php:252 -msgid "Something weird happened." -msgstr "Ha passat quelcom estrany." - -#: openidsettings.php:276 -msgid "No such OpenID trustroot." -msgstr "" - -#: openidsettings.php:280 -msgid "Trustroots removed" -msgstr "" - -#: openidsettings.php:303 -msgid "No such OpenID." -msgstr "No existeix l'OpenID." - -#: openidsettings.php:308 -msgid "That OpenID does not belong to you." -msgstr "Aquest OpenID no us pertany." - -#: openidsettings.php:312 -msgid "OpenID removed." -msgstr "S'ha suprimit l'OpenID." - -#: openidadminpanel.php:54 -msgid "OpenID" -msgstr "OpenID" - -#: openidadminpanel.php:147 -msgid "Invalid provider URL. Max length is 255 characters." -msgstr "" - -#: openidadminpanel.php:153 -msgid "Invalid team name. Max length is 255 characters." -msgstr "" - -#: openidadminpanel.php:210 -msgid "Trusted provider" -msgstr "Proveïdor de confiança" - -#: openidadminpanel.php:212 -msgid "" -"By default, users are allowed to authenticate with any OpenID provider. If " -"you are using your own OpenID service for shared sign-in, you can restrict " -"access to only your own users here." -msgstr "" -"Per defecte, els usuaris poden autenticar-se amb qualsevol proveïdor " -"d'OpenID. Si feu servir el vostre servei d'OpenID propi per a sessions " -"compartides, podeu restringir l'accés només als usuaris propis des d'aquí." - -#: openidadminpanel.php:220 -msgid "Provider URL" -msgstr "URL del proveïdor" - -#: openidadminpanel.php:221 -msgid "" -"All OpenID logins will be sent to this URL; other providers may not be used." -msgstr "" - -#: openidadminpanel.php:228 -msgid "Append a username to base URL" -msgstr "" - -#: openidadminpanel.php:230 -msgid "" -"Login form will show the base URL and prompt for a username to add at the " -"end. Use when OpenID provider URL should be the profile page for individual " -"users." -msgstr "" - -#: openidadminpanel.php:238 -msgid "Required team" -msgstr "Equip necessari" - -#: openidadminpanel.php:239 -msgid "Only allow logins from users in the given team (Launchpad extension)." -msgstr "" - -#: openidadminpanel.php:251 -msgid "Options" -msgstr "Opcions" - -#: openidadminpanel.php:258 -msgid "Enable OpenID-only mode" -msgstr "" - -#: openidadminpanel.php:260 -msgid "" -"Require all users to login via OpenID. Warning: disables password " -"authentication for all users!" -msgstr "" - -#: openidadminpanel.php:278 -msgid "Save OpenID settings" -msgstr "Desa els paràmetres de l'OpenID" - -#. TRANS: OpenID plugin server error. -#: openid.php:138 -msgid "Cannot instantiate OpenID consumer object." -msgstr "" - -#. TRANS: OpenID plugin message. Given when an OpenID is not valid. -#: openid.php:150 -msgid "Not a valid OpenID." -msgstr "No és un OpenID vàlid." - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. -#. TRANS: %s is the failure message. -#: openid.php:155 -#, php-format -msgid "OpenID failure: %s" -msgstr "Fallada de l'OpenID: %s" - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. -#. TRANS: %s is the failure message. -#: openid.php:205 -#, php-format -msgid "Could not redirect to server: %s" -msgstr "No es pot redirigir al servidor: %s" - -#. TRANS: OpenID plugin user instructions. -#: openid.php:244 -msgid "" -"This form should automatically submit itself. If not, click the submit " -"button to go to your OpenID provider." -msgstr "" -"Aquest formulari s'hauria de trametre automàticament per si mateix. Si no, " -"feu clic al botó de tramesa per anar al vostre proveïdor OpenID." - -#. TRANS: OpenID plugin server error. -#: openid.php:280 -msgid "Error saving the profile." -msgstr "Error en desar el perfil." - -#. TRANS: OpenID plugin server error. -#: openid.php:292 -msgid "Error saving the user." -msgstr "Error en desar l'usuari." - -#. TRANS: OpenID plugin client exception (403). -#: openid.php:322 -msgid "Unauthorized URL used for OpenID login." -msgstr "" -"S'ha fet servir un URL no autoritzat per a l'inici de sessió de l'OpenID." - -#. TRANS: Title -#: openid.php:370 -msgid "OpenID Login Submission" -msgstr "Tramesa d'inici de sessió d'OpenID" - -#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. -#: openid.php:381 -msgid "Requesting authorization from your login provider..." -msgstr "S'està sol·licitant autorització del vostre proveïdor de sessió..." - -#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. -#: openid.php:385 -msgid "" -"If you are not redirected to your login provider in a few seconds, try " -"pushing the button below." -msgstr "" -"Si no se us redirigeix al vostre proveïdor de sessió en uns pocs segons, " -"proveu de prémer el botó de sota." +msgid "Cancel" +msgstr "Cancel·la" #. TRANS: Tooltip for main menu option "Login" -#: OpenIDPlugin.php:218 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Inicia una sessió al lloc" #. TRANS: Main menu option when not logged in to log in -#: OpenIDPlugin.php:221 msgctxt "MENU" msgid "Login" msgstr "Inicia una sessió" #. TRANS: Tooltip for main menu option "Help" -#: OpenIDPlugin.php:226 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Ajuda'm!" #. TRANS: Main menu option for help on the StatusNet site -#: OpenIDPlugin.php:229 msgctxt "MENU" msgid "Help" msgstr "Ajuda" #. TRANS: Tooltip for main menu option "Search" -#: OpenIDPlugin.php:235 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Cerca gent o un text" #. TRANS: Main menu option when logged in or when the StatusNet instance is not private -#: OpenIDPlugin.php:238 msgctxt "MENU" msgid "Search" msgstr "Cerca" @@ -303,92 +77,75 @@ msgstr "Cerca" #. TRANS: OpenID plugin menu item on site logon page. #. TRANS: OpenID plugin menu item on user settings page. #. TRANS: OpenID configuration menu item. -#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 msgctxt "MENU" msgid "OpenID" msgstr "OpenID" #. TRANS: OpenID plugin tooltip for logon menu item. -#: OpenIDPlugin.php:297 msgid "Login or register with OpenID" msgstr "Inici de sessió o registre amb OpenID" #. TRANS: OpenID plugin tooltip for user settings menu item. -#: OpenIDPlugin.php:333 msgid "Add or remove OpenIDs" msgstr "Afegeix o suprimeix connexions OpenID" #. TRANS: Tooltip for OpenID configuration menu item. -#: OpenIDPlugin.php:607 msgid "OpenID configuration" msgstr "Configuració de l'OpenID" #. TRANS: OpenID plugin description. -#: OpenIDPlugin.php:653 msgid "Use OpenID to login to the site." msgstr "" "Fa servir OpenID per connectar-se al lloc." #. TRANS: button label for OAuth authorization page when needing OpenID authentication first. -#: OpenIDPlugin.php:663 msgctxt "BUTTON" msgid "Continue" msgstr "Continua" #. TRANS: OpenID plugin logon form legend. -#: OpenIDPlugin.php:680 openidlogin.php:132 msgid "OpenID login" msgstr "Inici de sessió amb OpenID" #. TRANS: Field label. -#: OpenIDPlugin.php:688 openidlogin.php:139 msgid "OpenID provider" msgstr "Proveïdor d'OpenID" #. TRANS: Form guide. -#: OpenIDPlugin.php:697 openidlogin.php:147 msgid "Enter your username." msgstr "Introduïu el vostre nom d'usuari." #. TRANS: Form guide. -#: OpenIDPlugin.php:699 openidlogin.php:148 msgid "You will be sent to the provider's site for authentication." msgstr "Se us portarà al lloc del proveïdor perquè us hi autentiqueu." +#. TRANS: OpenID plugin logon form field label. +msgid "OpenID URL" +msgstr "URL de la connexió OpenID" + #. TRANS: OpenID plugin logon form field instructions. -#: OpenIDPlugin.php:706 openidlogin.php:155 msgid "Your OpenID URL" msgstr "L'URL del vostre OpenID" -#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). -#: openidserver.php:116 -#, php-format -msgid "You are not authorized to use the identity %s." -msgstr "No esteu autoritzar a utilitzar la identitat %s." - -#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). -#: openidserver.php:137 -msgid "Just an OpenID provider. Nothing to see here, move along..." -msgstr "Només un proveïdor OpenID. Res per veure aquí, movem-nos-en…" - #. TRANS: Client error message trying to log on with OpenID while already logged on. -#: finishopenidlogin.php:37 openidlogin.php:33 msgid "Already logged in." msgstr "Ja heu iniciat una sessió." +#. TRANS: Message given when there is a problem with the user's session token. +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"S'ha produït un problema amb el vostre testimoni de sessió. Proveu-ho de nou." + #. TRANS: Message given if user does not agree with the site's license. -#: finishopenidlogin.php:48 msgid "You can't register if you don't agree to the license." msgstr "No podeu registrar-vos-hi si no accepteu la llicència." #. TRANS: Messag given on an unknown error. -#: finishopenidlogin.php:57 msgid "An unknown error has occured." msgstr "S'ha produït un error desconegut." #. TRANS: Instructions given after a first successful logon using OpenID. #. TRANS: %s is the site name. -#: finishopenidlogin.php:73 #, php-format msgid "" "This is the first time you've logged into %s so we must connect your OpenID " @@ -400,74 +157,60 @@ msgstr "" "connectar-vos-hi amb un compte ja existent si en teniu un." #. TRANS: Title -#: finishopenidlogin.php:80 msgid "OpenID Account Setup" msgstr "Configuració del compte OpenID" -#: finishopenidlogin.php:117 msgid "Create new account" msgstr "Crea un compte nou" -#: finishopenidlogin.php:119 msgid "Create a new user with this nickname." msgstr "Crea un usuari nou amb aquest sobrenom." -#: finishopenidlogin.php:126 msgid "New nickname" msgstr "Nou sobrenom" -#: finishopenidlogin.php:128 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" #. TRANS: Button label in form in which to create a new user on the site for an OpenID. -#: finishopenidlogin.php:162 msgctxt "BUTTON" msgid "Create" msgstr "Crea" #. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:176 msgid "Connect existing account" msgstr "Connecta un compte ja existent" #. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:179 msgid "" "If you already have an account, login with your username and password to " "connect it to your OpenID." msgstr "" #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:183 msgid "Existing nickname" msgstr "Sobrenom ja existent" #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:187 msgid "Password" msgstr "Contrasenya" #. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:191 msgctxt "BUTTON" msgid "Connect" msgstr "Connecta-hi" #. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. -#: finishopenidlogin.php:237 finishaddopenid.php:90 msgid "OpenID authentication cancelled." msgstr "S'ha cancel·lat l'autenticació OpenID." #. TRANS: OpenID authentication failed; display the error message. %s is the error message. #. TRANS: OpenID authentication failed; display the error message. #. TRANS: %s is the error message. -#: finishopenidlogin.php:241 finishaddopenid.php:95 #, php-format msgid "OpenID authentication failed: %s" msgstr "Ha fallat l'autenticació OpenID: %s" -#: finishopenidlogin.php:261 finishaddopenid.php:111 msgid "" "OpenID authentication aborted: you are not allowed to login to this site." msgstr "" @@ -476,50 +219,263 @@ msgstr "" #. TRANS: OpenID plugin message. No new user registration is allowed on the site. #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. -#: finishopenidlogin.php:317 finishopenidlogin.php:327 msgid "Registration not allowed." msgstr "No es permet el registre." #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. -#: finishopenidlogin.php:335 msgid "Not a valid invitation code." msgstr "No és un codi d'invitació vàlid." #. TRANS: OpenID plugin message. The entered new user name is blacklisted. -#: finishopenidlogin.php:349 msgid "Nickname not allowed." msgstr "No es permet el sobrenom." #. TRANS: OpenID plugin message. The entered new user name is already used. -#: finishopenidlogin.php:355 msgid "Nickname already in use. Try another one." msgstr "El sobrenom ja és en ús. Proveu-ne un altre." #. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. #. TRANS: OpenID plugin server error. A stored OpenID cannot be found. -#: finishopenidlogin.php:363 finishopenidlogin.php:449 msgid "Stored OpenID not found." msgstr "No s'ha trobat la connexió OpenID emmagatzemada." #. TRANS: OpenID plugin server error. -#: finishopenidlogin.php:373 msgid "Creating new account for OpenID that already has a user." msgstr "" "S'està creant un compte nou per a una connexió OpenID que ja té un usuari." #. TRANS: OpenID plugin message. -#: finishopenidlogin.php:437 msgid "Invalid username or password." msgstr "El nom d'usuari o la contrasenya no són vàlids." #. TRANS: OpenID plugin server error. The user or user profile could not be saved. -#: finishopenidlogin.php:457 msgid "Error connecting user to OpenID." msgstr "S'ha produït un error en connectar l'usuari amb la connexió OpenID." +#. TRANS: OpenID plugin server error. +msgid "Cannot instantiate OpenID consumer object." +msgstr "" + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +msgid "Not a valid OpenID." +msgstr "No és un OpenID vàlid." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#, php-format +msgid "OpenID failure: %s" +msgstr "Fallada de l'OpenID: %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#, php-format +msgid "Could not redirect to server: %s" +msgstr "No es pot redirigir al servidor: %s" + +#. TRANS: OpenID plugin user instructions. +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Aquest formulari s'hauria de trametre automàticament per si mateix. Si no, " +"feu clic al botó de tramesa per anar al vostre proveïdor OpenID." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the profile." +msgstr "Error en desar el perfil." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the user." +msgstr "Error en desar l'usuari." + +#. TRANS: OpenID plugin client exception (403). +msgid "Unauthorized URL used for OpenID login." +msgstr "" +"S'ha fet servir un URL no autoritzat per a l'inici de sessió de l'OpenID." + +#. TRANS: Title +msgid "OpenID Login Submission" +msgstr "Tramesa d'inici de sessió d'OpenID" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +msgid "Requesting authorization from your login provider..." +msgstr "S'està sol·licitant autorització del vostre proveïdor de sessió..." + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Si no se us redirigeix al vostre proveïdor de sessió en uns pocs segons, " +"proveu de prémer el botó de sota." + +msgid "OpenID" +msgstr "OpenID" + +msgid "OpenID settings" +msgstr "Paràmetres de l'OpenID" + +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" + +msgid "Invalid team name. Max length is 255 characters." +msgstr "" + +msgid "Trusted provider" +msgstr "Proveïdor de confiança" + +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"Per defecte, els usuaris poden autenticar-se amb qualsevol proveïdor " +"d'OpenID. Si feu servir el vostre servei d'OpenID propi per a sessions " +"compartides, podeu restringir l'accés només als usuaris propis des d'aquí." + +msgid "Provider URL" +msgstr "URL del proveïdor" + +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" + +msgid "Append a username to base URL" +msgstr "" + +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" + +msgid "Required team" +msgstr "Equip necessari" + +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" + +msgid "Options" +msgstr "Opcions" + +msgid "Enable OpenID-only mode" +msgstr "" + +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" + +msgid "Save OpenID settings" +msgstr "Desa els paràmetres de l'OpenID" + +#. TRANS: Client error message +msgid "Not logged in." +msgstr "No s'ha iniciat una sessió." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +msgid "You already have this OpenID!" +msgstr "Ja teniu aquest OpenID!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +msgid "Someone else already has this OpenID." +msgstr "Algú altre ja té aquest OpenID." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +msgid "Error connecting user." +msgstr "S'ha produït un error en connectar l'usuari" + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +msgid "Error updating profile" +msgstr "S'ha produït un error en actualitzar el perfil" + +#. TRANS: Title after getting the status of the OpenID authorisation request. +#. TRANS: OpenID plugin message. Title. +msgid "OpenID Login" +msgstr "Inici de sessió amb OpenID" + +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"[OpenID](%%doc.openid%%) us permet iniciar una sessió a molts llocs amb un " +"mateix compte d'usuari. Gestioneu les vostres connexions OpenID associades " +"des d'aquí." + +msgid "Add OpenID" +msgstr "Afegeix una connexió OpenID" + +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Si voleu afegir una connexió OpenID al vostre compte, introduïu-la en la " +"caixa a continuació i feu clic a «Afegeix»." + +msgid "Add" +msgstr "Afegeix" + +msgid "Remove OpenID" +msgstr "Suprimeix la connexió OpenID" + +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Si suprimiu la vostra única connexió OpenID, serà impossible que hi inicieu " +"cap sessió. Si cal que la suprimiu, primer afegiu-ne una altra." + +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" +"Podeu suprimir una connexió OpenID del vostre compte si feu clic al botó " +"marcat amb «Suprimeix»." + +msgid "Remove" +msgstr "Suprimeix" + +msgid "OpenID Trusted Sites" +msgstr "Llocs de confiança de l'OpenID" + +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" + +msgid "Can't add new providers." +msgstr "No es poden afegir proveïdors nous." + +msgid "Something weird happened." +msgstr "Ha passat quelcom estrany." + +msgid "No such OpenID trustroot." +msgstr "" + +msgid "Trustroots removed" +msgstr "" + +msgid "No such OpenID." +msgstr "No existeix l'OpenID." + +msgid "That OpenID does not belong to you." +msgstr "Aquest OpenID no us pertany." + +msgid "OpenID removed." +msgstr "S'ha suprimit l'OpenID." + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "No esteu autoritzar a utilitzar la identitat %s." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "Només un proveïdor OpenID. Res per veure aquí, movem-nos-en…" + #. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:74 #, php-format msgid "" "For security reasons, please re-login with your [OpenID](%%doc.openid%%) " @@ -530,84 +486,21 @@ msgstr "" #. TRANS: OpenID plugin message. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:80 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "Inicia una sessió amb un compte [OpenID](%%doc.openid%%)." -#. TRANS: OpenID plugin message. Title. -#. TRANS: Title after getting the status of the OpenID authorisation request. -#: openidlogin.php:114 finishaddopenid.php:187 -msgid "OpenID Login" -msgstr "Inici de sessió amb OpenID" - #. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. -#: openidlogin.php:160 msgid "Remember me" msgstr "Recorda'm" #. TRANS: OpenID plugin logon form field instructions. -#: openidlogin.php:162 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Inicia una sessió automàticament en el futur; no recomanable en ordinadors " "compartits!" #. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. -#: openidlogin.php:167 msgctxt "BUTTON" msgid "Login" msgstr "Inicia una sessió" - -#: openidtrust.php:52 -msgid "OpenID Identity Verification" -msgstr "Verificació de la identitat d'OpenID" - -#: openidtrust.php:70 -msgid "" -"This page should only be reached during OpenID processing, not directly." -msgstr "" -"Hauria d'arribar-se a aquesta pàgina només durant el processament de " -"l'OpenID, no directament." - -#: openidtrust.php:118 -#, php-format -msgid "" -"%s has asked to verify your identity. Click Continue to verify your " -"identity and login without creating a new password." -msgstr "" -"%s us ha demanat verificar la identitat. Feu clic a Continuar per verificar " -"la vostra identitat i iniciar una sessió sense crear cap contrasenya nova." - -#: openidtrust.php:136 -msgid "Continue" -msgstr "Continua" - -#: openidtrust.php:137 -msgid "Cancel" -msgstr "Cancel·la" - -#. TRANS: Client error message -#: finishaddopenid.php:68 -msgid "Not logged in." -msgstr "No s'ha iniciat una sessió." - -#. TRANS: message in case a user tries to add an OpenID that is already connected to them. -#: finishaddopenid.php:122 -msgid "You already have this OpenID!" -msgstr "Ja teniu aquest OpenID!" - -#. TRANS: message in case a user tries to add an OpenID that is already used by another user. -#: finishaddopenid.php:125 -msgid "Someone else already has this OpenID." -msgstr "Algú altre ja té aquest OpenID." - -#. TRANS: message in case the OpenID object cannot be connected to the user. -#: finishaddopenid.php:138 -msgid "Error connecting user." -msgstr "S'ha produït un error en connectar l'usuari" - -#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. -#: finishaddopenid.php:145 -msgid "Error updating profile" -msgstr "S'ha produït un error en actualitzar el perfil" diff --git a/plugins/OpenID/locale/de/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/de/LC_MESSAGES/OpenID.po index ef8fec98b1..1e89e112e6 100644 --- a/plugins/OpenID/locale/de/LC_MESSAGES/OpenID.po +++ b/plugins/OpenID/locale/de/LC_MESSAGES/OpenID.po @@ -11,303 +11,68 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenID\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:34+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:18+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:00+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-openid\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: openidsettings.php:58 openidadminpanel.php:65 -msgid "OpenID settings" -msgstr "OpenID-Einstellungen" +msgid "OpenID Identity Verification" +msgstr "OpenID-Identitätsverifikation" + +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"Diese Seite sollte nur während der Abwicklung von OpenID erreicht werden, " +"nicht direkt." -#: openidsettings.php:69 #, php-format msgid "" -"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " -"account. Manage your associated OpenIDs from here." +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." msgstr "" -"[OpenID](%%doc.openid%%) erlaubt die, dich auf vielen Seiten mit dem selben " -"Benutzerkonto anzumelden. Verwalte deine verknüpften OpenIDs von hier aus." +"%s hat dich gebeten, deine Identität zu bestätigen. Klicke auf „Weiter“, um " +"deine Identität zu bestätigen und dich anzumelden ohne ein neues Passwort zu " +"erstellen." -#: openidsettings.php:100 -msgid "Add OpenID" -msgstr "OpenID hinzufügen" +msgid "Continue" +msgstr "Weiter" -#: openidsettings.php:103 -msgid "" -"If you want to add an OpenID to your account, enter it in the box below and " -"click \"Add\"." -msgstr "" -"Falls du eine OpenID zu deinem Konto hinzufügen willst, trage sie in dem " -"nachfolgenden Feld ein und klicke auf „Hinzufügen“." - -#. TRANS: OpenID plugin logon form field label. -#: openidsettings.php:108 OpenIDPlugin.php:703 openidlogin.php:152 -msgid "OpenID URL" -msgstr "OpenID-URL" - -#: openidsettings.php:118 -msgid "Add" -msgstr "Hinzufügen" - -#: openidsettings.php:130 -msgid "Remove OpenID" -msgstr "Entfernen der OpenID" - -#: openidsettings.php:135 -msgid "" -"Removing your only OpenID would make it impossible to log in! If you need to " -"remove it, add another OpenID first." -msgstr "" -"Das Entfernen der einzigen OpenID würde das Einloggen unmöglich machen! " -"Falls du sie entfernen musst, füge zuerst eine andere hinzu." - -#: openidsettings.php:150 -msgid "" -"You can remove an OpenID from your account by clicking the button marked " -"\"Remove\"." -msgstr "" -"Du kannst eine OpenID von deinem Konto entfernen, indem du auf den Button " -"„Entfernen“ klickst." - -#: openidsettings.php:173 openidsettings.php:214 -msgid "Remove" -msgstr "Entfernen" - -#: openidsettings.php:187 -msgid "OpenID Trusted Sites" -msgstr "Vertrauenswürdige OpenID-Seiten" - -#: openidsettings.php:190 -msgid "" -"The following sites are allowed to access your identity and log you in. You " -"can remove a site from this list to deny it access to your OpenID." -msgstr "" -"Den folgenden Seiten ist es erlaubt, deine Identität abzufragen und dich " -"damit anzumelden. Du kannst eine Website aus dieser Liste entfernen, um ihr " -"den Zugriff auf deine OpenID zu verweigern." - -#. TRANS: Message given when there is a problem with the user's session token. -#: openidsettings.php:232 finishopenidlogin.php:42 -msgid "There was a problem with your session token. Try again, please." -msgstr "Es gab ein Problem mit deinem Sitzungstoken. Bitte versuche es erneut." - -#: openidsettings.php:239 -msgid "Can't add new providers." -msgstr "Kann keine neuen Provider hinzufügen" - -#: openidsettings.php:252 -msgid "Something weird happened." -msgstr "Etwas Seltsames ist passiert." - -#: openidsettings.php:276 -msgid "No such OpenID trustroot." -msgstr "Keine solche OpenID trustroot." - -#: openidsettings.php:280 -msgid "Trustroots removed" -msgstr "Trustroots entfernt" - -#: openidsettings.php:303 -msgid "No such OpenID." -msgstr "Keine solche OpenID." - -#: openidsettings.php:308 -msgid "That OpenID does not belong to you." -msgstr "Diese OpenID gehört dir nicht." - -#: openidsettings.php:312 -msgid "OpenID removed." -msgstr "OpenID entfernt." - -#: openidadminpanel.php:54 -msgid "OpenID" -msgstr "OpenID" - -#: openidadminpanel.php:147 -msgid "Invalid provider URL. Max length is 255 characters." -msgstr "Ungültige Provider-URL. Maximale Länge beträgt 255 Zeichen." - -#: openidadminpanel.php:153 -msgid "Invalid team name. Max length is 255 characters." -msgstr "Ungültiger Teamnamen. Maximale Länge beträgt 255 Zeichen." - -#: openidadminpanel.php:210 -msgid "Trusted provider" -msgstr "Vertrauenswürdiger Provider" - -#: openidadminpanel.php:212 -msgid "" -"By default, users are allowed to authenticate with any OpenID provider. If " -"you are using your own OpenID service for shared sign-in, you can restrict " -"access to only your own users here." -msgstr "" -"Standardmäßig dürfen sich Benutzer mit jedem OpenID-Provider " -"authentifizieren. Wenn du deinen eigenen OpenID-Servide benutzt, kannst du " -"hier den Zugang auf deine eigenen Benutzer beschränken." - -#: openidadminpanel.php:220 -msgid "Provider URL" -msgstr "Provider-URL" - -#: openidadminpanel.php:221 -msgid "" -"All OpenID logins will be sent to this URL; other providers may not be used." -msgstr "" -"Alle OpenID-Anmeldungen werden an diese URL gesendet; andere Provider können " -"nicht verwendet werden." - -#: openidadminpanel.php:228 -msgid "Append a username to base URL" -msgstr "Einen Benutzernamen an die Basis-URL anfügen" - -#: openidadminpanel.php:230 -msgid "" -"Login form will show the base URL and prompt for a username to add at the " -"end. Use when OpenID provider URL should be the profile page for individual " -"users." -msgstr "" -"Die Anmelde-Form wird eine Basis-URL anzeigen und um einen Benutzernamen am " -"Ende bitten. Benutzer dass, wenn die OpenID-Provider-URL die Profilseite " -"individueller Benutzer sein sollte." - -#: openidadminpanel.php:238 -msgid "Required team" -msgstr "Erforderliche Mannschaft" - -#: openidadminpanel.php:239 -msgid "Only allow logins from users in the given team (Launchpad extension)." -msgstr "" -"Nur Anmeldungen von Benutzern aus der gegebenen Mannschaft erlauben " -"(Launchpad-Erweiterung)." - -#: openidadminpanel.php:251 -msgid "Options" -msgstr "Optionen" - -#: openidadminpanel.php:258 -msgid "Enable OpenID-only mode" -msgstr "Nur-OpenID-Modus aktivieren" - -#: openidadminpanel.php:260 -msgid "" -"Require all users to login via OpenID. Warning: disables password " -"authentication for all users!" -msgstr "" -"Von allen Benutzern OpenID-Anmeldung verlangen. Warnung: deaktiviert " -"Passwort-Authentifizierung aller Benutzer!" - -#: openidadminpanel.php:278 -msgid "Save OpenID settings" -msgstr "OpenId-Einstellungen speichern" - -#. TRANS: OpenID plugin server error. -#: openid.php:138 -msgid "Cannot instantiate OpenID consumer object." -msgstr "OpenID-Consumer-Objekt kann nicht instanziiert werden." - -#. TRANS: OpenID plugin message. Given when an OpenID is not valid. -#: openid.php:150 -msgid "Not a valid OpenID." -msgstr "Keine gültige OpenID." - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. -#. TRANS: %s is the failure message. -#: openid.php:155 -#, php-format -msgid "OpenID failure: %s" -msgstr "OpenId-Fehler: %s" - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. -#. TRANS: %s is the failure message. -#: openid.php:205 -#, php-format -msgid "Could not redirect to server: %s" -msgstr "Konnte keine Verbindung zum Server erstellen: %s" - -#. TRANS: OpenID plugin user instructions. -#: openid.php:244 -msgid "" -"This form should automatically submit itself. If not, click the submit " -"button to go to your OpenID provider." -msgstr "" -"Dieses Formular sollte automatisch selbst abschicken. Wenn dies nicht der " -"Fall ist, klicke auf die Schaltfläche Senden, um zu deinem OpenID Provider " -"zu wechseln." - -#. TRANS: OpenID plugin server error. -#: openid.php:280 -msgid "Error saving the profile." -msgstr "Fehler beim Speichern des Profils." - -#. TRANS: OpenID plugin server error. -#: openid.php:292 -msgid "Error saving the user." -msgstr "Fehler beim Speichern des Benutzers." - -#. TRANS: OpenID plugin client exception (403). -#: openid.php:322 -msgid "Unauthorized URL used for OpenID login." -msgstr "Unauthorisierte URL für OpenID-Anmeldung benutzt." - -#. TRANS: Title -#: openid.php:370 -msgid "OpenID Login Submission" -msgstr "" - -#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. -#: openid.php:381 -msgid "Requesting authorization from your login provider..." -msgstr "Authorisierung von deinem Login-Provider wird angefragt …" - -#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. -#: openid.php:385 -msgid "" -"If you are not redirected to your login provider in a few seconds, try " -"pushing the button below." -msgstr "" -"Wenn du nicht in wenigen Sekunden zu deinem Login-Provider weitergeleitet " -"wirst, versuche den Button unten zu klicken." +msgid "Cancel" +msgstr "Abbrechen" #. TRANS: Tooltip for main menu option "Login" -#: OpenIDPlugin.php:218 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Auf der Seite anmelden" #. TRANS: Main menu option when not logged in to log in -#: OpenIDPlugin.php:221 msgctxt "MENU" msgid "Login" msgstr "Anmelden" #. TRANS: Tooltip for main menu option "Help" -#: OpenIDPlugin.php:226 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Hilf mir!" #. TRANS: Main menu option for help on the StatusNet site -#: OpenIDPlugin.php:229 msgctxt "MENU" msgid "Help" msgstr "Hilfe" #. TRANS: Tooltip for main menu option "Search" -#: OpenIDPlugin.php:235 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Suche nach Leuten oder Text" #. TRANS: Main menu option when logged in or when the StatusNet instance is not private -#: OpenIDPlugin.php:238 msgctxt "MENU" msgid "Search" msgstr "Suche" @@ -315,96 +80,78 @@ msgstr "Suche" #. TRANS: OpenID plugin menu item on site logon page. #. TRANS: OpenID plugin menu item on user settings page. #. TRANS: OpenID configuration menu item. -#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 msgctxt "MENU" msgid "OpenID" msgstr "OpenID" #. TRANS: OpenID plugin tooltip for logon menu item. -#: OpenIDPlugin.php:297 msgid "Login or register with OpenID" msgstr "Anmelden oder Registrieren per OpenID" #. TRANS: OpenID plugin tooltip for user settings menu item. -#: OpenIDPlugin.php:333 msgid "Add or remove OpenIDs" msgstr "Hinzufügen oder Entfernen von OpenIDs" #. TRANS: Tooltip for OpenID configuration menu item. -#: OpenIDPlugin.php:607 msgid "OpenID configuration" msgstr "OpenId-Konfiguration" #. TRANS: OpenID plugin description. -#: OpenIDPlugin.php:653 msgid "Use OpenID to login to the site." msgstr "" "Benutzung der OpenID zur Anmeldung auf " "der Seite" #. TRANS: button label for OAuth authorization page when needing OpenID authentication first. -#: OpenIDPlugin.php:663 msgctxt "BUTTON" msgid "Continue" msgstr "Weiter" #. TRANS: OpenID plugin logon form legend. -#: OpenIDPlugin.php:680 openidlogin.php:132 msgid "OpenID login" msgstr "OpenID-Benutzername" #. TRANS: Field label. -#: OpenIDPlugin.php:688 openidlogin.php:139 msgid "OpenID provider" msgstr "OpenID-Provider" #. TRANS: Form guide. -#: OpenIDPlugin.php:697 openidlogin.php:147 msgid "Enter your username." msgstr "Gib deinen Benutzernamen ein." #. TRANS: Form guide. -#: OpenIDPlugin.php:699 openidlogin.php:148 msgid "You will be sent to the provider's site for authentication." msgstr "" "Du wirst zur Authentifizierung auf die Seite ihres OpenID-Providers " "weitergeleitet werden." +#. TRANS: OpenID plugin logon form field label. +msgid "OpenID URL" +msgstr "OpenID-URL" + #. TRANS: OpenID plugin logon form field instructions. -#: OpenIDPlugin.php:706 openidlogin.php:155 msgid "Your OpenID URL" msgstr "Ihre OpenID URL" -#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). -#: openidserver.php:116 -#, php-format -msgid "You are not authorized to use the identity %s." -msgstr "Du bist nicht berechtigt, die Identität %s zu benutzen." - -#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). -#: openidserver.php:137 -msgid "Just an OpenID provider. Nothing to see here, move along..." -msgstr "Nur ein OpenID-Provider. Hier gibt es nichts zu sehen …" - #. TRANS: Client error message trying to log on with OpenID while already logged on. -#: finishopenidlogin.php:37 openidlogin.php:33 msgid "Already logged in." msgstr "Bereits angemeldet." +#. TRANS: Message given when there is a problem with the user's session token. +msgid "There was a problem with your session token. Try again, please." +msgstr "Es gab ein Problem mit deinem Sitzungstoken. Bitte versuche es erneut." + #. TRANS: Message given if user does not agree with the site's license. -#: finishopenidlogin.php:48 msgid "You can't register if you don't agree to the license." msgstr "" "Du kannst dich nicht registrieren, wenn du die Lizenz nicht akzeptierst." #. TRANS: Messag given on an unknown error. -#: finishopenidlogin.php:57 msgid "An unknown error has occured." msgstr "Ein unbekannter Fehler ist aufgetreten." #. TRANS: Instructions given after a first successful logon using OpenID. #. TRANS: %s is the site name. -#: finishopenidlogin.php:73 #, php-format msgid "" "This is the first time you've logged into %s so we must connect your OpenID " @@ -417,39 +164,31 @@ msgstr "" "Benutzerkonto verbinden." #. TRANS: Title -#: finishopenidlogin.php:80 msgid "OpenID Account Setup" msgstr "OpenID Konto-Setup" -#: finishopenidlogin.php:117 msgid "Create new account" msgstr "Neues Benutzerkonto erstellen" -#: finishopenidlogin.php:119 msgid "Create a new user with this nickname." msgstr "Neues Benutzerkonto mit diesem Benutzernamen erstellen." -#: finishopenidlogin.php:126 msgid "New nickname" msgstr "Neuer Benutzername" -#: finishopenidlogin.php:128 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 Kleinbuchstaben oder Zahlen, keine Satz- oder Leerzeichen" #. TRANS: Button label in form in which to create a new user on the site for an OpenID. -#: finishopenidlogin.php:162 msgctxt "BUTTON" msgid "Create" msgstr "Erstellen" #. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:176 msgid "Connect existing account" msgstr "Bestehendes Benutzerkonto verbinden" #. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:179 msgid "" "If you already have an account, login with your username and password to " "connect it to your OpenID." @@ -458,35 +197,29 @@ msgstr "" "und Passwort an, um ihn mit deiner OpenID zu verbinden." #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:183 msgid "Existing nickname" msgstr "Bestehender Benutzername" #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:187 msgid "Password" msgstr "Passwort" #. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:191 msgctxt "BUTTON" msgid "Connect" msgstr "Verbinden" #. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. -#: finishopenidlogin.php:237 finishaddopenid.php:90 msgid "OpenID authentication cancelled." msgstr "OpenID-Authentifizierung abgebrochen." #. TRANS: OpenID authentication failed; display the error message. %s is the error message. #. TRANS: OpenID authentication failed; display the error message. #. TRANS: %s is the error message. -#: finishopenidlogin.php:241 finishaddopenid.php:95 #, php-format msgid "OpenID authentication failed: %s" msgstr "OpenID-Authentifizierung gescheitert: %s" -#: finishopenidlogin.php:261 finishaddopenid.php:111 msgid "" "OpenID authentication aborted: you are not allowed to login to this site." msgstr "" @@ -495,49 +228,273 @@ msgstr "" #. TRANS: OpenID plugin message. No new user registration is allowed on the site. #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. -#: finishopenidlogin.php:317 finishopenidlogin.php:327 msgid "Registration not allowed." msgstr "Registrierung nicht erlaubt." #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. -#: finishopenidlogin.php:335 msgid "Not a valid invitation code." msgstr "Kein gültiger Einladungscode." #. TRANS: OpenID plugin message. The entered new user name is blacklisted. -#: finishopenidlogin.php:349 msgid "Nickname not allowed." msgstr "Benutzername nicht erlaubt." #. TRANS: OpenID plugin message. The entered new user name is already used. -#: finishopenidlogin.php:355 msgid "Nickname already in use. Try another one." msgstr "Benutzername wird bereits verwendet. Suche dir einen anderen aus." #. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. #. TRANS: OpenID plugin server error. A stored OpenID cannot be found. -#: finishopenidlogin.php:363 finishopenidlogin.php:449 msgid "Stored OpenID not found." msgstr "Gespeicherte OpenID nicht gefunden." #. TRANS: OpenID plugin server error. -#: finishopenidlogin.php:373 msgid "Creating new account for OpenID that already has a user." msgstr "" #. TRANS: OpenID plugin message. -#: finishopenidlogin.php:437 msgid "Invalid username or password." msgstr "Benutzername oder Passwort falsch." #. TRANS: OpenID plugin server error. The user or user profile could not be saved. -#: finishopenidlogin.php:457 msgid "Error connecting user to OpenID." msgstr "Fehler bei der Verbindung des Benutzers mit OpenID." +#. TRANS: OpenID plugin server error. +msgid "Cannot instantiate OpenID consumer object." +msgstr "OpenID-Consumer-Objekt kann nicht instanziiert werden." + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +msgid "Not a valid OpenID." +msgstr "Keine gültige OpenID." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#, php-format +msgid "OpenID failure: %s" +msgstr "OpenId-Fehler: %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Konnte keine Verbindung zum Server erstellen: %s" + +#. TRANS: OpenID plugin user instructions. +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Dieses Formular sollte automatisch selbst abschicken. Wenn dies nicht der " +"Fall ist, klicke auf die Schaltfläche Senden, um zu deinem OpenID Provider " +"zu wechseln." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the profile." +msgstr "Fehler beim Speichern des Profils." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the user." +msgstr "Fehler beim Speichern des Benutzers." + +#. TRANS: OpenID plugin client exception (403). +msgid "Unauthorized URL used for OpenID login." +msgstr "Unauthorisierte URL für OpenID-Anmeldung benutzt." + +#. TRANS: Title +msgid "OpenID Login Submission" +msgstr "" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +msgid "Requesting authorization from your login provider..." +msgstr "Authorisierung von deinem Login-Provider wird angefragt …" + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Wenn du nicht in wenigen Sekunden zu deinem Login-Provider weitergeleitet " +"wirst, versuche den Button unten zu klicken." + +msgid "OpenID" +msgstr "OpenID" + +msgid "OpenID settings" +msgstr "OpenID-Einstellungen" + +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "Ungültige Provider-URL. Maximale Länge beträgt 255 Zeichen." + +msgid "Invalid team name. Max length is 255 characters." +msgstr "Ungültiger Teamnamen. Maximale Länge beträgt 255 Zeichen." + +msgid "Trusted provider" +msgstr "Vertrauenswürdiger Provider" + +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"Standardmäßig dürfen sich Benutzer mit jedem OpenID-Provider " +"authentifizieren. Wenn du deinen eigenen OpenID-Servide benutzt, kannst du " +"hier den Zugang auf deine eigenen Benutzer beschränken." + +msgid "Provider URL" +msgstr "Provider-URL" + +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Alle OpenID-Anmeldungen werden an diese URL gesendet; andere Provider können " +"nicht verwendet werden." + +msgid "Append a username to base URL" +msgstr "Einen Benutzernamen an die Basis-URL anfügen" + +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"Die Anmelde-Form wird eine Basis-URL anzeigen und um einen Benutzernamen am " +"Ende bitten. Benutzer dass, wenn die OpenID-Provider-URL die Profilseite " +"individueller Benutzer sein sollte." + +msgid "Required team" +msgstr "Erforderliche Mannschaft" + +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Nur Anmeldungen von Benutzern aus der gegebenen Mannschaft erlauben " +"(Launchpad-Erweiterung)." + +msgid "Options" +msgstr "Optionen" + +msgid "Enable OpenID-only mode" +msgstr "Nur-OpenID-Modus aktivieren" + +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Von allen Benutzern OpenID-Anmeldung verlangen. Warnung: deaktiviert " +"Passwort-Authentifizierung aller Benutzer!" + +msgid "Save OpenID settings" +msgstr "OpenId-Einstellungen speichern" + +#. TRANS: Client error message +msgid "Not logged in." +msgstr "Nicht angemeldet." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +msgid "You already have this OpenID!" +msgstr "Du hast bereits diese OpenID!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +msgid "Someone else already has this OpenID." +msgstr "Jemand anders hat bereits diese Open-ID." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +msgid "Error connecting user." +msgstr "Fehler beim Verbinden des Benutzers." + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +msgid "Error updating profile" +msgstr "Fehler beim Aktualisieren des Profils" + +#. TRANS: Title after getting the status of the OpenID authorisation request. +#. TRANS: OpenID plugin message. Title. +msgid "OpenID Login" +msgstr "OpenID-Anmeldung" + +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"[OpenID](%%doc.openid%%) erlaubt die, dich auf vielen Seiten mit dem selben " +"Benutzerkonto anzumelden. Verwalte deine verknüpften OpenIDs von hier aus." + +msgid "Add OpenID" +msgstr "OpenID hinzufügen" + +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Falls du eine OpenID zu deinem Konto hinzufügen willst, trage sie in dem " +"nachfolgenden Feld ein und klicke auf „Hinzufügen“." + +msgid "Add" +msgstr "Hinzufügen" + +msgid "Remove OpenID" +msgstr "Entfernen der OpenID" + +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Das Entfernen der einzigen OpenID würde das Einloggen unmöglich machen! " +"Falls du sie entfernen musst, füge zuerst eine andere hinzu." + +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" +"Du kannst eine OpenID von deinem Konto entfernen, indem du auf den Button " +"„Entfernen“ klickst." + +msgid "Remove" +msgstr "Entfernen" + +msgid "OpenID Trusted Sites" +msgstr "Vertrauenswürdige OpenID-Seiten" + +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"Den folgenden Seiten ist es erlaubt, deine Identität abzufragen und dich " +"damit anzumelden. Du kannst eine Website aus dieser Liste entfernen, um ihr " +"den Zugriff auf deine OpenID zu verweigern." + +msgid "Can't add new providers." +msgstr "Kann keine neuen Provider hinzufügen" + +msgid "Something weird happened." +msgstr "Etwas Seltsames ist passiert." + +msgid "No such OpenID trustroot." +msgstr "Keine solche OpenID trustroot." + +msgid "Trustroots removed" +msgstr "Trustroots entfernt" + +msgid "No such OpenID." +msgstr "Keine solche OpenID." + +msgid "That OpenID does not belong to you." +msgstr "Diese OpenID gehört dir nicht." + +msgid "OpenID removed." +msgstr "OpenID entfernt." + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "Du bist nicht berechtigt, die Identität %s zu benutzen." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "Nur ein OpenID-Provider. Hier gibt es nichts zu sehen …" + #. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:74 #, php-format msgid "" "For security reasons, please re-login with your [OpenID](%%doc.openid%%) " @@ -548,83 +505,19 @@ msgstr "" #. TRANS: OpenID plugin message. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:80 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "Mit einem [OpenID](%%doc.openid%%)-Benutzerkonto anmelden." -#. TRANS: OpenID plugin message. Title. -#. TRANS: Title after getting the status of the OpenID authorisation request. -#: openidlogin.php:114 finishaddopenid.php:187 -msgid "OpenID Login" -msgstr "OpenID-Anmeldung" - #. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. -#: openidlogin.php:160 msgid "Remember me" msgstr "Anmeldedaten merken" #. TRANS: OpenID plugin logon form field instructions. -#: openidlogin.php:162 msgid "Automatically login in the future; not for shared computers!" msgstr "Automatisch anmelden; nicht bei gemeinsam genutzten PCs einsetzen!" #. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. -#: openidlogin.php:167 msgctxt "BUTTON" msgid "Login" msgstr "Anmelden" - -#: openidtrust.php:52 -msgid "OpenID Identity Verification" -msgstr "OpenID-Identitätsverifikation" - -#: openidtrust.php:70 -msgid "" -"This page should only be reached during OpenID processing, not directly." -msgstr "" -"Diese Seite sollte nur während der Abwicklung von OpenID erreicht werden, " -"nicht direkt." - -#: openidtrust.php:118 -#, php-format -msgid "" -"%s has asked to verify your identity. Click Continue to verify your " -"identity and login without creating a new password." -msgstr "" -"%s hat dich gebeten, deine Identität zu bestätigen. Klicke auf „Weiter“, um " -"deine Identität zu bestätigen und dich anzumelden ohne ein neues Passwort zu " -"erstellen." - -#: openidtrust.php:136 -msgid "Continue" -msgstr "Weiter" - -#: openidtrust.php:137 -msgid "Cancel" -msgstr "Abbrechen" - -#. TRANS: Client error message -#: finishaddopenid.php:68 -msgid "Not logged in." -msgstr "Nicht angemeldet." - -#. TRANS: message in case a user tries to add an OpenID that is already connected to them. -#: finishaddopenid.php:122 -msgid "You already have this OpenID!" -msgstr "Du hast bereits diese OpenID!" - -#. TRANS: message in case a user tries to add an OpenID that is already used by another user. -#: finishaddopenid.php:125 -msgid "Someone else already has this OpenID." -msgstr "Jemand anders hat bereits diese Open-ID." - -#. TRANS: message in case the OpenID object cannot be connected to the user. -#: finishaddopenid.php:138 -msgid "Error connecting user." -msgstr "Fehler beim Verbinden des Benutzers." - -#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. -#: finishaddopenid.php:145 -msgid "Error updating profile" -msgstr "Fehler beim Aktualisieren des Profils" diff --git a/plugins/OpenID/locale/fr/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/fr/LC_MESSAGES/OpenID.po index 2027710c29..41d2567076 100644 --- a/plugins/OpenID/locale/fr/LC_MESSAGES/OpenID.po +++ b/plugins/OpenID/locale/fr/LC_MESSAGES/OpenID.po @@ -10,312 +10,68 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenID\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:34+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:18+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:00+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-openid\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: openidsettings.php:58 openidadminpanel.php:65 -msgid "OpenID settings" -msgstr "Paramètres OpenID" +msgid "OpenID Identity Verification" +msgstr "Vérification d’identité OpenID" + +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"Cette page ne devrait être atteinte que durant un traitement OpenID, pas " +"directement." -#: openidsettings.php:69 #, php-format msgid "" -"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " -"account. Manage your associated OpenIDs from here." +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." msgstr "" -"[OpenID](%%doc.openid%%) vous permet de vous connecter à de nombreux sites " -"avec le même compte utilisateur. Gérez à partir d’ici les identifiants " -"OpenID associés à votre compte ici." +"%s a demandé la vérification de votre identité. Veuillez cliquer sur « " +"Continuer » pour vérifier votre identité et connectez-vous sans créer un " +"nouveau mot de passe." -#: openidsettings.php:100 -msgid "Add OpenID" -msgstr "Ajouter OpenID" +msgid "Continue" +msgstr "Continuer" -#: openidsettings.php:103 -msgid "" -"If you want to add an OpenID to your account, enter it in the box below and " -"click \"Add\"." -msgstr "" -"Si vous souhaitez ajouter un compte OpenID à votre compte, entrez-le dans la " -"case ci-dessous et cliquez sur « Ajouter »." - -#. TRANS: OpenID plugin logon form field label. -#: openidsettings.php:108 OpenIDPlugin.php:703 openidlogin.php:152 -msgid "OpenID URL" -msgstr "Adresse URL OpenID" - -#: openidsettings.php:118 -msgid "Add" -msgstr "Ajouter" - -#: openidsettings.php:130 -msgid "Remove OpenID" -msgstr "Retirer OpenID" - -#: openidsettings.php:135 -msgid "" -"Removing your only OpenID would make it impossible to log in! If you need to " -"remove it, add another OpenID first." -msgstr "" -"Le retrait de votre unique compte OpenID ne vous permettrait plus de vous " -"connecter ! Si vous avez besoin de l’enlever, ajouter d’abord un autre " -"compte OpenID." - -#: openidsettings.php:150 -msgid "" -"You can remove an OpenID from your account by clicking the button marked " -"\"Remove\"." -msgstr "" -"Vous pouvez retirer un compte OpenID de votre compte en cliquant le bouton « " -"Retirer »" - -#: openidsettings.php:173 openidsettings.php:214 -msgid "Remove" -msgstr "Enlever" - -#: openidsettings.php:187 -msgid "OpenID Trusted Sites" -msgstr "Sites de confiance OpenID" - -#: openidsettings.php:190 -msgid "" -"The following sites are allowed to access your identity and log you in. You " -"can remove a site from this list to deny it access to your OpenID." -msgstr "" -"Les sites suivants sont autorisés à accéder à votre identité et à vous " -"connecter. Vous pouvez retirer un site de cette liste pour l’empêcher " -"d’accéder à votre compte OpenID." - -#. TRANS: Message given when there is a problem with the user's session token. -#: openidsettings.php:232 finishopenidlogin.php:42 -msgid "There was a problem with your session token. Try again, please." -msgstr "" -"Un problème est survenu avec votre jeton de session. Veuillez essayer à " -"nouveau." - -#: openidsettings.php:239 -msgid "Can't add new providers." -msgstr "Impossible d’ajouter de nouveaux fournisseurs." - -#: openidsettings.php:252 -msgid "Something weird happened." -msgstr "Quelque chose de bizarre s’est passé." - -#: openidsettings.php:276 -msgid "No such OpenID trustroot." -msgstr "Racine de confiance OpenID inexistante." - -#: openidsettings.php:280 -msgid "Trustroots removed" -msgstr "Racines de confiance retirées" - -#: openidsettings.php:303 -msgid "No such OpenID." -msgstr "Compte OpenID inexistant." - -#: openidsettings.php:308 -msgid "That OpenID does not belong to you." -msgstr "Ce compte OpenID ne vous appartient pas." - -#: openidsettings.php:312 -msgid "OpenID removed." -msgstr "Compte OpenID retiré." - -#: openidadminpanel.php:54 -msgid "OpenID" -msgstr "OpenID" - -#: openidadminpanel.php:147 -msgid "Invalid provider URL. Max length is 255 characters." -msgstr "" -"Adresse URL du fournisseur invalide. La taille maximale est de 255 " -"caractères." - -#: openidadminpanel.php:153 -msgid "Invalid team name. Max length is 255 characters." -msgstr "Nom d’équipe invalide. La taille maximale est de 255 caractères." - -#: openidadminpanel.php:210 -msgid "Trusted provider" -msgstr "Fournisseur de confiance" - -#: openidadminpanel.php:212 -msgid "" -"By default, users are allowed to authenticate with any OpenID provider. If " -"you are using your own OpenID service for shared sign-in, you can restrict " -"access to only your own users here." -msgstr "" -"Par défaut, les utilisateurs sont autorisés à s’authentifier auprès de " -"n’importe quel fournisseur OpenID. Si vous utilisez votre propre service " -"OpenID pour l’inscription partagée, vous pouvez restreindre l’accès à vos " -"seuls propres utilisateurs ici." - -#: openidadminpanel.php:220 -msgid "Provider URL" -msgstr "Adresse URL du fournisseur" - -#: openidadminpanel.php:221 -msgid "" -"All OpenID logins will be sent to this URL; other providers may not be used." -msgstr "" -"Toutes les connexions OpenID seront envoyées à cette adresse ; les autres " -"fournisseurs ne peuvent être utilisés." - -#: openidadminpanel.php:228 -msgid "Append a username to base URL" -msgstr "Ajouter un nom d’utilisateur à l’adresse URL de base" - -#: openidadminpanel.php:230 -msgid "" -"Login form will show the base URL and prompt for a username to add at the " -"end. Use when OpenID provider URL should be the profile page for individual " -"users." -msgstr "" -"Le formulaire de connexion affichera l’adresse URL de base et demandera un " -"nom d’utilisateur à ajouter à la fin. Utilisez cette option quand l’adresse " -"URL du fournisseur OpenID devrait être la page de profil des utilisateurs " -"individuels." - -#: openidadminpanel.php:238 -msgid "Required team" -msgstr "Équipe exigée" - -#: openidadminpanel.php:239 -msgid "Only allow logins from users in the given team (Launchpad extension)." -msgstr "" -"Autoriser uniquement les connexions des utilisateurs membres de l’équipe " -"donnée (extension Launchpad)." - -#: openidadminpanel.php:251 -msgid "Options" -msgstr "Options" - -#: openidadminpanel.php:258 -msgid "Enable OpenID-only mode" -msgstr "Activer le mode OpenID seul" - -#: openidadminpanel.php:260 -msgid "" -"Require all users to login via OpenID. Warning: disables password " -"authentication for all users!" -msgstr "" -"Exiger que tous les utilisateurs se connectent via OpenID. Avertissement : " -"cela désactive l’authentification par mot de passe pour tous les " -"utilisateurs !" - -#: openidadminpanel.php:278 -msgid "Save OpenID settings" -msgstr "Sauvegarder les paramètres OpenID" - -#. TRANS: OpenID plugin server error. -#: openid.php:138 -msgid "Cannot instantiate OpenID consumer object." -msgstr "Impossible d’instancier l’objet client OpenID." - -#. TRANS: OpenID plugin message. Given when an OpenID is not valid. -#: openid.php:150 -msgid "Not a valid OpenID." -msgstr "Ce n’est pas un identifiant OpenID valide." - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. -#. TRANS: %s is the failure message. -#: openid.php:155 -#, php-format -msgid "OpenID failure: %s" -msgstr "Échec d’OpenID : %s" - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. -#. TRANS: %s is the failure message. -#: openid.php:205 -#, php-format -msgid "Could not redirect to server: %s" -msgstr "Impossible de rediriger vers le serveur : %s" - -#. TRANS: OpenID plugin user instructions. -#: openid.php:244 -msgid "" -"This form should automatically submit itself. If not, click the submit " -"button to go to your OpenID provider." -msgstr "" -"Ce formulaire devrait se soumettre automatiquement lui-même. Si ce n’est pas " -"le cas, cliquez le bouton « Soumettre » en bas pour aller vers la page de " -"votre fournisseur OpenID." - -#. TRANS: OpenID plugin server error. -#: openid.php:280 -msgid "Error saving the profile." -msgstr "Erreur lors de la sauvegarde du profil." - -#. TRANS: OpenID plugin server error. -#: openid.php:292 -msgid "Error saving the user." -msgstr "Erreur lors de la sauvegarde de l’utilisateur." - -#. TRANS: OpenID plugin client exception (403). -#: openid.php:322 -msgid "Unauthorized URL used for OpenID login." -msgstr "Adresse URL non autorisée utilisée pour la connexion OpenID." - -#. TRANS: Title -#: openid.php:370 -msgid "OpenID Login Submission" -msgstr "Soumission de la connexion OpenID" - -#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. -#: openid.php:381 -msgid "Requesting authorization from your login provider..." -msgstr "Demande d’autorisation auprès de votre fournisseur de connexion..." - -#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. -#: openid.php:385 -msgid "" -"If you are not redirected to your login provider in a few seconds, try " -"pushing the button below." -msgstr "" -"Si vous n’êtes pas redirigé vers votre fournisseur de connexion dans " -"quelques secondes, essayez en cliquant le bouton ci-dessous." +msgid "Cancel" +msgstr "Annuler" #. TRANS: Tooltip for main menu option "Login" -#: OpenIDPlugin.php:218 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Connexion au site" #. TRANS: Main menu option when not logged in to log in -#: OpenIDPlugin.php:221 msgctxt "MENU" msgid "Login" msgstr "Connexion" #. TRANS: Tooltip for main menu option "Help" -#: OpenIDPlugin.php:226 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Aidez-moi !" #. TRANS: Main menu option for help on the StatusNet site -#: OpenIDPlugin.php:229 msgctxt "MENU" msgid "Help" msgstr "Aide" #. TRANS: Tooltip for main menu option "Search" -#: OpenIDPlugin.php:235 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Rechercher des personnes ou du texte" #. TRANS: Main menu option when logged in or when the StatusNet instance is not private -#: OpenIDPlugin.php:238 msgctxt "MENU" msgid "Search" msgstr "Rechercher" @@ -323,92 +79,76 @@ msgstr "Rechercher" #. TRANS: OpenID plugin menu item on site logon page. #. TRANS: OpenID plugin menu item on user settings page. #. TRANS: OpenID configuration menu item. -#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 msgctxt "MENU" msgid "OpenID" msgstr "OpenID" #. TRANS: OpenID plugin tooltip for logon menu item. -#: OpenIDPlugin.php:297 msgid "Login or register with OpenID" msgstr "Se connecter ou s’inscrire avec OpenID" #. TRANS: OpenID plugin tooltip for user settings menu item. -#: OpenIDPlugin.php:333 msgid "Add or remove OpenIDs" msgstr "Ajouter ou retirer des identifiants OpenID" #. TRANS: Tooltip for OpenID configuration menu item. -#: OpenIDPlugin.php:607 msgid "OpenID configuration" msgstr "Configuration d’OpenID" #. TRANS: OpenID plugin description. -#: OpenIDPlugin.php:653 msgid "Use OpenID to login to the site." msgstr "" "Utiliser OpenID pour se connecter au site." #. TRANS: button label for OAuth authorization page when needing OpenID authentication first. -#: OpenIDPlugin.php:663 msgctxt "BUTTON" msgid "Continue" msgstr "Continuer" #. TRANS: OpenID plugin logon form legend. -#: OpenIDPlugin.php:680 openidlogin.php:132 msgid "OpenID login" msgstr "Connexion OpenID" #. TRANS: Field label. -#: OpenIDPlugin.php:688 openidlogin.php:139 msgid "OpenID provider" msgstr "Fournisseur OpenID" #. TRANS: Form guide. -#: OpenIDPlugin.php:697 openidlogin.php:147 msgid "Enter your username." msgstr "Entrez votre nom d’utilisateur." #. TRANS: Form guide. -#: OpenIDPlugin.php:699 openidlogin.php:148 msgid "You will be sent to the provider's site for authentication." msgstr "Vous serez envoyé sur le site du fournisseur pour l’authentification." +#. TRANS: OpenID plugin logon form field label. +msgid "OpenID URL" +msgstr "Adresse URL OpenID" + #. TRANS: OpenID plugin logon form field instructions. -#: OpenIDPlugin.php:706 openidlogin.php:155 msgid "Your OpenID URL" msgstr "Votre URL OpenID" -#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). -#: openidserver.php:116 -#, php-format -msgid "You are not authorized to use the identity %s." -msgstr "Vous n’êtes pas autorisé à utiliser l’identité « %s »." - -#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). -#: openidserver.php:137 -msgid "Just an OpenID provider. Nothing to see here, move along..." -msgstr "Juste un fournisseur OpenID. Rien à voir ici, passez votre chemin..." - #. TRANS: Client error message trying to log on with OpenID while already logged on. -#: finishopenidlogin.php:37 openidlogin.php:33 msgid "Already logged in." msgstr "Déjà connecté." +#. TRANS: Message given when there is a problem with the user's session token. +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Un problème est survenu avec votre jeton de session. Veuillez essayer à " +"nouveau." + #. TRANS: Message given if user does not agree with the site's license. -#: finishopenidlogin.php:48 msgid "You can't register if you don't agree to the license." msgstr "Vous ne pouvez pas vous inscrire si vous n’acceptez pas la licence." #. TRANS: Messag given on an unknown error. -#: finishopenidlogin.php:57 msgid "An unknown error has occured." msgstr "Une erreur inconnue s’est produite." #. TRANS: Instructions given after a first successful logon using OpenID. #. TRANS: %s is the site name. -#: finishopenidlogin.php:73 #, php-format msgid "" "This is the first time you've logged into %s so we must connect your OpenID " @@ -421,39 +161,31 @@ msgstr "" "en avez un." #. TRANS: Title -#: finishopenidlogin.php:80 msgid "OpenID Account Setup" msgstr "Configuration du compte OpenID" -#: finishopenidlogin.php:117 msgid "Create new account" msgstr "Créer un nouveau compte" -#: finishopenidlogin.php:119 msgid "Create a new user with this nickname." msgstr "Créer un nouvel utilisateur avec ce pseudonyme." -#: finishopenidlogin.php:126 msgid "New nickname" msgstr "Nouveau pseudonyme" -#: finishopenidlogin.php:128 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces" #. TRANS: Button label in form in which to create a new user on the site for an OpenID. -#: finishopenidlogin.php:162 msgctxt "BUTTON" msgid "Create" msgstr "Créer" #. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:176 msgid "Connect existing account" msgstr "Se connecter à un compte existant" #. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:179 msgid "" "If you already have an account, login with your username and password to " "connect it to your OpenID." @@ -462,35 +194,29 @@ msgstr "" "et mot de passe pour l’associer à votre compte OpenID." #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:183 msgid "Existing nickname" msgstr "Pseudonyme existant" #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:187 msgid "Password" msgstr "Mot de passe" #. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:191 msgctxt "BUTTON" msgid "Connect" msgstr "Connexion" #. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. -#: finishopenidlogin.php:237 finishaddopenid.php:90 msgid "OpenID authentication cancelled." msgstr "Authentification OpenID annulée." #. TRANS: OpenID authentication failed; display the error message. %s is the error message. #. TRANS: OpenID authentication failed; display the error message. #. TRANS: %s is the error message. -#: finishopenidlogin.php:241 finishaddopenid.php:95 #, php-format msgid "OpenID authentication failed: %s" msgstr "L’authentification OpenID a échoué : %s" -#: finishopenidlogin.php:261 finishaddopenid.php:111 msgid "" "OpenID authentication aborted: you are not allowed to login to this site." msgstr "" @@ -499,49 +225,280 @@ msgstr "" #. TRANS: OpenID plugin message. No new user registration is allowed on the site. #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. -#: finishopenidlogin.php:317 finishopenidlogin.php:327 msgid "Registration not allowed." msgstr "Inscription non autorisée." #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. -#: finishopenidlogin.php:335 msgid "Not a valid invitation code." msgstr "Le code d’invitation n’est pas valide." #. TRANS: OpenID plugin message. The entered new user name is blacklisted. -#: finishopenidlogin.php:349 msgid "Nickname not allowed." msgstr "Pseudonyme non autorisé." #. TRANS: OpenID plugin message. The entered new user name is already used. -#: finishopenidlogin.php:355 msgid "Nickname already in use. Try another one." msgstr "Pseudonyme déjà utilisé. Essayez-en un autre." #. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. #. TRANS: OpenID plugin server error. A stored OpenID cannot be found. -#: finishopenidlogin.php:363 finishopenidlogin.php:449 msgid "Stored OpenID not found." msgstr "OpenID stocké non trouvé." #. TRANS: OpenID plugin server error. -#: finishopenidlogin.php:373 msgid "Creating new account for OpenID that already has a user." msgstr "Créer un nouveau compte pour OpenID qui a déjà un utilisateur." #. TRANS: OpenID plugin message. -#: finishopenidlogin.php:437 msgid "Invalid username or password." msgstr "Nom d’utilisateur ou mot de passe incorrect." #. TRANS: OpenID plugin server error. The user or user profile could not be saved. -#: finishopenidlogin.php:457 msgid "Error connecting user to OpenID." msgstr "Erreur de connexion de l’utilisateur à OpenID." +#. TRANS: OpenID plugin server error. +msgid "Cannot instantiate OpenID consumer object." +msgstr "Impossible d’instancier l’objet client OpenID." + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +msgid "Not a valid OpenID." +msgstr "Ce n’est pas un identifiant OpenID valide." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#, php-format +msgid "OpenID failure: %s" +msgstr "Échec d’OpenID : %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Impossible de rediriger vers le serveur : %s" + +#. TRANS: OpenID plugin user instructions. +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Ce formulaire devrait se soumettre automatiquement lui-même. Si ce n’est pas " +"le cas, cliquez le bouton « Soumettre » en bas pour aller vers la page de " +"votre fournisseur OpenID." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the profile." +msgstr "Erreur lors de la sauvegarde du profil." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the user." +msgstr "Erreur lors de la sauvegarde de l’utilisateur." + +#. TRANS: OpenID plugin client exception (403). +msgid "Unauthorized URL used for OpenID login." +msgstr "Adresse URL non autorisée utilisée pour la connexion OpenID." + +#. TRANS: Title +msgid "OpenID Login Submission" +msgstr "Soumission de la connexion OpenID" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +msgid "Requesting authorization from your login provider..." +msgstr "Demande d’autorisation auprès de votre fournisseur de connexion..." + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Si vous n’êtes pas redirigé vers votre fournisseur de connexion dans " +"quelques secondes, essayez en cliquant le bouton ci-dessous." + +msgid "OpenID" +msgstr "OpenID" + +msgid "OpenID settings" +msgstr "Paramètres OpenID" + +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" +"Adresse URL du fournisseur invalide. La taille maximale est de 255 " +"caractères." + +msgid "Invalid team name. Max length is 255 characters." +msgstr "Nom d’équipe invalide. La taille maximale est de 255 caractères." + +msgid "Trusted provider" +msgstr "Fournisseur de confiance" + +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"Par défaut, les utilisateurs sont autorisés à s’authentifier auprès de " +"n’importe quel fournisseur OpenID. Si vous utilisez votre propre service " +"OpenID pour l’inscription partagée, vous pouvez restreindre l’accès à vos " +"seuls propres utilisateurs ici." + +msgid "Provider URL" +msgstr "Adresse URL du fournisseur" + +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Toutes les connexions OpenID seront envoyées à cette adresse ; les autres " +"fournisseurs ne peuvent être utilisés." + +msgid "Append a username to base URL" +msgstr "Ajouter un nom d’utilisateur à l’adresse URL de base" + +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"Le formulaire de connexion affichera l’adresse URL de base et demandera un " +"nom d’utilisateur à ajouter à la fin. Utilisez cette option quand l’adresse " +"URL du fournisseur OpenID devrait être la page de profil des utilisateurs " +"individuels." + +msgid "Required team" +msgstr "Équipe exigée" + +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Autoriser uniquement les connexions des utilisateurs membres de l’équipe " +"donnée (extension Launchpad)." + +msgid "Options" +msgstr "Options" + +msgid "Enable OpenID-only mode" +msgstr "Activer le mode OpenID seul" + +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Exiger que tous les utilisateurs se connectent via OpenID. Avertissement : " +"cela désactive l’authentification par mot de passe pour tous les " +"utilisateurs !" + +msgid "Save OpenID settings" +msgstr "Sauvegarder les paramètres OpenID" + +#. TRANS: Client error message +msgid "Not logged in." +msgstr "Non connecté." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +msgid "You already have this OpenID!" +msgstr "Vous êtes déjà connecté avec cet OpenID !" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +msgid "Someone else already has this OpenID." +msgstr "Quelqu’un d’autre a déjà cet OpenID." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +msgid "Error connecting user." +msgstr "Erreur lors de la connexion de l’utilisateur à OpenID." + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +msgid "Error updating profile" +msgstr "Erreur lors de la mise à jour du profil utilisateur" + +#. TRANS: Title after getting the status of the OpenID authorisation request. +#. TRANS: OpenID plugin message. Title. +msgid "OpenID Login" +msgstr "Connexion OpenID" + +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"[OpenID](%%doc.openid%%) vous permet de vous connecter à de nombreux sites " +"avec le même compte utilisateur. Gérez à partir d’ici les identifiants " +"OpenID associés à votre compte ici." + +msgid "Add OpenID" +msgstr "Ajouter OpenID" + +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Si vous souhaitez ajouter un compte OpenID à votre compte, entrez-le dans la " +"case ci-dessous et cliquez sur « Ajouter »." + +msgid "Add" +msgstr "Ajouter" + +msgid "Remove OpenID" +msgstr "Retirer OpenID" + +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Le retrait de votre unique compte OpenID ne vous permettrait plus de vous " +"connecter ! Si vous avez besoin de l’enlever, ajouter d’abord un autre " +"compte OpenID." + +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" +"Vous pouvez retirer un compte OpenID de votre compte en cliquant le bouton « " +"Retirer »" + +msgid "Remove" +msgstr "Enlever" + +msgid "OpenID Trusted Sites" +msgstr "Sites de confiance OpenID" + +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"Les sites suivants sont autorisés à accéder à votre identité et à vous " +"connecter. Vous pouvez retirer un site de cette liste pour l’empêcher " +"d’accéder à votre compte OpenID." + +msgid "Can't add new providers." +msgstr "Impossible d’ajouter de nouveaux fournisseurs." + +msgid "Something weird happened." +msgstr "Quelque chose de bizarre s’est passé." + +msgid "No such OpenID trustroot." +msgstr "Racine de confiance OpenID inexistante." + +msgid "Trustroots removed" +msgstr "Racines de confiance retirées" + +msgid "No such OpenID." +msgstr "Compte OpenID inexistant." + +msgid "That OpenID does not belong to you." +msgstr "Ce compte OpenID ne vous appartient pas." + +msgid "OpenID removed." +msgstr "Compte OpenID retiré." + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "Vous n’êtes pas autorisé à utiliser l’identité « %s »." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "Juste un fournisseur OpenID. Rien à voir ici, passez votre chemin..." + #. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:74 #, php-format msgid "" "For security reasons, please re-login with your [OpenID](%%doc.openid%%) " @@ -552,85 +509,21 @@ msgstr "" #. TRANS: OpenID plugin message. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:80 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "Connexion avec un compte [OpenID](%%doc.openid%%)." -#. TRANS: OpenID plugin message. Title. -#. TRANS: Title after getting the status of the OpenID authorisation request. -#: openidlogin.php:114 finishaddopenid.php:187 -msgid "OpenID Login" -msgstr "Connexion OpenID" - #. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. -#: openidlogin.php:160 msgid "Remember me" msgstr "Se souvenir de moi" #. TRANS: OpenID plugin logon form field instructions. -#: openidlogin.php:162 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Me connecter automatiquement à l’avenir ; déconseillé sur les ordinateurs " "publics ou partagés !" #. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. -#: openidlogin.php:167 msgctxt "BUTTON" msgid "Login" msgstr "Connexion" - -#: openidtrust.php:52 -msgid "OpenID Identity Verification" -msgstr "Vérification d’identité OpenID" - -#: openidtrust.php:70 -msgid "" -"This page should only be reached during OpenID processing, not directly." -msgstr "" -"Cette page ne devrait être atteinte que durant un traitement OpenID, pas " -"directement." - -#: openidtrust.php:118 -#, php-format -msgid "" -"%s has asked to verify your identity. Click Continue to verify your " -"identity and login without creating a new password." -msgstr "" -"%s a demandé la vérification de votre identité. Veuillez cliquer sur « " -"Continuer » pour vérifier votre identité et connectez-vous sans créer un " -"nouveau mot de passe." - -#: openidtrust.php:136 -msgid "Continue" -msgstr "Continuer" - -#: openidtrust.php:137 -msgid "Cancel" -msgstr "Annuler" - -#. TRANS: Client error message -#: finishaddopenid.php:68 -msgid "Not logged in." -msgstr "Non connecté." - -#. TRANS: message in case a user tries to add an OpenID that is already connected to them. -#: finishaddopenid.php:122 -msgid "You already have this OpenID!" -msgstr "Vous êtes déjà connecté avec cet OpenID !" - -#. TRANS: message in case a user tries to add an OpenID that is already used by another user. -#: finishaddopenid.php:125 -msgid "Someone else already has this OpenID." -msgstr "Quelqu’un d’autre a déjà cet OpenID." - -#. TRANS: message in case the OpenID object cannot be connected to the user. -#: finishaddopenid.php:138 -msgid "Error connecting user." -msgstr "Erreur lors de la connexion de l’utilisateur à OpenID." - -#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. -#: finishaddopenid.php:145 -msgid "Error updating profile" -msgstr "Erreur lors de la mise à jour du profil utilisateur" diff --git a/plugins/OpenID/locale/ia/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/ia/LC_MESSAGES/OpenID.po index 91feba29e3..38c637aec4 100644 --- a/plugins/OpenID/locale/ia/LC_MESSAGES/OpenID.po +++ b/plugins/OpenID/locale/ia/LC_MESSAGES/OpenID.po @@ -9,303 +9,67 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenID\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:34+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:18+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:00+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-openid\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: openidsettings.php:58 openidadminpanel.php:65 -msgid "OpenID settings" -msgstr "Configuration OpenID" +msgid "OpenID Identity Verification" +msgstr "Verification de identitate via OpenID" + +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"Iste pagina debe esser attingite solmente durante le tractamento de un " +"OpenID, non directemente." -#: openidsettings.php:69 #, php-format msgid "" -"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " -"account. Manage your associated OpenIDs from here." +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." msgstr "" -"[OpenID](%%doc.openid%%) permitte authenticar te a multe sitos con le mesme " -"conto de usator. Tu pote gerer hic tu OpenIDs associate." +"%s ha demandate de verificar tu identitate. Clicca super Continuar pro " +"verificar tu identitate e aperir session sin crear un nove contrasigno." -#: openidsettings.php:100 -msgid "Add OpenID" -msgstr "Adder OpenID" +msgid "Continue" +msgstr "Continuar" -#: openidsettings.php:103 -msgid "" -"If you want to add an OpenID to your account, enter it in the box below and " -"click \"Add\"." -msgstr "" -"Si tu vole adder un OpenID a tu conto, entra lo in le quadro hic infra e " -"clicca \"Adder\"." - -#. TRANS: OpenID plugin logon form field label. -#: openidsettings.php:108 OpenIDPlugin.php:703 openidlogin.php:152 -msgid "OpenID URL" -msgstr "URL OpenID" - -#: openidsettings.php:118 -msgid "Add" -msgstr "Adder" - -#: openidsettings.php:130 -msgid "Remove OpenID" -msgstr "Remover OpenID" - -#: openidsettings.php:135 -msgid "" -"Removing your only OpenID would make it impossible to log in! If you need to " -"remove it, add another OpenID first." -msgstr "" -"Le remotion de tu sol OpenID renderea le apertura de session impossibile! Si " -"tu debe remover lo, adde primo un altere OpenID." - -#: openidsettings.php:150 -msgid "" -"You can remove an OpenID from your account by clicking the button marked " -"\"Remove\"." -msgstr "" -"Tu pote remover un OpenID de tu conto per cliccar le button \"Remover\"." - -#: openidsettings.php:173 openidsettings.php:214 -msgid "Remove" -msgstr "Remover" - -#: openidsettings.php:187 -msgid "OpenID Trusted Sites" -msgstr "Sitos OpenID de confidentia" - -#: openidsettings.php:190 -msgid "" -"The following sites are allowed to access your identity and log you in. You " -"can remove a site from this list to deny it access to your OpenID." -msgstr "" -"Le sequente sitos ha le permission de acceder a tu identitate e de " -"authenticar te. Tu pote remover un sito de iste lista pro negar a illo le " -"accesso a tu OpenID." - -#. TRANS: Message given when there is a problem with the user's session token. -#: openidsettings.php:232 finishopenidlogin.php:42 -msgid "There was a problem with your session token. Try again, please." -msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." - -#: openidsettings.php:239 -msgid "Can't add new providers." -msgstr "Non pote adder nove fornitores." - -#: openidsettings.php:252 -msgid "Something weird happened." -msgstr "Qualcosa de bizarre occurreva." - -#: openidsettings.php:276 -msgid "No such OpenID trustroot." -msgstr "Iste \"trustroot\" de OpenID non existe." - -#: openidsettings.php:280 -msgid "Trustroots removed" -msgstr "\"Trustroots\" removite" - -#: openidsettings.php:303 -msgid "No such OpenID." -msgstr "Iste OpenID non existe." - -#: openidsettings.php:308 -msgid "That OpenID does not belong to you." -msgstr "Iste OpenID non appertine a te." - -#: openidsettings.php:312 -msgid "OpenID removed." -msgstr "OpenID removite." - -#: openidadminpanel.php:54 -msgid "OpenID" -msgstr "OpenID" - -#: openidadminpanel.php:147 -msgid "Invalid provider URL. Max length is 255 characters." -msgstr "URL de fornitor invalide. Longitude maximal es 255 characteres." - -#: openidadminpanel.php:153 -msgid "Invalid team name. Max length is 255 characters." -msgstr "Nomine de equipa invalide. Longitude maximal es 255 characteres." - -#: openidadminpanel.php:210 -msgid "Trusted provider" -msgstr "Fornitor de confidentia" - -#: openidadminpanel.php:212 -msgid "" -"By default, users are allowed to authenticate with any OpenID provider. If " -"you are using your own OpenID service for shared sign-in, you can restrict " -"access to only your own users here." -msgstr "" -"Per predefinition, le usatores ha le permission de authenitcar se con omne " -"fornitor de OpenID. Si tu usa tu proprie servicio OpenID pro le " -"authentication in commun, tu pote hic restringer le accesso a solmente tu " -"proprie usatores." - -#: openidadminpanel.php:220 -msgid "Provider URL" -msgstr "URL del fornitor" - -#: openidadminpanel.php:221 -msgid "" -"All OpenID logins will be sent to this URL; other providers may not be used." -msgstr "" -"Tote le authenticationes de OpenID essera inviate a iste URL; altere " -"fornitores non pote esser usate." - -#: openidadminpanel.php:228 -msgid "Append a username to base URL" -msgstr "Adjunger un nomine de usator al URL de base" - -#: openidadminpanel.php:230 -msgid "" -"Login form will show the base URL and prompt for a username to add at the " -"end. Use when OpenID provider URL should be the profile page for individual " -"users." -msgstr "" -"Le formulario de authentication monstrara le URL de base e demandara un " -"nomine de usator a adder al fin. Usa isto si le URL de un fornitor de OpenID " -"debe esser le pagina de profilo pro usatores individual." - -#: openidadminpanel.php:238 -msgid "Required team" -msgstr "Equipa requirite" - -#: openidadminpanel.php:239 -msgid "Only allow logins from users in the given team (Launchpad extension)." -msgstr "" -"Permitter solmente le apertura de session ab usatores in le equipa " -"specificate (extension de Launchpad)." - -#: openidadminpanel.php:251 -msgid "Options" -msgstr "Optiones" - -#: openidadminpanel.php:258 -msgid "Enable OpenID-only mode" -msgstr "Activar modo OpenID sol" - -#: openidadminpanel.php:260 -msgid "" -"Require all users to login via OpenID. Warning: disables password " -"authentication for all users!" -msgstr "" -"Requirer que tote le usatores aperi session via OpenID. Aviso: disactiva le " -"authentication per contrasigno pro tote le usatores!" - -#: openidadminpanel.php:278 -msgid "Save OpenID settings" -msgstr "Salveguardar configurationes de OpenID" - -#. TRANS: OpenID plugin server error. -#: openid.php:138 -msgid "Cannot instantiate OpenID consumer object." -msgstr "Non pote instantiar un objecto de consumitor OpenID." - -#. TRANS: OpenID plugin message. Given when an OpenID is not valid. -#: openid.php:150 -msgid "Not a valid OpenID." -msgstr "Non es un OpenID valide." - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. -#. TRANS: %s is the failure message. -#: openid.php:155 -#, php-format -msgid "OpenID failure: %s" -msgstr "Fallimento de OpenID: %s" - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. -#. TRANS: %s is the failure message. -#: openid.php:205 -#, php-format -msgid "Could not redirect to server: %s" -msgstr "Non poteva rediriger al servitor: %s" - -#. TRANS: OpenID plugin user instructions. -#: openid.php:244 -msgid "" -"This form should automatically submit itself. If not, click the submit " -"button to go to your OpenID provider." -msgstr "" -"Iste formulario deberea submitter se automaticamente. Si non, clicca super " -"le button Submitter pro vader a tu fornitor de OpenID." - -#. TRANS: OpenID plugin server error. -#: openid.php:280 -msgid "Error saving the profile." -msgstr "Error durante le salveguarda del profilo." - -#. TRANS: OpenID plugin server error. -#: openid.php:292 -msgid "Error saving the user." -msgstr "Error durante le salveguarda del usator." - -#. TRANS: OpenID plugin client exception (403). -#: openid.php:322 -msgid "Unauthorized URL used for OpenID login." -msgstr "" -"Un URL non autorisate ha essite usate pro le authentication via OpenID." - -#. TRANS: Title -#: openid.php:370 -msgid "OpenID Login Submission" -msgstr "Apertura de session via OpenID" - -#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. -#: openid.php:381 -msgid "Requesting authorization from your login provider..." -msgstr "Requesta autorisation de tu fornitor de authentication..." - -#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. -#: openid.php:385 -msgid "" -"If you are not redirected to your login provider in a few seconds, try " -"pushing the button below." -msgstr "" -"Si tu non es redirigite a tu fornitor de authentication post pauc secundas, " -"tenta pulsar le button hic infra." +msgid "Cancel" +msgstr "Cancellar" #. TRANS: Tooltip for main menu option "Login" -#: OpenIDPlugin.php:218 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Authenticar te a iste sito" #. TRANS: Main menu option when not logged in to log in -#: OpenIDPlugin.php:221 msgctxt "MENU" msgid "Login" msgstr "Aperir session" #. TRANS: Tooltip for main menu option "Help" -#: OpenIDPlugin.php:226 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Adjuta me!" #. TRANS: Main menu option for help on the StatusNet site -#: OpenIDPlugin.php:229 msgctxt "MENU" msgid "Help" msgstr "Adjuta" #. TRANS: Tooltip for main menu option "Search" -#: OpenIDPlugin.php:235 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Cercar personas o texto" #. TRANS: Main menu option when logged in or when the StatusNet instance is not private -#: OpenIDPlugin.php:238 msgctxt "MENU" msgid "Search" msgstr "Cercar" @@ -313,93 +77,74 @@ msgstr "Cercar" #. TRANS: OpenID plugin menu item on site logon page. #. TRANS: OpenID plugin menu item on user settings page. #. TRANS: OpenID configuration menu item. -#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 msgctxt "MENU" msgid "OpenID" msgstr "OpenID" #. TRANS: OpenID plugin tooltip for logon menu item. -#: OpenIDPlugin.php:297 msgid "Login or register with OpenID" msgstr "Aperir session o crear conto via OpenID" #. TRANS: OpenID plugin tooltip for user settings menu item. -#: OpenIDPlugin.php:333 msgid "Add or remove OpenIDs" msgstr "Adder o remover OpenIDs" #. TRANS: Tooltip for OpenID configuration menu item. -#: OpenIDPlugin.php:607 msgid "OpenID configuration" msgstr "Configuration de OpenID" #. TRANS: OpenID plugin description. -#: OpenIDPlugin.php:653 msgid "Use OpenID to login to the site." msgstr "" "Usar OpenID pro aperir session al sito." #. TRANS: button label for OAuth authorization page when needing OpenID authentication first. -#: OpenIDPlugin.php:663 msgctxt "BUTTON" msgid "Continue" msgstr "Continuar" #. TRANS: OpenID plugin logon form legend. -#: OpenIDPlugin.php:680 openidlogin.php:132 msgid "OpenID login" msgstr "Apertura de session via OpenID" #. TRANS: Field label. -#: OpenIDPlugin.php:688 openidlogin.php:139 msgid "OpenID provider" msgstr "Fornitor de OpenID" #. TRANS: Form guide. -#: OpenIDPlugin.php:697 openidlogin.php:147 msgid "Enter your username." msgstr "Entra tu nomine de usator." #. TRANS: Form guide. -#: OpenIDPlugin.php:699 openidlogin.php:148 msgid "You will be sent to the provider's site for authentication." msgstr "Tu essera inviate al sito del fornitor pro authentication." +#. TRANS: OpenID plugin logon form field label. +msgid "OpenID URL" +msgstr "URL OpenID" + #. TRANS: OpenID plugin logon form field instructions. -#: OpenIDPlugin.php:706 openidlogin.php:155 msgid "Your OpenID URL" msgstr "Tu URL de OpenID" -#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). -#: openidserver.php:116 -#, php-format -msgid "You are not authorized to use the identity %s." -msgstr "Tu non es autorisate a usar le identitate %s." - -#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). -#: openidserver.php:137 -msgid "Just an OpenID provider. Nothing to see here, move along..." -msgstr "" -"Solmente un fornitor de OpenID. Nihil a vider hic, per favor continua..." - #. TRANS: Client error message trying to log on with OpenID while already logged on. -#: finishopenidlogin.php:37 openidlogin.php:33 msgid "Already logged in." msgstr "Tu es jam authenticate." +#. TRANS: Message given when there is a problem with the user's session token. +msgid "There was a problem with your session token. Try again, please." +msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." + #. TRANS: Message given if user does not agree with the site's license. -#: finishopenidlogin.php:48 msgid "You can't register if you don't agree to the license." msgstr "Tu non pote crear un conto si tu non accepta le licentia." #. TRANS: Messag given on an unknown error. -#: finishopenidlogin.php:57 msgid "An unknown error has occured." msgstr "Un error incognite ha occurrite." #. TRANS: Instructions given after a first successful logon using OpenID. #. TRANS: %s is the site name. -#: finishopenidlogin.php:73 #, php-format msgid "" "This is the first time you've logged into %s so we must connect your OpenID " @@ -411,39 +156,31 @@ msgstr "" "connecter con tu conto existente, si tu ha un." #. TRANS: Title -#: finishopenidlogin.php:80 msgid "OpenID Account Setup" msgstr "Configuration de conto OpenID" -#: finishopenidlogin.php:117 msgid "Create new account" msgstr "Crear nove conto" -#: finishopenidlogin.php:119 msgid "Create a new user with this nickname." msgstr "Crear un nove usator con iste pseudonymo." -#: finishopenidlogin.php:126 msgid "New nickname" msgstr "Nove pseudonymo" -#: finishopenidlogin.php:128 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 minusculas o numeros, sin punctuation o spatios" #. TRANS: Button label in form in which to create a new user on the site for an OpenID. -#: finishopenidlogin.php:162 msgctxt "BUTTON" msgid "Create" msgstr "Crear" #. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:176 msgid "Connect existing account" msgstr "Connecter conto existente" #. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:179 msgid "" "If you already have an account, login with your username and password to " "connect it to your OpenID." @@ -452,35 +189,29 @@ msgstr "" "pro connecter lo a tu OpenID." #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:183 msgid "Existing nickname" msgstr "Pseudonymo existente" #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:187 msgid "Password" msgstr "Contrasigno" #. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:191 msgctxt "BUTTON" msgid "Connect" msgstr "Connecter" #. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. -#: finishopenidlogin.php:237 finishaddopenid.php:90 msgid "OpenID authentication cancelled." msgstr "Authentication OpenID cancellate." #. TRANS: OpenID authentication failed; display the error message. %s is the error message. #. TRANS: OpenID authentication failed; display the error message. #. TRANS: %s is the error message. -#: finishopenidlogin.php:241 finishaddopenid.php:95 #, php-format msgid "OpenID authentication failed: %s" msgstr "Le authentication OpenID ha fallite: %s" -#: finishopenidlogin.php:261 finishaddopenid.php:111 msgid "" "OpenID authentication aborted: you are not allowed to login to this site." msgstr "" @@ -489,49 +220,274 @@ msgstr "" #. TRANS: OpenID plugin message. No new user registration is allowed on the site. #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. -#: finishopenidlogin.php:317 finishopenidlogin.php:327 msgid "Registration not allowed." msgstr "Creation de conto non permittite." #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. -#: finishopenidlogin.php:335 msgid "Not a valid invitation code." msgstr "Le codice de invitation es invalide." #. TRANS: OpenID plugin message. The entered new user name is blacklisted. -#: finishopenidlogin.php:349 msgid "Nickname not allowed." msgstr "Pseudonymo non permittite." #. TRANS: OpenID plugin message. The entered new user name is already used. -#: finishopenidlogin.php:355 msgid "Nickname already in use. Try another one." msgstr "Pseudonymo ja in uso. Proba un altere." #. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. #. TRANS: OpenID plugin server error. A stored OpenID cannot be found. -#: finishopenidlogin.php:363 finishopenidlogin.php:449 msgid "Stored OpenID not found." msgstr "Le OpenID immagazinate non esseva trovate." #. TRANS: OpenID plugin server error. -#: finishopenidlogin.php:373 msgid "Creating new account for OpenID that already has a user." msgstr "Tentativa de crear un nove conto pro un OpenID que ha jam un usator." #. TRANS: OpenID plugin message. -#: finishopenidlogin.php:437 msgid "Invalid username or password." msgstr "Nomine de usator o contrasigno invalide." #. TRANS: OpenID plugin server error. The user or user profile could not be saved. -#: finishopenidlogin.php:457 msgid "Error connecting user to OpenID." msgstr "Error durante le connexion del usator a OpenID." +#. TRANS: OpenID plugin server error. +msgid "Cannot instantiate OpenID consumer object." +msgstr "Non pote instantiar un objecto de consumitor OpenID." + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +msgid "Not a valid OpenID." +msgstr "Non es un OpenID valide." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#, php-format +msgid "OpenID failure: %s" +msgstr "Fallimento de OpenID: %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Non poteva rediriger al servitor: %s" + +#. TRANS: OpenID plugin user instructions. +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Iste formulario deberea submitter se automaticamente. Si non, clicca super " +"le button Submitter pro vader a tu fornitor de OpenID." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the profile." +msgstr "Error durante le salveguarda del profilo." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the user." +msgstr "Error durante le salveguarda del usator." + +#. TRANS: OpenID plugin client exception (403). +msgid "Unauthorized URL used for OpenID login." +msgstr "" +"Un URL non autorisate ha essite usate pro le authentication via OpenID." + +#. TRANS: Title +msgid "OpenID Login Submission" +msgstr "Apertura de session via OpenID" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +msgid "Requesting authorization from your login provider..." +msgstr "Requesta autorisation de tu fornitor de authentication..." + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Si tu non es redirigite a tu fornitor de authentication post pauc secundas, " +"tenta pulsar le button hic infra." + +msgid "OpenID" +msgstr "OpenID" + +msgid "OpenID settings" +msgstr "Configuration OpenID" + +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "URL de fornitor invalide. Longitude maximal es 255 characteres." + +msgid "Invalid team name. Max length is 255 characters." +msgstr "Nomine de equipa invalide. Longitude maximal es 255 characteres." + +msgid "Trusted provider" +msgstr "Fornitor de confidentia" + +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"Per predefinition, le usatores ha le permission de authenitcar se con omne " +"fornitor de OpenID. Si tu usa tu proprie servicio OpenID pro le " +"authentication in commun, tu pote hic restringer le accesso a solmente tu " +"proprie usatores." + +msgid "Provider URL" +msgstr "URL del fornitor" + +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Tote le authenticationes de OpenID essera inviate a iste URL; altere " +"fornitores non pote esser usate." + +msgid "Append a username to base URL" +msgstr "Adjunger un nomine de usator al URL de base" + +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"Le formulario de authentication monstrara le URL de base e demandara un " +"nomine de usator a adder al fin. Usa isto si le URL de un fornitor de OpenID " +"debe esser le pagina de profilo pro usatores individual." + +msgid "Required team" +msgstr "Equipa requirite" + +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Permitter solmente le apertura de session ab usatores in le equipa " +"specificate (extension de Launchpad)." + +msgid "Options" +msgstr "Optiones" + +msgid "Enable OpenID-only mode" +msgstr "Activar modo OpenID sol" + +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Requirer que tote le usatores aperi session via OpenID. Aviso: disactiva le " +"authentication per contrasigno pro tote le usatores!" + +msgid "Save OpenID settings" +msgstr "Salveguardar configurationes de OpenID" + +#. TRANS: Client error message +msgid "Not logged in." +msgstr "Tu non ha aperite un session." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +msgid "You already have this OpenID!" +msgstr "Tu jam ha iste OpenID!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +msgid "Someone else already has this OpenID." +msgstr "Un altere persona jam ha iste OpenID." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +msgid "Error connecting user." +msgstr "Error durante le connexion del usator." + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +msgid "Error updating profile" +msgstr "Error durante le actualisation del profilo" + +#. TRANS: Title after getting the status of the OpenID authorisation request. +#. TRANS: OpenID plugin message. Title. +msgid "OpenID Login" +msgstr "Apertura de session via OpenID" + +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"[OpenID](%%doc.openid%%) permitte authenticar te a multe sitos con le mesme " +"conto de usator. Tu pote gerer hic tu OpenIDs associate." + +msgid "Add OpenID" +msgstr "Adder OpenID" + +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Si tu vole adder un OpenID a tu conto, entra lo in le quadro hic infra e " +"clicca \"Adder\"." + +msgid "Add" +msgstr "Adder" + +msgid "Remove OpenID" +msgstr "Remover OpenID" + +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Le remotion de tu sol OpenID renderea le apertura de session impossibile! Si " +"tu debe remover lo, adde primo un altere OpenID." + +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" +"Tu pote remover un OpenID de tu conto per cliccar le button \"Remover\"." + +msgid "Remove" +msgstr "Remover" + +msgid "OpenID Trusted Sites" +msgstr "Sitos OpenID de confidentia" + +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"Le sequente sitos ha le permission de acceder a tu identitate e de " +"authenticar te. Tu pote remover un sito de iste lista pro negar a illo le " +"accesso a tu OpenID." + +msgid "Can't add new providers." +msgstr "Non pote adder nove fornitores." + +msgid "Something weird happened." +msgstr "Qualcosa de bizarre occurreva." + +msgid "No such OpenID trustroot." +msgstr "Iste \"trustroot\" de OpenID non existe." + +msgid "Trustroots removed" +msgstr "\"Trustroots\" removite" + +msgid "No such OpenID." +msgstr "Iste OpenID non existe." + +msgid "That OpenID does not belong to you." +msgstr "Iste OpenID non appertine a te." + +msgid "OpenID removed." +msgstr "OpenID removite." + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "Tu non es autorisate a usar le identitate %s." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" +"Solmente un fornitor de OpenID. Nihil a vider hic, per favor continua..." + #. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:74 #, php-format msgid "" "For security reasons, please re-login with your [OpenID](%%doc.openid%%) " @@ -542,84 +498,21 @@ msgstr "" #. TRANS: OpenID plugin message. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:80 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "Aperir session con un conto [OpenID](%%doc.openid%%)." -#. TRANS: OpenID plugin message. Title. -#. TRANS: Title after getting the status of the OpenID authorisation request. -#: openidlogin.php:114 finishaddopenid.php:187 -msgid "OpenID Login" -msgstr "Apertura de session via OpenID" - #. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. -#: openidlogin.php:160 msgid "Remember me" msgstr "Memorar me" #. TRANS: OpenID plugin logon form field instructions. -#: openidlogin.php:162 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Aperir session automaticamente in le futuro; non pro computatores usate in " "commun!" #. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. -#: openidlogin.php:167 msgctxt "BUTTON" msgid "Login" msgstr "Aperir session" - -#: openidtrust.php:52 -msgid "OpenID Identity Verification" -msgstr "Verification de identitate via OpenID" - -#: openidtrust.php:70 -msgid "" -"This page should only be reached during OpenID processing, not directly." -msgstr "" -"Iste pagina debe esser attingite solmente durante le tractamento de un " -"OpenID, non directemente." - -#: openidtrust.php:118 -#, php-format -msgid "" -"%s has asked to verify your identity. Click Continue to verify your " -"identity and login without creating a new password." -msgstr "" -"%s ha demandate de verificar tu identitate. Clicca super Continuar pro " -"verificar tu identitate e aperir session sin crear un nove contrasigno." - -#: openidtrust.php:136 -msgid "Continue" -msgstr "Continuar" - -#: openidtrust.php:137 -msgid "Cancel" -msgstr "Cancellar" - -#. TRANS: Client error message -#: finishaddopenid.php:68 -msgid "Not logged in." -msgstr "Tu non ha aperite un session." - -#. TRANS: message in case a user tries to add an OpenID that is already connected to them. -#: finishaddopenid.php:122 -msgid "You already have this OpenID!" -msgstr "Tu jam ha iste OpenID!" - -#. TRANS: message in case a user tries to add an OpenID that is already used by another user. -#: finishaddopenid.php:125 -msgid "Someone else already has this OpenID." -msgstr "Un altere persona jam ha iste OpenID." - -#. TRANS: message in case the OpenID object cannot be connected to the user. -#: finishaddopenid.php:138 -msgid "Error connecting user." -msgstr "Error durante le connexion del usator." - -#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. -#: finishaddopenid.php:145 -msgid "Error updating profile" -msgstr "Error durante le actualisation del profilo" diff --git a/plugins/OpenID/locale/mk/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/mk/LC_MESSAGES/OpenID.po index 2f9547cb13..ee808cbbd3 100644 --- a/plugins/OpenID/locale/mk/LC_MESSAGES/OpenID.po +++ b/plugins/OpenID/locale/mk/LC_MESSAGES/OpenID.po @@ -9,300 +9,67 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenID\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:34+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:19+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:00+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-openid\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: openidsettings.php:58 openidadminpanel.php:65 -msgid "OpenID settings" -msgstr "Нагодувања за OpenID" +msgid "OpenID Identity Verification" +msgstr "OpenID - потврда на идентитет" + +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"До оваа страница треба да се доаѓа само во текот на постапката на OpenID, а " +"не директно." -#: openidsettings.php:69 #, php-format msgid "" -"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " -"account. Manage your associated OpenIDs from here." +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." msgstr "" -"[OpenID](%%doc.openid%%) Ви дава можност да се најавувате на многубројни " -"мреж. места со една иста сметка. Од ова место можете да раководите со Вашите " -"OpenID-ја." +"%s побара да го потврдите Вашиот идентитет. Кликнете на „Продолжи“ за да " +"потврдите и да се најавите без да треба да ставате нова лозинка." -#: openidsettings.php:100 -msgid "Add OpenID" -msgstr "Додај OpenID" +msgid "Continue" +msgstr "Продолжи" -#: openidsettings.php:103 -msgid "" -"If you want to add an OpenID to your account, enter it in the box below and " -"click \"Add\"." -msgstr "" -"Доколку не сакате да приложите OpenID кон Вашата сметка, тогаш внесете ја во " -"полето подолу и кликнете на „Додај“." - -#. TRANS: OpenID plugin logon form field label. -#: openidsettings.php:108 OpenIDPlugin.php:703 openidlogin.php:152 -msgid "OpenID URL" -msgstr "URL на OpenID" - -#: openidsettings.php:118 -msgid "Add" -msgstr "Додај" - -#: openidsettings.php:130 -msgid "Remove OpenID" -msgstr "Отстрани OpenID" - -#: openidsettings.php:135 -msgid "" -"Removing your only OpenID would make it impossible to log in! If you need to " -"remove it, add another OpenID first." -msgstr "" -"Ако го отстраните Вашиот единствен OpenID, тогаш нема да можете да се " -"најавите! Ако треба да го отстраните, тогаш најпрвин додадете друг OpenID." - -#: openidsettings.php:150 -msgid "" -"You can remove an OpenID from your account by clicking the button marked " -"\"Remove\"." -msgstr "Отстранувањето на OpenID од сметката се врши преку копчето „Отстрани“." - -#: openidsettings.php:173 openidsettings.php:214 -msgid "Remove" -msgstr "Отстрани" - -#: openidsettings.php:187 -msgid "OpenID Trusted Sites" -msgstr "Мреж. места од доверба на OpenID" - -#: openidsettings.php:190 -msgid "" -"The following sites are allowed to access your identity and log you in. You " -"can remove a site from this list to deny it access to your OpenID." -msgstr "" -"Следниве мреж. места имаат дозволен пристап до Вашиот идентитет и дозвола за " -"да Ве најават. Ако сакате некое мрежно место да нема пристап до Вашиот " -"OpenID, тогаш отстранете го од списоков." - -#. TRANS: Message given when there is a problem with the user's session token. -#: openidsettings.php:232 finishopenidlogin.php:42 -msgid "There was a problem with your session token. Try again, please." -msgstr "Се појави проблем со жетонот на Вашата сесија. Обидете се подоцна." - -#: openidsettings.php:239 -msgid "Can't add new providers." -msgstr "Не можам да додадам нови услужители." - -#: openidsettings.php:252 -msgid "Something weird happened." -msgstr "Се случи нешто чудно." - -#: openidsettings.php:276 -msgid "No such OpenID trustroot." -msgstr "Нема таков довербен извор (trustroot) за OpenID" - -#: openidsettings.php:280 -msgid "Trustroots removed" -msgstr "Довербените извори (trustroots) се отстранети" - -#: openidsettings.php:303 -msgid "No such OpenID." -msgstr "Нема таков OpenID." - -#: openidsettings.php:308 -msgid "That OpenID does not belong to you." -msgstr "Тој OpenID не Ви припаѓа Вам." - -#: openidsettings.php:312 -msgid "OpenID removed." -msgstr "OpenID е отстранет." - -#: openidadminpanel.php:54 -msgid "OpenID" -msgstr "OpenID" - -#: openidadminpanel.php:147 -msgid "Invalid provider URL. Max length is 255 characters." -msgstr "Неважечка URL-адреса за услужителот. Дозволени се највеќе 255 знаци." - -#: openidadminpanel.php:153 -msgid "Invalid team name. Max length is 255 characters." -msgstr "Неважечко екипно име. Дозволени се највеќе 255 знаци." - -#: openidadminpanel.php:210 -msgid "Trusted provider" -msgstr "Услужник од доверба" - -#: openidadminpanel.php:212 -msgid "" -"By default, users are allowed to authenticate with any OpenID provider. If " -"you are using your own OpenID service for shared sign-in, you can restrict " -"access to only your own users here." -msgstr "" -"Корисниците по основно можат да се потврдат со било кој OpenID-услужник. " -"Доколку користите сопствена OpenID-сужба за заедничка најава, тука можете да " -"им доделите право на пристап само на Вашите корисници." - -#: openidadminpanel.php:220 -msgid "Provider URL" -msgstr "URL-адреса на услужникот" - -#: openidadminpanel.php:221 -msgid "" -"All OpenID logins will be sent to this URL; other providers may not be used." -msgstr "" -"Сите OpenID-најави ќе бидат испратени на следнава URL-адреса. Нема да можат " -"да се користат други услужници." - -#: openidadminpanel.php:228 -msgid "Append a username to base URL" -msgstr "Приложи корисничко име кон основната URL-адреса" - -#: openidadminpanel.php:230 -msgid "" -"Login form will show the base URL and prompt for a username to add at the " -"end. Use when OpenID provider URL should be the profile page for individual " -"users." -msgstr "" -"Образецот за најава ќе ја прикаже основната URL-адреса и ќе Ви побара на " -"крајот да додадете корисничко име. Користете го ова кога URL-адресата на " -"OpenID-услужникот треба да биде профилната страница за поединечни корисници." - -#: openidadminpanel.php:238 -msgid "Required team" -msgstr "Потребна екипа" - -#: openidadminpanel.php:239 -msgid "Only allow logins from users in the given team (Launchpad extension)." -msgstr "" -"Дозволувај само најави на корисници од дадената екипа (додаток „Launchpad“)." - -#: openidadminpanel.php:251 -msgid "Options" -msgstr "Нагодувања" - -#: openidadminpanel.php:258 -msgid "Enable OpenID-only mode" -msgstr "Вклучи режим „само OpenID“" - -#: openidadminpanel.php:260 -msgid "" -"Require all users to login via OpenID. Warning: disables password " -"authentication for all users!" -msgstr "" -"Барај од сите корисници да се најавуваат преку OpenID. ПРЕДУПРЕДУВАЊЕ: ова " -"ја оневозможува потврдата на лозинка за сите корисници!" - -#: openidadminpanel.php:278 -msgid "Save OpenID settings" -msgstr "Зачувај нагодувања за OpenID" - -#. TRANS: OpenID plugin server error. -#: openid.php:138 -msgid "Cannot instantiate OpenID consumer object." -msgstr "Не можам да го повикам потрошувачкиот објект за OpenID." - -#. TRANS: OpenID plugin message. Given when an OpenID is not valid. -#: openid.php:150 -msgid "Not a valid OpenID." -msgstr "Ова не е важечки OpenID." - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. -#. TRANS: %s is the failure message. -#: openid.php:155 -#, php-format -msgid "OpenID failure: %s" -msgstr "OpenID не успеа: %s" - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. -#. TRANS: %s is the failure message. -#: openid.php:205 -#, php-format -msgid "Could not redirect to server: %s" -msgstr "Не можев да пренасочам кон опслужувачот: %s" - -#. TRANS: OpenID plugin user instructions. -#: openid.php:244 -msgid "" -"This form should automatically submit itself. If not, click the submit " -"button to go to your OpenID provider." -msgstr "" -"Овој образец би требало да се поднесе самиот. Ако тоа не се случи, кликнете " -"на копчето „Поднеси“ за да дојдете до Вашиот OpenID-услужник." - -#. TRANS: OpenID plugin server error. -#: openid.php:280 -msgid "Error saving the profile." -msgstr "Грешка при зачувувањето на профилот." - -#. TRANS: OpenID plugin server error. -#: openid.php:292 -msgid "Error saving the user." -msgstr "Грешка при зачувувањето на корисникот." - -#. TRANS: OpenID plugin client exception (403). -#: openid.php:322 -msgid "Unauthorized URL used for OpenID login." -msgstr "Употребена е неовластена URL-адреса за најавата со OpenID." - -#. TRANS: Title -#: openid.php:370 -msgid "OpenID Login Submission" -msgstr "Поднесување на најава со OpenID" - -#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. -#: openid.php:381 -msgid "Requesting authorization from your login provider..." -msgstr "Барам овластување од Вашиот услужител за најава..." - -#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. -#: openid.php:385 -msgid "" -"If you are not redirected to your login provider in a few seconds, try " -"pushing the button below." -msgstr "" -"Ако не бидете префрлени на Вашиот услужител за најава за неколку секунди, " -"тогаш пристиснете го копчето подолу." +msgid "Cancel" +msgstr "Откажи" #. TRANS: Tooltip for main menu option "Login" -#: OpenIDPlugin.php:218 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Најава на мреж. место" #. TRANS: Main menu option when not logged in to log in -#: OpenIDPlugin.php:221 msgctxt "MENU" msgid "Login" msgstr "Најава" #. TRANS: Tooltip for main menu option "Help" -#: OpenIDPlugin.php:226 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Напомош!" #. TRANS: Main menu option for help on the StatusNet site -#: OpenIDPlugin.php:229 msgctxt "MENU" msgid "Help" msgstr "Помош" #. TRANS: Tooltip for main menu option "Search" -#: OpenIDPlugin.php:235 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Пребарување на луѓе или текст" #. TRANS: Main menu option when logged in or when the StatusNet instance is not private -#: OpenIDPlugin.php:238 msgctxt "MENU" msgid "Search" msgstr "Пребарај" @@ -310,92 +77,73 @@ msgstr "Пребарај" #. TRANS: OpenID plugin menu item on site logon page. #. TRANS: OpenID plugin menu item on user settings page. #. TRANS: OpenID configuration menu item. -#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 msgctxt "MENU" msgid "OpenID" msgstr "OpenID" #. TRANS: OpenID plugin tooltip for logon menu item. -#: OpenIDPlugin.php:297 msgid "Login or register with OpenID" msgstr "Најава или регистрација со OpenID" #. TRANS: OpenID plugin tooltip for user settings menu item. -#: OpenIDPlugin.php:333 msgid "Add or remove OpenIDs" msgstr "Додај или отстрани OpenID-ја" #. TRANS: Tooltip for OpenID configuration menu item. -#: OpenIDPlugin.php:607 msgid "OpenID configuration" msgstr "Поставки за OpenID" #. TRANS: OpenID plugin description. -#: OpenIDPlugin.php:653 msgid "Use OpenID to login to the site." msgstr "Користете OpenID за најава." #. TRANS: button label for OAuth authorization page when needing OpenID authentication first. -#: OpenIDPlugin.php:663 msgctxt "BUTTON" msgid "Continue" msgstr "Продолжи" #. TRANS: OpenID plugin logon form legend. -#: OpenIDPlugin.php:680 openidlogin.php:132 msgid "OpenID login" msgstr "Најава со OpenID" #. TRANS: Field label. -#: OpenIDPlugin.php:688 openidlogin.php:139 msgid "OpenID provider" msgstr "Услужител за OpenID" #. TRANS: Form guide. -#: OpenIDPlugin.php:697 openidlogin.php:147 msgid "Enter your username." msgstr "Внесете го Вашето корисничко име." #. TRANS: Form guide. -#: OpenIDPlugin.php:699 openidlogin.php:148 msgid "You will be sent to the provider's site for authentication." msgstr "Ќе бидете префрлени на мреж. место на услужникот за потврда." +#. TRANS: OpenID plugin logon form field label. +msgid "OpenID URL" +msgstr "URL на OpenID" + #. TRANS: OpenID plugin logon form field instructions. -#: OpenIDPlugin.php:706 openidlogin.php:155 msgid "Your OpenID URL" msgstr "URL-адреса на Вашиот OpenID" -#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). -#: openidserver.php:116 -#, php-format -msgid "You are not authorized to use the identity %s." -msgstr "Не сте овластени да го користите идентитетот %s." - -#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). -#: openidserver.php:137 -msgid "Just an OpenID provider. Nothing to see here, move along..." -msgstr "" -"Ова е просто услужник за OpenID. Нема ништо интересно, продолжете понатаму..." - #. TRANS: Client error message trying to log on with OpenID while already logged on. -#: finishopenidlogin.php:37 openidlogin.php:33 msgid "Already logged in." msgstr "Веќе сте најавени." +#. TRANS: Message given when there is a problem with the user's session token. +msgid "There was a problem with your session token. Try again, please." +msgstr "Се појави проблем со жетонот на Вашата сесија. Обидете се подоцна." + #. TRANS: Message given if user does not agree with the site's license. -#: finishopenidlogin.php:48 msgid "You can't register if you don't agree to the license." msgstr "Не можете да се регистрирате ако не се согласувате со лиценцата." #. TRANS: Messag given on an unknown error. -#: finishopenidlogin.php:57 msgid "An unknown error has occured." msgstr "Се појави непозната грешка." #. TRANS: Instructions given after a first successful logon using OpenID. #. TRANS: %s is the site name. -#: finishopenidlogin.php:73 #, php-format msgid "" "This is the first time you've logged into %s so we must connect your OpenID " @@ -407,39 +155,31 @@ msgstr "" "се поврзете со Вашата постоечка сметка (ако ја имате)." #. TRANS: Title -#: finishopenidlogin.php:80 msgid "OpenID Account Setup" msgstr "Поставување на OpenID-сметка" -#: finishopenidlogin.php:117 msgid "Create new account" msgstr "Создај нова сметка" -#: finishopenidlogin.php:119 msgid "Create a new user with this nickname." msgstr "Создај нов корисник со овој прекар." -#: finishopenidlogin.php:126 msgid "New nickname" msgstr "Нов прекар" -#: finishopenidlogin.php:128 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 мали букви или бројки, без интерпункциски знаци и празни места" #. TRANS: Button label in form in which to create a new user on the site for an OpenID. -#: finishopenidlogin.php:162 msgctxt "BUTTON" msgid "Create" msgstr "Создај" #. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:176 msgid "Connect existing account" msgstr "Поврзи постоечка сметка" #. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:179 msgid "" "If you already have an account, login with your username and password to " "connect it to your OpenID." @@ -448,35 +188,29 @@ msgstr "" "поврзете со Вашиот OpenID." #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:183 msgid "Existing nickname" msgstr "Постоечки прекар" #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:187 msgid "Password" msgstr "Лозинка" #. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:191 msgctxt "BUTTON" msgid "Connect" msgstr "Поврзи се" #. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. -#: finishopenidlogin.php:237 finishaddopenid.php:90 msgid "OpenID authentication cancelled." msgstr "Потврдувањето на OpenID е откажано." #. TRANS: OpenID authentication failed; display the error message. %s is the error message. #. TRANS: OpenID authentication failed; display the error message. #. TRANS: %s is the error message. -#: finishopenidlogin.php:241 finishaddopenid.php:95 #, php-format msgid "OpenID authentication failed: %s" msgstr "Потврдувањето на OpenID не успеа: %s" -#: finishopenidlogin.php:261 finishaddopenid.php:111 msgid "" "OpenID authentication aborted: you are not allowed to login to this site." msgstr "" @@ -485,49 +219,271 @@ msgstr "" #. TRANS: OpenID plugin message. No new user registration is allowed on the site. #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. -#: finishopenidlogin.php:317 finishopenidlogin.php:327 msgid "Registration not allowed." msgstr "Регистрацијата не е дозволена." #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. -#: finishopenidlogin.php:335 msgid "Not a valid invitation code." msgstr "Ова не е важечки код за покана." #. TRANS: OpenID plugin message. The entered new user name is blacklisted. -#: finishopenidlogin.php:349 msgid "Nickname not allowed." msgstr "Прекарот не е дозволен." #. TRANS: OpenID plugin message. The entered new user name is already used. -#: finishopenidlogin.php:355 msgid "Nickname already in use. Try another one." msgstr "Прекарот е зафатен. Одберете друг." #. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. #. TRANS: OpenID plugin server error. A stored OpenID cannot be found. -#: finishopenidlogin.php:363 finishopenidlogin.php:449 msgid "Stored OpenID not found." msgstr "Складираниот OpenID не е пронајден." #. TRANS: OpenID plugin server error. -#: finishopenidlogin.php:373 msgid "Creating new account for OpenID that already has a user." msgstr "Создавање на сметка за OpenID што веќе има корисник." #. TRANS: OpenID plugin message. -#: finishopenidlogin.php:437 msgid "Invalid username or password." msgstr "Неважечко корисничко име или лозинка." #. TRANS: OpenID plugin server error. The user or user profile could not be saved. -#: finishopenidlogin.php:457 msgid "Error connecting user to OpenID." msgstr "Грешка при поврзувањето на корисникот со OpenID." +#. TRANS: OpenID plugin server error. +msgid "Cannot instantiate OpenID consumer object." +msgstr "Не можам да го повикам потрошувачкиот објект за OpenID." + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +msgid "Not a valid OpenID." +msgstr "Ова не е важечки OpenID." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#, php-format +msgid "OpenID failure: %s" +msgstr "OpenID не успеа: %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Не можев да пренасочам кон опслужувачот: %s" + +#. TRANS: OpenID plugin user instructions. +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Овој образец би требало да се поднесе самиот. Ако тоа не се случи, кликнете " +"на копчето „Поднеси“ за да дојдете до Вашиот OpenID-услужник." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the profile." +msgstr "Грешка при зачувувањето на профилот." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the user." +msgstr "Грешка при зачувувањето на корисникот." + +#. TRANS: OpenID plugin client exception (403). +msgid "Unauthorized URL used for OpenID login." +msgstr "Употребена е неовластена URL-адреса за најавата со OpenID." + +#. TRANS: Title +msgid "OpenID Login Submission" +msgstr "Поднесување на најава со OpenID" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +msgid "Requesting authorization from your login provider..." +msgstr "Барам овластување од Вашиот услужител за најава..." + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Ако не бидете префрлени на Вашиот услужител за најава за неколку секунди, " +"тогаш пристиснете го копчето подолу." + +msgid "OpenID" +msgstr "OpenID" + +msgid "OpenID settings" +msgstr "Нагодувања за OpenID" + +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "Неважечка URL-адреса за услужителот. Дозволени се највеќе 255 знаци." + +msgid "Invalid team name. Max length is 255 characters." +msgstr "Неважечко екипно име. Дозволени се највеќе 255 знаци." + +msgid "Trusted provider" +msgstr "Услужник од доверба" + +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"Корисниците по основно можат да се потврдат со било кој OpenID-услужник. " +"Доколку користите сопствена OpenID-сужба за заедничка најава, тука можете да " +"им доделите право на пристап само на Вашите корисници." + +msgid "Provider URL" +msgstr "URL-адреса на услужникот" + +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Сите OpenID-најави ќе бидат испратени на следнава URL-адреса. Нема да можат " +"да се користат други услужници." + +msgid "Append a username to base URL" +msgstr "Приложи корисничко име кон основната URL-адреса" + +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"Образецот за најава ќе ја прикаже основната URL-адреса и ќе Ви побара на " +"крајот да додадете корисничко име. Користете го ова кога URL-адресата на " +"OpenID-услужникот треба да биде профилната страница за поединечни корисници." + +msgid "Required team" +msgstr "Потребна екипа" + +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Дозволувај само најави на корисници од дадената екипа (додаток „Launchpad“)." + +msgid "Options" +msgstr "Нагодувања" + +msgid "Enable OpenID-only mode" +msgstr "Вклучи режим „само OpenID“" + +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Барај од сите корисници да се најавуваат преку OpenID. ПРЕДУПРЕДУВАЊЕ: ова " +"ја оневозможува потврдата на лозинка за сите корисници!" + +msgid "Save OpenID settings" +msgstr "Зачувај нагодувања за OpenID" + +#. TRANS: Client error message +msgid "Not logged in." +msgstr "Не сте најавени." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +msgid "You already have this OpenID!" +msgstr "Веќе го имате овој OpenID!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +msgid "Someone else already has this OpenID." +msgstr "Некој друг веќе го зафатил ова OpenID." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +msgid "Error connecting user." +msgstr "Грешка при поврзувањето на корисникот." + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +msgid "Error updating profile" +msgstr "Грешка при подновувањето на профилот" + +#. TRANS: Title after getting the status of the OpenID authorisation request. +#. TRANS: OpenID plugin message. Title. +msgid "OpenID Login" +msgstr "OpenID-Најава" + +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"[OpenID](%%doc.openid%%) Ви дава можност да се најавувате на многубројни " +"мреж. места со една иста сметка. Од ова место можете да раководите со Вашите " +"OpenID-ја." + +msgid "Add OpenID" +msgstr "Додај OpenID" + +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Доколку не сакате да приложите OpenID кон Вашата сметка, тогаш внесете ја во " +"полето подолу и кликнете на „Додај“." + +msgid "Add" +msgstr "Додај" + +msgid "Remove OpenID" +msgstr "Отстрани OpenID" + +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Ако го отстраните Вашиот единствен OpenID, тогаш нема да можете да се " +"најавите! Ако треба да го отстраните, тогаш најпрвин додадете друг OpenID." + +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "Отстранувањето на OpenID од сметката се врши преку копчето „Отстрани“." + +msgid "Remove" +msgstr "Отстрани" + +msgid "OpenID Trusted Sites" +msgstr "Мреж. места од доверба на OpenID" + +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"Следниве мреж. места имаат дозволен пристап до Вашиот идентитет и дозвола за " +"да Ве најават. Ако сакате некое мрежно место да нема пристап до Вашиот " +"OpenID, тогаш отстранете го од списоков." + +msgid "Can't add new providers." +msgstr "Не можам да додадам нови услужители." + +msgid "Something weird happened." +msgstr "Се случи нешто чудно." + +msgid "No such OpenID trustroot." +msgstr "Нема таков довербен извор (trustroot) за OpenID" + +msgid "Trustroots removed" +msgstr "Довербените извори (trustroots) се отстранети" + +msgid "No such OpenID." +msgstr "Нема таков OpenID." + +msgid "That OpenID does not belong to you." +msgstr "Тој OpenID не Ви припаѓа Вам." + +msgid "OpenID removed." +msgstr "OpenID е отстранет." + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "Не сте овластени да го користите идентитетот %s." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" +"Ова е просто услужник за OpenID. Нема ништо интересно, продолжете понатаму..." + #. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:74 #, php-format msgid "" "For security reasons, please re-login with your [OpenID](%%doc.openid%%) " @@ -538,83 +494,20 @@ msgstr "" #. TRANS: OpenID plugin message. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:80 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "Најава со сметка на [OpenID](%%doc.openid%%)." -#. TRANS: OpenID plugin message. Title. -#. TRANS: Title after getting the status of the OpenID authorisation request. -#: openidlogin.php:114 finishaddopenid.php:187 -msgid "OpenID Login" -msgstr "OpenID-Најава" - #. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. -#: openidlogin.php:160 msgid "Remember me" msgstr "Запомни ме" #. TRANS: OpenID plugin logon form field instructions. -#: openidlogin.php:162 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Отсега врши автоматска најава. Не треба да се користи за јавни сметачи!" #. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. -#: openidlogin.php:167 msgctxt "BUTTON" msgid "Login" msgstr "Најава" - -#: openidtrust.php:52 -msgid "OpenID Identity Verification" -msgstr "OpenID - потврда на идентитет" - -#: openidtrust.php:70 -msgid "" -"This page should only be reached during OpenID processing, not directly." -msgstr "" -"До оваа страница треба да се доаѓа само во текот на постапката на OpenID, а " -"не директно." - -#: openidtrust.php:118 -#, php-format -msgid "" -"%s has asked to verify your identity. Click Continue to verify your " -"identity and login without creating a new password." -msgstr "" -"%s побара да го потврдите Вашиот идентитет. Кликнете на „Продолжи“ за да " -"потврдите и да се најавите без да треба да ставате нова лозинка." - -#: openidtrust.php:136 -msgid "Continue" -msgstr "Продолжи" - -#: openidtrust.php:137 -msgid "Cancel" -msgstr "Откажи" - -#. TRANS: Client error message -#: finishaddopenid.php:68 -msgid "Not logged in." -msgstr "Не сте најавени." - -#. TRANS: message in case a user tries to add an OpenID that is already connected to them. -#: finishaddopenid.php:122 -msgid "You already have this OpenID!" -msgstr "Веќе го имате овој OpenID!" - -#. TRANS: message in case a user tries to add an OpenID that is already used by another user. -#: finishaddopenid.php:125 -msgid "Someone else already has this OpenID." -msgstr "Некој друг веќе го зафатил ова OpenID." - -#. TRANS: message in case the OpenID object cannot be connected to the user. -#: finishaddopenid.php:138 -msgid "Error connecting user." -msgstr "Грешка при поврзувањето на корисникот." - -#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. -#: finishaddopenid.php:145 -msgid "Error updating profile" -msgstr "Грешка при подновувањето на профилот" diff --git a/plugins/OpenID/locale/nl/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/nl/LC_MESSAGES/OpenID.po index 9ffbb1bc74..5045c813f5 100644 --- a/plugins/OpenID/locale/nl/LC_MESSAGES/OpenID.po +++ b/plugins/OpenID/locale/nl/LC_MESSAGES/OpenID.po @@ -10,305 +10,70 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenID\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:34+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:19+0000\n" "Last-Translator: Siebrand Mazeland \n" "Language-Team: Dutch \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-POT-Import-Date: 2011-02-14 17:22:00+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-openid\n" -#: openidsettings.php:58 openidadminpanel.php:65 -msgid "OpenID settings" -msgstr "OpenID-instellingen" +msgid "OpenID Identity Verification" +msgstr "OpenID-identiteitscontrole" + +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"Deze pagina hoort alleen bezocht te worden tijdens het verwerken van een " +"OpenID, en niet direct." -#: openidsettings.php:69 #, php-format msgid "" -"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " -"account. Manage your associated OpenIDs from here." +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." msgstr "" -"Met [OpenID](%%doc.openid%%) kunt u aanmelden bij veel websites met dezelfde " -"gebruiker. U kunt hier uw gekoppelde OpenID's beheren." +"%s heeft gevraagd uw identiteit te bevestigen. Klik op \"Doorgaan\" om uw " +"indentiteit te controleren en aan te melden zonder een wachtwoord te hoeven " +"invoeren." -#: openidsettings.php:100 -msgid "Add OpenID" -msgstr "OpenID toevoegen" +msgid "Continue" +msgstr "Doorgaan" -#: openidsettings.php:103 -msgid "" -"If you want to add an OpenID to your account, enter it in the box below and " -"click \"Add\"." -msgstr "" -"Als u een OpenID aan uw gebruiker wilt toevoegen, voer deze dan hieronder in " -"en klik op \"Toevoegen\"." - -#. TRANS: OpenID plugin logon form field label. -#: openidsettings.php:108 OpenIDPlugin.php:703 openidlogin.php:152 -msgid "OpenID URL" -msgstr "OpenID-URL" - -#: openidsettings.php:118 -msgid "Add" -msgstr "Toevoegen" - -#: openidsettings.php:130 -msgid "Remove OpenID" -msgstr "OpenID verwijderen" - -#: openidsettings.php:135 -msgid "" -"Removing your only OpenID would make it impossible to log in! If you need to " -"remove it, add another OpenID first." -msgstr "" -"Door uw enige OpenID te verwijderen zou het niet meer mogelijk zijn om aan " -"te melden. Als u het wilt verwijderen, voeg dan eerst een andere OpenID toe." - -#: openidsettings.php:150 -msgid "" -"You can remove an OpenID from your account by clicking the button marked " -"\"Remove\"." -msgstr "" -"U kunt een OpenID van uw gebruiker verwijderen door te klikken op de knop " -"\"Verwijderen\"." - -#: openidsettings.php:173 openidsettings.php:214 -msgid "Remove" -msgstr "Verwijderen" - -#: openidsettings.php:187 -msgid "OpenID Trusted Sites" -msgstr "Vertrouwde OpenID-sites" - -#: openidsettings.php:190 -msgid "" -"The following sites are allowed to access your identity and log you in. You " -"can remove a site from this list to deny it access to your OpenID." -msgstr "" -"De volgende sites hebben toegang tot uw indentiteit en kunnen u aanmelden. U " -"kunt een site verwijderen uit deze lijst zodat deze niet langer toegang " -"heeft tot uw OpenID." - -#. TRANS: Message given when there is a problem with the user's session token. -#: openidsettings.php:232 finishopenidlogin.php:42 -msgid "There was a problem with your session token. Try again, please." -msgstr "Er was een probleem met uw sessietoken. Probeer het opnieuw." - -#: openidsettings.php:239 -msgid "Can't add new providers." -msgstr "Het niet is mogelijk nieuwe providers toe te voegen." - -#: openidsettings.php:252 -msgid "Something weird happened." -msgstr "Er is iets vreemds gebeurd." - -#: openidsettings.php:276 -msgid "No such OpenID trustroot." -msgstr "Die OpenID trustroot bestaat niet." - -#: openidsettings.php:280 -msgid "Trustroots removed" -msgstr "De trustroots zijn verwijderd" - -#: openidsettings.php:303 -msgid "No such OpenID." -msgstr "De OpenID bestaat niet." - -#: openidsettings.php:308 -msgid "That OpenID does not belong to you." -msgstr "Die OpenID is niet van u." - -#: openidsettings.php:312 -msgid "OpenID removed." -msgstr "OpenID verwijderd." - -#: openidadminpanel.php:54 -msgid "OpenID" -msgstr "OpenID" - -#: openidadminpanel.php:147 -msgid "Invalid provider URL. Max length is 255 characters." -msgstr "De URL voor de provider is ongeldig. De maximale lengte is 255 tekens." - -#: openidadminpanel.php:153 -msgid "Invalid team name. Max length is 255 characters." -msgstr "De teamnaam is ongeldig. De maximale lengte is 255 tekens." - -#: openidadminpanel.php:210 -msgid "Trusted provider" -msgstr "Vertrouwde provider" - -#: openidadminpanel.php:212 -msgid "" -"By default, users are allowed to authenticate with any OpenID provider. If " -"you are using your own OpenID service for shared sign-in, you can restrict " -"access to only your own users here." -msgstr "" -"Gebruikers is het standaard toegestaan aan te melden via alle OpenID-" -"providers. Als u uw eigen OpenID-dienst gebruikt voor gedeeld aanmelden, dan " -"kunt u hier de toegang beperken tot alleen uw eigen gebruikers." - -#: openidadminpanel.php:220 -msgid "Provider URL" -msgstr "URL van provider" - -#: openidadminpanel.php:221 -msgid "" -"All OpenID logins will be sent to this URL; other providers may not be used." -msgstr "" -"Alle aanmeldpogingen voor OpenID worden naar deze URL gezonden. Andere " -"providers kunnen niet gebruikt worden." - -#: openidadminpanel.php:228 -msgid "Append a username to base URL" -msgstr "Gebruikersnaam aan basis-URL toevoegen" - -#: openidadminpanel.php:230 -msgid "" -"Login form will show the base URL and prompt for a username to add at the " -"end. Use when OpenID provider URL should be the profile page for individual " -"users." -msgstr "" -"Het aanmeldformulier geeft de basis-URL weer en vraag om achteraan een " -"gebruikersnaam toe te voegen. Gebruik deze instelling als de URL van een " -"OpenID-provider de profielpagina van individuele gebruikers moet zijn." - -#: openidadminpanel.php:238 -msgid "Required team" -msgstr "Vereist team" - -#: openidadminpanel.php:239 -msgid "Only allow logins from users in the given team (Launchpad extension)." -msgstr "" -"Alleen leden van een bepaald team toestaan aan te melden (uitbreiding van " -"Launchpad)." - -#: openidadminpanel.php:251 -msgid "Options" -msgstr "Opties" - -#: openidadminpanel.php:258 -msgid "Enable OpenID-only mode" -msgstr "Alleen OpenID inschakelen" - -#: openidadminpanel.php:260 -msgid "" -"Require all users to login via OpenID. Warning: disables password " -"authentication for all users!" -msgstr "" -"Alle gebruikers verplichten aan te melden via OpenID. Waarschuwing: als deze " -"instelling wordt gebruikt, kan geen enkele gebruiker met een wachtwoord " -"aanmelden!" - -#: openidadminpanel.php:278 -msgid "Save OpenID settings" -msgstr "OpenID-instellingen opslaan" - -#. TRANS: OpenID plugin server error. -#: openid.php:138 -msgid "Cannot instantiate OpenID consumer object." -msgstr "Het was niet mogelijk een OpenID-object aan te maken." - -#. TRANS: OpenID plugin message. Given when an OpenID is not valid. -#: openid.php:150 -msgid "Not a valid OpenID." -msgstr "Geen geldige OpenID." - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. -#. TRANS: %s is the failure message. -#: openid.php:155 -#, php-format -msgid "OpenID failure: %s" -msgstr "OpenID-fout: %s" - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. -#. TRANS: %s is the failure message. -#: openid.php:205 -#, php-format -msgid "Could not redirect to server: %s" -msgstr "Het was niet mogelijk door te verwijzen naar de server: %s" - -#. TRANS: OpenID plugin user instructions. -#: openid.php:244 -msgid "" -"This form should automatically submit itself. If not, click the submit " -"button to go to your OpenID provider." -msgstr "" -"Dit formulier hoort zichzelf automatisch op te slaan. Als dat niet gebeurt, " -"klik dan op de knop \"Aanmelden\" om naar uw OpenID-provider te gaan." - -#. TRANS: OpenID plugin server error. -#: openid.php:280 -msgid "Error saving the profile." -msgstr "Fout bij het opslaan van het profiel." - -#. TRANS: OpenID plugin server error. -#: openid.php:292 -msgid "Error saving the user." -msgstr "Fout bij het opslaan van de gebruiker." - -#. TRANS: OpenID plugin client exception (403). -#: openid.php:322 -msgid "Unauthorized URL used for OpenID login." -msgstr "Ongeautoriseerde URL gebruikt voor aanmelden via OpenID" - -#. TRANS: Title -#: openid.php:370 -msgid "OpenID Login Submission" -msgstr "Aanmelden via OpenID" - -#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. -#: openid.php:381 -msgid "Requesting authorization from your login provider..." -msgstr "Bezig met het vragen van autorisatie van uw aanmeldprovider..." - -#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. -#: openid.php:385 -msgid "" -"If you are not redirected to your login provider in a few seconds, try " -"pushing the button below." -msgstr "" -"Als u binnen een aantal seconden niet wordt doorverwezen naar uw " -"aanmeldprovider, klik dan op de onderstaande knop." +msgid "Cancel" +msgstr "Annuleren" #. TRANS: Tooltip for main menu option "Login" -#: OpenIDPlugin.php:218 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Aanmelden bij de site" #. TRANS: Main menu option when not logged in to log in -#: OpenIDPlugin.php:221 msgctxt "MENU" msgid "Login" msgstr "Aanmelden" #. TRANS: Tooltip for main menu option "Help" -#: OpenIDPlugin.php:226 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Help me" #. TRANS: Main menu option for help on the StatusNet site -#: OpenIDPlugin.php:229 msgctxt "MENU" msgid "Help" msgstr "Hulp" #. TRANS: Tooltip for main menu option "Search" -#: OpenIDPlugin.php:235 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Zoeken naar mensen of tekst" #. TRANS: Main menu option when logged in or when the StatusNet instance is not private -#: OpenIDPlugin.php:238 msgctxt "MENU" msgid "Search" msgstr "Zoeken" @@ -316,93 +81,75 @@ msgstr "Zoeken" #. TRANS: OpenID plugin menu item on site logon page. #. TRANS: OpenID plugin menu item on user settings page. #. TRANS: OpenID configuration menu item. -#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 msgctxt "MENU" msgid "OpenID" msgstr "OpenID" #. TRANS: OpenID plugin tooltip for logon menu item. -#: OpenIDPlugin.php:297 msgid "Login or register with OpenID" msgstr "Aanmelden of registreren met OpenID" #. TRANS: OpenID plugin tooltip for user settings menu item. -#: OpenIDPlugin.php:333 msgid "Add or remove OpenIDs" msgstr "OpenID's toevoegen of verwijderen" #. TRANS: Tooltip for OpenID configuration menu item. -#: OpenIDPlugin.php:607 msgid "OpenID configuration" msgstr "OpenID-instellingen" #. TRANS: OpenID plugin description. -#: OpenIDPlugin.php:653 msgid "Use OpenID to login to the site." msgstr "" "Gebruik OpenID om aan te melden bij de " "site." #. TRANS: button label for OAuth authorization page when needing OpenID authentication first. -#: OpenIDPlugin.php:663 msgctxt "BUTTON" msgid "Continue" msgstr "Continue" #. TRANS: OpenID plugin logon form legend. -#: OpenIDPlugin.php:680 openidlogin.php:132 msgid "OpenID login" msgstr "Aanmelden via OpenID" #. TRANS: Field label. -#: OpenIDPlugin.php:688 openidlogin.php:139 msgid "OpenID provider" msgstr "OpenID-provider" #. TRANS: Form guide. -#: OpenIDPlugin.php:697 openidlogin.php:147 msgid "Enter your username." msgstr "Voer uw gebruikersnaam in" #. TRANS: Form guide. -#: OpenIDPlugin.php:699 openidlogin.php:148 msgid "You will be sent to the provider's site for authentication." msgstr "U wordt naar de site van de provider omgeleid om aan te melden." +#. TRANS: OpenID plugin logon form field label. +msgid "OpenID URL" +msgstr "OpenID-URL" + #. TRANS: OpenID plugin logon form field instructions. -#: OpenIDPlugin.php:706 openidlogin.php:155 msgid "Your OpenID URL" msgstr "Uw OpenID-URL" -#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). -#: openidserver.php:116 -#, php-format -msgid "You are not authorized to use the identity %s." -msgstr "U mag de identiteit %s niet gebruiken." - -#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). -#: openidserver.php:137 -msgid "Just an OpenID provider. Nothing to see here, move along..." -msgstr "Gewoon een OpenID-provider. Niets te zien hier..." - #. TRANS: Client error message trying to log on with OpenID while already logged on. -#: finishopenidlogin.php:37 openidlogin.php:33 msgid "Already logged in." msgstr "U bent al aangemeld." +#. TRANS: Message given when there is a problem with the user's session token. +msgid "There was a problem with your session token. Try again, please." +msgstr "Er was een probleem met uw sessietoken. Probeer het opnieuw." + #. TRANS: Message given if user does not agree with the site's license. -#: finishopenidlogin.php:48 msgid "You can't register if you don't agree to the license." msgstr "U kunt niet registreren als u niet akkoord gaat met de licentie." #. TRANS: Messag given on an unknown error. -#: finishopenidlogin.php:57 msgid "An unknown error has occured." msgstr "Er is een onbekende fout opgetreden." #. TRANS: Instructions given after a first successful logon using OpenID. #. TRANS: %s is the site name. -#: finishopenidlogin.php:73 #, php-format msgid "" "This is the first time you've logged into %s so we must connect your OpenID " @@ -414,39 +161,31 @@ msgstr "" "koppelen met uw bestaande gebruiker als u die al hebt." #. TRANS: Title -#: finishopenidlogin.php:80 msgid "OpenID Account Setup" msgstr "Instellingen OpenID" -#: finishopenidlogin.php:117 msgid "Create new account" msgstr "Nieuwe gebruiker aanmaken" -#: finishopenidlogin.php:119 msgid "Create a new user with this nickname." msgstr "Nieuwe gebruiker met deze naam aanmaken." -#: finishopenidlogin.php:126 msgid "New nickname" msgstr "Nieuwe gebruiker" -#: finishopenidlogin.php:128 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "1-64 kleine letters of getallen; geen leestekens of spaties" #. TRANS: Button label in form in which to create a new user on the site for an OpenID. -#: finishopenidlogin.php:162 msgctxt "BUTTON" msgid "Create" msgstr "Aanmaken" #. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:176 msgid "Connect existing account" msgstr "Koppelen met bestaande gebruiker" #. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:179 msgid "" "If you already have an account, login with your username and password to " "connect it to your OpenID." @@ -455,35 +194,29 @@ msgstr "" "wachtwoord om de gebruiker te koppelen met uw OpenID." #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:183 msgid "Existing nickname" msgstr "Bestaande gebruiker" #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:187 msgid "Password" msgstr "Wachtwoord" #. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:191 msgctxt "BUTTON" msgid "Connect" msgstr "Koppelen" #. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. -#: finishopenidlogin.php:237 finishaddopenid.php:90 msgid "OpenID authentication cancelled." msgstr "De authenticatie via OpenID is afgebroken." #. TRANS: OpenID authentication failed; display the error message. %s is the error message. #. TRANS: OpenID authentication failed; display the error message. #. TRANS: %s is the error message. -#: finishopenidlogin.php:241 finishaddopenid.php:95 #, php-format msgid "OpenID authentication failed: %s" msgstr "De authenticatie via OpenID is mislukt: %s" -#: finishopenidlogin.php:261 finishaddopenid.php:111 msgid "" "OpenID authentication aborted: you are not allowed to login to this site." msgstr "" @@ -491,49 +224,273 @@ msgstr "" #. TRANS: OpenID plugin message. No new user registration is allowed on the site. #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. -#: finishopenidlogin.php:317 finishopenidlogin.php:327 msgid "Registration not allowed." msgstr "Registreren is niet mogelijk." #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. -#: finishopenidlogin.php:335 msgid "Not a valid invitation code." msgstr "De uitnodigingscode is niet geldig." #. TRANS: OpenID plugin message. The entered new user name is blacklisted. -#: finishopenidlogin.php:349 msgid "Nickname not allowed." msgstr "Deze gebruikersnaam is niet toegestaan." #. TRANS: OpenID plugin message. The entered new user name is already used. -#: finishopenidlogin.php:355 msgid "Nickname already in use. Try another one." msgstr "Deze gebruikersnaam wordt al gebruikt. Kies een andere." #. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. #. TRANS: OpenID plugin server error. A stored OpenID cannot be found. -#: finishopenidlogin.php:363 finishopenidlogin.php:449 msgid "Stored OpenID not found." msgstr "Het opgeslagen OpenID is niet aangetroffen." #. TRANS: OpenID plugin server error. -#: finishopenidlogin.php:373 msgid "Creating new account for OpenID that already has a user." msgstr "Poging tot aanmaken van een OpenID-account dat al een gebruiker heeft." #. TRANS: OpenID plugin message. -#: finishopenidlogin.php:437 msgid "Invalid username or password." msgstr "Ongeldige gebruikersnaam of wachtwoord." #. TRANS: OpenID plugin server error. The user or user profile could not be saved. -#: finishopenidlogin.php:457 msgid "Error connecting user to OpenID." msgstr "Fout bij het koppelen met OpenID." +#. TRANS: OpenID plugin server error. +msgid "Cannot instantiate OpenID consumer object." +msgstr "Het was niet mogelijk een OpenID-object aan te maken." + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +msgid "Not a valid OpenID." +msgstr "Geen geldige OpenID." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#, php-format +msgid "OpenID failure: %s" +msgstr "OpenID-fout: %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Het was niet mogelijk door te verwijzen naar de server: %s" + +#. TRANS: OpenID plugin user instructions. +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Dit formulier hoort zichzelf automatisch op te slaan. Als dat niet gebeurt, " +"klik dan op de knop \"Aanmelden\" om naar uw OpenID-provider te gaan." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the profile." +msgstr "Fout bij het opslaan van het profiel." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the user." +msgstr "Fout bij het opslaan van de gebruiker." + +#. TRANS: OpenID plugin client exception (403). +msgid "Unauthorized URL used for OpenID login." +msgstr "Ongeautoriseerde URL gebruikt voor aanmelden via OpenID" + +#. TRANS: Title +msgid "OpenID Login Submission" +msgstr "Aanmelden via OpenID" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +msgid "Requesting authorization from your login provider..." +msgstr "Bezig met het vragen van autorisatie van uw aanmeldprovider..." + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Als u binnen een aantal seconden niet wordt doorverwezen naar uw " +"aanmeldprovider, klik dan op de onderstaande knop." + +msgid "OpenID" +msgstr "OpenID" + +msgid "OpenID settings" +msgstr "OpenID-instellingen" + +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "De URL voor de provider is ongeldig. De maximale lengte is 255 tekens." + +msgid "Invalid team name. Max length is 255 characters." +msgstr "De teamnaam is ongeldig. De maximale lengte is 255 tekens." + +msgid "Trusted provider" +msgstr "Vertrouwde provider" + +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"Gebruikers is het standaard toegestaan aan te melden via alle OpenID-" +"providers. Als u uw eigen OpenID-dienst gebruikt voor gedeeld aanmelden, dan " +"kunt u hier de toegang beperken tot alleen uw eigen gebruikers." + +msgid "Provider URL" +msgstr "URL van provider" + +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Alle aanmeldpogingen voor OpenID worden naar deze URL gezonden. Andere " +"providers kunnen niet gebruikt worden." + +msgid "Append a username to base URL" +msgstr "Gebruikersnaam aan basis-URL toevoegen" + +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"Het aanmeldformulier geeft de basis-URL weer en vraag om achteraan een " +"gebruikersnaam toe te voegen. Gebruik deze instelling als de URL van een " +"OpenID-provider de profielpagina van individuele gebruikers moet zijn." + +msgid "Required team" +msgstr "Vereist team" + +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Alleen leden van een bepaald team toestaan aan te melden (uitbreiding van " +"Launchpad)." + +msgid "Options" +msgstr "Opties" + +msgid "Enable OpenID-only mode" +msgstr "Alleen OpenID inschakelen" + +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Alle gebruikers verplichten aan te melden via OpenID. Waarschuwing: als deze " +"instelling wordt gebruikt, kan geen enkele gebruiker met een wachtwoord " +"aanmelden!" + +msgid "Save OpenID settings" +msgstr "OpenID-instellingen opslaan" + +#. TRANS: Client error message +msgid "Not logged in." +msgstr "Niet aangemeld." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +msgid "You already have this OpenID!" +msgstr "U hebt deze OpenID al!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +msgid "Someone else already has this OpenID." +msgstr "Iemand anders gebruikt deze OpenID al." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +msgid "Error connecting user." +msgstr "Fout bij het verbinden met de gebruiker." + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +msgid "Error updating profile" +msgstr "Fout bij het bijwerken van het profiel." + +#. TRANS: Title after getting the status of the OpenID authorisation request. +#. TRANS: OpenID plugin message. Title. +msgid "OpenID Login" +msgstr "Aanmelden via OpenID" + +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"Met [OpenID](%%doc.openid%%) kunt u aanmelden bij veel websites met dezelfde " +"gebruiker. U kunt hier uw gekoppelde OpenID's beheren." + +msgid "Add OpenID" +msgstr "OpenID toevoegen" + +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Als u een OpenID aan uw gebruiker wilt toevoegen, voer deze dan hieronder in " +"en klik op \"Toevoegen\"." + +msgid "Add" +msgstr "Toevoegen" + +msgid "Remove OpenID" +msgstr "OpenID verwijderen" + +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Door uw enige OpenID te verwijderen zou het niet meer mogelijk zijn om aan " +"te melden. Als u het wilt verwijderen, voeg dan eerst een andere OpenID toe." + +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" +"U kunt een OpenID van uw gebruiker verwijderen door te klikken op de knop " +"\"Verwijderen\"." + +msgid "Remove" +msgstr "Verwijderen" + +msgid "OpenID Trusted Sites" +msgstr "Vertrouwde OpenID-sites" + +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"De volgende sites hebben toegang tot uw indentiteit en kunnen u aanmelden. U " +"kunt een site verwijderen uit deze lijst zodat deze niet langer toegang " +"heeft tot uw OpenID." + +msgid "Can't add new providers." +msgstr "Het niet is mogelijk nieuwe providers toe te voegen." + +msgid "Something weird happened." +msgstr "Er is iets vreemds gebeurd." + +msgid "No such OpenID trustroot." +msgstr "Die OpenID trustroot bestaat niet." + +msgid "Trustroots removed" +msgstr "De trustroots zijn verwijderd" + +msgid "No such OpenID." +msgstr "De OpenID bestaat niet." + +msgid "That OpenID does not belong to you." +msgstr "Die OpenID is niet van u." + +msgid "OpenID removed." +msgstr "OpenID verwijderd." + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "U mag de identiteit %s niet gebruiken." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "Gewoon een OpenID-provider. Niets te zien hier..." + #. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:74 #, php-format msgid "" "For security reasons, please re-login with your [OpenID](%%doc.openid%%) " @@ -544,84 +501,20 @@ msgstr "" #. TRANS: OpenID plugin message. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:80 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "Aanmelden met een [OpenID](%%doc.openid%%)-gebruiker." -#. TRANS: OpenID plugin message. Title. -#. TRANS: Title after getting the status of the OpenID authorisation request. -#: openidlogin.php:114 finishaddopenid.php:187 -msgid "OpenID Login" -msgstr "Aanmelden via OpenID" - #. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. -#: openidlogin.php:160 msgid "Remember me" msgstr "Aanmeldgegevens onthouden" #. TRANS: OpenID plugin logon form field instructions. -#: openidlogin.php:162 msgid "Automatically login in the future; not for shared computers!" msgstr "" "In het vervolg automatisch aanmelden. Niet gebruiken op gedeelde computers!" #. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. -#: openidlogin.php:167 msgctxt "BUTTON" msgid "Login" msgstr "Aanmelden" - -#: openidtrust.php:52 -msgid "OpenID Identity Verification" -msgstr "OpenID-identiteitscontrole" - -#: openidtrust.php:70 -msgid "" -"This page should only be reached during OpenID processing, not directly." -msgstr "" -"Deze pagina hoort alleen bezocht te worden tijdens het verwerken van een " -"OpenID, en niet direct." - -#: openidtrust.php:118 -#, php-format -msgid "" -"%s has asked to verify your identity. Click Continue to verify your " -"identity and login without creating a new password." -msgstr "" -"%s heeft gevraagd uw identiteit te bevestigen. Klik op \"Doorgaan\" om uw " -"indentiteit te controleren en aan te melden zonder een wachtwoord te hoeven " -"invoeren." - -#: openidtrust.php:136 -msgid "Continue" -msgstr "Doorgaan" - -#: openidtrust.php:137 -msgid "Cancel" -msgstr "Annuleren" - -#. TRANS: Client error message -#: finishaddopenid.php:68 -msgid "Not logged in." -msgstr "Niet aangemeld." - -#. TRANS: message in case a user tries to add an OpenID that is already connected to them. -#: finishaddopenid.php:122 -msgid "You already have this OpenID!" -msgstr "U hebt deze OpenID al!" - -#. TRANS: message in case a user tries to add an OpenID that is already used by another user. -#: finishaddopenid.php:125 -msgid "Someone else already has this OpenID." -msgstr "Iemand anders gebruikt deze OpenID al." - -#. TRANS: message in case the OpenID object cannot be connected to the user. -#: finishaddopenid.php:138 -msgid "Error connecting user." -msgstr "Fout bij het verbinden met de gebruiker." - -#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. -#: finishaddopenid.php:145 -msgid "Error updating profile" -msgstr "Fout bij het bijwerken van het profiel." diff --git a/plugins/OpenID/locale/tl/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/tl/LC_MESSAGES/OpenID.po index fba73ad1ed..1c31849412 100644 --- a/plugins/OpenID/locale/tl/LC_MESSAGES/OpenID.po +++ b/plugins/OpenID/locale/tl/LC_MESSAGES/OpenID.po @@ -9,313 +9,68 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenID\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:34+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:19+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:00+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-openid\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: openidsettings.php:58 openidadminpanel.php:65 -msgid "OpenID settings" -msgstr "Mga katakdaan ng OpenID" +msgid "OpenID Identity Verification" +msgstr "Pagpapatunay sa Katauhan ng OpenID" + +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"Ang pahinang ito ay dapat lamang na maabot habang pinoproseso ang OpenID, " +"hindi tuwiran." -#: openidsettings.php:69 #, php-format msgid "" -"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " -"account. Manage your associated OpenIDs from here." +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." msgstr "" -"Nagpapahintulot ang [OpenID](%%doc.openid%%) na makalagda ka sa maraming mga " -"sityong may katulad na akawnt ng tagagamit. Pamahalaan ang iyong kaugnay na " -"mga OpenID mula rito." +"Hiniling ng/ni %s na patunayan ang iyong katauhan. Pindutin ang Magpatuloy " +"upang tiyakin ang iyong katauhan at lumagdang hindi lumilikha ng isang " +"bagong hudyat." -#: openidsettings.php:100 -msgid "Add OpenID" -msgstr "Idagdag ang OpenID" +msgid "Continue" +msgstr "Magpatuloy" -#: openidsettings.php:103 -msgid "" -"If you want to add an OpenID to your account, enter it in the box below and " -"click \"Add\"." -msgstr "" -"Kung nais mong magdagdag ng isang OpenID sa akawnt mo, ipasok ito sa kahong " -"nasa ibaba at pindutin ang \"Idagdag\"." - -#. TRANS: OpenID plugin logon form field label. -#: openidsettings.php:108 OpenIDPlugin.php:703 openidlogin.php:152 -msgid "OpenID URL" -msgstr "URL ng OpenID" - -#: openidsettings.php:118 -msgid "Add" -msgstr "Idagdag" - -#: openidsettings.php:130 -msgid "Remove OpenID" -msgstr "Tanggalin ang OpenID" - -#: openidsettings.php:135 -msgid "" -"Removing your only OpenID would make it impossible to log in! If you need to " -"remove it, add another OpenID first." -msgstr "" -"Ang pagtatanggal ng iyong OpenID lamang ay makasasanhi ng imposibleng " -"paglagda! Kung kailangan mong tanggalin ito, magdagdag ng ibang OpenID muna." - -#: openidsettings.php:150 -msgid "" -"You can remove an OpenID from your account by clicking the button marked " -"\"Remove\"." -msgstr "" -"Matatanggap mo ang isang OpenID mula sa akawnt mo sa pamamagitan ng " -"pagpindot sa pindutang may tatak na \"Tanggalin\"." - -#: openidsettings.php:173 openidsettings.php:214 -msgid "Remove" -msgstr "Tanggalin" - -#: openidsettings.php:187 -msgid "OpenID Trusted Sites" -msgstr "Pinagkakatiwalaang mga Sityo ng OpenID" - -#: openidsettings.php:190 -msgid "" -"The following sites are allowed to access your identity and log you in. You " -"can remove a site from this list to deny it access to your OpenID." -msgstr "" -"Ang sumusunod na mga sityo ay pinapahintulutang makapunta sa iyong katauhan " -"at makalagda kang papasok. Matatanggal mo ang isang sityo mula sa talaang " -"ito upang tanggihan ang pagpunta nito sa iyong OpenID." - -#. TRANS: Message given when there is a problem with the user's session token. -#: openidsettings.php:232 finishopenidlogin.php:42 -msgid "There was a problem with your session token. Try again, please." -msgstr "May suliranin sa iyong token na pangsesyon. Paki subukan uli." - -#: openidsettings.php:239 -msgid "Can't add new providers." -msgstr "Hindi makapagdaragdag ng bagong mga tagapagbigay." - -#: openidsettings.php:252 -msgid "Something weird happened." -msgstr "May nangyaring kakaiba." - -#: openidsettings.php:276 -msgid "No such OpenID trustroot." -msgstr "Walng ganyang pinagkakatiwalaang ugat ng OpenID." - -#: openidsettings.php:280 -msgid "Trustroots removed" -msgstr "Tinanggal ang mga pinagkakatiwalaang ugat" - -#: openidsettings.php:303 -msgid "No such OpenID." -msgstr "Walang ganyang OpenID." - -#: openidsettings.php:308 -msgid "That OpenID does not belong to you." -msgstr "Hindi mo pag-aari ang OpenID na iyan." - -#: openidsettings.php:312 -msgid "OpenID removed." -msgstr "Tinanggal ang OpenID." - -#: openidadminpanel.php:54 -msgid "OpenID" -msgstr "OpenID" - -#: openidadminpanel.php:147 -msgid "Invalid provider URL. Max length is 255 characters." -msgstr "" -"Hindi tanggap na URL ng tagapagbigay. Ang pinakamataas na haba ay 255 mga " -"panitik." - -#: openidadminpanel.php:153 -msgid "Invalid team name. Max length is 255 characters." -msgstr "" -"Hindi tanggap ng pangalan ng pangkat. Pinakamataas na haba ay 255 mga " -"panitik." - -#: openidadminpanel.php:210 -msgid "Trusted provider" -msgstr "Pinagkakatiwalaang tagapagbigay" - -#: openidadminpanel.php:212 -msgid "" -"By default, users are allowed to authenticate with any OpenID provider. If " -"you are using your own OpenID service for shared sign-in, you can restrict " -"access to only your own users here." -msgstr "" -"Bilang likas na pagtatakda, ang mga tagagamit ay hindi pinapahintulutang " -"magpatunay sa pamamagitan ng anumang tagapagbigay ng OpenID. Kung ginagamit " -"mo ang sarili mong palingkuran ng OpenID para sa pinagsasaluhang paglagdang " -"papasok, malilimitahan mo ang pagpunta sa iyong mga tagagamit lamang dito." - -#: openidadminpanel.php:220 -msgid "Provider URL" -msgstr "URL ng tagapagbigay" - -#: openidadminpanel.php:221 -msgid "" -"All OpenID logins will be sent to this URL; other providers may not be used." -msgstr "" -"Ang lahat ng mga paglalagda sa OpenID ay ipapadala sa URL na ito; hindi " -"maaaring gamitin ang ibang mga tagapagbigay." - -#: openidadminpanel.php:228 -msgid "Append a username to base URL" -msgstr "Ikabit ang isang pangalan ng tagagamit sa punong URL" - -#: openidadminpanel.php:230 -msgid "" -"Login form will show the base URL and prompt for a username to add at the " -"end. Use when OpenID provider URL should be the profile page for individual " -"users." -msgstr "" -"Ang pormularyo ng paglagda ay magpapakita ng batayang URL at gagawa ng isang " -"pangalan ng tagagamit na idaragdag sa huli. Gamitin kapag ang URL ng " -"tagapagbigay ng OpenID ay ang dapat na maging pahina ng balangkas para sa " -"indibiduwal na mga tagagamit." - -#: openidadminpanel.php:238 -msgid "Required team" -msgstr "Kailangang pangkat" - -#: openidadminpanel.php:239 -msgid "Only allow logins from users in the given team (Launchpad extension)." -msgstr "" -"Payagan lamang ang mga paglagda mula sa mga tagagamit na nasa loob ng " -"ibinigay na pangkat (karugtong ng Launchpad)." - -#: openidadminpanel.php:251 -msgid "Options" -msgstr "Mga pagpipilian" - -#: openidadminpanel.php:258 -msgid "Enable OpenID-only mode" -msgstr "Paganahin ang gawi na OpenID lamang" - -#: openidadminpanel.php:260 -#, fuzzy -msgid "" -"Require all users to login via OpenID. Warning: disables password " -"authentication for all users!" -msgstr "" -"Igiit sa lahat ng mga tagagamit na lumagda sa pamamagitan ng OpenID. " -"BABALA: hindi pinagagana ang pagpapatunay ng hudyat para sa lahat ng mga " -"tagagamit!" - -#: openidadminpanel.php:278 -msgid "Save OpenID settings" -msgstr "Sagipin ang mga katakdaan ng OpenID" - -#. TRANS: OpenID plugin server error. -#: openid.php:138 -msgid "Cannot instantiate OpenID consumer object." -msgstr "Hindi mapanimulan ang bagay na pangtagapagtangkilik ng OpenID." - -#. TRANS: OpenID plugin message. Given when an OpenID is not valid. -#: openid.php:150 -msgid "Not a valid OpenID." -msgstr "Hindi isang tanggap na OpenID." - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. -#. TRANS: %s is the failure message. -#: openid.php:155 -#, php-format -msgid "OpenID failure: %s" -msgstr "Kabiguan ng OpenID: %s" - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. -#. TRANS: %s is the failure message. -#: openid.php:205 -#, php-format -msgid "Could not redirect to server: %s" -msgstr "Hindi mabago upang papuntahin sa tagapaghain: %s" - -#. TRANS: OpenID plugin user instructions. -#: openid.php:244 -msgid "" -"This form should automatically submit itself. If not, click the submit " -"button to go to your OpenID provider." -msgstr "" -"Ang pormularyong ito ay dapat na kusang magpapasa ng kanyang sarili. Kung " -"hindi, pindutin ang pindutang pampasa upang pumunta sa iyong tagapagbigay ng " -"OpenID." - -#. TRANS: OpenID plugin server error. -#: openid.php:280 -msgid "Error saving the profile." -msgstr "Kamalian sa pagsagip ng balangkas." - -#. TRANS: OpenID plugin server error. -#: openid.php:292 -msgid "Error saving the user." -msgstr "Kamalian sa pagsagip ng tagagamit." - -#. TRANS: OpenID plugin client exception (403). -#: openid.php:322 -msgid "Unauthorized URL used for OpenID login." -msgstr "Hindi pinahintulutang URL na ginamit para sa paglagda ng OpenID." - -#. TRANS: Title -#: openid.php:370 -msgid "OpenID Login Submission" -msgstr "Pagpapasa ng Paglagda ng OpenID" - -#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. -#: openid.php:381 -msgid "Requesting authorization from your login provider..." -msgstr "" -"Humihiling ng pahintulot mula sa iyong tagapagbigay ng paglagdang papasok..." - -#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. -#: openid.php:385 -msgid "" -"If you are not redirected to your login provider in a few seconds, try " -"pushing the button below." -msgstr "" -"Kapag hindi ka itinurong papunta sa iyong tagapagbigay ng paglagda sa loob " -"ng ilang mga segundo, subukang pindutin ang pindutang nasa ibaba." +msgid "Cancel" +msgstr "Huwag ituloy" #. TRANS: Tooltip for main menu option "Login" -#: OpenIDPlugin.php:218 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Lumagda sa sityo" #. TRANS: Main menu option when not logged in to log in -#: OpenIDPlugin.php:221 msgctxt "MENU" msgid "Login" msgstr "Lumagda" #. TRANS: Tooltip for main menu option "Help" -#: OpenIDPlugin.php:226 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Saklolohan ako!" #. TRANS: Main menu option for help on the StatusNet site -#: OpenIDPlugin.php:229 msgctxt "MENU" msgid "Help" msgstr "Saklolo" #. TRANS: Tooltip for main menu option "Search" -#: OpenIDPlugin.php:235 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Maghanap ng mga tao o teksto" #. TRANS: Main menu option when logged in or when the StatusNet instance is not private -#: OpenIDPlugin.php:238 msgctxt "MENU" msgid "Search" msgstr "Maghanap" @@ -323,94 +78,75 @@ msgstr "Maghanap" #. TRANS: OpenID plugin menu item on site logon page. #. TRANS: OpenID plugin menu item on user settings page. #. TRANS: OpenID configuration menu item. -#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 msgctxt "MENU" msgid "OpenID" msgstr "OpenID" #. TRANS: OpenID plugin tooltip for logon menu item. -#: OpenIDPlugin.php:297 msgid "Login or register with OpenID" msgstr "Lumagda o magpatala na may OpenID" #. TRANS: OpenID plugin tooltip for user settings menu item. -#: OpenIDPlugin.php:333 msgid "Add or remove OpenIDs" msgstr "Idagdag o alisin ang mga OpenID" #. TRANS: Tooltip for OpenID configuration menu item. -#: OpenIDPlugin.php:607 msgid "OpenID configuration" msgstr "Pagkakaayos ng OpenID" #. TRANS: OpenID plugin description. -#: OpenIDPlugin.php:653 msgid "Use OpenID to login to the site." msgstr "" "Gamitin ang OpenID upang lumagda sa sityo." #. TRANS: button label for OAuth authorization page when needing OpenID authentication first. -#: OpenIDPlugin.php:663 #, fuzzy msgctxt "BUTTON" msgid "Continue" msgstr "Magpatuloy" #. TRANS: OpenID plugin logon form legend. -#: OpenIDPlugin.php:680 openidlogin.php:132 msgid "OpenID login" msgstr "Panglagdang OpenID" #. TRANS: Field label. -#: OpenIDPlugin.php:688 openidlogin.php:139 msgid "OpenID provider" msgstr "Tagapagbigay ng OpenID" #. TRANS: Form guide. -#: OpenIDPlugin.php:697 openidlogin.php:147 msgid "Enter your username." msgstr "Ipasok ang iyong pangalan ng tagagamit." #. TRANS: Form guide. -#: OpenIDPlugin.php:699 openidlogin.php:148 msgid "You will be sent to the provider's site for authentication." msgstr "Ipapadala ka sa sityo ng tagapagbigay para sa pagpapatunay." +#. TRANS: OpenID plugin logon form field label. +msgid "OpenID URL" +msgstr "URL ng OpenID" + #. TRANS: OpenID plugin logon form field instructions. -#: OpenIDPlugin.php:706 openidlogin.php:155 msgid "Your OpenID URL" msgstr "Ang iyong URL ng OpenID" -#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). -#: openidserver.php:116 -#, php-format -msgid "You are not authorized to use the identity %s." -msgstr "Wala kang pahintulot na gamitin ang katauhang %s." - -#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). -#: openidserver.php:137 -msgid "Just an OpenID provider. Nothing to see here, move along..." -msgstr "" -"Isa lamang na tagapagbigay ng OpenID. Walang makikita rito, magpatuloy..." - #. TRANS: Client error message trying to log on with OpenID while already logged on. -#: finishopenidlogin.php:37 openidlogin.php:33 msgid "Already logged in." msgstr "Nakalagda na." +#. TRANS: Message given when there is a problem with the user's session token. +msgid "There was a problem with your session token. Try again, please." +msgstr "May suliranin sa iyong token na pangsesyon. Paki subukan uli." + #. TRANS: Message given if user does not agree with the site's license. -#: finishopenidlogin.php:48 msgid "You can't register if you don't agree to the license." msgstr "Hindi ka makakapagpatala kung hindi ka sasang-ayon sa lisensiya." #. TRANS: Messag given on an unknown error. -#: finishopenidlogin.php:57 msgid "An unknown error has occured." msgstr "Naganap ang isang hindi nalalamang kamalian." #. TRANS: Instructions given after a first successful logon using OpenID. #. TRANS: %s is the site name. -#: finishopenidlogin.php:73 #, php-format msgid "" "This is the first time you've logged into %s so we must connect your OpenID " @@ -423,40 +159,32 @@ msgstr "" "akawnt, kung mayroon ka." #. TRANS: Title -#: finishopenidlogin.php:80 msgid "OpenID Account Setup" msgstr "Pagkakaayos ng Akawnt na OpenID" -#: finishopenidlogin.php:117 msgid "Create new account" msgstr "Likhain ang bagong akawnt" -#: finishopenidlogin.php:119 msgid "Create a new user with this nickname." msgstr "Lumikha ng isang bagong tagagamit na may ganitong palayaw." -#: finishopenidlogin.php:126 msgid "New nickname" msgstr "Bagong palayaw" -#: finishopenidlogin.php:128 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" "1 hanggang 64 maliliit na mga titik o mga bilang, walang bantas o mga patlang" #. TRANS: Button label in form in which to create a new user on the site for an OpenID. -#: finishopenidlogin.php:162 msgctxt "BUTTON" msgid "Create" msgstr "Likhain" #. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:176 msgid "Connect existing account" msgstr "Iugnay ang umiiral na akawnt" #. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:179 msgid "" "If you already have an account, login with your username and password to " "connect it to your OpenID." @@ -465,35 +193,29 @@ msgstr "" "tagagamit at hudyat upang iugnay ito sa iyong OpenID." #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:183 msgid "Existing nickname" msgstr "Umiiral na palayaw" #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:187 msgid "Password" msgstr "Hudyat" #. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:191 msgctxt "BUTTON" msgid "Connect" msgstr "Umugnay" #. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. -#: finishopenidlogin.php:237 finishaddopenid.php:90 msgid "OpenID authentication cancelled." msgstr "Kinansela ang pagpapatunay ng OpenID." #. TRANS: OpenID authentication failed; display the error message. %s is the error message. #. TRANS: OpenID authentication failed; display the error message. #. TRANS: %s is the error message. -#: finishopenidlogin.php:241 finishaddopenid.php:95 #, php-format msgid "OpenID authentication failed: %s" msgstr "Nabigo ang pagpapatunay ng OpenID: %s" -#: finishopenidlogin.php:261 finishaddopenid.php:111 msgid "" "OpenID authentication aborted: you are not allowed to login to this site." msgstr "" @@ -502,50 +224,285 @@ msgstr "" #. TRANS: OpenID plugin message. No new user registration is allowed on the site. #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. -#: finishopenidlogin.php:317 finishopenidlogin.php:327 msgid "Registration not allowed." msgstr "Hindi pinayagan ang pagpapatala." #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. -#: finishopenidlogin.php:335 msgid "Not a valid invitation code." msgstr "Hindi isang tanggap na kodigo ng paanyaya." #. TRANS: OpenID plugin message. The entered new user name is blacklisted. -#: finishopenidlogin.php:349 msgid "Nickname not allowed." msgstr "Hindi pinayagan ang palayaw." #. TRANS: OpenID plugin message. The entered new user name is already used. -#: finishopenidlogin.php:355 msgid "Nickname already in use. Try another one." msgstr "Ginagamit na ang palayaw. Sumubok ng iba." #. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. #. TRANS: OpenID plugin server error. A stored OpenID cannot be found. -#: finishopenidlogin.php:363 finishopenidlogin.php:449 msgid "Stored OpenID not found." msgstr "Hindi natagpuan ang nakalagak na OpenID." #. TRANS: OpenID plugin server error. -#: finishopenidlogin.php:373 msgid "Creating new account for OpenID that already has a user." msgstr "" "Nililikha ang bagong akawnt para sa OpenID na mayroon nang isang tagagamit." #. TRANS: OpenID plugin message. -#: finishopenidlogin.php:437 msgid "Invalid username or password." msgstr "Hindi tanggap na pangalan ng tagagamit o hudyat." #. TRANS: OpenID plugin server error. The user or user profile could not be saved. -#: finishopenidlogin.php:457 msgid "Error connecting user to OpenID." msgstr "May kamalian sa pag-ugnay ng tagagamit sa OpenID." +#. TRANS: OpenID plugin server error. +msgid "Cannot instantiate OpenID consumer object." +msgstr "Hindi mapanimulan ang bagay na pangtagapagtangkilik ng OpenID." + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +msgid "Not a valid OpenID." +msgstr "Hindi isang tanggap na OpenID." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#, php-format +msgid "OpenID failure: %s" +msgstr "Kabiguan ng OpenID: %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Hindi mabago upang papuntahin sa tagapaghain: %s" + +#. TRANS: OpenID plugin user instructions. +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Ang pormularyong ito ay dapat na kusang magpapasa ng kanyang sarili. Kung " +"hindi, pindutin ang pindutang pampasa upang pumunta sa iyong tagapagbigay ng " +"OpenID." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the profile." +msgstr "Kamalian sa pagsagip ng balangkas." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the user." +msgstr "Kamalian sa pagsagip ng tagagamit." + +#. TRANS: OpenID plugin client exception (403). +msgid "Unauthorized URL used for OpenID login." +msgstr "Hindi pinahintulutang URL na ginamit para sa paglagda ng OpenID." + +#. TRANS: Title +msgid "OpenID Login Submission" +msgstr "Pagpapasa ng Paglagda ng OpenID" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +msgid "Requesting authorization from your login provider..." +msgstr "" +"Humihiling ng pahintulot mula sa iyong tagapagbigay ng paglagdang papasok..." + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Kapag hindi ka itinurong papunta sa iyong tagapagbigay ng paglagda sa loob " +"ng ilang mga segundo, subukang pindutin ang pindutang nasa ibaba." + +msgid "OpenID" +msgstr "OpenID" + +msgid "OpenID settings" +msgstr "Mga katakdaan ng OpenID" + +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "" +"Hindi tanggap na URL ng tagapagbigay. Ang pinakamataas na haba ay 255 mga " +"panitik." + +msgid "Invalid team name. Max length is 255 characters." +msgstr "" +"Hindi tanggap ng pangalan ng pangkat. Pinakamataas na haba ay 255 mga " +"panitik." + +msgid "Trusted provider" +msgstr "Pinagkakatiwalaang tagapagbigay" + +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"Bilang likas na pagtatakda, ang mga tagagamit ay hindi pinapahintulutang " +"magpatunay sa pamamagitan ng anumang tagapagbigay ng OpenID. Kung ginagamit " +"mo ang sarili mong palingkuran ng OpenID para sa pinagsasaluhang paglagdang " +"papasok, malilimitahan mo ang pagpunta sa iyong mga tagagamit lamang dito." + +msgid "Provider URL" +msgstr "URL ng tagapagbigay" + +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Ang lahat ng mga paglalagda sa OpenID ay ipapadala sa URL na ito; hindi " +"maaaring gamitin ang ibang mga tagapagbigay." + +msgid "Append a username to base URL" +msgstr "Ikabit ang isang pangalan ng tagagamit sa punong URL" + +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"Ang pormularyo ng paglagda ay magpapakita ng batayang URL at gagawa ng isang " +"pangalan ng tagagamit na idaragdag sa huli. Gamitin kapag ang URL ng " +"tagapagbigay ng OpenID ay ang dapat na maging pahina ng balangkas para sa " +"indibiduwal na mga tagagamit." + +msgid "Required team" +msgstr "Kailangang pangkat" + +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Payagan lamang ang mga paglagda mula sa mga tagagamit na nasa loob ng " +"ibinigay na pangkat (karugtong ng Launchpad)." + +msgid "Options" +msgstr "Mga pagpipilian" + +msgid "Enable OpenID-only mode" +msgstr "Paganahin ang gawi na OpenID lamang" + +#, fuzzy +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Igiit sa lahat ng mga tagagamit na lumagda sa pamamagitan ng OpenID. " +"BABALA: hindi pinagagana ang pagpapatunay ng hudyat para sa lahat ng mga " +"tagagamit!" + +msgid "Save OpenID settings" +msgstr "Sagipin ang mga katakdaan ng OpenID" + +#. TRANS: Client error message +msgid "Not logged in." +msgstr "Hindi nakalagda." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +msgid "You already have this OpenID!" +msgstr "Mayroon ka na ng ganitong OpenID!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +msgid "Someone else already has this OpenID." +msgstr "Mayroon nang ibang tao na may ganitong OpenID." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +msgid "Error connecting user." +msgstr "Kamalian sa pag-ugnay ng tagagamit." + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +msgid "Error updating profile" +msgstr "Kamalian sa pagsasapanahon ng balangkas" + +#. TRANS: Title after getting the status of the OpenID authorisation request. +#. TRANS: OpenID plugin message. Title. +msgid "OpenID Login" +msgstr "Panglagdang OpenID" + +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"Nagpapahintulot ang [OpenID](%%doc.openid%%) na makalagda ka sa maraming mga " +"sityong may katulad na akawnt ng tagagamit. Pamahalaan ang iyong kaugnay na " +"mga OpenID mula rito." + +msgid "Add OpenID" +msgstr "Idagdag ang OpenID" + +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Kung nais mong magdagdag ng isang OpenID sa akawnt mo, ipasok ito sa kahong " +"nasa ibaba at pindutin ang \"Idagdag\"." + +msgid "Add" +msgstr "Idagdag" + +msgid "Remove OpenID" +msgstr "Tanggalin ang OpenID" + +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Ang pagtatanggal ng iyong OpenID lamang ay makasasanhi ng imposibleng " +"paglagda! Kung kailangan mong tanggalin ito, magdagdag ng ibang OpenID muna." + +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "" +"Matatanggap mo ang isang OpenID mula sa akawnt mo sa pamamagitan ng " +"pagpindot sa pindutang may tatak na \"Tanggalin\"." + +msgid "Remove" +msgstr "Tanggalin" + +msgid "OpenID Trusted Sites" +msgstr "Pinagkakatiwalaang mga Sityo ng OpenID" + +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"Ang sumusunod na mga sityo ay pinapahintulutang makapunta sa iyong katauhan " +"at makalagda kang papasok. Matatanggal mo ang isang sityo mula sa talaang " +"ito upang tanggihan ang pagpunta nito sa iyong OpenID." + +msgid "Can't add new providers." +msgstr "Hindi makapagdaragdag ng bagong mga tagapagbigay." + +msgid "Something weird happened." +msgstr "May nangyaring kakaiba." + +msgid "No such OpenID trustroot." +msgstr "Walng ganyang pinagkakatiwalaang ugat ng OpenID." + +msgid "Trustroots removed" +msgstr "Tinanggal ang mga pinagkakatiwalaang ugat" + +msgid "No such OpenID." +msgstr "Walang ganyang OpenID." + +msgid "That OpenID does not belong to you." +msgstr "Hindi mo pag-aari ang OpenID na iyan." + +msgid "OpenID removed." +msgstr "Tinanggal ang OpenID." + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "Wala kang pahintulot na gamitin ang katauhang %s." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "" +"Isa lamang na tagapagbigay ng OpenID. Walang makikita rito, magpatuloy..." + #. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:74 #, php-format msgid "" "For security reasons, please re-login with your [OpenID](%%doc.openid%%) " @@ -556,84 +513,20 @@ msgstr "" #. TRANS: OpenID plugin message. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:80 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "Lumagda sa pamamagitan ng isang akawnt ng [OpenID](%%doc.openid%%)." -#. TRANS: OpenID plugin message. Title. -#. TRANS: Title after getting the status of the OpenID authorisation request. -#: openidlogin.php:114 finishaddopenid.php:187 -msgid "OpenID Login" -msgstr "Panglagdang OpenID" - #. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. -#: openidlogin.php:160 msgid "Remember me" msgstr "Tandaan ako" #. TRANS: OpenID plugin logon form field instructions. -#: openidlogin.php:162 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Kusang lumagda sa hinaharap; hindi para sa pinagsasaluhang mga kompyuter!" #. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. -#: openidlogin.php:167 msgctxt "BUTTON" msgid "Login" msgstr "Lumagda" - -#: openidtrust.php:52 -msgid "OpenID Identity Verification" -msgstr "Pagpapatunay sa Katauhan ng OpenID" - -#: openidtrust.php:70 -msgid "" -"This page should only be reached during OpenID processing, not directly." -msgstr "" -"Ang pahinang ito ay dapat lamang na maabot habang pinoproseso ang OpenID, " -"hindi tuwiran." - -#: openidtrust.php:118 -#, php-format -msgid "" -"%s has asked to verify your identity. Click Continue to verify your " -"identity and login without creating a new password." -msgstr "" -"Hiniling ng/ni %s na patunayan ang iyong katauhan. Pindutin ang Magpatuloy " -"upang tiyakin ang iyong katauhan at lumagdang hindi lumilikha ng isang " -"bagong hudyat." - -#: openidtrust.php:136 -msgid "Continue" -msgstr "Magpatuloy" - -#: openidtrust.php:137 -msgid "Cancel" -msgstr "Huwag ituloy" - -#. TRANS: Client error message -#: finishaddopenid.php:68 -msgid "Not logged in." -msgstr "Hindi nakalagda." - -#. TRANS: message in case a user tries to add an OpenID that is already connected to them. -#: finishaddopenid.php:122 -msgid "You already have this OpenID!" -msgstr "Mayroon ka na ng ganitong OpenID!" - -#. TRANS: message in case a user tries to add an OpenID that is already used by another user. -#: finishaddopenid.php:125 -msgid "Someone else already has this OpenID." -msgstr "Mayroon nang ibang tao na may ganitong OpenID." - -#. TRANS: message in case the OpenID object cannot be connected to the user. -#: finishaddopenid.php:138 -msgid "Error connecting user." -msgstr "Kamalian sa pag-ugnay ng tagagamit." - -#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. -#: finishaddopenid.php:145 -msgid "Error updating profile" -msgstr "Kamalian sa pagsasapanahon ng balangkas" diff --git a/plugins/OpenID/locale/uk/LC_MESSAGES/OpenID.po b/plugins/OpenID/locale/uk/LC_MESSAGES/OpenID.po index 348be1f7e0..411fe08480 100644 --- a/plugins/OpenID/locale/uk/LC_MESSAGES/OpenID.po +++ b/plugins/OpenID/locale/uk/LC_MESSAGES/OpenID.po @@ -10,305 +10,67 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenID\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:34+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:19+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:00+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-openid\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: openidsettings.php:58 openidadminpanel.php:65 -msgid "OpenID settings" -msgstr "Налаштування OpenID" +msgid "OpenID Identity Verification" +msgstr "Перевірка ідентичності OpenID" + +msgid "" +"This page should only be reached during OpenID processing, not directly." +msgstr "" +"Ви потрапляєте на цю сторінку лише при обробці запитів OpenID, не напряму." -#: openidsettings.php:69 #, php-format msgid "" -"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " -"account. Manage your associated OpenIDs from here." +"%s has asked to verify your identity. Click Continue to verify your " +"identity and login without creating a new password." msgstr "" -"[OpenID](%%doc.openid%%) дозволяє входити до багатьох веб-сторінок " -"використовуючи той самий лоґін і пароль. Тут можна впорядкувати ваші OpenID-" -"акаунти." +"%s запрошує вас пройти перевірку на ідентичність. Натисніть «Продовжити», щоб " +"перевірити вашу особу та увійти, не створюючи нового паролю." -#: openidsettings.php:100 -msgid "Add OpenID" -msgstr "Додати OpenID" +msgid "Continue" +msgstr "Продовжити" -#: openidsettings.php:103 -msgid "" -"If you want to add an OpenID to your account, enter it in the box below and " -"click \"Add\"." -msgstr "" -"Якщо ви бажаєте додати OpenID до вашого акаунту, введіть його у полі нижче і " -"натисніть «Додати»." - -#. TRANS: OpenID plugin logon form field label. -#: openidsettings.php:108 OpenIDPlugin.php:703 openidlogin.php:152 -msgid "OpenID URL" -msgstr "URL-адреса OpenID" - -#: openidsettings.php:118 -msgid "Add" -msgstr "Додати" - -#: openidsettings.php:130 -msgid "Remove OpenID" -msgstr "Видалити OpenID" - -#: openidsettings.php:135 -msgid "" -"Removing your only OpenID would make it impossible to log in! If you need to " -"remove it, add another OpenID first." -msgstr "" -"Якщо для входу ви використовуєте лише OpenID, то його видалення унеможливить " -"вхід у майбутньому! Якщо вам потрібно видалити ваш єдиний OpenID, то спершу " -"додайте інший." - -#: openidsettings.php:150 -msgid "" -"You can remove an OpenID from your account by clicking the button marked " -"\"Remove\"." -msgstr "Ви можете видалити ваш OpenID просто натиснувши кнопку «Видалити»." - -#: openidsettings.php:173 openidsettings.php:214 -msgid "Remove" -msgstr "Видалити" - -#: openidsettings.php:187 -msgid "OpenID Trusted Sites" -msgstr "Довірені сайти OpenID" - -#: openidsettings.php:190 -msgid "" -"The following sites are allowed to access your identity and log you in. You " -"can remove a site from this list to deny it access to your OpenID." -msgstr "" -"У списку наведено OpenID-адреси, які ідентифіковані як ваші і їм дозволено " -"вхід до сайту. Ви можете вилучити якийсь з них, тим самим скасувавши дозвіл " -"на вхід." - -#. TRANS: Message given when there is a problem with the user's session token. -#: openidsettings.php:232 finishopenidlogin.php:42 -msgid "There was a problem with your session token. Try again, please." -msgstr "" -"Виникли певні проблеми з токеном поточної сесії. Спробуйте знов, будь ласка." - -#: openidsettings.php:239 -msgid "Can't add new providers." -msgstr "Не вдається додати нового OpenID-провайдера." - -#: openidsettings.php:252 -msgid "Something weird happened." -msgstr "Сталося щось незрозуміле." - -#: openidsettings.php:276 -msgid "No such OpenID trustroot." -msgstr "Серед довірених такого OpenID немає." - -#: openidsettings.php:280 -msgid "Trustroots removed" -msgstr "Довірені OpenID видалено" - -#: openidsettings.php:303 -msgid "No such OpenID." -msgstr "Немає такого OpenID." - -#: openidsettings.php:308 -msgid "That OpenID does not belong to you." -msgstr "Даний OpenID належить не вам." - -#: openidsettings.php:312 -msgid "OpenID removed." -msgstr "OpenID видалено." - -#: openidadminpanel.php:54 -msgid "OpenID" -msgstr "OpenID" - -#: openidadminpanel.php:147 -msgid "Invalid provider URL. Max length is 255 characters." -msgstr "Невірний URL OpenID-провайдера. Максимальна довжина — 255 символів." - -#: openidadminpanel.php:153 -msgid "Invalid team name. Max length is 255 characters." -msgstr "Невірна назва спільноти. Максимальна довжина — 255 символів." - -#: openidadminpanel.php:210 -msgid "Trusted provider" -msgstr "Довірений OpenID-провайдер" - -#: openidadminpanel.php:212 -msgid "" -"By default, users are allowed to authenticate with any OpenID provider. If " -"you are using your own OpenID service for shared sign-in, you can restrict " -"access to only your own users here." -msgstr "" -"За замовчуванням, відвідувачам дозволено користуватись послугами будь-якого " -"OpenID-провайдера. Якщо ви користуєтесь своїм власним OpenID для загального " -"входу на веб-сторінки, то ви вільні обмежити доступ лише колом ваших власних " -"користувачів." - -#: openidadminpanel.php:220 -msgid "Provider URL" -msgstr "URL провайдера" - -#: openidadminpanel.php:221 -msgid "" -"All OpenID logins will be sent to this URL; other providers may not be used." -msgstr "" -"Всі сесії входу через OpenID будуть спрямовуватись на цю URL-адресу; інших " -"OpenID-провайдерів використовувати не можна." - -#: openidadminpanel.php:228 -msgid "Append a username to base URL" -msgstr "Додати ім’я користувача до базового URL" - -#: openidadminpanel.php:230 -msgid "" -"Login form will show the base URL and prompt for a username to add at the " -"end. Use when OpenID provider URL should be the profile page for individual " -"users." -msgstr "" -"У формі входу на сайт буде представлено базовий URL і запит щодо імені " -"користувача у кінці. В такому випадку, URL OpenID-провайдера — це сторінка " -"профілю окремих користувачів." - -#: openidadminpanel.php:238 -msgid "Required team" -msgstr "Необхідна група" - -#: openidadminpanel.php:239 -msgid "Only allow logins from users in the given team (Launchpad extension)." -msgstr "" -"Дозволяється вхід лише користувачам у вказаній групі (розширення для " -"Launchpad)." - -#: openidadminpanel.php:251 -msgid "Options" -msgstr "Параметри" - -#: openidadminpanel.php:258 -msgid "Enable OpenID-only mode" -msgstr "Увімкнути режим входу лише за OpenID" - -#: openidadminpanel.php:260 -msgid "" -"Require all users to login via OpenID. Warning: disables password " -"authentication for all users!" -msgstr "" -"Вимагає, щоб всі користувачі входили лише за допомогою OpenID. Увага: ця " -"опція вимикає автентифікацію за паролем для всіх користувачів!" - -#: openidadminpanel.php:278 -msgid "Save OpenID settings" -msgstr "Зберегти налаштування OpenID" - -#. TRANS: OpenID plugin server error. -#: openid.php:138 -msgid "Cannot instantiate OpenID consumer object." -msgstr "Не можу створити примірник об’єкта споживача OpenID." - -#. TRANS: OpenID plugin message. Given when an OpenID is not valid. -#: openid.php:150 -msgid "Not a valid OpenID." -msgstr "Це недійсний OpenID." - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. -#. TRANS: %s is the failure message. -#: openid.php:155 -#, php-format -msgid "OpenID failure: %s" -msgstr "Неуспіх OpenID: %s" - -#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. -#. TRANS: %s is the failure message. -#: openid.php:205 -#, php-format -msgid "Could not redirect to server: %s" -msgstr "Не можу переадресувати на сервер: %s" - -#. TRANS: OpenID plugin user instructions. -#: openid.php:244 -msgid "" -"This form should automatically submit itself. If not, click the submit " -"button to go to your OpenID provider." -msgstr "" -"Ця форма має автоматичне себе представити. Якщо ні, натисніть відповідну " -"кнопку, щоб перейти до сторінки вашого OpenID-провайдера." - -#. TRANS: OpenID plugin server error. -#: openid.php:280 -msgid "Error saving the profile." -msgstr "Помилка при збереженні профілю." - -#. TRANS: OpenID plugin server error. -#: openid.php:292 -msgid "Error saving the user." -msgstr "Помилка при збереженні користувача." - -#. TRANS: OpenID plugin client exception (403). -#: openid.php:322 -msgid "Unauthorized URL used for OpenID login." -msgstr "Для входу за OpenID використовується неавторизований URL." - -#. TRANS: Title -#: openid.php:370 -msgid "OpenID Login Submission" -msgstr "Представлення входу за OpenID" - -#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. -#: openid.php:381 -msgid "Requesting authorization from your login provider..." -msgstr "Запитуємо дозвіл у вашого OpenID-провайдера..." - -#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. -#: openid.php:385 -msgid "" -"If you are not redirected to your login provider in a few seconds, try " -"pushing the button below." -msgstr "" -"Якщо за кілька секунд вас не буде перенаправлено на сторінку входу вашого " -"OpenID-провайдера, просто натисніть кнопку внизу." +msgid "Cancel" +msgstr "Скасувати" #. TRANS: Tooltip for main menu option "Login" -#: OpenIDPlugin.php:218 msgctxt "TOOLTIP" msgid "Login to the site" msgstr "Вхід на сайт" #. TRANS: Main menu option when not logged in to log in -#: OpenIDPlugin.php:221 msgctxt "MENU" msgid "Login" msgstr "Увійти" #. TRANS: Tooltip for main menu option "Help" -#: OpenIDPlugin.php:226 msgctxt "TOOLTIP" msgid "Help me!" msgstr "Допоможіть!" #. TRANS: Main menu option for help on the StatusNet site -#: OpenIDPlugin.php:229 msgctxt "MENU" msgid "Help" msgstr "Довідка" #. TRANS: Tooltip for main menu option "Search" -#: OpenIDPlugin.php:235 msgctxt "TOOLTIP" msgid "Search for people or text" msgstr "Пошук людей або текстів" #. TRANS: Main menu option when logged in or when the StatusNet instance is not private -#: OpenIDPlugin.php:238 msgctxt "MENU" msgid "Search" msgstr "Пошук" @@ -316,94 +78,75 @@ msgstr "Пошук" #. TRANS: OpenID plugin menu item on site logon page. #. TRANS: OpenID plugin menu item on user settings page. #. TRANS: OpenID configuration menu item. -#: OpenIDPlugin.php:295 OpenIDPlugin.php:331 OpenIDPlugin.php:605 msgctxt "MENU" msgid "OpenID" msgstr "OpenID" #. TRANS: OpenID plugin tooltip for logon menu item. -#: OpenIDPlugin.php:297 msgid "Login or register with OpenID" msgstr "Увійти або зареєструватися за допомогою OpenID" #. TRANS: OpenID plugin tooltip for user settings menu item. -#: OpenIDPlugin.php:333 msgid "Add or remove OpenIDs" msgstr "Додати або видалити OpenID" #. TRANS: Tooltip for OpenID configuration menu item. -#: OpenIDPlugin.php:607 msgid "OpenID configuration" msgstr "Конфігурація OpenID" #. TRANS: OpenID plugin description. -#: OpenIDPlugin.php:653 msgid "Use OpenID to login to the site." msgstr "" "Використання OpenID для входу на сайт." #. TRANS: button label for OAuth authorization page when needing OpenID authentication first. -#: OpenIDPlugin.php:663 msgctxt "BUTTON" msgid "Continue" msgstr "Продовжити" #. TRANS: OpenID plugin logon form legend. -#: OpenIDPlugin.php:680 openidlogin.php:132 msgid "OpenID login" msgstr "Вхід з OpenID" #. TRANS: Field label. -#: OpenIDPlugin.php:688 openidlogin.php:139 msgid "OpenID provider" msgstr "OpenID-провайдер" #. TRANS: Form guide. -#: OpenIDPlugin.php:697 openidlogin.php:147 msgid "Enter your username." msgstr "Введіть ім’я користувача." #. TRANS: Form guide. -#: OpenIDPlugin.php:699 openidlogin.php:148 msgid "You will be sent to the provider's site for authentication." msgstr "Вас буде перенаправлено на веб-сторінку провайдера для автентифікації." +#. TRANS: OpenID plugin logon form field label. +msgid "OpenID URL" +msgstr "URL-адреса OpenID" + #. TRANS: OpenID plugin logon form field instructions. -#: OpenIDPlugin.php:706 openidlogin.php:155 msgid "Your OpenID URL" msgstr "URL вашого OpenID" -#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). -#: openidserver.php:116 -#, php-format -msgid "You are not authorized to use the identity %s." -msgstr "" -"Ви не авторизовані, для того щоб мати можливість пройти перевірку " -"ідентичності на %s." - -#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). -#: openidserver.php:137 -msgid "Just an OpenID provider. Nothing to see here, move along..." -msgstr "Просто OpenID-провайдер. Нічого належного чомусь не видно..." - #. TRANS: Client error message trying to log on with OpenID while already logged on. -#: finishopenidlogin.php:37 openidlogin.php:33 msgid "Already logged in." msgstr "Тепер ви увійшли." +#. TRANS: Message given when there is a problem with the user's session token. +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Виникли певні проблеми з токеном поточної сесії. Спробуйте знов, будь ласка." + #. TRANS: Message given if user does not agree with the site's license. -#: finishopenidlogin.php:48 msgid "You can't register if you don't agree to the license." msgstr "Ви не зможете зареєструватися, якщо не погодитесь з умовами ліцензії." #. TRANS: Messag given on an unknown error. -#: finishopenidlogin.php:57 msgid "An unknown error has occured." msgstr "Виникла якась незрозуміла помилка." #. TRANS: Instructions given after a first successful logon using OpenID. #. TRANS: %s is the site name. -#: finishopenidlogin.php:73 #, php-format msgid "" "This is the first time you've logged into %s so we must connect your OpenID " @@ -415,40 +158,32 @@ msgstr "" "використати такий, що вже існує." #. TRANS: Title -#: finishopenidlogin.php:80 msgid "OpenID Account Setup" msgstr "Створення акаунту OpenID" -#: finishopenidlogin.php:117 msgid "Create new account" msgstr "Створити новий акаунт" -#: finishopenidlogin.php:119 msgid "Create a new user with this nickname." msgstr "Створити нового користувача з цим нікнеймом." -#: finishopenidlogin.php:126 msgid "New nickname" msgstr "Новий нікнейм" -#: finishopenidlogin.php:128 msgid "1-64 lowercase letters or numbers, no punctuation or spaces" msgstr "" "1-64 літери нижнього регістру і цифри, ніякої пунктуації або інтервалів" #. TRANS: Button label in form in which to create a new user on the site for an OpenID. -#: finishopenidlogin.php:162 msgctxt "BUTTON" msgid "Create" msgstr "Створити" #. TRANS: Used as form legend for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:176 msgid "Connect existing account" msgstr "Приєднати акаунт, який вже існує" #. TRANS: User instructions for form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:179 msgid "" "If you already have an account, login with your username and password to " "connect it to your OpenID." @@ -457,84 +192,304 @@ msgstr "" "приєднати їх до вашого OpenID." #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:183 msgid "Existing nickname" msgstr "Нікнейм, який вже існує" #. TRANS: Field label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:187 msgid "Password" msgstr "Пароль" #. TRANS: Button label in form in which to connect an OpenID to an existing user on the site. -#: finishopenidlogin.php:191 msgctxt "BUTTON" msgid "Connect" msgstr "Під’єднати" #. TRANS: Status message in case the response from the OpenID provider is that the logon attempt was cancelled. -#: finishopenidlogin.php:237 finishaddopenid.php:90 msgid "OpenID authentication cancelled." msgstr "Автентифікацію за OpenID скасовано." #. TRANS: OpenID authentication failed; display the error message. %s is the error message. #. TRANS: OpenID authentication failed; display the error message. #. TRANS: %s is the error message. -#: finishopenidlogin.php:241 finishaddopenid.php:95 #, php-format msgid "OpenID authentication failed: %s" msgstr "Автентифікуватись за OpenID не вдалося: %s" -#: finishopenidlogin.php:261 finishaddopenid.php:111 msgid "" "OpenID authentication aborted: you are not allowed to login to this site." msgstr "Автентифікацію за OpenID перервано: ви не можете увійти на цей сайт." #. TRANS: OpenID plugin message. No new user registration is allowed on the site. #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and none was provided. -#: finishopenidlogin.php:317 finishopenidlogin.php:327 msgid "Registration not allowed." msgstr "Реєстрацію не дозволено." #. TRANS: OpenID plugin message. No new user registration is allowed on the site without an invitation code, and the one provided was not valid. -#: finishopenidlogin.php:335 msgid "Not a valid invitation code." msgstr "Це не дійсний код запрошення." #. TRANS: OpenID plugin message. The entered new user name is blacklisted. -#: finishopenidlogin.php:349 msgid "Nickname not allowed." msgstr "Нікнейм не допускається." #. TRANS: OpenID plugin message. The entered new user name is already used. -#: finishopenidlogin.php:355 msgid "Nickname already in use. Try another one." msgstr "Цей нікнейм вже використовується. Спробуйте інший." #. TRANS: OpenID plugin server error. A stored OpenID cannot be retrieved. #. TRANS: OpenID plugin server error. A stored OpenID cannot be found. -#: finishopenidlogin.php:363 finishopenidlogin.php:449 msgid "Stored OpenID not found." msgstr "Збережений OpenID не знайдено." #. TRANS: OpenID plugin server error. -#: finishopenidlogin.php:373 msgid "Creating new account for OpenID that already has a user." msgstr "Створення нового акаунту для OpenID користувачем, який вже існує." #. TRANS: OpenID plugin message. -#: finishopenidlogin.php:437 msgid "Invalid username or password." msgstr "Невірне ім’я або пароль." #. TRANS: OpenID plugin server error. The user or user profile could not be saved. -#: finishopenidlogin.php:457 msgid "Error connecting user to OpenID." msgstr "Помилка при підключенні користувача до OpenID." +#. TRANS: OpenID plugin server error. +msgid "Cannot instantiate OpenID consumer object." +msgstr "Не можу створити примірник об’єкта споживача OpenID." + +#. TRANS: OpenID plugin message. Given when an OpenID is not valid. +msgid "Not a valid OpenID." +msgstr "Це недійсний OpenID." + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request fails. +#. TRANS: %s is the failure message. +#, php-format +msgid "OpenID failure: %s" +msgstr "Неуспіх OpenID: %s" + +#. TRANS: OpenID plugin server error. Given when the OpenID authentication request cannot be redirected. +#. TRANS: %s is the failure message. +#, php-format +msgid "Could not redirect to server: %s" +msgstr "Не можу переадресувати на сервер: %s" + +#. TRANS: OpenID plugin user instructions. +msgid "" +"This form should automatically submit itself. If not, click the submit " +"button to go to your OpenID provider." +msgstr "" +"Ця форма має автоматичне себе представити. Якщо ні, натисніть відповідну " +"кнопку, щоб перейти до сторінки вашого OpenID-провайдера." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the profile." +msgstr "Помилка при збереженні профілю." + +#. TRANS: OpenID plugin server error. +msgid "Error saving the user." +msgstr "Помилка при збереженні користувача." + +#. TRANS: OpenID plugin client exception (403). +msgid "Unauthorized URL used for OpenID login." +msgstr "Для входу за OpenID використовується неавторизований URL." + +#. TRANS: Title +msgid "OpenID Login Submission" +msgstr "Представлення входу за OpenID" + +#. TRANS: OpenID plugin message used while requesting authorization user's OpenID login provider. +msgid "Requesting authorization from your login provider..." +msgstr "Запитуємо дозвіл у вашого OpenID-провайдера..." + +#. TRANS: OpenID plugin message. User instruction while requesting authorization user's OpenID login provider. +msgid "" +"If you are not redirected to your login provider in a few seconds, try " +"pushing the button below." +msgstr "" +"Якщо за кілька секунд вас не буде перенаправлено на сторінку входу вашого " +"OpenID-провайдера, просто натисніть кнопку внизу." + +msgid "OpenID" +msgstr "OpenID" + +msgid "OpenID settings" +msgstr "Налаштування OpenID" + +msgid "Invalid provider URL. Max length is 255 characters." +msgstr "Невірний URL OpenID-провайдера. Максимальна довжина — 255 символів." + +msgid "Invalid team name. Max length is 255 characters." +msgstr "Невірна назва спільноти. Максимальна довжина — 255 символів." + +msgid "Trusted provider" +msgstr "Довірений OpenID-провайдер" + +msgid "" +"By default, users are allowed to authenticate with any OpenID provider. If " +"you are using your own OpenID service for shared sign-in, you can restrict " +"access to only your own users here." +msgstr "" +"За замовчуванням, відвідувачам дозволено користуватись послугами будь-якого " +"OpenID-провайдера. Якщо ви користуєтесь своїм власним OpenID для загального " +"входу на веб-сторінки, то ви вільні обмежити доступ лише колом ваших власних " +"користувачів." + +msgid "Provider URL" +msgstr "URL провайдера" + +msgid "" +"All OpenID logins will be sent to this URL; other providers may not be used." +msgstr "" +"Всі сесії входу через OpenID будуть спрямовуватись на цю URL-адресу; інших " +"OpenID-провайдерів використовувати не можна." + +msgid "Append a username to base URL" +msgstr "Додати ім’я користувача до базового URL" + +msgid "" +"Login form will show the base URL and prompt for a username to add at the " +"end. Use when OpenID provider URL should be the profile page for individual " +"users." +msgstr "" +"У формі входу на сайт буде представлено базовий URL і запит щодо імені " +"користувача у кінці. В такому випадку, URL OpenID-провайдера — це сторінка " +"профілю окремих користувачів." + +msgid "Required team" +msgstr "Необхідна група" + +msgid "Only allow logins from users in the given team (Launchpad extension)." +msgstr "" +"Дозволяється вхід лише користувачам у вказаній групі (розширення для " +"Launchpad)." + +msgid "Options" +msgstr "Параметри" + +msgid "Enable OpenID-only mode" +msgstr "Увімкнути режим входу лише за OpenID" + +msgid "" +"Require all users to login via OpenID. Warning: disables password " +"authentication for all users!" +msgstr "" +"Вимагає, щоб всі користувачі входили лише за допомогою OpenID. Увага: ця " +"опція вимикає автентифікацію за паролем для всіх користувачів!" + +msgid "Save OpenID settings" +msgstr "Зберегти налаштування OpenID" + +#. TRANS: Client error message +msgid "Not logged in." +msgstr "Ви не увійшли до системи." + +#. TRANS: message in case a user tries to add an OpenID that is already connected to them. +msgid "You already have this OpenID!" +msgstr "У вас вже є цей OpenID!" + +#. TRANS: message in case a user tries to add an OpenID that is already used by another user. +msgid "Someone else already has this OpenID." +msgstr "Хтось інший вже приєднав цей OpenID до свого акаунту." + +#. TRANS: message in case the OpenID object cannot be connected to the user. +msgid "Error connecting user." +msgstr "Помилка при підключенні користувача." + +#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. +msgid "Error updating profile" +msgstr "Помилка при оновленні профілю" + +#. TRANS: Title after getting the status of the OpenID authorisation request. +#. TRANS: OpenID plugin message. Title. +msgid "OpenID Login" +msgstr "Вхід з OpenID" + +#, php-format +msgid "" +"[OpenID](%%doc.openid%%) lets you log into many sites with the same user " +"account. Manage your associated OpenIDs from here." +msgstr "" +"[OpenID](%%doc.openid%%) дозволяє входити до багатьох веб-сторінок " +"використовуючи той самий лоґін і пароль. Тут можна впорядкувати ваші OpenID-" +"акаунти." + +msgid "Add OpenID" +msgstr "Додати OpenID" + +msgid "" +"If you want to add an OpenID to your account, enter it in the box below and " +"click \"Add\"." +msgstr "" +"Якщо ви бажаєте додати OpenID до вашого акаунту, введіть його у полі нижче і " +"натисніть «Додати»." + +msgid "Add" +msgstr "Додати" + +msgid "Remove OpenID" +msgstr "Видалити OpenID" + +msgid "" +"Removing your only OpenID would make it impossible to log in! If you need to " +"remove it, add another OpenID first." +msgstr "" +"Якщо для входу ви використовуєте лише OpenID, то його видалення унеможливить " +"вхід у майбутньому! Якщо вам потрібно видалити ваш єдиний OpenID, то спершу " +"додайте інший." + +msgid "" +"You can remove an OpenID from your account by clicking the button marked " +"\"Remove\"." +msgstr "Ви можете видалити ваш OpenID просто натиснувши кнопку «Видалити»." + +msgid "Remove" +msgstr "Видалити" + +msgid "OpenID Trusted Sites" +msgstr "Довірені сайти OpenID" + +msgid "" +"The following sites are allowed to access your identity and log you in. You " +"can remove a site from this list to deny it access to your OpenID." +msgstr "" +"У списку наведено OpenID-адреси, які ідентифіковані як ваші і їм дозволено " +"вхід до сайту. Ви можете вилучити якийсь з них, тим самим скасувавши дозвіл " +"на вхід." + +msgid "Can't add new providers." +msgstr "Не вдається додати нового OpenID-провайдера." + +msgid "Something weird happened." +msgstr "Сталося щось незрозуміле." + +msgid "No such OpenID trustroot." +msgstr "Серед довірених такого OpenID немає." + +msgid "Trustroots removed" +msgstr "Довірені OpenID видалено" + +msgid "No such OpenID." +msgstr "Немає такого OpenID." + +msgid "That OpenID does not belong to you." +msgstr "Даний OpenID належить не вам." + +msgid "OpenID removed." +msgstr "OpenID видалено." + +#. TRANS: OpenID plugin client error given trying to add an unauthorised OpenID to a user (403). +#, php-format +msgid "You are not authorized to use the identity %s." +msgstr "" +"Ви не авторизовані, для того щоб мати можливість пройти перевірку " +"ідентичності на %s." + +#. TRANS: OpenID plugin client error given when not getting a response for a given OpenID provider (500). +msgid "Just an OpenID provider. Nothing to see here, move along..." +msgstr "Просто OpenID-провайдер. Нічого належного чомусь не видно..." + #. TRANS: OpenID plugin message. Rememberme logins have to reauthenticate before changing any profile settings. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:74 #, php-format msgid "" "For security reasons, please re-login with your [OpenID](%%doc.openid%%) " @@ -545,83 +500,21 @@ msgstr "" #. TRANS: OpenID plugin message. #. TRANS: "OpenID" is the display text for a link with URL "(%%doc.openid%%)". -#: openidlogin.php:80 #, php-format msgid "Login with an [OpenID](%%doc.openid%%) account." msgstr "Увійти з [OpenID](%%doc.openid%%)." -#. TRANS: OpenID plugin message. Title. -#. TRANS: Title after getting the status of the OpenID authorisation request. -#: openidlogin.php:114 finishaddopenid.php:187 -msgid "OpenID Login" -msgstr "Вхід з OpenID" - #. TRANS: OpenID plugin logon form checkbox label for setting to put the OpenID information in a cookie. -#: openidlogin.php:160 msgid "Remember me" msgstr "Пам’ятати мене" #. TRANS: OpenID plugin logon form field instructions. -#: openidlogin.php:162 msgid "Automatically login in the future; not for shared computers!" msgstr "" "Автоматично входити у майбутньому; не для комп’ютерів загального " "користування!" #. TRANS: OpenID plugin logon form button label to start logon with the data provided in the logon form. -#: openidlogin.php:167 msgctxt "BUTTON" msgid "Login" msgstr "Увійти" - -#: openidtrust.php:52 -msgid "OpenID Identity Verification" -msgstr "Перевірка ідентичності OpenID" - -#: openidtrust.php:70 -msgid "" -"This page should only be reached during OpenID processing, not directly." -msgstr "" -"Ви потрапляєте на цю сторінку лише при обробці запитів OpenID, не напряму." - -#: openidtrust.php:118 -#, php-format -msgid "" -"%s has asked to verify your identity. Click Continue to verify your " -"identity and login without creating a new password." -msgstr "" -"%s запрошує вас пройти перевірку на ідентичність. Натисніть «Продовжити», щоб " -"перевірити вашу особу та увійти, не створюючи нового паролю." - -#: openidtrust.php:136 -msgid "Continue" -msgstr "Продовжити" - -#: openidtrust.php:137 -msgid "Cancel" -msgstr "Скасувати" - -#. TRANS: Client error message -#: finishaddopenid.php:68 -msgid "Not logged in." -msgstr "Ви не увійшли до системи." - -#. TRANS: message in case a user tries to add an OpenID that is already connected to them. -#: finishaddopenid.php:122 -msgid "You already have this OpenID!" -msgstr "У вас вже є цей OpenID!" - -#. TRANS: message in case a user tries to add an OpenID that is already used by another user. -#: finishaddopenid.php:125 -msgid "Someone else already has this OpenID." -msgstr "Хтось інший вже приєднав цей OpenID до свого акаунту." - -#. TRANS: message in case the OpenID object cannot be connected to the user. -#: finishaddopenid.php:138 -msgid "Error connecting user." -msgstr "Помилка при підключенні користувача." - -#. TRANS: message in case the user or the user profile cannot be saved in StatusNet. -#: finishaddopenid.php:145 -msgid "Error updating profile" -msgstr "Помилка при оновленні профілю" diff --git a/plugins/OpenID/openidlogin.php b/plugins/OpenID/openidlogin.php index 8d25a2e9ac..918a79ccd1 100644 --- a/plugins/OpenID/openidlogin.php +++ b/plugins/OpenID/openidlogin.php @@ -174,4 +174,12 @@ class OpenidloginAction extends Action $nav = new LoginGroupNav($this); $nav->show(); } + + function showNoticeForm() + { + } + + function showProfileBlock() + { + } } diff --git a/plugins/OpenX/locale/OpenX.pot b/plugins/OpenX/locale/OpenX.pot index 9647573713..20d4509354 100644 --- a/plugins/OpenX/locale/OpenX.pot +++ b/plugins/OpenX/locale/OpenX.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/OpenX/locale/br/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/br/LC_MESSAGES/OpenX.po index 3d7bb6c1c3..eb2722d13d 100644 --- a/plugins/OpenX/locale/br/LC_MESSAGES/OpenX.po +++ b/plugins/OpenX/locale/br/LC_MESSAGES/OpenX.po @@ -9,103 +9,86 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:47+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:20+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-15 11:02:35+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-11 18:53:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-openx\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANS: Menu item title/tooltip -#: OpenXPlugin.php:201 msgid "OpenX configuration" msgstr "Kefluniadur OpenX" #. TRANS: Menu item for site administration -#: OpenXPlugin.php:203 msgid "OpenX" msgstr "OpenX" #. TRANS: Plugin description. -#: OpenXPlugin.php:224 msgid "Plugin for OpenX Ad Server." msgstr "" "Plugin evit ar servijer bruderezh OpenX." #. TRANS: Page title for OpenX admin panel. -#: openxadminpanel.php:53 msgctxt "TITLE" msgid "OpenX" msgstr "OpenX" #. TRANS: Instructions for OpenX admin panel. -#: openxadminpanel.php:64 msgid "OpenX settings for this StatusNet site" msgstr "Arventennoù OpenX evit al lec'hienn StatusNet-mañ." #. TRANS: Form label in OpenX admin panel. -#: openxadminpanel.php:167 msgid "Ad script URL" msgstr "URL ar skript kemenn" #. TRANS: Tooltip for form label in OpenX admin panel. -#: openxadminpanel.php:169 msgid "Script URL" msgstr "" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:175 msgid "Medium rectangle" msgstr "" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:177 msgid "Medium rectangle zone" msgstr "" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:183 msgid "Rectangle" msgstr "Skouergornek" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:185 msgid "Rectangle zone" msgstr "" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:191 msgid "Leaderboard" msgstr "" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:193 msgid "Leaderboard zone" msgstr "" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:199 msgid "Skyscraper" msgstr "Giton a-serzh" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:201 msgid "Wide skyscraper zone" msgstr "" #. TRANS: Submit button text in OpenX admin panel. -#: openxadminpanel.php:216 msgctxt "BUTTON" msgid "Save" msgstr "Enrollañ" #. TRANS: Submit button title in OpenX admin panel. -#: openxadminpanel.php:220 msgid "Save OpenX settings" msgstr "Enrollañ arventennoù OpenX" diff --git a/plugins/OpenX/locale/de/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/de/LC_MESSAGES/OpenX.po index b74df493f5..a670c5ce66 100644 --- a/plugins/OpenX/locale/de/LC_MESSAGES/OpenX.po +++ b/plugins/OpenX/locale/de/LC_MESSAGES/OpenX.po @@ -2,6 +2,7 @@ # Exported from translatewiki.net # # Author: Fujnky +# Author: George Animal # Author: The Evil IP address # -- # This file is distributed under the same license as the StatusNet package. @@ -10,101 +11,84 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-17 10:25+0000\n" -"PO-Revision-Date: 2011-02-17 10:28:59+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:20+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:00+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82325); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-openx\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Menu item title/tooltip -#: OpenXPlugin.php:201 msgid "OpenX configuration" msgstr "OpenX-Konfiguration" #. TRANS: Menu item for site administration -#: OpenXPlugin.php:203 msgid "OpenX" msgstr "OpenX" #. TRANS: Plugin description. -#: OpenXPlugin.php:224 msgid "Plugin for OpenX Ad Server." msgstr "Plugin für OpenX Ad Server." #. TRANS: Page title for OpenX admin panel. -#: openxadminpanel.php:53 msgctxt "TITLE" msgid "OpenX" msgstr "OpenX" #. TRANS: Instructions for OpenX admin panel. -#: openxadminpanel.php:64 msgid "OpenX settings for this StatusNet site" msgstr "Openx-Einstellungen dieser StatusNet-Website" #. TRANS: Form label in OpenX admin panel. -#: openxadminpanel.php:167 msgid "Ad script URL" msgstr "Skript-URL" #. TRANS: Tooltip for form label in OpenX admin panel. -#: openxadminpanel.php:169 msgid "Script URL" msgstr "Skript-URL" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:175 msgid "Medium rectangle" msgstr "" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:177 msgid "Medium rectangle zone" msgstr "" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:183 msgid "Rectangle" -msgstr "" +msgstr "Rechteck" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:185 msgid "Rectangle zone" msgstr "" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:191 msgid "Leaderboard" msgstr "Rangliste" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:193 msgid "Leaderboard zone" msgstr "Ranglisten-Zone" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:199 msgid "Skyscraper" msgstr "Skyscraper" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:201 msgid "Wide skyscraper zone" msgstr "" #. TRANS: Submit button text in OpenX admin panel. -#: openxadminpanel.php:216 msgctxt "BUTTON" msgid "Save" msgstr "Speichern" #. TRANS: Submit button title in OpenX admin panel. -#: openxadminpanel.php:220 msgid "Save OpenX settings" msgstr "OpenX-Einstellungen speichern" diff --git a/plugins/OpenX/locale/fr/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/fr/LC_MESSAGES/OpenX.po index b8291f01aa..3696226ca6 100644 --- a/plugins/OpenX/locale/fr/LC_MESSAGES/OpenX.po +++ b/plugins/OpenX/locale/fr/LC_MESSAGES/OpenX.po @@ -9,103 +9,86 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:47+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:20+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-15 11:02:35+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-11 18:53:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-openx\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANS: Menu item title/tooltip -#: OpenXPlugin.php:201 msgid "OpenX configuration" msgstr "Configuration d’OpenX" #. TRANS: Menu item for site administration -#: OpenXPlugin.php:203 msgid "OpenX" msgstr "OpenX" #. TRANS: Plugin description. -#: OpenXPlugin.php:224 msgid "Plugin for OpenX Ad Server." msgstr "" "Module complémentaire pour le serveur de " "publicité OpenX." #. TRANS: Page title for OpenX admin panel. -#: openxadminpanel.php:53 msgctxt "TITLE" msgid "OpenX" msgstr "OpenX" #. TRANS: Instructions for OpenX admin panel. -#: openxadminpanel.php:64 msgid "OpenX settings for this StatusNet site" msgstr "Paramètres OpenX pour ce site StatusNet" #. TRANS: Form label in OpenX admin panel. -#: openxadminpanel.php:167 msgid "Ad script URL" msgstr "Adresse URL du script d’annonce" #. TRANS: Tooltip for form label in OpenX admin panel. -#: openxadminpanel.php:169 msgid "Script URL" msgstr "Adresse URL du script" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:175 msgid "Medium rectangle" msgstr "Rectangle moyen" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:177 msgid "Medium rectangle zone" msgstr "Zone rectangulaire de taille moyenne" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:183 msgid "Rectangle" msgstr "Rectangle" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:185 msgid "Rectangle zone" msgstr "Zone de forme rectangulaire" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:191 msgid "Leaderboard" msgstr "Panneau de commande" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:193 msgid "Leaderboard zone" msgstr "Zone de format tableau de bord" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:199 msgid "Skyscraper" msgstr "Bannière verticale" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:201 msgid "Wide skyscraper zone" msgstr "Zone de format vertical large" #. TRANS: Submit button text in OpenX admin panel. -#: openxadminpanel.php:216 msgctxt "BUTTON" msgid "Save" msgstr "Sauvegarder" #. TRANS: Submit button title in OpenX admin panel. -#: openxadminpanel.php:220 msgid "Save OpenX settings" msgstr "Sauvegarder les paramètres OpenX" diff --git a/plugins/OpenX/locale/ia/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/ia/LC_MESSAGES/OpenX.po index 9de743ab54..205763357c 100644 --- a/plugins/OpenX/locale/ia/LC_MESSAGES/OpenX.po +++ b/plugins/OpenX/locale/ia/LC_MESSAGES/OpenX.po @@ -9,103 +9,86 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:47+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:20+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-15 11:02:35+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-11 18:53:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-openx\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Menu item title/tooltip -#: OpenXPlugin.php:201 msgid "OpenX configuration" msgstr "Configuration de OpenX" #. TRANS: Menu item for site administration -#: OpenXPlugin.php:203 msgid "OpenX" msgstr "OpenX" #. TRANS: Plugin description. -#: OpenXPlugin.php:224 msgid "Plugin for OpenX Ad Server." msgstr "" "Plug-in pro le servitor de annuncios " "OpenX." #. TRANS: Page title for OpenX admin panel. -#: openxadminpanel.php:53 msgctxt "TITLE" msgid "OpenX" msgstr "OpenX" #. TRANS: Instructions for OpenX admin panel. -#: openxadminpanel.php:64 msgid "OpenX settings for this StatusNet site" msgstr "Configuration de OpenX pro iste sito StatusNet" #. TRANS: Form label in OpenX admin panel. -#: openxadminpanel.php:167 msgid "Ad script URL" msgstr "URL del script de publicitate" #. TRANS: Tooltip for form label in OpenX admin panel. -#: openxadminpanel.php:169 msgid "Script URL" msgstr "URL del script" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:175 msgid "Medium rectangle" msgstr "Rectangulo medie" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:177 msgid "Medium rectangle zone" msgstr "Zona del rectangulo medie" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:183 msgid "Rectangle" msgstr "Rectangulo" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:185 msgid "Rectangle zone" msgstr "Zona del rectangulo" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:191 msgid "Leaderboard" msgstr "Bandiera large" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:193 msgid "Leaderboard zone" msgstr "Zona del bandiera large" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:199 msgid "Skyscraper" msgstr "Grattacelo" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:201 msgid "Wide skyscraper zone" msgstr "Zona del grattacelo large" #. TRANS: Submit button text in OpenX admin panel. -#: openxadminpanel.php:216 msgctxt "BUTTON" msgid "Save" msgstr "Salveguardar" #. TRANS: Submit button title in OpenX admin panel. -#: openxadminpanel.php:220 msgid "Save OpenX settings" msgstr "Salveguardar configurationes de OpenX" diff --git a/plugins/OpenX/locale/mk/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/mk/LC_MESSAGES/OpenX.po index 53ff73403d..456fd762ab 100644 --- a/plugins/OpenX/locale/mk/LC_MESSAGES/OpenX.po +++ b/plugins/OpenX/locale/mk/LC_MESSAGES/OpenX.po @@ -9,103 +9,86 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:20+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-15 11:02:35+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-11 18:53:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-openx\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" #. TRANS: Menu item title/tooltip -#: OpenXPlugin.php:201 msgid "OpenX configuration" msgstr "Поставки за OpenX" #. TRANS: Menu item for site administration -#: OpenXPlugin.php:203 msgid "OpenX" msgstr "OpenX" #. TRANS: Plugin description. -#: OpenXPlugin.php:224 msgid "Plugin for OpenX Ad Server." msgstr "" "Додаток за Рекламен опслужувач за OpenX." #. TRANS: Page title for OpenX admin panel. -#: openxadminpanel.php:53 msgctxt "TITLE" msgid "OpenX" msgstr "OpenX" #. TRANS: Instructions for OpenX admin panel. -#: openxadminpanel.php:64 msgid "OpenX settings for this StatusNet site" msgstr "Поставки за OpenX на ова StatusNet-мрежно место" #. TRANS: Form label in OpenX admin panel. -#: openxadminpanel.php:167 msgid "Ad script URL" msgstr "URL-адреса на рекламната скрипта" #. TRANS: Tooltip for form label in OpenX admin panel. -#: openxadminpanel.php:169 msgid "Script URL" msgstr "URL-адреса на скриптата" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:175 msgid "Medium rectangle" msgstr "Среден правоаголник" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:177 msgid "Medium rectangle zone" msgstr "Зона на среден правоаголник" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:183 msgid "Rectangle" msgstr "Правоаголник" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:185 msgid "Rectangle zone" msgstr "Зона на правоаголник" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:191 msgid "Leaderboard" msgstr "Предводници" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:193 msgid "Leaderboard zone" msgstr "Зона за Предводници" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:199 msgid "Skyscraper" msgstr "Облакодер" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:201 msgid "Wide skyscraper zone" msgstr "Зона на широк облакодер" #. TRANS: Submit button text in OpenX admin panel. -#: openxadminpanel.php:216 msgctxt "BUTTON" msgid "Save" msgstr "Зачувај" #. TRANS: Submit button title in OpenX admin panel. -#: openxadminpanel.php:220 msgid "Save OpenX settings" msgstr "Зачувај поставки за" diff --git a/plugins/OpenX/locale/nl/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/nl/LC_MESSAGES/OpenX.po index 61ada44462..940bc2f646 100644 --- a/plugins/OpenX/locale/nl/LC_MESSAGES/OpenX.po +++ b/plugins/OpenX/locale/nl/LC_MESSAGES/OpenX.po @@ -9,101 +9,84 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:21+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-15 11:02:35+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-11 18:53:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-openx\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Menu item title/tooltip -#: OpenXPlugin.php:201 msgid "OpenX configuration" msgstr "OpenX-instellingen" #. TRANS: Menu item for site administration -#: OpenXPlugin.php:203 msgid "OpenX" msgstr "OpenX" #. TRANS: Plugin description. -#: OpenXPlugin.php:224 msgid "Plugin for OpenX Ad Server." msgstr "Plug-in voor OpenX Ad Server." #. TRANS: Page title for OpenX admin panel. -#: openxadminpanel.php:53 msgctxt "TITLE" msgid "OpenX" msgstr "OpenX" #. TRANS: Instructions for OpenX admin panel. -#: openxadminpanel.php:64 msgid "OpenX settings for this StatusNet site" msgstr "OpenX-instellingen voor deze StatusNet-website" #. TRANS: Form label in OpenX admin panel. -#: openxadminpanel.php:167 msgid "Ad script URL" msgstr "URL voor advertentiescript" #. TRANS: Tooltip for form label in OpenX admin panel. -#: openxadminpanel.php:169 msgid "Script URL" msgstr "Script-URL" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:175 msgid "Medium rectangle" msgstr "Middelgrote rechthoek" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:177 msgid "Medium rectangle zone" msgstr "Middelgrote rechthoekzone" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:183 msgid "Rectangle" msgstr "Rechthoek" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:185 msgid "Rectangle zone" msgstr "Rechthoekzone" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:191 msgid "Leaderboard" msgstr "Breedbeeldbanner" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:193 msgid "Leaderboard zone" msgstr "Breedbeeldbannerzone" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:199 msgid "Skyscraper" msgstr "Skyscraper" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:201 msgid "Wide skyscraper zone" msgstr "Brede skyscraperzone" #. TRANS: Submit button text in OpenX admin panel. -#: openxadminpanel.php:216 msgctxt "BUTTON" msgid "Save" msgstr "Opslaan" #. TRANS: Submit button title in OpenX admin panel. -#: openxadminpanel.php:220 msgid "Save OpenX settings" msgstr "OpenX-instellingen opslaan" diff --git a/plugins/OpenX/locale/uk/LC_MESSAGES/OpenX.po b/plugins/OpenX/locale/uk/LC_MESSAGES/OpenX.po index 3b2a1fee72..abbddb10ac 100644 --- a/plugins/OpenX/locale/uk/LC_MESSAGES/OpenX.po +++ b/plugins/OpenX/locale/uk/LC_MESSAGES/OpenX.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - OpenX\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:21+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-15 11:02:35+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-11 18:53:23+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-openx\n" @@ -23,89 +23,72 @@ msgstr "" "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" #. TRANS: Menu item title/tooltip -#: OpenXPlugin.php:201 msgid "OpenX configuration" msgstr "Конфігурація OpenX" #. TRANS: Menu item for site administration -#: OpenXPlugin.php:203 msgid "OpenX" msgstr "OpenX" #. TRANS: Plugin description. -#: OpenXPlugin.php:224 msgid "Plugin for OpenX Ad Server." msgstr "" "Додаток для рекламного сервера OpenX." #. TRANS: Page title for OpenX admin panel. -#: openxadminpanel.php:53 msgctxt "TITLE" msgid "OpenX" msgstr "OpenX" #. TRANS: Instructions for OpenX admin panel. -#: openxadminpanel.php:64 msgid "OpenX settings for this StatusNet site" msgstr "Налаштування OpenX для даного сайту StatusNet" #. TRANS: Form label in OpenX admin panel. -#: openxadminpanel.php:167 msgid "Ad script URL" msgstr "URL-адреса рекламного скрипту" #. TRANS: Tooltip for form label in OpenX admin panel. -#: openxadminpanel.php:169 msgid "Script URL" msgstr "URL-адреса скрипту" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:175 msgid "Medium rectangle" msgstr "Середній прямокутник" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:177 msgid "Medium rectangle zone" msgstr "Зона середнього прямокутника" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:183 msgid "Rectangle" msgstr "Прямокутник" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:185 msgid "Rectangle zone" msgstr "Зона прямокутника" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:191 msgid "Leaderboard" msgstr "Банер" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:193 msgid "Leaderboard zone" msgstr "Зона банеру" #. TRANS: Form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:199 msgid "Skyscraper" msgstr "Хмарочос" #. TRANS: Tooltip for form label in OpenX admin panel. Refers to advertisement format. -#: openxadminpanel.php:201 msgid "Wide skyscraper zone" msgstr "Зона широкого хмарочосу" #. TRANS: Submit button text in OpenX admin panel. -#: openxadminpanel.php:216 msgctxt "BUTTON" msgid "Save" msgstr "Зберегти" #. TRANS: Submit button title in OpenX admin panel. -#: openxadminpanel.php:220 msgid "Save OpenX settings" msgstr "Зберегти налаштування OpenX" diff --git a/plugins/PiwikAnalytics/locale/PiwikAnalytics.pot b/plugins/PiwikAnalytics/locale/PiwikAnalytics.pot index cea5fa6147..e975581155 100644 --- a/plugins/PiwikAnalytics/locale/PiwikAnalytics.pot +++ b/plugins/PiwikAnalytics/locale/PiwikAnalytics.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/PiwikAnalytics/locale/de/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/de/LC_MESSAGES/PiwikAnalytics.po index ffadde96d2..5ff7a73c37 100644 --- a/plugins/PiwikAnalytics/locale/de/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/de/LC_MESSAGES/PiwikAnalytics.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:59+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:29+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/PiwikAnalytics/locale/es/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/es/LC_MESSAGES/PiwikAnalytics.po index 7454146330..b9eb001862 100644 --- a/plugins/PiwikAnalytics/locale/es/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/es/LC_MESSAGES/PiwikAnalytics.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:59+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:29+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/PiwikAnalytics/locale/fr/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/fr/LC_MESSAGES/PiwikAnalytics.po index 6ce1287253..889b7132d3 100644 --- a/plugins/PiwikAnalytics/locale/fr/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/fr/LC_MESSAGES/PiwikAnalytics.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:50:59+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:29+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/PiwikAnalytics/locale/he/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/he/LC_MESSAGES/PiwikAnalytics.po index 52000944a6..32eae37046 100644 --- a/plugins/PiwikAnalytics/locale/he/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/he/LC_MESSAGES/PiwikAnalytics.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:29+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/PiwikAnalytics/locale/ia/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/ia/LC_MESSAGES/PiwikAnalytics.po index ba001e9e32..f5618c2562 100644 --- a/plugins/PiwikAnalytics/locale/ia/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/ia/LC_MESSAGES/PiwikAnalytics.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:29+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/PiwikAnalytics/locale/id/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/id/LC_MESSAGES/PiwikAnalytics.po index bda548a8f8..b66d5c5c50 100644 --- a/plugins/PiwikAnalytics/locale/id/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/id/LC_MESSAGES/PiwikAnalytics.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:29+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/PiwikAnalytics/locale/mk/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/mk/LC_MESSAGES/PiwikAnalytics.po index fc3f991883..1a1d5ad3e3 100644 --- a/plugins/PiwikAnalytics/locale/mk/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/mk/LC_MESSAGES/PiwikAnalytics.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:29+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/PiwikAnalytics/locale/nb/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/nb/LC_MESSAGES/PiwikAnalytics.po index 04ea51b77f..6d6ee90526 100644 --- a/plugins/PiwikAnalytics/locale/nb/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/nb/LC_MESSAGES/PiwikAnalytics.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:29+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/PiwikAnalytics/locale/nl/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/nl/LC_MESSAGES/PiwikAnalytics.po index 41d784ee4f..8994a30b5e 100644 --- a/plugins/PiwikAnalytics/locale/nl/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/nl/LC_MESSAGES/PiwikAnalytics.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:29+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/PiwikAnalytics/locale/pt/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/pt/LC_MESSAGES/PiwikAnalytics.po index c750d39ec8..76ff798ccc 100644 --- a/plugins/PiwikAnalytics/locale/pt/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/pt/LC_MESSAGES/PiwikAnalytics.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:40+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:29+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/PiwikAnalytics/locale/pt_BR/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/pt_BR/LC_MESSAGES/PiwikAnalytics.po index f2c84a4252..53fa703501 100644 --- a/plugins/PiwikAnalytics/locale/pt_BR/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/pt_BR/LC_MESSAGES/PiwikAnalytics.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:30+0000\n" "Language-Team: Brazilian Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/PiwikAnalytics/locale/ru/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/ru/LC_MESSAGES/PiwikAnalytics.po index 0a50fb26c7..0b253eef83 100644 --- a/plugins/PiwikAnalytics/locale/ru/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/ru/LC_MESSAGES/PiwikAnalytics.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:30+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/PiwikAnalytics/locale/tl/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/tl/LC_MESSAGES/PiwikAnalytics.po index 4bdbf978a4..1d06cdb8e0 100644 --- a/plugins/PiwikAnalytics/locale/tl/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/tl/LC_MESSAGES/PiwikAnalytics.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:30+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/PiwikAnalytics/locale/uk/LC_MESSAGES/PiwikAnalytics.po b/plugins/PiwikAnalytics/locale/uk/LC_MESSAGES/PiwikAnalytics.po index 48d3deaac3..6931366ac3 100644 --- a/plugins/PiwikAnalytics/locale/uk/LC_MESSAGES/PiwikAnalytics.po +++ b/plugins/PiwikAnalytics/locale/uk/LC_MESSAGES/PiwikAnalytics.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PiwikAnalytics\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:30+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-piwikanalytics\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: PiwikAnalyticsPlugin.php:113 msgid "" "Use Piwik Open Source web analytics " "software." diff --git a/plugins/Poll/Poll.php b/plugins/Poll/Poll.php new file mode 100644 index 0000000000..f5fa9bade5 --- /dev/null +++ b/plugins/Poll/Poll.php @@ -0,0 +1,270 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2011, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * For storing the poll options and such + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see DB_DataObject + */ + +class Poll extends Managed_DataObject +{ + public $__table = 'poll'; // table name + public $id; // char(36) primary key not null -> UUID + public $uri; + public $profile_id; // int -> profile.id + public $question; // text + public $options; // text; newline(?)-delimited + public $created; // datetime + + /** + * Get an instance by key + * + * This is a utility method to get a single instance with a given key value. + * + * @param string $k Key to use to lookup (usually 'user_id' for this class) + * @param mixed $v Value to lookup + * + * @return User_greeting_count object found, or null for no hits + * + */ + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Poll', $k, $v); + } + + /** + * Get an instance by compound key + * + * This is a utility method to get a single instance with a given set of + * key-value pairs. Usually used for the primary key for a compound key; thus + * the name. + * + * @param array $kv array of key-value mappings + * + * @return Bookmark object found, or null for no hits + * + */ + function pkeyGet($kv) + { + return Memcached_DataObject::pkeyGet('Poll', $kv); + } + + /** + * The One True Thingy that must be defined and declared. + */ + public static function schemaDef() + { + return array( + 'description' => 'Per-notice poll data for Poll plugin', + 'fields' => array( + 'id' => array('type' => 'char', 'length' => 36, 'not null' => true, 'description' => 'UUID'), + 'uri' => array('type' => 'varchar', 'length' => 255, 'not null' => true), + 'profile_id' => array('type' => 'int'), + 'question' => array('type' => 'text'), + 'options' => array('type' => 'text'), + 'created' => array('type' => 'datetime', 'not null' => true), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'poll_uri_key' => array('uri'), + ), + ); + } + + /** + * Get a bookmark based on a notice + * + * @param Notice $notice Notice to check for + * + * @return Poll found poll or null + */ + function getByNotice($notice) + { + return self::staticGet('uri', $notice->uri); + } + + function getOptions() + { + return explode("\n", $this->options); + } + + /** + * Is this a valid selection index? + * + * @param numeric $selection (1-based) + * @return boolean + */ + function isValidSelection($selection) + { + if ($selection != intval($selection)) { + return false; + } + if ($selection < 1 || $selection > count($this->getOptions())) { + return false; + } + return true; + } + + function getNotice() + { + return Notice::staticGet('uri', $this->uri); + } + + function bestUrl() + { + return $this->getNotice()->bestUrl(); + } + + /** + * Get the response of a particular user to this poll, if any. + * + * @param Profile $profile + * @return Poll_response object or null + */ + function getResponse(Profile $profile) + { + $pr = new Poll_response(); + $pr->poll_id = $this->id; + $pr->profile_id = $profile->id; + $pr->find(); + if ($pr->fetch()) { + return $pr; + } else { + return null; + } + } + + function countResponses() + { + $pr = new Poll_response(); + $pr->poll_id = $this->id; + $pr->groupBy('selection'); + $pr->selectAdd('count(profile_id) as votes'); + $pr->find(); + + $raw = array(); + while ($pr->fetch()) { + // Votes list 1-based + // Array stores 0-based + $raw[$pr->selection - 1] = $pr->votes; + } + + $counts = array(); + foreach (array_keys($this->getOptions()) as $key) { + if (isset($raw[$key])) { + $counts[$key] = $raw[$key]; + } else { + $counts[$key] = 0; + } + } + return $counts; + } + + /** + * Save a new poll notice + * + * @param Profile $profile + * @param string $question + * @param array $opts (poll responses) + * + * @return Notice saved notice + */ + static function saveNew($profile, $question, $opts, $options=null) + { + if (empty($options)) { + $options = array(); + } + + $p = new Poll(); + + $p->id = UUID::gen(); + $p->profile_id = $profile->id; + $p->question = $question; + $p->options = implode("\n", $opts); + + if (array_key_exists('created', $options)) { + $p->created = $options['created']; + } else { + $p->created = common_sql_now(); + } + + if (array_key_exists('uri', $options)) { + $p->uri = $options['uri']; + } else { + $p->uri = common_local_url('showpoll', + array('id' => $p->id)); + } + + common_log(LOG_DEBUG, "Saving poll: $p->id $p->uri"); + $p->insert(); + + // TRANS: Notice content creating a poll. + // TRANS: %1$s is the poll question, %2$s is a link to the poll. + $content = sprintf(_m('Poll: %1$s %2$s'), + $question, + $p->uri); + $link = '' . htmlspecialchars($question) . ''; + // TRANS: Rendered version of the notice content creating a poll. + // TRANS: %s a link to the poll with the question as link description. + $rendered = sprintf(_m('Poll: %s'), $link); + + $tags = array('poll'); + $replies = array(); + + $options = array_merge(array('urls' => array(), + 'rendered' => $rendered, + 'tags' => $tags, + 'replies' => $replies, + 'object_type' => PollPlugin::POLL_OBJECT), + $options); + + if (!array_key_exists('uri', $options)) { + $options['uri'] = $p->uri; + } + + $saved = Notice::saveNew($profile->id, + $content, + array_key_exists('source', $options) ? + $options['source'] : 'web', + $options); + + return $saved; + } +} diff --git a/plugins/Poll/PollPlugin.php b/plugins/Poll/PollPlugin.php new file mode 100644 index 0000000000..941c13dd37 --- /dev/null +++ b/plugins/Poll/PollPlugin.php @@ -0,0 +1,483 @@ +. + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Poll plugin main class + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +class PollPlugin extends MicroAppPlugin +{ + const VERSION = '0.1'; + + // @fixme which domain should we use for these namespaces? + const POLL_OBJECT = 'http://activityschema.org/object/poll'; + const POLL_RESPONSE_OBJECT = 'http://activityschema.org/object/poll-response'; + + /** + * Database schema setup + * + * @see Schema + * @see ColumnDef + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onCheckSchema() + { + $schema = Schema::get(); + $schema->ensureTable('poll', Poll::schemaDef()); + $schema->ensureTable('poll_response', Poll_response::schemaDef()); + return true; + } + + /** + * Show the CSS necessary for this plugin + * + * @param Action $action the action being run + * + * @return boolean hook value + */ + function onEndShowStyles($action) + { + $action->cssLink($this->path('poll.css')); + return true; + } + + /** + * Load related modules when needed + * + * @param string $cls Name of the class to be loaded + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onAutoload($cls) + { + $dir = dirname(__FILE__); + + switch ($cls) + { + case 'ShowpollAction': + case 'NewpollAction': + case 'RespondpollAction': + include_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php'; + return false; + case 'Poll': + case 'Poll_response': + include_once $dir.'/'.$cls.'.php'; + return false; + case 'NewPollForm': + case 'PollResponseForm': + case 'PollResultForm': + include_once $dir.'/'.strtolower($cls).'.php'; + return false; + default: + return true; + } + } + + /** + * Map URLs to actions + * + * @param Net_URL_Mapper $m path-to-action mapper + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onRouterInitialized($m) + { + $m->connect('main/poll/new', + array('action' => 'newpoll')); + + $m->connect('main/poll/:id', + array('action' => 'showpoll'), + array('id' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')); + + $m->connect('main/poll/response/:id', + array('action' => 'showpollresponse'), + array('id' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')); + + $m->connect('main/poll/:id/respond', + array('action' => 'respondpoll'), + array('id' => '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}')); + + return true; + } + + /** + * Plugin version data + * + * @param array &$versions array of version data + * + * @return value + */ + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'Poll', + 'version' => self::VERSION, + 'author' => 'Brion Vibber', + 'homepage' => 'http://status.net/wiki/Plugin:Poll', + 'rawdescription' => + // TRANS: Plugin description. + _m('Simple extension for supporting basic polls.')); + return true; + } + + function types() + { + return array(self::POLL_OBJECT, self::POLL_RESPONSE_OBJECT); + } + + /** + * When a notice is deleted, delete the related Poll + * + * @param Notice $notice Notice being deleted + * + * @return boolean hook value + */ + function deleteRelated($notice) + { + $p = Poll::getByNotice($notice); + + if (!empty($p)) { + $p->delete(); + } + + return true; + } + + /** + * Save a poll from an activity + * + * @param Profile $profile Profile to use as author + * @param Activity $activity Activity to save + * @param array $options Options to pass to bookmark-saving code + * + * @return Notice resulting notice + */ + function saveNoticeFromActivity($activity, $profile, $options=array()) + { + // @fixme + common_log(LOG_DEBUG, "XXX activity: " . var_export($activity, true)); + common_log(LOG_DEBUG, "XXX profile: " . var_export($profile, true)); + common_log(LOG_DEBUG, "XXX options: " . var_export($options, true)); + + // Ok for now, we can grab stuff from the XML entry directly. + // This won't work when reading from JSON source + if ($activity->entry) { + $pollElements = $activity->entry->getElementsByTagNameNS(self::POLL_OBJECT, 'poll'); + $responseElements = $activity->entry->getElementsByTagNameNS(self::POLL_OBJECT, 'response'); + if ($pollElements->length) { + $question = ''; + $opts = array(); + + $data = $pollElements->item(0); + foreach ($data->getElementsByTagNameNS(self::POLL_OBJECT, 'question') as $node) { + $question = $node->textContent; + } + foreach ($data->getElementsByTagNameNS(self::POLL_OBJECT, 'option') as $node) { + $opts[] = $node->textContent; + } + try { + $notice = Poll::saveNew($profile, $question, $opts, $options); + common_log(LOG_DEBUG, "Saved Poll from ActivityStream data ok: notice id " . $notice->id); + return $notice; + } catch (Exception $e) { + common_log(LOG_DEBUG, "Poll save from ActivityStream data failed: " . $e->getMessage()); + } + } else if ($responseElements->length) { + $data = $responseElements->item(0); + $pollUri = $data->getAttribute('poll'); + $selection = intval($data->getAttribute('selection')); + + if (!$pollUri) { + // TRANS: Exception thrown trying to respond to a poll without a poll reference. + throw new Exception(_m('Invalid poll response: no poll reference.')); + } + $poll = Poll::staticGet('uri', $pollUri); + if (!$poll) { + // TRANS: Exception thrown trying to respond to a non-existing poll. + throw new Exception(_m('Invalid poll response: poll is unknown.')); + } + try { + $notice = Poll_response::saveNew($profile, $poll, $selection, $options); + common_log(LOG_DEBUG, "Saved Poll_response ok, notice id: " . $notice->id); + return $notice; + } catch (Exception $e) { + common_log(LOG_DEBUG, "Poll response save fail: " . $e->getMessage()); + } + } else { + common_log(LOG_DEBUG, "YYY no poll data"); + } + } + } + + function activityObjectFromNotice($notice) + { + assert($this->isMyNotice($notice)); + + switch ($notice->object_type) { + case self::POLL_OBJECT: + return $this->activityObjectFromNoticePoll($notice); + case self::POLL_RESPONSE_OBJECT: + return $this->activityObjectFromNoticePollResponse($notice); + default: + // TRANS: Exception thrown when performing an unexpected action on a poll. + // TRANS: %s is the unpexpected object type. + throw new Exception(sprintf(_m('Unexpected type for poll plugin: %s.'), $notice->object_type)); + } + } + + function activityObjectFromNoticePollResponse($notice) + { + $object = new ActivityObject(); + $object->id = $notice->uri; + $object->type = self::POLL_RESPONSE_OBJECT; + $object->title = $notice->content; + $object->summary = $notice->content; + $object->link = $notice->bestUrl(); + + $response = Poll_response::getByNotice($notice); + if ($response) { + $poll = $response->getPoll(); + if ($poll) { + // Stash data to be formatted later by + // $this->activityObjectOutputAtom() or + // $this->activityObjectOutputJson()... + $object->pollSelection = intval($response->selection); + $object->pollUri = $poll->uri; + } + } + return $object; + } + + function activityObjectFromNoticePoll($notice) + { + $object = new ActivityObject(); + $object->id = $notice->uri; + $object->type = self::POLL_OBJECT; + $object->title = $notice->content; + $object->summary = $notice->content; + $object->link = $notice->bestUrl(); + + $poll = Poll::getByNotice($notice); + if ($poll) { + // Stash data to be formatted later by + // $this->activityObjectOutputAtom() or + // $this->activityObjectOutputJson()... + $object->pollQuestion = $poll->question; + $object->pollOptions = $poll->getOptions(); + } + + return $object; + } + + /** + * Called when generating Atom XML ActivityStreams output from an + * ActivityObject belonging to this plugin. Gives the plugin + * a chance to add custom output. + * + * Note that you can only add output of additional XML elements, + * not change existing stuff here. + * + * If output is already handled by the base Activity classes, + * you can leave this base implementation as a no-op. + * + * @param ActivityObject $obj + * @param XMLOutputter $out to add elements at end of object + */ + function activityObjectOutputAtom(ActivityObject $obj, XMLOutputter $out) + { + if (isset($obj->pollQuestion)) { + /** + * + * Who wants a poll question? + * Option one + * Option two + * Option three + * + */ + $data = array('xmlns:poll' => self::POLL_OBJECT); + $out->elementStart('poll:poll', $data); + $out->element('poll:question', array(), $obj->pollQuestion); + foreach ($obj->pollOptions as $opt) { + $out->element('poll:option', array(), $opt); + } + $out->elementEnd('poll:poll'); + } + if (isset($obj->pollSelection)) { + /** + * + * poll="http://..../poll/...." + * selection="3" /> + */ + $data = array('xmlns:poll' => self::POLL_OBJECT, + 'poll' => $obj->pollUri, + 'selection' => $obj->pollSelection); + $out->element('poll:response', $data, ''); + } + } + + /** + * Called when generating JSON ActivityStreams output from an + * ActivityObject belonging to this plugin. Gives the plugin + * a chance to add custom output. + * + * Modify the array contents to your heart's content, and it'll + * all get serialized out as JSON. + * + * If output is already handled by the base Activity classes, + * you can leave this base implementation as a no-op. + * + * @param ActivityObject $obj + * @param array &$out JSON-targeted array which can be modified + */ + public function activityObjectOutputJson(ActivityObject $obj, array &$out) + { + common_log(LOG_DEBUG, 'QQQ: ' . var_export($obj, true)); + if (isset($obj->pollQuestion)) { + /** + * "poll": { + * "question": "Who wants a poll question?", + * "options": [ + * "Option 1", + * "Option 2", + * "Option 3" + * ] + * } + */ + $data = array('question' => $obj->pollQuestion, + 'options' => array()); + foreach ($obj->pollOptions as $opt) { + $data['options'][] = $opt; + } + $out['poll'] = $data; + } + if (isset($obj->pollSelection)) { + /** + * "pollResponse": { + * "poll": "http://..../poll/....", + * "selection": 3 + * } + */ + $data = array('poll' => $obj->pollUri, + 'selection' => $obj->pollSelection); + $out['pollResponse'] = $data; + } + } + + + /** + * @fixme WARNING WARNING WARNING parent class closes the final div that we + * open here, but we probably shouldn't open it here. Check parent class + * and Bookmark plugin for if that's right. + */ + function showNotice($notice, $out) + { + switch ($notice->object_type) { + case self::POLL_OBJECT: + return $this->showNoticePoll($notice, $out); + case self::POLL_RESPONSE_OBJECT: + return $this->showNoticePollResponse($notice, $out); + default: + // TRANS: Exception thrown when performing an unexpected action on a poll. + // TRANS: %s is the unpexpected object type. + throw new Exception(sprintf(_m('Unexpected type for poll plugin: %s.'), $notice->object_type)); + } + } + + function showNoticePoll($notice, $out) + { + $user = common_current_user(); + + // @hack we want regular rendering, then just add stuff after that + $nli = new NoticeListItem($notice, $out); + $nli->showNotice(); + + $out->elementStart('div', array('class' => 'entry-content poll-content')); + $poll = Poll::getByNotice($notice); + if ($poll) { + if ($user) { + $profile = $user->getProfile(); + $response = $poll->getResponse($profile); + if ($response) { + // User has already responded; show the results. + $form = new PollResultForm($poll, $out); + } else { + $form = new PollResponseForm($poll, $out); + } + $form->show(); + } + } else { + $out->text(_('Poll data is missing')); + } + $out->elementEnd('div'); + + // @fixme + $out->elementStart('div', array('class' => 'entry-content')); + } + + function showNoticePollResponse($notice, $out) + { + $user = common_current_user(); + + // @hack we want regular rendering, then just add stuff after that + $nli = new NoticeListItem($notice, $out); + $nli->showNotice(); + + // @fixme + $out->elementStart('div', array('class' => 'entry-content')); + } + + function entryForm($out) + { + return new NewPollForm($out); + } + + // @fixme is this from parent? + function tag() + { + return 'poll'; + } + + function appTitle() + { + // TRANS: Application title. + return _m('APPTITLE','Poll'); + } +} diff --git a/plugins/Poll/Poll_response.php b/plugins/Poll/Poll_response.php new file mode 100644 index 0000000000..a4ea999933 --- /dev/null +++ b/plugins/Poll/Poll_response.php @@ -0,0 +1,225 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2011, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * For storing the poll options and such + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see DB_DataObject + */ +class Poll_response extends Managed_DataObject +{ + public $__table = 'poll_response'; // table name + public $id; // char(36) primary key not null -> UUID + public $poll_id; // char(36) -> poll.id UUID + public $profile_id; // int -> profile.id + public $selection; // int -> choice # + public $created; // datetime + + /** + * Get an instance by key + * + * This is a utility method to get a single instance with a given key value. + * + * @param string $k Key to use to lookup (usually 'user_id' for this class) + * @param mixed $v Value to lookup + * + * @return User_greeting_count object found, or null for no hits + * + */ + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('Poll_response', $k, $v); + } + + /** + * Get an instance by compound key + * + * This is a utility method to get a single instance with a given set of + * key-value pairs. Usually used for the primary key for a compound key; thus + * the name. + * + * @param array $kv array of key-value mappings + * + * @return Bookmark object found, or null for no hits + * + */ + function pkeyGet($kv) + { + return Memcached_DataObject::pkeyGet('Poll_response', $kv); + } + + /** + * The One True Thingy that must be defined and declared. + */ + public static function schemaDef() + { + return array( + 'description' => 'Record of responses to polls', + 'fields' => array( + 'id' => array('type' => 'char', 'length' => 36, 'not null' => true, 'description' => 'UUID of the response'), + 'uri' => array('type' => 'varchar', 'length' => 255, 'not null' => true, 'description' => 'UUID to the response notice'), + 'poll_id' => array('type' => 'char', 'length' => 36, 'not null' => true, 'description' => 'UUID of poll being responded to'), + 'profile_id' => array('type' => 'int'), + 'selection' => array('type' => 'int'), + 'created' => array('type' => 'datetime', 'not null' => true), + ), + 'primary key' => array('id'), + 'unique keys' => array( + 'poll_uri_key' => array('uri'), + 'poll_response_poll_id_profile_id_key' => array('poll_id', 'profile_id'), + ), + 'indexes' => array( + 'poll_response_profile_id_poll_id_index' => array('profile_id', 'poll_id'), + ) + ); + } + + /** + * Get a poll response based on a notice + * + * @param Notice $notice Notice to check for + * + * @return Poll_response found response or null + */ + function getByNotice($notice) + { + return self::staticGet('uri', $notice->uri); + } + + /** + * Get the notice that belongs to this response... + * + * @return Notice + */ + function getNotice() + { + return Notice::staticGet('uri', $this->uri); + } + + function bestUrl() + { + return $this->getNotice()->bestUrl(); + } + + /** + * + * @return Poll + */ + function getPoll() + { + return Poll::staticGet('id', $this->poll_id); + } + /** + * Save a new poll notice + * + * @param Profile $profile + * @param Poll $poll the poll being responded to + * @param int $selection (1-based) + * @param array $opts (poll responses) + * + * @return Notice saved notice + */ + static function saveNew($profile, $poll, $selection, $options=null) + { + if (empty($options)) { + $options = array(); + } + + if (!$poll->isValidSelection($selection)) { + // TRANS: Client exception thrown when responding to a poll with an invalid option. + throw new ClientException(_m('Invalid poll selection.')); + } + $opts = $poll->getOptions(); + $answer = $opts[$selection - 1]; + + $pr = new Poll_response(); + $pr->id = UUID::gen(); + $pr->profile_id = $profile->id; + $pr->poll_id = $poll->id; + $pr->selection = $selection; + + if (array_key_exists('created', $options)) { + $pr->created = $options['created']; + } else { + $pr->created = common_sql_now(); + } + + if (array_key_exists('uri', $options)) { + $pr->uri = $options['uri']; + } else { + $pr->uri = common_local_url('showpollresponse', + array('id' => $pr->id)); + } + + common_log(LOG_DEBUG, "Saving poll response: $pr->id $pr->uri"); + $pr->insert(); + + // TRANS: Notice content voting for a poll. + // TRANS: %s is the chosen option in the poll. + $content = sprintf(_m('voted for "%s"'), + $answer); + $link = '' . htmlspecialchars($answer) . ''; + // TRANS: Rendered version of the notice content voting for a poll. + // TRANS: %s a link to the poll with the chosen option as link description. + $rendered = sprintf(_m('voted for "%s"'), $link); + + $tags = array(); + $replies = array(); + + $options = array_merge(array('urls' => array(), + 'rendered' => $rendered, + 'tags' => $tags, + 'replies' => $replies, + 'reply_to' => $poll->getNotice()->id, + 'object_type' => PollPlugin::POLL_RESPONSE_OBJECT), + $options); + + if (!array_key_exists('uri', $options)) { + $options['uri'] = $pr->uri; + } + + $saved = Notice::saveNew($profile->id, + $content, + array_key_exists('source', $options) ? + $options['source'] : 'web', + $options); + + return $saved; + } +} diff --git a/plugins/Poll/README b/plugins/Poll/README new file mode 100644 index 0000000000..cd91a03945 --- /dev/null +++ b/plugins/Poll/README @@ -0,0 +1,21 @@ +Unfinished basic stuff: +* make pretty graphs for response counts +* ActivityStreams output of poll data is temporary; the interfaces need more flexibility +* ActivityStreams input not done yet +* need link -> show results in addition to showing results if you already voted +* way to change/cancel your vote + +Known issues: +* HTTP caching needs fixing on show-poll; may show you old data if you voted after + +Things todo: +* should we allow anonymous responses? or ways for remote profiles to respond locally? + +Fancier things todo: +* make sure backup/restore work +* make sure ostatus transfer works +* a way to do poll responses over ostatus directly? +* allow links, tags, @-references in poll question & answers? or not? + +Storage todo: +* probably separate the options into a table instead of squishing them in a text blob diff --git a/plugins/Poll/locale/Poll.pot b/plugins/Poll/locale/Poll.pot new file mode 100644 index 0000000000..04dcc5c9d3 --- /dev/null +++ b/plugins/Poll/locale/Poll.pot @@ -0,0 +1,175 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: Client exception thrown trying to view a non-existing poll. +#: showpoll.php:68 +msgid "No such poll." +msgstr "" + +#. TRANS: Client exception thrown trying to view a non-existing poll notice. +#: showpoll.php:76 +msgid "No such poll notice." +msgstr "" + +#. TRANS: Client exception thrown trying to view a poll of a non-existing user. +#: showpoll.php:83 +msgid "No such user." +msgstr "" + +#. TRANS: Server exception thrown trying to view a poll for a user for which the profile could not be loaded. +#: showpoll.php:90 +msgid "User without a profile." +msgstr "" + +#. TRANS: Page title for a poll. +#. TRANS: %1$s is the nickname of the user that created the poll, %2$s is the poll question. +#: showpoll.php:109 +#, php-format +msgid "%1$s's poll: %2$s" +msgstr "" + +#. TRANS: Field label on the page to create a poll. +#: newpollform.php:107 +msgid "Question" +msgstr "" + +#. TRANS: Field title on the page to create a poll. +#: newpollform.php:110 +msgid "What question are people answering?" +msgstr "" + +#. TRANS: Field label for an answer option on the page to create a poll. +#. TRANS: %d is the option number. +#: newpollform.php:128 +#, php-format +msgid "Option %d" +msgstr "" + +#. TRANS: Button text for saving a new poll. +#: newpollform.php:145 +msgctxt "BUTTON" +msgid "Save" +msgstr "" + +#. TRANS: Plugin description. +#: PollPlugin.php:157 +msgid "Simple extension for supporting basic polls." +msgstr "" + +#. TRANS: Exception thrown trying to respond to a poll without a poll reference. +#: PollPlugin.php:230 +msgid "Invalid poll response: no poll reference." +msgstr "" + +#. TRANS: Exception thrown trying to respond to a non-existing poll. +#: PollPlugin.php:235 +msgid "Invalid poll response: poll is unknown." +msgstr "" + +#. TRANS: Exception thrown when performing an unexpected action on a poll. +#. TRANS: %s is the unpexpected object type. +#: PollPlugin.php:262 PollPlugin.php:420 +#, php-format +msgid "Unexpected type for poll plugin: %s." +msgstr "" + +#. TRANS: Application title. +#: PollPlugin.php:481 +msgctxt "APPTITLE" +msgid "Poll" +msgstr "" + +#. TRANS: Client exception thrown when responding to a poll with an invalid option. +#. TRANS: Client exception thrown responding to a poll with an invalid answer. +#: Poll_response.php:166 respondpoll.php:102 +msgid "Invalid poll selection." +msgstr "" + +#. TRANS: Notice content voting for a poll. +#. TRANS: %s is the chosen option in the poll. +#. TRANS: Rendered version of the notice content voting for a poll. +#. TRANS: %s a link to the poll with the chosen option as link description. +#: Poll_response.php:195 Poll_response.php:200 +#, php-format +msgid "voted for \"%s\"" +msgstr "" + +#. TRANS: Button text for submitting a poll response. +#: pollresponseform.php:127 +msgctxt "BUTTON" +msgid "Submit" +msgstr "" + +#. TRANS: Notice content creating a poll. +#. TRANS: %1$s is the poll question, %2$s is a link to the poll. +#: Poll.php:240 +#, php-format +msgid "Poll: %1$s %2$s" +msgstr "" + +#. TRANS: Rendered version of the notice content creating a poll. +#. TRANS: %s a link to the poll with the question as link description. +#: Poll.php:246 +#, php-format +msgid "Poll: %s" +msgstr "" + +#. TRANS: Title for poll page. +#: newpoll.php:63 +msgid "New poll" +msgstr "" + +#. TRANS: Client exception thrown trying to create a poll while not logged in. +#: newpoll.php:81 +msgid "You must be logged in to post a poll." +msgstr "" + +#. TRANS: Client exception thrown trying to create a poll without a question. +#: newpoll.php:133 +msgid "Poll must have a question." +msgstr "" + +#. TRANS: Client exception thrown trying to create a poll with fewer than two options. +#: newpoll.php:138 +msgid "Poll must have at least two options." +msgstr "" + +#. TRANS: Page title after sending a notice. +#: newpoll.php:157 +msgid "Notice posted" +msgstr "" + +#. TRANS: Page title for poll response. +#: respondpoll.php:63 +msgid "Poll response" +msgstr "" + +#. TRANS: Client exception thrown trying to respond to a poll while not logged in. +#: respondpoll.php:84 +msgid "You must be logged in to respond to a poll." +msgstr "" + +#. TRANS: Client exception thrown trying to respond to a non-existing poll. +#: respondpoll.php:96 +msgid "Invalid or missing poll." +msgstr "" + +#. TRANS: Page title after sending a poll response. +#: respondpoll.php:152 +msgid "Poll results" +msgstr "" diff --git a/plugins/Poll/locale/ia/LC_MESSAGES/Poll.po b/plugins/Poll/locale/ia/LC_MESSAGES/Poll.po new file mode 100644 index 0000000000..055e9f0b82 --- /dev/null +++ b/plugins/Poll/locale/ia/LC_MESSAGES/Poll.po @@ -0,0 +1,152 @@ +# Translation of StatusNet - Poll to Interlingua (Interlingua) +# Exported from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Poll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:31+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 10:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-poll\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Client exception thrown trying to view a non-existing poll. +msgid "No such poll." +msgstr "Iste sondage non existe." + +#. TRANS: Client exception thrown trying to view a non-existing poll notice. +msgid "No such poll notice." +msgstr "Iste nota de sondage non existe." + +#. TRANS: Client exception thrown trying to view a poll of a non-existing user. +msgid "No such user." +msgstr "Iste usator non existe." + +#. TRANS: Server exception thrown trying to view a poll for a user for which the profile could not be loaded. +msgid "User without a profile." +msgstr "Usator sin profilo." + +#. TRANS: Page title for a poll. +#. TRANS: %1$s is the nickname of the user that created the poll, %2$s is the poll question. +#, php-format +msgid "%1$s's poll: %2$s" +msgstr "Le sondage de %1$s: %2$s" + +#. TRANS: Field label on the page to create a poll. +msgid "Question" +msgstr "Question" + +#. TRANS: Field title on the page to create a poll. +msgid "What question are people answering?" +msgstr "A qual question responde le gente?" + +#. TRANS: Field label for an answer option on the page to create a poll. +#. TRANS: %d is the option number. +#, php-format +msgid "Option %d" +msgstr "Option %d" + +#. TRANS: Button text for saving a new poll. +msgctxt "BUTTON" +msgid "Save" +msgstr "Salveguardar" + +#. TRANS: Plugin description. +msgid "Simple extension for supporting basic polls." +msgstr "Extension simple pro supportar sondages basic." + +#. TRANS: Exception thrown trying to respond to a poll without a poll reference. +msgid "Invalid poll response: no poll reference." +msgstr "Responsa invalide a sondage: sin referentia a un sondage." + +#. TRANS: Exception thrown trying to respond to a non-existing poll. +msgid "Invalid poll response: poll is unknown." +msgstr "Responsa invalide a sondage: le sondage es incognite." + +#. TRANS: Exception thrown when performing an unexpected action on a poll. +#. TRANS: %s is the unpexpected object type. +#, php-format +msgid "Unexpected type for poll plugin: %s." +msgstr "Typo inexpectate pro le plug-in de sondages: %s." + +#. TRANS: Application title. +msgctxt "APPTITLE" +msgid "Poll" +msgstr "Sondage" + +#. TRANS: Client exception thrown when responding to a poll with an invalid option. +#. TRANS: Client exception thrown responding to a poll with an invalid answer. +msgid "Invalid poll selection." +msgstr "Selection de sondage invalide." + +#. TRANS: Notice content voting for a poll. +#. TRANS: %s is the chosen option in the poll. +#. TRANS: Rendered version of the notice content voting for a poll. +#. TRANS: %s a link to the poll with the chosen option as link description. +#, php-format +msgid "voted for \"%s\"" +msgstr "votava pro \"%s\"" + +#. TRANS: Button text for submitting a poll response. +msgctxt "BUTTON" +msgid "Submit" +msgstr "Submitter" + +#. TRANS: Notice content creating a poll. +#. TRANS: %1$s is the poll question, %2$s is a link to the poll. +#, php-format +msgid "Poll: %1$s %2$s" +msgstr "Sondage: %1$s %2$s" + +#. TRANS: Rendered version of the notice content creating a poll. +#. TRANS: %s a link to the poll with the question as link description. +#, php-format +msgid "Poll: %s" +msgstr "Sondage: %s" + +#. TRANS: Title for poll page. +msgid "New poll" +msgstr "Nove sondage" + +#. TRANS: Client exception thrown trying to create a poll while not logged in. +msgid "You must be logged in to post a poll." +msgstr "Tu debe aperir un session pro publicar un sondage." + +#. TRANS: Client exception thrown trying to create a poll without a question. +msgid "Poll must have a question." +msgstr "Le sondage debe haber un question." + +#. TRANS: Client exception thrown trying to create a poll with fewer than two options. +msgid "Poll must have at least two options." +msgstr "Le sondage debe haber al minus duo optiones." + +#. TRANS: Page title after sending a notice. +msgid "Notice posted" +msgstr "Nota publicate" + +#. TRANS: Page title for poll response. +msgid "Poll response" +msgstr "Responsa al sondage" + +#. TRANS: Client exception thrown trying to respond to a poll while not logged in. +msgid "You must be logged in to respond to a poll." +msgstr "Tu debe aperir un session pro responder a un sondage." + +#. TRANS: Client exception thrown trying to respond to a non-existing poll. +msgid "Invalid or missing poll." +msgstr "Sondage invalide o mancante." + +#. TRANS: Page title after sending a poll response. +msgid "Poll results" +msgstr "Resultatos del sondage" diff --git a/plugins/Poll/locale/mk/LC_MESSAGES/Poll.po b/plugins/Poll/locale/mk/LC_MESSAGES/Poll.po new file mode 100644 index 0000000000..8509653a3b --- /dev/null +++ b/plugins/Poll/locale/mk/LC_MESSAGES/Poll.po @@ -0,0 +1,152 @@ +# Translation of StatusNet - Poll to Macedonian (Македонски) +# Exported from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Poll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 10:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-poll\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +#. TRANS: Client exception thrown trying to view a non-existing poll. +msgid "No such poll." +msgstr "Нема таква анкета." + +#. TRANS: Client exception thrown trying to view a non-existing poll notice. +msgid "No such poll notice." +msgstr "Нема таква анкетна забелешка." + +#. TRANS: Client exception thrown trying to view a poll of a non-existing user. +msgid "No such user." +msgstr "Нема таков корисник." + +#. TRANS: Server exception thrown trying to view a poll for a user for which the profile could not be loaded. +msgid "User without a profile." +msgstr "Корисник без профил." + +#. TRANS: Page title for a poll. +#. TRANS: %1$s is the nickname of the user that created the poll, %2$s is the poll question. +#, php-format +msgid "%1$s's poll: %2$s" +msgstr "Анкета на %1$s: %2$s" + +#. TRANS: Field label on the page to create a poll. +msgid "Question" +msgstr "Прашање" + +#. TRANS: Field title on the page to create a poll. +msgid "What question are people answering?" +msgstr "На кое прашање одговараат луѓето?" + +#. TRANS: Field label for an answer option on the page to create a poll. +#. TRANS: %d is the option number. +#, php-format +msgid "Option %d" +msgstr "Можност %d" + +#. TRANS: Button text for saving a new poll. +msgctxt "BUTTON" +msgid "Save" +msgstr "Зачувај" + +#. TRANS: Plugin description. +msgid "Simple extension for supporting basic polls." +msgstr "Прост додаток за поддршка на едноставни анкети." + +#. TRANS: Exception thrown trying to respond to a poll without a poll reference. +msgid "Invalid poll response: no poll reference." +msgstr "Неважечки одговор во анкетата: нема назнака на анкетата." + +#. TRANS: Exception thrown trying to respond to a non-existing poll. +msgid "Invalid poll response: poll is unknown." +msgstr "Неважечки одговор во анкетата: анкетата е непозната." + +#. TRANS: Exception thrown when performing an unexpected action on a poll. +#. TRANS: %s is the unpexpected object type. +#, php-format +msgid "Unexpected type for poll plugin: %s." +msgstr "Неочекуван тип за анкетен приклучок: %s." + +#. TRANS: Application title. +msgctxt "APPTITLE" +msgid "Poll" +msgstr "Анкета" + +#. TRANS: Client exception thrown when responding to a poll with an invalid option. +#. TRANS: Client exception thrown responding to a poll with an invalid answer. +msgid "Invalid poll selection." +msgstr "Неважечки избор на анкета." + +#. TRANS: Notice content voting for a poll. +#. TRANS: %s is the chosen option in the poll. +#. TRANS: Rendered version of the notice content voting for a poll. +#. TRANS: %s a link to the poll with the chosen option as link description. +#, php-format +msgid "voted for \"%s\"" +msgstr "гласаше за „%s“" + +#. TRANS: Button text for submitting a poll response. +msgctxt "BUTTON" +msgid "Submit" +msgstr "Поднеси" + +#. TRANS: Notice content creating a poll. +#. TRANS: %1$s is the poll question, %2$s is a link to the poll. +#, php-format +msgid "Poll: %1$s %2$s" +msgstr "Анкета: %1$s %2$s" + +#. TRANS: Rendered version of the notice content creating a poll. +#. TRANS: %s a link to the poll with the question as link description. +#, php-format +msgid "Poll: %s" +msgstr "Анкета: %s" + +#. TRANS: Title for poll page. +msgid "New poll" +msgstr "Нова анкета" + +#. TRANS: Client exception thrown trying to create a poll while not logged in. +msgid "You must be logged in to post a poll." +msgstr "Мора да сте најавени за да можете да објавите анкета." + +#. TRANS: Client exception thrown trying to create a poll without a question. +msgid "Poll must have a question." +msgstr "Анкетата мора да има прашање." + +#. TRANS: Client exception thrown trying to create a poll with fewer than two options. +msgid "Poll must have at least two options." +msgstr "Анкетата мора да има барем две можности." + +#. TRANS: Page title after sending a notice. +msgid "Notice posted" +msgstr "Забелешката е објавена" + +#. TRANS: Page title for poll response. +msgid "Poll response" +msgstr "Одговор на анкетата" + +#. TRANS: Client exception thrown trying to respond to a poll while not logged in. +msgid "You must be logged in to respond to a poll." +msgstr "Мора да сте најавени за да можете да одговарате на анкети." + +#. TRANS: Client exception thrown trying to respond to a non-existing poll. +msgid "Invalid or missing poll." +msgstr "Неважечка или непостоечка анкета." + +#. TRANS: Page title after sending a poll response. +msgid "Poll results" +msgstr "Резултати од анкетата" diff --git a/plugins/Poll/locale/nl/LC_MESSAGES/Poll.po b/plugins/Poll/locale/nl/LC_MESSAGES/Poll.po new file mode 100644 index 0000000000..d4f7c28283 --- /dev/null +++ b/plugins/Poll/locale/nl/LC_MESSAGES/Poll.po @@ -0,0 +1,152 @@ +# Translation of StatusNet - Poll to Dutch (Nederlands) +# Exported from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Poll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 10:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-poll\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Client exception thrown trying to view a non-existing poll. +msgid "No such poll." +msgstr "Deze peiling bestaat niet." + +#. TRANS: Client exception thrown trying to view a non-existing poll notice. +msgid "No such poll notice." +msgstr "Dit peilingsbericht bestaat niet." + +#. TRANS: Client exception thrown trying to view a poll of a non-existing user. +msgid "No such user." +msgstr "Deze gebruiker bestaat niet." + +#. TRANS: Server exception thrown trying to view a poll for a user for which the profile could not be loaded. +msgid "User without a profile." +msgstr "Gebruiker zonder een profiel." + +#. TRANS: Page title for a poll. +#. TRANS: %1$s is the nickname of the user that created the poll, %2$s is the poll question. +#, php-format +msgid "%1$s's poll: %2$s" +msgstr "Peiling van %1$s: %2$s" + +#. TRANS: Field label on the page to create a poll. +msgid "Question" +msgstr "Vraag" + +#. TRANS: Field title on the page to create a poll. +msgid "What question are people answering?" +msgstr "Welke vraag beantwoorden de mensen?" + +#. TRANS: Field label for an answer option on the page to create a poll. +#. TRANS: %d is the option number. +#, php-format +msgid "Option %d" +msgstr "Keuze %d" + +#. TRANS: Button text for saving a new poll. +msgctxt "BUTTON" +msgid "Save" +msgstr "Opslaan" + +#. TRANS: Plugin description. +msgid "Simple extension for supporting basic polls." +msgstr "Eenvoudige plug-in voor peilingen." + +#. TRANS: Exception thrown trying to respond to a poll without a poll reference. +msgid "Invalid poll response: no poll reference." +msgstr "Ongeldig antwoord op peiling: heeft geen verwijzing naar een peiling." + +#. TRANS: Exception thrown trying to respond to a non-existing poll. +msgid "Invalid poll response: poll is unknown." +msgstr "Ongeldig antwoord op peiling: de peiling bestaat niet." + +#. TRANS: Exception thrown when performing an unexpected action on a poll. +#. TRANS: %s is the unpexpected object type. +#, php-format +msgid "Unexpected type for poll plugin: %s." +msgstr "Onverwacht type voor peilingplug-in: %s" + +#. TRANS: Application title. +msgctxt "APPTITLE" +msgid "Poll" +msgstr "Peiling" + +#. TRANS: Client exception thrown when responding to a poll with an invalid option. +#. TRANS: Client exception thrown responding to a poll with an invalid answer. +msgid "Invalid poll selection." +msgstr "Ongeldige keuze voor peiling." + +#. TRANS: Notice content voting for a poll. +#. TRANS: %s is the chosen option in the poll. +#. TRANS: Rendered version of the notice content voting for a poll. +#. TRANS: %s a link to the poll with the chosen option as link description. +#, php-format +msgid "voted for \"%s\"" +msgstr "gestemd voor \"%s\"" + +#. TRANS: Button text for submitting a poll response. +msgctxt "BUTTON" +msgid "Submit" +msgstr "Opslaan" + +#. TRANS: Notice content creating a poll. +#. TRANS: %1$s is the poll question, %2$s is a link to the poll. +#, php-format +msgid "Poll: %1$s %2$s" +msgstr "Peiling: %1$s %2$s" + +#. TRANS: Rendered version of the notice content creating a poll. +#. TRANS: %s a link to the poll with the question as link description. +#, php-format +msgid "Poll: %s" +msgstr "Peiling: %s" + +#. TRANS: Title for poll page. +msgid "New poll" +msgstr "Nieuwe peiling" + +#. TRANS: Client exception thrown trying to create a poll while not logged in. +msgid "You must be logged in to post a poll." +msgstr "U moet aangemeld zijn om een peiling aan te kunnen maken." + +#. TRANS: Client exception thrown trying to create a poll without a question. +msgid "Poll must have a question." +msgstr "De peiling moet een vraag hebben." + +#. TRANS: Client exception thrown trying to create a poll with fewer than two options. +msgid "Poll must have at least two options." +msgstr "De peiling moet tenminste twee antwoordmogelijkheden hebben." + +#. TRANS: Page title after sending a notice. +msgid "Notice posted" +msgstr "De mededeling is verzonden" + +#. TRANS: Page title for poll response. +msgid "Poll response" +msgstr "Peilingreactie" + +#. TRANS: Client exception thrown trying to respond to a poll while not logged in. +msgid "You must be logged in to respond to a poll." +msgstr "U moet aangemeld zijn om te kunnen stemmen in een peiling." + +#. TRANS: Client exception thrown trying to respond to a non-existing poll. +msgid "Invalid or missing poll." +msgstr "De peiling is ongeldig of bestaat niet." + +#. TRANS: Page title after sending a poll response. +msgid "Poll results" +msgstr "Peilingresultaten" diff --git a/plugins/Poll/locale/uk/LC_MESSAGES/Poll.po b/plugins/Poll/locale/uk/LC_MESSAGES/Poll.po new file mode 100644 index 0000000000..25cdad1a56 --- /dev/null +++ b/plugins/Poll/locale/uk/LC_MESSAGES/Poll.po @@ -0,0 +1,153 @@ +# Translation of StatusNet - Poll to Ukrainian (Українська) +# Exported from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Poll\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 10:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-poll\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +#. TRANS: Client exception thrown trying to view a non-existing poll. +msgid "No such poll." +msgstr "Немає такого опитування." + +#. TRANS: Client exception thrown trying to view a non-existing poll notice. +msgid "No such poll notice." +msgstr "Немає допису щодо опитування." + +#. TRANS: Client exception thrown trying to view a poll of a non-existing user. +msgid "No such user." +msgstr "Такого користувача немає." + +#. TRANS: Server exception thrown trying to view a poll for a user for which the profile could not be loaded. +msgid "User without a profile." +msgstr "Користувач без профілю." + +#. TRANS: Page title for a poll. +#. TRANS: %1$s is the nickname of the user that created the poll, %2$s is the poll question. +#, php-format +msgid "%1$s's poll: %2$s" +msgstr "Опитування %1$s: %2$s" + +#. TRANS: Field label on the page to create a poll. +msgid "Question" +msgstr "Питання" + +#. TRANS: Field title on the page to create a poll. +msgid "What question are people answering?" +msgstr "На яке запитання відповідати людям?" + +#. TRANS: Field label for an answer option on the page to create a poll. +#. TRANS: %d is the option number. +#, php-format +msgid "Option %d" +msgstr "Варіант %d" + +#. TRANS: Button text for saving a new poll. +msgctxt "BUTTON" +msgid "Save" +msgstr "Зберегти" + +#. TRANS: Plugin description. +msgid "Simple extension for supporting basic polls." +msgstr "Простий додаток для підтримки проведення опитувань." + +#. TRANS: Exception thrown trying to respond to a poll without a poll reference. +msgid "Invalid poll response: no poll reference." +msgstr "Невірна відповідь: відсутнє посилання на опитування." + +#. TRANS: Exception thrown trying to respond to a non-existing poll. +msgid "Invalid poll response: poll is unknown." +msgstr "Неправильна відповідь на опитування: невідоме опитування." + +#. TRANS: Exception thrown when performing an unexpected action on a poll. +#. TRANS: %s is the unpexpected object type. +#, php-format +msgid "Unexpected type for poll plugin: %s." +msgstr "Неочікувана дія для додатку опитувань: %s." + +#. TRANS: Application title. +msgctxt "APPTITLE" +msgid "Poll" +msgstr "Опитування" + +#. TRANS: Client exception thrown when responding to a poll with an invalid option. +#. TRANS: Client exception thrown responding to a poll with an invalid answer. +msgid "Invalid poll selection." +msgstr "Невірний вибір опитування." + +#. TRANS: Notice content voting for a poll. +#. TRANS: %s is the chosen option in the poll. +#. TRANS: Rendered version of the notice content voting for a poll. +#. TRANS: %s a link to the poll with the chosen option as link description. +#, php-format +msgid "voted for \"%s\"" +msgstr "проголосувало за «%s»" + +#. TRANS: Button text for submitting a poll response. +msgctxt "BUTTON" +msgid "Submit" +msgstr "Надіслати" + +#. TRANS: Notice content creating a poll. +#. TRANS: %1$s is the poll question, %2$s is a link to the poll. +#, php-format +msgid "Poll: %1$s %2$s" +msgstr "Опитування: %1$s %2$s" + +#. TRANS: Rendered version of the notice content creating a poll. +#. TRANS: %s a link to the poll with the question as link description. +#, php-format +msgid "Poll: %s" +msgstr "Опитування: %s" + +#. TRANS: Title for poll page. +msgid "New poll" +msgstr "Нове опитування" + +#. TRANS: Client exception thrown trying to create a poll while not logged in. +msgid "You must be logged in to post a poll." +msgstr "Ви повинні увійти до системи, щоб взяти участь в опитуванні." + +#. TRANS: Client exception thrown trying to create a poll without a question. +msgid "Poll must have a question." +msgstr "Опитування повинно мати запитання." + +#. TRANS: Client exception thrown trying to create a poll with fewer than two options. +msgid "Poll must have at least two options." +msgstr "Опитування повинно мати принаймні два варіанти." + +#. TRANS: Page title after sending a notice. +msgid "Notice posted" +msgstr "Допис опубліковано" + +#. TRANS: Page title for poll response. +msgid "Poll response" +msgstr "Відповіді на опитування" + +#. TRANS: Client exception thrown trying to respond to a poll while not logged in. +msgid "You must be logged in to respond to a poll." +msgstr "Ви повинні увійти до системи, щоб відповісти на опитування." + +#. TRANS: Client exception thrown trying to respond to a non-existing poll. +msgid "Invalid or missing poll." +msgstr "Невірне або відсутнє опитування." + +#. TRANS: Page title after sending a poll response. +msgid "Poll results" +msgstr "Результати опитування" diff --git a/plugins/Poll/newpoll.php b/plugins/Poll/newpoll.php new file mode 100644 index 0000000000..1048b0a1ed --- /dev/null +++ b/plugins/Poll/newpoll.php @@ -0,0 +1,222 @@ +. + * + * @category Poll + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * Add a new Poll + * + * @category Poll + * @package StatusNet + * @author Evan Prodromou + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +class NewPollAction extends Action +{ + protected $user = null; + protected $error = null; + protected $complete = null; + + protected $question = null; + protected $options = array(); + + /** + * Returns the title of the action + * + * @return string Action title + */ + function title() + { + // TRANS: Title for poll page. + return _m('New poll'); + } + + /** + * For initializing members of the class. + * + * @param array $argarray misc. arguments + * + * @return boolean true + */ + function prepare($argarray) + { + parent::prepare($argarray); + + $this->user = common_current_user(); + + if (empty($this->user)) { + // TRANS: Client exception thrown trying to create a poll while not logged in. + throw new ClientException(_m('You must be logged in to post a poll.'), + 403); + } + + if ($this->isPost()) { + $this->checkSessionToken(); + } + + $this->question = $this->trimmed('question'); + for ($i = 1; $i < 20; $i++) { + $opt = $this->trimmed('option' . $i); + if ($opt != '') { + $this->options[] = $opt; + } + } + + return true; + } + + /** + * Handler method + * + * @param array $argarray is ignored since it's now passed in in prepare() + * + * @return void + */ + function handle($argarray=null) + { + parent::handle($argarray); + + if ($this->isPost()) { + $this->newPoll(); + } else { + $this->showPage(); + } + + return; + } + + /** + * Add a new Poll + * + * @return void + */ + function newPoll() + { + if ($this->boolean('ajax')) { + StatusNet::setApi(true); + } + try { + if (empty($this->question)) { + // TRANS: Client exception thrown trying to create a poll without a question. + throw new ClientException(_m('Poll must have a question.')); + } + + if (count($this->options) < 2) { + // TRANS: Client exception thrown trying to create a poll with fewer than two options. + throw new ClientException(_m('Poll must have at least two options.')); + } + + + $saved = Poll::saveNew($this->user->getProfile(), + $this->question, + $this->options); + } catch (ClientException $ce) { + $this->error = $ce->getMessage(); + $this->showPage(); + return; + } + + if ($this->boolean('ajax')) { + header('Content-Type: text/xml;charset=utf-8'); + $this->xw->startDocument('1.0', 'UTF-8'); + $this->elementStart('html'); + $this->elementStart('head'); + // TRANS: Page title after sending a notice. + $this->element('title', null, _m('Notice posted')); + $this->elementEnd('head'); + $this->elementStart('body'); + $this->showNotice($saved); + $this->elementEnd('body'); + $this->elementEnd('html'); + } else { + common_redirect($saved->bestUrl(), 303); + } + } + + /** + * Output a notice + * + * Used to generate the notice code for Ajax results. + * + * @param Notice $notice Notice that was saved + * + * @return void + */ + function showNotice($notice) + { + class_exists('NoticeList'); // @fixme hack for autoloader + $nli = new NoticeListItem($notice, $this); + $nli->show(); + } + + /** + * Show the Poll form + * + * @return void + */ + function showContent() + { + if (!empty($this->error)) { + $this->element('p', 'error', $this->error); + } + + $form = new NewPollForm($this, + $this->question, + $this->options); + + $form->show(); + + return; + } + + /** + * Return true if read only. + * + * MAY override + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + function isReadOnly($args) + { + if ($_SERVER['REQUEST_METHOD'] == 'GET' || + $_SERVER['REQUEST_METHOD'] == 'HEAD') { + return true; + } else { + return false; + } + } +} diff --git a/plugins/Poll/newpollform.php b/plugins/Poll/newpollform.php new file mode 100644 index 0000000000..295619b1b9 --- /dev/null +++ b/plugins/Poll/newpollform.php @@ -0,0 +1,147 @@ +. + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * Form to add a new poll thingy + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +class NewpollForm extends Form +{ + protected $question = null; + protected $options = array(); + + /** + * Construct a new poll form + * + * @param HTMLOutputter $out output channel + * + * @return void + */ + function __construct($out=null, $question=null, $options=null) + { + parent::__construct($out); + } + + /** + * ID of the form + * + * @return int ID of the form + */ + function id() + { + return 'newpoll-form'; + } + + /** + * class of the form + * + * @return string class of the form + */ + function formClass() + { + return 'form_settings ajax-notice'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + function action() + { + return common_local_url('newpoll'); + } + + /** + * Data elements of the form + * + * @return void + */ + function formData() + { + $this->out->elementStart('fieldset', array('id' => 'newpoll-data')); + $this->out->elementStart('ul', 'form_data'); + + $this->li(); + $this->out->input('question', + // TRANS: Field label on the page to create a poll. + _m('Question'), + $this->question, + // TRANS: Field title on the page to create a poll. + _m('What question are people answering?')); + $this->unli(); + + $max = 5; + if (count($this->options) + 1 > $max) { + $max = count($this->options) + 2; + } + for ($i = 0; $i < $max; $i++) { + // @fixme make extensible + if (isset($this->options[$i])) { + $default = $this->options[$i]; + } else { + $default = ''; + } + $this->li(); + $this->out->input('option' . ($i + 1), + // TRANS: Field label for an answer option on the page to create a poll. + // TRANS: %d is the option number. + sprintf(_m('Option %d'), $i + 1), + $default); + $this->unli(); + } + + $this->out->elementEnd('ul'); + $this->out->elementEnd('fieldset'); + } + + /** + * Action elements + * + * @return void + */ + function formActions() + { + // TRANS: Button text for saving a new poll. + $this->out->submit('submit', _m('BUTTON', 'Save')); + } +} diff --git a/plugins/Poll/poll.css b/plugins/Poll/poll.css new file mode 100644 index 0000000000..5ba9c1588f --- /dev/null +++ b/plugins/Poll/poll.css @@ -0,0 +1,10 @@ +.poll-block { + float: left; + height: 16px; + background: #8aa; + margin-right: 8px; +} + +.poll-winner { + background: #4af; +} diff --git a/plugins/Poll/pollresponseform.php b/plugins/Poll/pollresponseform.php new file mode 100644 index 0000000000..ce1c31f6c2 --- /dev/null +++ b/plugins/Poll/pollresponseform.php @@ -0,0 +1,129 @@ +. + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * Form to add a new poll thingy + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +class PollResponseForm extends Form +{ + protected $poll; + + /** + * Construct a new poll form + * + * @param Poll $poll + * @param HTMLOutputter $out output channel + * + * @return void + */ + function __construct(Poll $poll, HTMLOutputter $out) + { + parent::__construct($out); + $this->poll = $poll; + } + + /** + * ID of the form + * + * @return int ID of the form + */ + function id() + { + return 'pollresponse-form'; + } + + /** + * class of the form + * + * @return string class of the form + */ + function formClass() + { + return 'form_settings ajax'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + function action() + { + return common_local_url('respondpoll', array('id' => $this->poll->id)); + } + + /** + * Data elements of the form + * + * @return void + */ + function formData() + { + $poll = $this->poll; + $out = $this->out; + $id = "poll-" . $poll->id; + + $out->element('p', 'poll-question', $poll->question); + $out->elementStart('ul', 'poll-options'); + foreach ($poll->getOptions() as $i => $opt) { + $out->elementStart('li'); + $out->elementStart('label'); + $out->element('input', array('type' => 'radio', 'name' => 'pollselection', 'value' => $i + 1), ''); + $out->text(' ' . $opt); + $out->elementEnd('label'); + $out->elementEnd('li'); + } + $out->elementEnd('ul'); + } + + /** + * Action elements + * + * @return void + */ + function formActions() + { + // TRANS: Button text for submitting a poll response. + $this->out->submit('submit', _m('BUTTON', 'Submit')); + } +} diff --git a/plugins/Poll/pollresultform.php b/plugins/Poll/pollresultform.php new file mode 100644 index 0000000000..0701482e68 --- /dev/null +++ b/plugins/Poll/pollresultform.php @@ -0,0 +1,143 @@ +. + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * Form to add a new poll thingy + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +class PollResultForm extends Form +{ + protected $poll; + + /** + * Construct a new poll form + * + * @param Poll $poll + * @param HTMLOutputter $out output channel + * + * @return void + */ + function __construct(Poll $poll, HTMLOutputter $out) + { + parent::__construct($out); + $this->poll = $poll; + } + + /** + * ID of the form + * + * @return int ID of the form + */ + function id() + { + return 'pollresult-form'; + } + + /** + * class of the form + * + * @return string class of the form + */ + function formClass() + { + return 'form_settings ajax'; + } + + /** + * Action of the form + * + * @return string URL of the action + */ + function action() + { + return common_local_url('respondpoll', array('id' => $this->poll->id)); + } + + /** + * Data elements of the form + * + * @return void + */ + function formData() + { + $poll = $this->poll; + $out = $this->out; + $counts = $poll->countResponses(); + + $width = 200; + $max = max($counts); + if ($max == 0) { + $max = 1; // quick hack :D + } + + $out->element('p', 'poll-question', $poll->question); + $out->elementStart('table', 'poll-results'); + foreach ($poll->getOptions() as $i => $opt) { + $w = intval($counts[$i] * $width / $max) + 1; + + $out->elementStart('tr'); + + $out->elementStart('td'); + $out->text($opt); + $out->elementEnd('td'); + + $out->elementStart('td'); + $out->element('span', array('class' => 'poll-block', + 'style' => "width: {$w}px"), + "\xc2\xa0"); // nbsp + $out->text($counts[$i]); + $out->elementEnd('td'); + + $out->elementEnd('tr'); + } + $out->elementEnd('table'); + } + + /** + * Action elements + * + * @return void + */ + function formActions() + { + } +} diff --git a/plugins/Poll/respondpoll.php b/plugins/Poll/respondpoll.php new file mode 100644 index 0000000000..74629c3604 --- /dev/null +++ b/plugins/Poll/respondpoll.php @@ -0,0 +1,200 @@ +. + * + * @category Poll + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * Respond to a Poll + * + * @category Poll + * @package StatusNet + * @author Evan Prodromou + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +class RespondPollAction extends Action +{ + protected $user = null; + protected $error = null; + protected $complete = null; + + protected $poll = null; + protected $selection = null; + + /** + * Returns the title of the action + * + * @return string Action title + */ + function title() + { + // TRANS: Page title for poll response. + return _m('Poll response'); + } + + /** + * For initializing members of the class. + * + * @param array $argarray misc. arguments + * + * @return boolean true + */ + function prepare($argarray) + { + parent::prepare($argarray); + if ($this->boolean('ajax')) { + StatusNet::setApi(true); + } + + $this->user = common_current_user(); + + if (empty($this->user)) { + // TRANS: Client exception thrown trying to respond to a poll while not logged in. + throw new ClientException(_m("You must be logged in to respond to a poll."), + 403); + } + + if ($this->isPost()) { + $this->checkSessionToken(); + } + + $id = $this->trimmed('id'); + $this->poll = Poll::staticGet('id', $id); + if (empty($this->poll)) { + // TRANS: Client exception thrown trying to respond to a non-existing poll. + throw new ClientException(_m('Invalid or missing poll.'), 404); + } + + $selection = intval($this->trimmed('pollselection')); + if ($selection < 1 || $selection > count($this->poll->getOptions())) { + // TRANS: Client exception thrown responding to a poll with an invalid answer. + throw new ClientException(_m('Invalid poll selection.')); + } + $this->selection = $selection; + + return true; + } + + /** + * Handler method + * + * @param array $argarray is ignored since it's now passed in in prepare() + * + * @return void + */ + function handle($argarray=null) + { + parent::handle($argarray); + + if ($this->isPost()) { + $this->respondPoll(); + } else { + $this->showPage(); + } + + return; + } + + /** + * Add a new Poll + * + * @return void + */ + function respondPoll() + { + try { + $notice = Poll_response::saveNew($this->user->getProfile(), + $this->poll, + $this->selection); + } catch (ClientException $ce) { + $this->error = $ce->getMessage(); + $this->showPage(); + return; + } + + if ($this->boolean('ajax')) { + header('Content-Type: text/xml;charset=utf-8'); + $this->xw->startDocument('1.0', 'UTF-8'); + $this->elementStart('html'); + $this->elementStart('head'); + // TRANS: Page title after sending a poll response. + $this->element('title', null, _m('Poll results')); + $this->elementEnd('head'); + $this->elementStart('body'); + $form = new PollResultForm($this->poll, $this); + $form->show(); + $this->elementEnd('body'); + $this->elementEnd('html'); + } else { + common_redirect($this->poll->bestUrl(), 303); + } + } + + /** + * Show the Poll form + * + * @return void + */ + function showContent() + { + if (!empty($this->error)) { + $this->element('p', 'error', $this->error); + } + + $form = new PollResponseForm($this->poll, $this); + + $form->show(); + + return; + } + + /** + * Return true if read only. + * + * MAY override + * + * @param array $args other arguments + * + * @return boolean is read only action? + */ + function isReadOnly($args) + { + if ($_SERVER['REQUEST_METHOD'] == 'GET' || + $_SERVER['REQUEST_METHOD'] == 'HEAD') { + return true; + } else { + return false; + } + } +} diff --git a/plugins/Poll/showpoll.php b/plugins/Poll/showpoll.php new file mode 100644 index 0000000000..d95b1c512e --- /dev/null +++ b/plugins/Poll/showpoll.php @@ -0,0 +1,130 @@ +. + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + // This check helps protect against security problems; + // your code file can't be executed directly from the web. + exit(1); +} + +/** + * Show a single Poll, with associated information + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +class ShowPollAction extends ShownoticeAction +{ + protected $poll = null; + + /** + * For initializing members of the class. + * + * @param array $argarray misc. arguments + * + * @return boolean true + */ + function prepare($argarray) + { + OwnerDesignAction::prepare($argarray); + + $this->id = $this->trimmed('id'); + + $this->poll = Poll::staticGet('id', $this->id); + + if (empty($this->poll)) { + // TRANS: Client exception thrown trying to view a non-existing poll. + throw new ClientException(_m('No such poll.'), 404); + } + + $this->notice = $this->poll->getNotice(); + + if (empty($this->notice)) { + // Did we used to have it, and it got deleted? + // TRANS: Client exception thrown trying to view a non-existing poll notice. + throw new ClientException(_m('No such poll notice.'), 404); + } + + $this->user = User::staticGet('id', $this->poll->profile_id); + + if (empty($this->user)) { + // TRANS: Client exception thrown trying to view a poll of a non-existing user. + throw new ClientException(_m('No such user.'), 404); + } + + $this->profile = $this->user->getProfile(); + + if (empty($this->profile)) { + // TRANS: Server exception thrown trying to view a poll for a user for which the profile could not be loaded. + throw new ServerException(_m('User without a profile.')); + } + + $this->avatar = $this->profile->getAvatar(AVATAR_PROFILE_SIZE); + + return true; + } + + /** + * Title of the page + * + * Used by Action class for layout. + * + * @return string page tile + */ + function title() + { + // TRANS: Page title for a poll. + // TRANS: %1$s is the nickname of the user that created the poll, %2$s is the poll question. + return sprintf(_m('%1$s\'s poll: %2$s'), + $this->user->nickname, + $this->poll->question); + } + + /** + * @fixme combine the notice time with poll update time + */ + function lastModified() + { + return Action::lastModified(); + } + + + /** + * @fixme combine the notice time with poll update time + */ + function etag() + { + return Action::etag(); + } +} diff --git a/plugins/PostDebug/locale/PostDebug.pot b/plugins/PostDebug/locale/PostDebug.pot index a9c20e270e..c9ea0d7f4e 100644 --- a/plugins/PostDebug/locale/PostDebug.pot +++ b/plugins/PostDebug/locale/PostDebug.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/PostDebug/locale/de/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/de/LC_MESSAGES/PostDebug.po index 87f0664bac..d58886cba2 100644 --- a/plugins/PostDebug/locale/de/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/de/LC_MESSAGES/PostDebug.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "Debugging-Werkzeug zur Aufnahme von POST-Anfragedetails." diff --git a/plugins/PostDebug/locale/es/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/es/LC_MESSAGES/PostDebug.po index d9de419fca..1b8b604797 100644 --- a/plugins/PostDebug/locale/es/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/es/LC_MESSAGES/PostDebug.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "" "Herramienta de depuración para registrar detalles de solicitud en POST." diff --git a/plugins/PostDebug/locale/fi/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/fi/LC_MESSAGES/PostDebug.po index 9c62b0e6c5..66af752a13 100644 --- a/plugins/PostDebug/locale/fi/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/fi/LC_MESSAGES/PostDebug.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: Finnish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "Virheenjäljitystyökalu joka tallentaa POST-pyyntöjen tiedot" diff --git a/plugins/PostDebug/locale/fr/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/fr/LC_MESSAGES/PostDebug.po index 3bdfc01a8b..4045575cf6 100644 --- a/plugins/PostDebug/locale/fr/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/fr/LC_MESSAGES/PostDebug.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "Outil de débogage pour enregistrer les requêtes détaillées de POST." diff --git a/plugins/PostDebug/locale/he/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/he/LC_MESSAGES/PostDebug.po index 6c7fbb7fa7..5d537df81e 100644 --- a/plugins/PostDebug/locale/he/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/he/LC_MESSAGES/PostDebug.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "כלי ניפוי שגיאות לרישום כל פרטי בקשות ה־POST." diff --git a/plugins/PostDebug/locale/ia/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/ia/LC_MESSAGES/PostDebug.po index bcae7eb3ff..f54b43fcff 100644 --- a/plugins/PostDebug/locale/ia/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/ia/LC_MESSAGES/PostDebug.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "" "Instrumento pro eliminar defectos que registra le detalios del requestas " diff --git a/plugins/PostDebug/locale/id/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/id/LC_MESSAGES/PostDebug.po index 231e6fb5eb..170515a4c1 100644 --- a/plugins/PostDebug/locale/id/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/id/LC_MESSAGES/PostDebug.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "Peralatan debugging untuk mencatat detail permintaan di POST." diff --git a/plugins/PostDebug/locale/ja/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/ja/LC_MESSAGES/PostDebug.po index 4829274e99..56e1a8054e 100644 --- a/plugins/PostDebug/locale/ja/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/ja/LC_MESSAGES/PostDebug.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:01+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: Japanese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "POSTリクエストの詳細を記録するデバッグツール" diff --git a/plugins/PostDebug/locale/mk/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/mk/LC_MESSAGES/PostDebug.po index 7649ed9bf5..02f3f2b991 100644 --- a/plugins/PostDebug/locale/mk/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/mk/LC_MESSAGES/PostDebug.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:04+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "Алатка за отстранување на грешки за евидентирање на податоци за POST." diff --git a/plugins/PostDebug/locale/nb/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/nb/LC_MESSAGES/PostDebug.po index 15b53ba4b5..346e52e1f7 100644 --- a/plugins/PostDebug/locale/nb/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/nb/LC_MESSAGES/PostDebug.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:09+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "Feilsøkingsverktøy for å registrere forspørselsdetaljer om POST." diff --git a/plugins/PostDebug/locale/nl/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/nl/LC_MESSAGES/PostDebug.po index a46ab0b6f5..fc3e381d64 100644 --- a/plugins/PostDebug/locale/nl/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/nl/LC_MESSAGES/PostDebug.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "Hulpprogramma voor debuggen om verzoekdetails van POST op te slaan." diff --git a/plugins/PostDebug/locale/pt/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/pt/LC_MESSAGES/PostDebug.po index a28193312e..b9df816d2d 100644 --- a/plugins/PostDebug/locale/pt/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/pt/LC_MESSAGES/PostDebug.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 15:58+0000\n" -"PO-Revision-Date: 2011-03-03 16:02:40+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:14+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "Ferramenta de depuração para registar detalhes de pedidos POST." diff --git a/plugins/PostDebug/locale/pt_BR/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/pt_BR/LC_MESSAGES/PostDebug.po index a41a1dcec3..a61d6f7bfd 100644 --- a/plugins/PostDebug/locale/pt_BR/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/pt_BR/LC_MESSAGES/PostDebug.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:09+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: Brazilian Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "" "Ferramenta de depuração para registrar detalhes de solicitação em POST." diff --git a/plugins/PostDebug/locale/ru/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/ru/LC_MESSAGES/PostDebug.po index 22eae3d23b..8e0935b0ea 100644 --- a/plugins/PostDebug/locale/ru/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/ru/LC_MESSAGES/PostDebug.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:09+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "Инструмент отладки для записи подробностей POST-запросов." diff --git a/plugins/PostDebug/locale/tl/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/tl/LC_MESSAGES/PostDebug.po index 858ee6d876..c8bbe8add3 100644 --- a/plugins/PostDebug/locale/tl/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/tl/LC_MESSAGES/PostDebug.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:09+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:32+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "" "Kasangkapang pantanggal ng depekto upang itala ang mga detalye ng paghiling " diff --git a/plugins/PostDebug/locale/uk/LC_MESSAGES/PostDebug.po b/plugins/PostDebug/locale/uk/LC_MESSAGES/PostDebug.po index 6e658b8e28..9a66138c8d 100644 --- a/plugins/PostDebug/locale/uk/LC_MESSAGES/PostDebug.po +++ b/plugins/PostDebug/locale/uk/LC_MESSAGES/PostDebug.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PostDebug\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:09+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:33+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-10 18:26:06+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-postdebug\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: PostDebugPlugin.php:58 msgid "Debugging tool to record request details on POST." msgstr "Інструмент правки для запису деталей запитів щодо POST." diff --git a/plugins/PoweredByStatusNet/locale/PoweredByStatusNet.pot b/plugins/PoweredByStatusNet/locale/PoweredByStatusNet.pot index a3dcbce268..0c3c6117ee 100644 --- a/plugins/PoweredByStatusNet/locale/PoweredByStatusNet.pot +++ b/plugins/PoweredByStatusNet/locale/PoweredByStatusNet.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/PoweredByStatusNet/locale/br/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/br/LC_MESSAGES/PoweredByStatusNet.po index e7ebb9f0b5..bfee18a8f9 100644 --- a/plugins/PoweredByStatusNet/locale/br/LC_MESSAGES/PoweredByStatusNet.po +++ b/plugins/PoweredByStatusNet/locale/br/LC_MESSAGES/PoweredByStatusNet.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PoweredByStatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:10+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:33+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. -#: PoweredByStatusNetPlugin.php:51 #, php-format msgid "powered by %s" msgstr "enlusket gant %s" -#: PoweredByStatusNetPlugin.php:53 msgid "StatusNet" msgstr "StatusNet" -#: PoweredByStatusNetPlugin.php:66 msgid "" "Outputs \"powered by StatusNet\" after " "site name." diff --git a/plugins/PoweredByStatusNet/locale/ca/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/ca/LC_MESSAGES/PoweredByStatusNet.po index 98899a6dbd..7f73447dea 100644 --- a/plugins/PoweredByStatusNet/locale/ca/LC_MESSAGES/PoweredByStatusNet.po +++ b/plugins/PoweredByStatusNet/locale/ca/LC_MESSAGES/PoweredByStatusNet.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PoweredByStatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:10+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:33+0000\n" "Language-Team: Catalan \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. -#: PoweredByStatusNetPlugin.php:51 #, php-format msgid "powered by %s" msgstr "funciona amb %s" -#: PoweredByStatusNetPlugin.php:53 msgid "StatusNet" msgstr "StatusNet" -#: PoweredByStatusNetPlugin.php:66 msgid "" "Outputs \"powered by StatusNet\" after " "site name." diff --git a/plugins/PoweredByStatusNet/locale/de/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/de/LC_MESSAGES/PoweredByStatusNet.po index a2ed49e81e..542acf09e6 100644 --- a/plugins/PoweredByStatusNet/locale/de/LC_MESSAGES/PoweredByStatusNet.po +++ b/plugins/PoweredByStatusNet/locale/de/LC_MESSAGES/PoweredByStatusNet.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PoweredByStatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:10+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:33+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. -#: PoweredByStatusNetPlugin.php:51 #, php-format msgid "powered by %s" msgstr "bereitgestellt von %s" -#: PoweredByStatusNetPlugin.php:53 msgid "StatusNet" msgstr "StatusNet" -#: PoweredByStatusNetPlugin.php:66 msgid "" "Outputs \"powered by StatusNet\" after " "site name." diff --git a/plugins/PoweredByStatusNet/locale/fr/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/fr/LC_MESSAGES/PoweredByStatusNet.po index 9c1c8b8ce3..752aa066b1 100644 --- a/plugins/PoweredByStatusNet/locale/fr/LC_MESSAGES/PoweredByStatusNet.po +++ b/plugins/PoweredByStatusNet/locale/fr/LC_MESSAGES/PoweredByStatusNet.po @@ -10,29 +10,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PoweredByStatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:10+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:33+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. -#: PoweredByStatusNetPlugin.php:51 #, php-format msgid "powered by %s" msgstr "propulsé par %s" -#: PoweredByStatusNetPlugin.php:53 msgid "StatusNet" msgstr "StatusNet" -#: PoweredByStatusNetPlugin.php:66 msgid "" "Outputs \"powered by StatusNet\" after " "site name." diff --git a/plugins/PoweredByStatusNet/locale/gl/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/gl/LC_MESSAGES/PoweredByStatusNet.po index 08eb06f795..cf1a7a472c 100644 --- a/plugins/PoweredByStatusNet/locale/gl/LC_MESSAGES/PoweredByStatusNet.po +++ b/plugins/PoweredByStatusNet/locale/gl/LC_MESSAGES/PoweredByStatusNet.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PoweredByStatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:10+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:33+0000\n" "Language-Team: Galician \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: gl\n" "X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. -#: PoweredByStatusNetPlugin.php:51 #, php-format msgid "powered by %s" msgstr "desenvolvido por %s" -#: PoweredByStatusNetPlugin.php:53 msgid "StatusNet" msgstr "StatusNet" -#: PoweredByStatusNetPlugin.php:66 msgid "" "Outputs \"powered by StatusNet\" after " "site name." diff --git a/plugins/PoweredByStatusNet/locale/ia/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/ia/LC_MESSAGES/PoweredByStatusNet.po index 494094a222..1fca7b3c8c 100644 --- a/plugins/PoweredByStatusNet/locale/ia/LC_MESSAGES/PoweredByStatusNet.po +++ b/plugins/PoweredByStatusNet/locale/ia/LC_MESSAGES/PoweredByStatusNet.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PoweredByStatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:10+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:33+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. -#: PoweredByStatusNetPlugin.php:51 #, php-format msgid "powered by %s" msgstr "actionate per %s" -#: PoweredByStatusNetPlugin.php:53 msgid "StatusNet" msgstr "StatusNet" -#: PoweredByStatusNetPlugin.php:66 msgid "" "Outputs \"powered by StatusNet\" after " "site name." diff --git a/plugins/PoweredByStatusNet/locale/mk/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/mk/LC_MESSAGES/PoweredByStatusNet.po index 4b27988224..17df0f57e0 100644 --- a/plugins/PoweredByStatusNet/locale/mk/LC_MESSAGES/PoweredByStatusNet.po +++ b/plugins/PoweredByStatusNet/locale/mk/LC_MESSAGES/PoweredByStatusNet.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PoweredByStatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:10+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:33+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" #. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. -#: PoweredByStatusNetPlugin.php:51 #, php-format msgid "powered by %s" msgstr "овозможено од %s" -#: PoweredByStatusNetPlugin.php:53 msgid "StatusNet" msgstr "StatusNet" -#: PoweredByStatusNetPlugin.php:66 msgid "" "Outputs \"powered by StatusNet\" after " "site name." diff --git a/plugins/PoweredByStatusNet/locale/nl/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/nl/LC_MESSAGES/PoweredByStatusNet.po index 1bc1bfc395..bc63298b65 100644 --- a/plugins/PoweredByStatusNet/locale/nl/LC_MESSAGES/PoweredByStatusNet.po +++ b/plugins/PoweredByStatusNet/locale/nl/LC_MESSAGES/PoweredByStatusNet.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PoweredByStatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:10+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:33+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. -#: PoweredByStatusNetPlugin.php:51 #, php-format msgid "powered by %s" msgstr "Powered by %s" -#: PoweredByStatusNetPlugin.php:53 msgid "StatusNet" msgstr "StatusNet" -#: PoweredByStatusNetPlugin.php:66 msgid "" "Outputs \"powered by StatusNet\" after " "site name." diff --git a/plugins/PoweredByStatusNet/locale/pt/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/pt/LC_MESSAGES/PoweredByStatusNet.po index ec8fe51bf4..83385fcaf5 100644 --- a/plugins/PoweredByStatusNet/locale/pt/LC_MESSAGES/PoweredByStatusNet.po +++ b/plugins/PoweredByStatusNet/locale/pt/LC_MESSAGES/PoweredByStatusNet.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PoweredByStatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:10+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:33+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. -#: PoweredByStatusNetPlugin.php:51 #, php-format msgid "powered by %s" msgstr "Potenciado por %s" -#: PoweredByStatusNetPlugin.php:53 msgid "StatusNet" msgstr "StatusNet" -#: PoweredByStatusNetPlugin.php:66 msgid "" "Outputs \"powered by StatusNet\" after " "site name." diff --git a/plugins/PoweredByStatusNet/locale/ru/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/ru/LC_MESSAGES/PoweredByStatusNet.po index ae8ad077cc..90644052ad 100644 --- a/plugins/PoweredByStatusNet/locale/ru/LC_MESSAGES/PoweredByStatusNet.po +++ b/plugins/PoweredByStatusNet/locale/ru/LC_MESSAGES/PoweredByStatusNet.po @@ -10,13 +10,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PoweredByStatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:10+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:33+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" @@ -24,16 +24,13 @@ msgstr "" "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" #. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. -#: PoweredByStatusNetPlugin.php:51 #, php-format msgid "powered by %s" msgstr "при поддержке %s" -#: PoweredByStatusNetPlugin.php:53 msgid "StatusNet" msgstr "StatusNet" -#: PoweredByStatusNetPlugin.php:66 msgid "" "Outputs \"powered by StatusNet\" after " "site name." diff --git a/plugins/PoweredByStatusNet/locale/tl/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/tl/LC_MESSAGES/PoweredByStatusNet.po index f7462a8f94..02956e71fc 100644 --- a/plugins/PoweredByStatusNet/locale/tl/LC_MESSAGES/PoweredByStatusNet.po +++ b/plugins/PoweredByStatusNet/locale/tl/LC_MESSAGES/PoweredByStatusNet.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PoweredByStatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:10+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:33+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. -#: PoweredByStatusNetPlugin.php:51 #, php-format msgid "powered by %s" msgstr "pinapatakbo ng %s" -#: PoweredByStatusNetPlugin.php:53 msgid "StatusNet" msgstr "StatusNet" -#: PoweredByStatusNetPlugin.php:66 msgid "" "Outputs \"powered by StatusNet\" after " "site name." diff --git a/plugins/PoweredByStatusNet/locale/uk/LC_MESSAGES/PoweredByStatusNet.po b/plugins/PoweredByStatusNet/locale/uk/LC_MESSAGES/PoweredByStatusNet.po index 0702a2f656..4c63f721c7 100644 --- a/plugins/PoweredByStatusNet/locale/uk/LC_MESSAGES/PoweredByStatusNet.po +++ b/plugins/PoweredByStatusNet/locale/uk/LC_MESSAGES/PoweredByStatusNet.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PoweredByStatusNet\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:10+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:33+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-14 13:21:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-poweredbystatusnet\n" @@ -23,16 +23,13 @@ msgstr "" "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" #. TRANS: %s is a URL to status.net with "StatusNet" (localised) as link text. -#: PoweredByStatusNetPlugin.php:51 #, php-format msgid "powered by %s" msgstr "працює на %s" -#: PoweredByStatusNetPlugin.php:53 msgid "StatusNet" msgstr "StatusNet" -#: PoweredByStatusNetPlugin.php:66 msgid "" "Outputs \"powered by StatusNet\" after " "site name." diff --git a/plugins/PtitUrl/locale/PtitUrl.pot b/plugins/PtitUrl/locale/PtitUrl.pot index 6c5dad914c..cbbe43fc66 100644 --- a/plugins/PtitUrl/locale/PtitUrl.pot +++ b/plugins/PtitUrl/locale/PtitUrl.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/PtitUrl/locale/br/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/br/LC_MESSAGES/PtitUrl.po index 0c11e735eb..29d2502244 100644 --- a/plugins/PtitUrl/locale/br/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/br/LC_MESSAGES/PtitUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:34+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/PtitUrl/locale/de/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/de/LC_MESSAGES/PtitUrl.po index c183fef995..185c008a5e 100644 --- a/plugins/PtitUrl/locale/de/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/de/LC_MESSAGES/PtitUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:34+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Benutzung des %1$s-URL-Kürzungsdienstes." diff --git a/plugins/PtitUrl/locale/es/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/es/LC_MESSAGES/PtitUrl.po index 9f345055db..5d055084cc 100644 --- a/plugins/PtitUrl/locale/es/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/es/LC_MESSAGES/PtitUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:34+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/PtitUrl/locale/fr/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/fr/LC_MESSAGES/PtitUrl.po index df93e87881..de7276779b 100644 --- a/plugins/PtitUrl/locale/fr/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/fr/LC_MESSAGES/PtitUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:34+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/PtitUrl/locale/gl/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/gl/LC_MESSAGES/PtitUrl.po index e50a6d4eaf..feb5bb2740 100644 --- a/plugins/PtitUrl/locale/gl/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/gl/LC_MESSAGES/PtitUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:34+0000\n" "Language-Team: Galician \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: gl\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/PtitUrl/locale/he/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/he/LC_MESSAGES/PtitUrl.po index db964d850b..63e088938c 100644 --- a/plugins/PtitUrl/locale/he/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/he/LC_MESSAGES/PtitUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:34+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "שימוש בשירות קיצור הכתובות %1$s." diff --git a/plugins/PtitUrl/locale/ia/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/ia/LC_MESSAGES/PtitUrl.po index 0525aa7463..9eba5516c2 100644 --- a/plugins/PtitUrl/locale/ia/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/ia/LC_MESSAGES/PtitUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:34+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/PtitUrl/locale/ja/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/ja/LC_MESSAGES/PtitUrl.po index 2f0816c8d4..707e29b86d 100644 --- a/plugins/PtitUrl/locale/ja/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/ja/LC_MESSAGES/PtitUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:34+0000\n" "Language-Team: Japanese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "%1$sをURL短縮サービスとして利用する。" diff --git a/plugins/PtitUrl/locale/mk/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/mk/LC_MESSAGES/PtitUrl.po index a34d8afc61..c5192fe049 100644 --- a/plugins/PtitUrl/locale/mk/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/mk/LC_MESSAGES/PtitUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:34+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/PtitUrl/locale/nb/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/nb/LC_MESSAGES/PtitUrl.po index 8a866c84c1..5d2e7070df 100644 --- a/plugins/PtitUrl/locale/nb/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/nb/LC_MESSAGES/PtitUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:35+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Bruker URL-forkortertjenesten %1$s." diff --git a/plugins/PtitUrl/locale/nl/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/nl/LC_MESSAGES/PtitUrl.po index 5105cc432a..de6c25b044 100644 --- a/plugins/PtitUrl/locale/nl/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/nl/LC_MESSAGES/PtitUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:34+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/PtitUrl/locale/pt/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/pt/LC_MESSAGES/PtitUrl.po index 7842da9173..130ff5988d 100644 --- a/plugins/PtitUrl/locale/pt/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/pt/LC_MESSAGES/PtitUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:35+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Usa o serviço de abreviação de URLs %1$s." diff --git a/plugins/PtitUrl/locale/pt_BR/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/pt_BR/LC_MESSAGES/PtitUrl.po index 6687fe7fef..c5534bd459 100644 --- a/plugins/PtitUrl/locale/pt_BR/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/pt_BR/LC_MESSAGES/PtitUrl.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:35+0000\n" "Language-Team: Brazilian Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/PtitUrl/locale/ru/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/ru/LC_MESSAGES/PtitUrl.po index b6f8b24b1e..7cc9f98bb8 100644 --- a/plugins/PtitUrl/locale/ru/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/ru/LC_MESSAGES/PtitUrl.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:35+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Использование службы сокращения URL %1$s." diff --git a/plugins/PtitUrl/locale/tl/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/tl/LC_MESSAGES/PtitUrl.po index 7b744e43e3..9fd2670cd6 100644 --- a/plugins/PtitUrl/locale/tl/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/tl/LC_MESSAGES/PtitUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:35+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/PtitUrl/locale/uk/LC_MESSAGES/PtitUrl.po b/plugins/PtitUrl/locale/uk/LC_MESSAGES/PtitUrl.po index 5627b60a51..1c0d87ca2e 100644 --- a/plugins/PtitUrl/locale/uk/LC_MESSAGES/PtitUrl.po +++ b/plugins/PtitUrl/locale/uk/LC_MESSAGES/PtitUrl.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - PtitUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:35+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-ptiturl\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: PtitUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/RSSCloud/locale/RSSCloud.pot b/plugins/RSSCloud/locale/RSSCloud.pot index b82123e665..6774f641fe 100644 --- a/plugins/RSSCloud/locale/RSSCloud.pot +++ b/plugins/RSSCloud/locale/RSSCloud.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,6 +16,14 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +#: LoggingAggregator.php:93 +msgid "This resource requires an HTTP GET." +msgstr "" + +#: LoggingAggregator.php:104 +msgid "This resource requires an HTTP POST." +msgstr "" + #: RSSCloudRequestNotify.php:90 msgid "Request must be POST." msgstr "" @@ -51,14 +59,6 @@ msgid "" "notified." msgstr "" -#: LoggingAggregator.php:93 -msgid "This resource requires an HTTP GET." -msgstr "" - -#: LoggingAggregator.php:104 -msgid "This resource requires an HTTP POST." -msgstr "" - #: RSSCloudPlugin.php:245 msgid "" "The RSSCloud plugin enables your StatusNet instance to publish real-time " diff --git a/plugins/RSSCloud/locale/de/LC_MESSAGES/RSSCloud.po b/plugins/RSSCloud/locale/de/LC_MESSAGES/RSSCloud.po index f0b849191a..f3fd767393 100644 --- a/plugins/RSSCloud/locale/de/LC_MESSAGES/RSSCloud.po +++ b/plugins/RSSCloud/locale/de/LC_MESSAGES/RSSCloud.po @@ -11,33 +11,35 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RSSCloud\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:52+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:40+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-rsscloud\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RSSCloudRequestNotify.php:90 +msgid "This resource requires an HTTP GET." +msgstr "Diese Ressource erfordert eine HTTP-GET-Anfrage." + +msgid "This resource requires an HTTP POST." +msgstr "Diese Ressource erfordert eine HTTP-POST-Anfrage." + msgid "Request must be POST." msgstr "Anfrage muss ein POST sein." -#: RSSCloudRequestNotify.php:107 msgid "Only http-post notifications are supported at this time." msgstr "Nur HTTP-POST-Benachrichtigungen werden im Moment unterstützt." #. TRANS: %s is a comma separated list of parameters. -#: RSSCloudRequestNotify.php:118 #, php-format msgid "The following parameters were missing from the request body: %s." msgstr "Die folgenden Parameter fehlten aus den Anforderungshauptteil: %s." -#: RSSCloudRequestNotify.php:124 msgid "" "You must provide at least one valid profile feed url (url1, url2, url3 ... " "urlN)." @@ -45,18 +47,15 @@ msgstr "" "Du musst mindestens eine gültige Profil-Feed-URL angeben (url1, url2, url3 … " "urlN)." -#: RSSCloudRequestNotify.php:141 msgid "Feed subscription failed: Not a valid feed." msgstr "Feed-Abonnement fehlgeschlagen: Ungültiger Feed." -#: RSSCloudRequestNotify.php:147 msgid "" "Feed subscription failed - notification handler doesn't respond correctly." msgstr "" "Feed-Abonnement fehlgeschlagen - Benachrichtigungs-Handler reagiert nicht " "richtig." -#: RSSCloudRequestNotify.php:161 msgid "" "Thanks for the subscription. When the feed(s) update(s), you will be " "notified." @@ -64,15 +63,6 @@ msgstr "" "Vielen Dank für das Abonnement. Du wirst benachrichtigt, wenn der Feed " "aktualisiert wird." -#: LoggingAggregator.php:93 -msgid "This resource requires an HTTP GET." -msgstr "Diese Ressource erfordert eine HTTP-GET-Anfrage." - -#: LoggingAggregator.php:104 -msgid "This resource requires an HTTP POST." -msgstr "Diese Ressource erfordert eine HTTP-POST-Anfrage." - -#: RSSCloudPlugin.php:245 msgid "" "The RSSCloud plugin enables your StatusNet instance to publish real-time " "updates for profile RSS feeds using the \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-rsscloud\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: RSSCloudRequestNotify.php:90 +msgid "This resource requires an HTTP GET." +msgstr "Cette ressource nécessite une requête HTTP GET." + +msgid "This resource requires an HTTP POST." +msgstr "Cette ressource nécessite une requête HTTP POST." + msgid "Request must be POST." msgstr "La requête HTTP au nuage RSS doit être de type POST." -#: RSSCloudRequestNotify.php:107 msgid "Only http-post notifications are supported at this time." msgstr "" "Seules les notifications HTTP-POST sont prises en charge en ce moment sur le " "nuage RSS." #. TRANS: %s is a comma separated list of parameters. -#: RSSCloudRequestNotify.php:118 #, php-format msgid "The following parameters were missing from the request body: %s." msgstr "" "Les paramètres suivants étaient absents du corps de la requête au nuage " "RSS : %s." -#: RSSCloudRequestNotify.php:124 msgid "" "You must provide at least one valid profile feed url (url1, url2, url3 ... " "urlN)." @@ -47,18 +49,15 @@ msgstr "" "Vous devez fournir au moins une adresse URL de flux de profil valide (url1, " "url2, url3 ... urlN)." -#: RSSCloudRequestNotify.php:141 msgid "Feed subscription failed: Not a valid feed." msgstr "L’abonnement au flux a échoué : ce n’est pas un flux RSS valide." -#: RSSCloudRequestNotify.php:147 msgid "" "Feed subscription failed - notification handler doesn't respond correctly." msgstr "" "L’abonnement au flux RSS a échoué : le gestionnaire de notifications ne " "répond pas correctement." -#: RSSCloudRequestNotify.php:161 msgid "" "Thanks for the subscription. When the feed(s) update(s), you will be " "notified." @@ -66,15 +65,6 @@ msgstr "" "Merci pour l’abonnement. Vous serez informé lors des mises à jour de ce(s) " "flux." -#: LoggingAggregator.php:93 -msgid "This resource requires an HTTP GET." -msgstr "Cette ressource nécessite une requête HTTP GET." - -#: LoggingAggregator.php:104 -msgid "This resource requires an HTTP POST." -msgstr "Cette ressource nécessite une requête HTTP POST." - -#: RSSCloudPlugin.php:245 msgid "" "The RSSCloud plugin enables your StatusNet instance to publish real-time " "updates for profile RSS feeds using the \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-rsscloud\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RSSCloudRequestNotify.php:90 +msgid "This resource requires an HTTP GET." +msgstr "Iste ressource require un HTTP GET." + +msgid "This resource requires an HTTP POST." +msgstr "Iste ressource require un HTTP POST." + msgid "Request must be POST." msgstr "Requesta debe esser POST." -#: RSSCloudRequestNotify.php:107 msgid "Only http-post notifications are supported at this time." msgstr "Solmente le notificationes http-post es presentemente supportate." #. TRANS: %s is a comma separated list of parameters. -#: RSSCloudRequestNotify.php:118 #, php-format msgid "The following parameters were missing from the request body: %s." msgstr "Le sequente parametros mancava del corpore del requesta: %s." -#: RSSCloudRequestNotify.php:124 msgid "" "You must provide at least one valid profile feed url (url1, url2, url3 ... " "urlN)." @@ -43,18 +45,15 @@ msgstr "" "Tu debe fornir al minus un URL de syndication de profilo valide (url1, url2, " "url3 ... urlN)." -#: RSSCloudRequestNotify.php:141 msgid "Feed subscription failed: Not a valid feed." msgstr "Le subscription al syndication ha fallite: Non un syndication valide." -#: RSSCloudRequestNotify.php:147 msgid "" "Feed subscription failed - notification handler doesn't respond correctly." msgstr "" "Le subscription al syndication ha fallite - le gestor de notification non " "responde correctemente." -#: RSSCloudRequestNotify.php:161 msgid "" "Thanks for the subscription. When the feed(s) update(s), you will be " "notified." @@ -62,15 +61,6 @@ msgstr "" "Gratias pro le subscription. Quando le syndication(es) se actualisa, tu " "recipera notification." -#: LoggingAggregator.php:93 -msgid "This resource requires an HTTP GET." -msgstr "Iste ressource require un HTTP GET." - -#: LoggingAggregator.php:104 -msgid "This resource requires an HTTP POST." -msgstr "Iste ressource require un HTTP POST." - -#: RSSCloudPlugin.php:245 msgid "" "The RSSCloud plugin enables your StatusNet instance to publish real-time " "updates for profile RSS feeds using the \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-rsscloud\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: RSSCloudRequestNotify.php:90 +msgid "This resource requires an HTTP GET." +msgstr "Овој ресурс бара HTTP GET." + +msgid "This resource requires an HTTP POST." +msgstr "Овој ресурс бара HTTP POST." + msgid "Request must be POST." msgstr "Барањето мора да биде POST." -#: RSSCloudRequestNotify.php:107 msgid "Only http-post notifications are supported at this time." msgstr "Моментално се поддржани само известувања од типот http-post." #. TRANS: %s is a comma separated list of parameters. -#: RSSCloudRequestNotify.php:118 #, php-format msgid "The following parameters were missing from the request body: %s." msgstr "Следниве параметри недостасуваа од содржината на барањето: %s." -#: RSSCloudRequestNotify.php:124 msgid "" "You must provide at least one valid profile feed url (url1, url2, url3 ... " "urlN)." @@ -43,18 +45,15 @@ msgstr "" "Мора да наведете барем едеа важечка URL-адреса за профилен канал (url1, " "url2, url3 ... urlN)." -#: RSSCloudRequestNotify.php:141 msgid "Feed subscription failed: Not a valid feed." msgstr "Претплаќањето на каналот не успеа: Не е важечки канал." -#: RSSCloudRequestNotify.php:147 msgid "" "Feed subscription failed - notification handler doesn't respond correctly." msgstr "" "Претплаќањето на каналот не успеа - ракувачот со известувања не одговара " "правилно." -#: RSSCloudRequestNotify.php:161 msgid "" "Thanks for the subscription. When the feed(s) update(s), you will be " "notified." @@ -62,15 +61,6 @@ msgstr "" "Ви благодариме шт осе претплативте. Ќе бидете известени за сите подновувања " "на каналот/ите." -#: LoggingAggregator.php:93 -msgid "This resource requires an HTTP GET." -msgstr "Овој ресурс бара HTTP GET." - -#: LoggingAggregator.php:104 -msgid "This resource requires an HTTP POST." -msgstr "Овој ресурс бара HTTP POST." - -#: RSSCloudPlugin.php:245 msgid "" "The RSSCloud plugin enables your StatusNet instance to publish real-time " "updates for profile RSS feeds using the \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-rsscloud\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RSSCloudRequestNotify.php:90 +msgid "This resource requires an HTTP GET." +msgstr "Deze bron heeft een HTTP GET nodig." + +msgid "This resource requires an HTTP POST." +msgstr "Deze bron heeft een HTTP POST nodig." + msgid "Request must be POST." msgstr "Het verzoek moet POST zijn." -#: RSSCloudRequestNotify.php:107 msgid "Only http-post notifications are supported at this time." msgstr "Op dit moment worden alle mededelingen via HTTP POST ondersteund." #. TRANS: %s is a comma separated list of parameters. -#: RSSCloudRequestNotify.php:118 #, php-format msgid "The following parameters were missing from the request body: %s." msgstr "De volgende parameters missen in de verzoekinhoud: %s." -#: RSSCloudRequestNotify.php:124 msgid "" "You must provide at least one valid profile feed url (url1, url2, url3 ... " "urlN)." @@ -43,18 +45,15 @@ msgstr "" "U moet tenminste een geldige URL voor een profielfeed opgeven ( url1, url2, " "url3, ..., urlN)." -#: RSSCloudRequestNotify.php:141 msgid "Feed subscription failed: Not a valid feed." msgstr "Abonneren op de feed is mislukt: geen geldige feed." -#: RSSCloudRequestNotify.php:147 msgid "" "Feed subscription failed - notification handler doesn't respond correctly." msgstr "" "Abonneren op de feed is mislukt: het verwerkingsproces heeft niet juist " "geantwoord." -#: RSSCloudRequestNotify.php:161 msgid "" "Thanks for the subscription. When the feed(s) update(s), you will be " "notified." @@ -62,15 +61,6 @@ msgstr "" "Dank u wel voor het abonneren. Als de feed of feeds bijgewerkt worden, wordt " "u op de hoogte gesteld." -#: LoggingAggregator.php:93 -msgid "This resource requires an HTTP GET." -msgstr "Deze bron heeft een HTTP GET nodig." - -#: LoggingAggregator.php:104 -msgid "This resource requires an HTTP POST." -msgstr "Deze bron heeft een HTTP POST nodig." - -#: RSSCloudPlugin.php:245 msgid "" "The RSSCloud plugin enables your StatusNet instance to publish real-time " "updates for profile RSS feeds using the \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-rsscloud\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RSSCloudRequestNotify.php:90 +msgid "This resource requires an HTTP GET." +msgstr "Ang pinagkunang ito ay nangangailangan ng HTTP GET." + +msgid "This resource requires an HTTP POST." +msgstr "Ang pinagkukunang ito ay nangangailangan ng HTTP POST." + msgid "Request must be POST." msgstr "Ang hiling ay dapat na POST." -#: RSSCloudRequestNotify.php:107 msgid "Only http-post notifications are supported at this time." msgstr "Tanging mga pabatid na http-post lang ang tinatangkilik sa ngayon." #. TRANS: %s is a comma separated list of parameters. -#: RSSCloudRequestNotify.php:118 #, php-format msgid "The following parameters were missing from the request body: %s." msgstr "Nawawala ang sumusunod na mga parametro mula sa katawan ng hiling: %s." -#: RSSCloudRequestNotify.php:124 msgid "" "You must provide at least one valid profile feed url (url1, url2, url3 ... " "urlN)." @@ -43,18 +45,15 @@ msgstr "" "Dapat kang magbigay ng kahit na isang url ng pakain ng tanggap na talaksan " "(url1, url2, url3 ... urlN)." -#: RSSCloudRequestNotify.php:141 msgid "Feed subscription failed: Not a valid feed." msgstr "Nabigo ang pagtanggap ng pakain: Hindi isang tanggap na pakain." -#: RSSCloudRequestNotify.php:147 msgid "" "Feed subscription failed - notification handler doesn't respond correctly." msgstr "" "Nabigo ang pagtanggap ng pakain - hindi tama ang pagtugon ng tagapaghawak ng " "pabatid." -#: RSSCloudRequestNotify.php:161 msgid "" "Thanks for the subscription. When the feed(s) update(s), you will be " "notified." @@ -62,15 +61,6 @@ msgstr "" "Salamat sa pagtatanggap. Kapag nagsapanahon ang (mga) pakain, pababatiran " "ka." -#: LoggingAggregator.php:93 -msgid "This resource requires an HTTP GET." -msgstr "Ang pinagkunang ito ay nangangailangan ng HTTP GET." - -#: LoggingAggregator.php:104 -msgid "This resource requires an HTTP POST." -msgstr "Ang pinagkukunang ito ay nangangailangan ng HTTP POST." - -#: RSSCloudPlugin.php:245 msgid "" "The RSSCloud plugin enables your StatusNet instance to publish real-time " "updates for profile RSS feeds using the \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:04+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:44+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-rsscloud\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: RSSCloudRequestNotify.php:90 +msgid "This resource requires an HTTP GET." +msgstr "Цей ресурс вимагає форми HTTP GET." + +msgid "This resource requires an HTTP POST." +msgstr "Цей ресурс вимагає форми HTTP POST." + msgid "Request must be POST." msgstr "Запит вимагає форми POST." -#: RSSCloudRequestNotify.php:107 msgid "Only http-post notifications are supported at this time." msgstr "На даний момент підтримуються лише сповіщення форми http-post." #. TRANS: %s is a comma separated list of parameters. -#: RSSCloudRequestNotify.php:118 #, php-format msgid "The following parameters were missing from the request body: %s." msgstr "У формі запиту відсутні наступні параметри: %s." -#: RSSCloudRequestNotify.php:124 msgid "" "You must provide at least one valid profile feed url (url1, url2, url3 ... " "urlN)." @@ -44,33 +46,21 @@ msgstr "" "Ви повинні зазначити щонайменше один дійсний профіль для URL-адреси веб-" "стрічки (URL-адреси через кому та пробіл)." -#: RSSCloudRequestNotify.php:141 msgid "Feed subscription failed: Not a valid feed." msgstr "Підписатися до веб-стрічки не вдалося: ця веб-стрічка не є дійсною." -#: RSSCloudRequestNotify.php:147 msgid "" "Feed subscription failed - notification handler doesn't respond correctly." msgstr "" "Підписатися до веб-стрічки не вдалося: обробник сповіщень відреагував " "неправильно." -#: RSSCloudRequestNotify.php:161 msgid "" "Thanks for the subscription. When the feed(s) update(s), you will be " "notified." msgstr "" "Дякуємо за підписку. Коли веб-стрічки оновляться, вас буде поінформовано." -#: LoggingAggregator.php:93 -msgid "This resource requires an HTTP GET." -msgstr "Цей ресурс вимагає форми HTTP GET." - -#: LoggingAggregator.php:104 -msgid "This resource requires an HTTP POST." -msgstr "Цей ресурс вимагає форми HTTP POST." - -#: RSSCloudPlugin.php:245 msgid "" "The RSSCloud plugin enables your StatusNet instance to publish real-time " "updates for profile RSS feeds using the replyurl = common_local_url('newnotice'); - $this->favorurl = common_local_url('favor'); - $this->repeaturl = common_local_url('repeat'); // FIXME: need to find a better way to pass this pattern in - $this->deleteurl = common_local_url('deletenotice', + $this->showurl = common_local_url('shownotice', array('notice' => '0000000000')); return true; } @@ -323,7 +318,12 @@ class RealtimePlugin extends Plugin function _getScripts() { - return array(Plugin::staticPath('Realtime', 'realtimeupdate.min.js')); + if (common_config('site', 'minify')) { + $js = 'realtimeupdate.min.js'; + } else { + $js = 'realtimeupdate.js'; + } + return array(Plugin::staticPath('Realtime', $js)); } /** @@ -354,7 +354,7 @@ class RealtimePlugin extends Plugin function _updateInitialize($timeline, $user_id) { - return "RealtimeUpdate.init($user_id, \"$this->replyurl\", \"$this->favorurl\", \"$this->repeaturl\", \"$this->deleteurl\"); "; + return "RealtimeUpdate.init($user_id, \"$this->showurl\"); "; } function _connect() diff --git a/plugins/Realtime/locale/Realtime.pot b/plugins/Realtime/locale/Realtime.pot index 9549ce840b..85ea4e8102 100644 --- a/plugins/Realtime/locale/Realtime.pot +++ b/plugins/Realtime/locale/Realtime.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Realtime/locale/af/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/af/LC_MESSAGES/Realtime.po index d0a6aa22ab..8e66ca6cdd 100644 --- a/plugins/Realtime/locale/af/LC_MESSAGES/Realtime.po +++ b/plugins/Realtime/locale/af/LC_MESSAGES/Realtime.po @@ -9,50 +9,44 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Realtime\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:09:47+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:35+0000\n" "Language-Team: Afrikaans \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:17+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: af\n" "X-Message-Group: #out-statusnet-plugin-realtime\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Text label for realtime view "play" button, usually replaced by an icon. -#: RealtimePlugin.php:340 msgctxt "BUTTON" msgid "Play" msgstr "Speel" #. TRANS: Tooltip for realtime view "play" button. -#: RealtimePlugin.php:342 msgctxt "TOOLTIP" msgid "Play" msgstr "Speel" #. TRANS: Text label for realtime view "pause" button -#: RealtimePlugin.php:344 msgctxt "BUTTON" msgid "Pause" msgstr "Wag" #. TRANS: Tooltip for realtime view "pause" button -#: RealtimePlugin.php:346 msgctxt "TOOLTIP" msgid "Pause" msgstr "Wag" #. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. -#: RealtimePlugin.php:348 msgctxt "BUTTON" msgid "Pop up" msgstr "Pop-up" #. TRANS: Tooltip for realtime view "popup" button. -#: RealtimePlugin.php:350 msgctxt "TOOLTIP" msgid "Pop up in a window" msgstr "Wys in 'n venstertjie" diff --git a/plugins/Realtime/locale/br/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/br/LC_MESSAGES/Realtime.po index c4d56d85e2..40e13cbe7c 100644 --- a/plugins/Realtime/locale/br/LC_MESSAGES/Realtime.po +++ b/plugins/Realtime/locale/br/LC_MESSAGES/Realtime.po @@ -9,50 +9,44 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Realtime\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:09:47+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:35+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:17+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-realtime\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANS: Text label for realtime view "play" button, usually replaced by an icon. -#: RealtimePlugin.php:340 msgctxt "BUTTON" msgid "Play" msgstr "Lenn" #. TRANS: Tooltip for realtime view "play" button. -#: RealtimePlugin.php:342 msgctxt "TOOLTIP" msgid "Play" msgstr "Lenn" #. TRANS: Text label for realtime view "pause" button -#: RealtimePlugin.php:344 msgctxt "BUTTON" msgid "Pause" msgstr "Ehan" #. TRANS: Tooltip for realtime view "pause" button -#: RealtimePlugin.php:346 msgctxt "TOOLTIP" msgid "Pause" msgstr "Ehan" #. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. -#: RealtimePlugin.php:348 msgctxt "BUTTON" msgid "Pop up" msgstr "" #. TRANS: Tooltip for realtime view "popup" button. -#: RealtimePlugin.php:350 msgctxt "TOOLTIP" msgid "Pop up in a window" msgstr "" diff --git a/plugins/Realtime/locale/ca/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/ca/LC_MESSAGES/Realtime.po index 07c8da8217..aef1a6d327 100644 --- a/plugins/Realtime/locale/ca/LC_MESSAGES/Realtime.po +++ b/plugins/Realtime/locale/ca/LC_MESSAGES/Realtime.po @@ -9,50 +9,44 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Realtime\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:09:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:35+0000\n" "Language-Team: Catalan \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:17+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: #out-statusnet-plugin-realtime\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Text label for realtime view "play" button, usually replaced by an icon. -#: RealtimePlugin.php:340 msgctxt "BUTTON" msgid "Play" msgstr "Reprodueix" #. TRANS: Tooltip for realtime view "play" button. -#: RealtimePlugin.php:342 msgctxt "TOOLTIP" msgid "Play" msgstr "Reprodueix" #. TRANS: Text label for realtime view "pause" button -#: RealtimePlugin.php:344 msgctxt "BUTTON" msgid "Pause" msgstr "Pausa" #. TRANS: Tooltip for realtime view "pause" button -#: RealtimePlugin.php:346 msgctxt "TOOLTIP" msgid "Pause" msgstr "Pausa" #. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. -#: RealtimePlugin.php:348 msgctxt "BUTTON" msgid "Pop up" msgstr "Emergent" #. TRANS: Tooltip for realtime view "popup" button. -#: RealtimePlugin.php:350 msgctxt "TOOLTIP" msgid "Pop up in a window" msgstr "Emergent en una finestra" diff --git a/plugins/Realtime/locale/de/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/de/LC_MESSAGES/Realtime.po index 174e1510c5..b7cb7d3494 100644 --- a/plugins/Realtime/locale/de/LC_MESSAGES/Realtime.po +++ b/plugins/Realtime/locale/de/LC_MESSAGES/Realtime.po @@ -9,50 +9,44 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Realtime\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:09:48+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:35+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:17+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-realtime\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Text label for realtime view "play" button, usually replaced by an icon. -#: RealtimePlugin.php:340 msgctxt "BUTTON" msgid "Play" msgstr "Abspielen" #. TRANS: Tooltip for realtime view "play" button. -#: RealtimePlugin.php:342 msgctxt "TOOLTIP" msgid "Play" msgstr "Abspielen" #. TRANS: Text label for realtime view "pause" button -#: RealtimePlugin.php:344 msgctxt "BUTTON" msgid "Pause" msgstr "Pause" #. TRANS: Tooltip for realtime view "pause" button -#: RealtimePlugin.php:346 msgctxt "TOOLTIP" msgid "Pause" msgstr "Pause" #. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. -#: RealtimePlugin.php:348 msgctxt "BUTTON" msgid "Pop up" msgstr "Popup" #. TRANS: Tooltip for realtime view "popup" button. -#: RealtimePlugin.php:350 msgctxt "TOOLTIP" msgid "Pop up in a window" msgstr "Popup in einem Fenster" diff --git a/plugins/Realtime/locale/fr/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/fr/LC_MESSAGES/Realtime.po index ce1eccf70e..07923a5189 100644 --- a/plugins/Realtime/locale/fr/LC_MESSAGES/Realtime.po +++ b/plugins/Realtime/locale/fr/LC_MESSAGES/Realtime.po @@ -9,50 +9,44 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Realtime\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:09:50+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:36+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:17+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-realtime\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANS: Text label for realtime view "play" button, usually replaced by an icon. -#: RealtimePlugin.php:340 msgctxt "BUTTON" msgid "Play" msgstr "Jouer" #. TRANS: Tooltip for realtime view "play" button. -#: RealtimePlugin.php:342 msgctxt "TOOLTIP" msgid "Play" msgstr "Jouer" #. TRANS: Text label for realtime view "pause" button -#: RealtimePlugin.php:344 msgctxt "BUTTON" msgid "Pause" msgstr "Pause" #. TRANS: Tooltip for realtime view "pause" button -#: RealtimePlugin.php:346 msgctxt "TOOLTIP" msgid "Pause" msgstr "Pause" #. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. -#: RealtimePlugin.php:348 msgctxt "BUTTON" msgid "Pop up" msgstr "Nouvelle fenêtre" #. TRANS: Tooltip for realtime view "popup" button. -#: RealtimePlugin.php:350 msgctxt "TOOLTIP" msgid "Pop up in a window" msgstr "Afficher dans une nouvelle fenêtre" diff --git a/plugins/Realtime/locale/ia/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/ia/LC_MESSAGES/Realtime.po index 6e3e4a82bb..4f6855edfd 100644 --- a/plugins/Realtime/locale/ia/LC_MESSAGES/Realtime.po +++ b/plugins/Realtime/locale/ia/LC_MESSAGES/Realtime.po @@ -9,50 +9,44 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Realtime\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:09:52+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:36+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:17+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-realtime\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Text label for realtime view "play" button, usually replaced by an icon. -#: RealtimePlugin.php:340 msgctxt "BUTTON" msgid "Play" msgstr "Reproducer" #. TRANS: Tooltip for realtime view "play" button. -#: RealtimePlugin.php:342 msgctxt "TOOLTIP" msgid "Play" msgstr "Reproducer" #. TRANS: Text label for realtime view "pause" button -#: RealtimePlugin.php:344 msgctxt "BUTTON" msgid "Pause" msgstr "Pausar" #. TRANS: Tooltip for realtime view "pause" button -#: RealtimePlugin.php:346 msgctxt "TOOLTIP" msgid "Pause" msgstr "Pausar" #. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. -#: RealtimePlugin.php:348 msgctxt "BUTTON" msgid "Pop up" msgstr "Fenestra" #. TRANS: Tooltip for realtime view "popup" button. -#: RealtimePlugin.php:350 msgctxt "TOOLTIP" msgid "Pop up in a window" msgstr "Aperir le reproductor in un nove fenestra" diff --git a/plugins/Realtime/locale/mk/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/mk/LC_MESSAGES/Realtime.po index 3f82d15605..3f2386af58 100644 --- a/plugins/Realtime/locale/mk/LC_MESSAGES/Realtime.po +++ b/plugins/Realtime/locale/mk/LC_MESSAGES/Realtime.po @@ -9,50 +9,44 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Realtime\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:09:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:36+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:17+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-realtime\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" #. TRANS: Text label for realtime view "play" button, usually replaced by an icon. -#: RealtimePlugin.php:340 msgctxt "BUTTON" msgid "Play" msgstr "Пушти" #. TRANS: Tooltip for realtime view "play" button. -#: RealtimePlugin.php:342 msgctxt "TOOLTIP" msgid "Play" msgstr "Пушти" #. TRANS: Text label for realtime view "pause" button -#: RealtimePlugin.php:344 msgctxt "BUTTON" msgid "Pause" msgstr "Паузирај" #. TRANS: Tooltip for realtime view "pause" button -#: RealtimePlugin.php:346 msgctxt "TOOLTIP" msgid "Pause" msgstr "Паузирај" #. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. -#: RealtimePlugin.php:348 msgctxt "BUTTON" msgid "Pop up" msgstr "Прозорче" #. TRANS: Tooltip for realtime view "popup" button. -#: RealtimePlugin.php:350 msgctxt "TOOLTIP" msgid "Pop up in a window" msgstr "Прикажи во прозорче" diff --git a/plugins/Realtime/locale/ne/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/ne/LC_MESSAGES/Realtime.po index 04ac2dbbc0..ac4d6a405a 100644 --- a/plugins/Realtime/locale/ne/LC_MESSAGES/Realtime.po +++ b/plugins/Realtime/locale/ne/LC_MESSAGES/Realtime.po @@ -9,50 +9,44 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Realtime\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:09:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:36+0000\n" "Language-Team: Nepali \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:17+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ne\n" "X-Message-Group: #out-statusnet-plugin-realtime\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Text label for realtime view "play" button, usually replaced by an icon. -#: RealtimePlugin.php:340 msgctxt "BUTTON" msgid "Play" msgstr "बजाउ" #. TRANS: Tooltip for realtime view "play" button. -#: RealtimePlugin.php:342 msgctxt "TOOLTIP" msgid "Play" msgstr "बजाउ" #. TRANS: Text label for realtime view "pause" button -#: RealtimePlugin.php:344 msgctxt "BUTTON" msgid "Pause" msgstr "बिसाउ" #. TRANS: Tooltip for realtime view "pause" button -#: RealtimePlugin.php:346 msgctxt "TOOLTIP" msgid "Pause" msgstr "बिसाउ" #. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. -#: RealtimePlugin.php:348 msgctxt "BUTTON" msgid "Pop up" msgstr "चम्काउ" #. TRANS: Tooltip for realtime view "popup" button. -#: RealtimePlugin.php:350 msgctxt "TOOLTIP" msgid "Pop up in a window" msgstr "चम्क विन्डोमा" diff --git a/plugins/Realtime/locale/nl/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/nl/LC_MESSAGES/Realtime.po index afb1e6f269..b4c2e69af4 100644 --- a/plugins/Realtime/locale/nl/LC_MESSAGES/Realtime.po +++ b/plugins/Realtime/locale/nl/LC_MESSAGES/Realtime.po @@ -9,50 +9,44 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Realtime\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:09:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:36+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:17+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-realtime\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Text label for realtime view "play" button, usually replaced by an icon. -#: RealtimePlugin.php:340 msgctxt "BUTTON" msgid "Play" msgstr "Afspelen" #. TRANS: Tooltip for realtime view "play" button. -#: RealtimePlugin.php:342 msgctxt "TOOLTIP" msgid "Play" msgstr "Afspelen" #. TRANS: Text label for realtime view "pause" button -#: RealtimePlugin.php:344 msgctxt "BUTTON" msgid "Pause" msgstr "Pauzeren" #. TRANS: Tooltip for realtime view "pause" button -#: RealtimePlugin.php:346 msgctxt "TOOLTIP" msgid "Pause" msgstr "Pauzeren" #. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. -#: RealtimePlugin.php:348 msgctxt "BUTTON" msgid "Pop up" msgstr "Pop-up" #. TRANS: Tooltip for realtime view "popup" button. -#: RealtimePlugin.php:350 msgctxt "TOOLTIP" msgid "Pop up in a window" msgstr "In nieuw venstertje weergeven" diff --git a/plugins/Realtime/locale/tr/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/tr/LC_MESSAGES/Realtime.po index 8da3949897..4b4b7ad888 100644 --- a/plugins/Realtime/locale/tr/LC_MESSAGES/Realtime.po +++ b/plugins/Realtime/locale/tr/LC_MESSAGES/Realtime.po @@ -9,50 +9,44 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Realtime\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:09:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:36+0000\n" "Language-Team: Turkish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:17+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: #out-statusnet-plugin-realtime\n" "Plural-Forms: nplurals=1; plural=0;\n" #. TRANS: Text label for realtime view "play" button, usually replaced by an icon. -#: RealtimePlugin.php:340 msgctxt "BUTTON" msgid "Play" msgstr "Oynat" #. TRANS: Tooltip for realtime view "play" button. -#: RealtimePlugin.php:342 msgctxt "TOOLTIP" msgid "Play" msgstr "Oynat" #. TRANS: Text label for realtime view "pause" button -#: RealtimePlugin.php:344 msgctxt "BUTTON" msgid "Pause" msgstr "Duraklat" #. TRANS: Tooltip for realtime view "pause" button -#: RealtimePlugin.php:346 msgctxt "TOOLTIP" msgid "Pause" msgstr "Duraklat" #. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. -#: RealtimePlugin.php:348 msgctxt "BUTTON" msgid "Pop up" msgstr "" #. TRANS: Tooltip for realtime view "popup" button. -#: RealtimePlugin.php:350 msgctxt "TOOLTIP" msgid "Pop up in a window" msgstr "" diff --git a/plugins/Realtime/locale/uk/LC_MESSAGES/Realtime.po b/plugins/Realtime/locale/uk/LC_MESSAGES/Realtime.po index be409b8f4a..3927fa9761 100644 --- a/plugins/Realtime/locale/uk/LC_MESSAGES/Realtime.po +++ b/plugins/Realtime/locale/uk/LC_MESSAGES/Realtime.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Realtime\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-02-14 16:01+0000\n" -"PO-Revision-Date: 2011-02-14 16:09:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:36+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:17+0000\n" -"X-Generator: MediaWiki 1.18alpha (r82114); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-realtime\n" @@ -23,37 +23,31 @@ msgstr "" "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" #. TRANS: Text label for realtime view "play" button, usually replaced by an icon. -#: RealtimePlugin.php:340 msgctxt "BUTTON" msgid "Play" msgstr "Оновлювати" #. TRANS: Tooltip for realtime view "play" button. -#: RealtimePlugin.php:342 msgctxt "TOOLTIP" msgid "Play" msgstr "Оновлювати" #. TRANS: Text label for realtime view "pause" button -#: RealtimePlugin.php:344 msgctxt "BUTTON" msgid "Pause" msgstr "Пауза" #. TRANS: Tooltip for realtime view "pause" button -#: RealtimePlugin.php:346 msgctxt "TOOLTIP" msgid "Pause" msgstr "Пауза" #. TRANS: Text label for realtime view "popup" button, usually replaced by an icon. -#: RealtimePlugin.php:348 msgctxt "BUTTON" msgid "Pop up" msgstr "Окреме вікно" #. TRANS: Tooltip for realtime view "popup" button. -#: RealtimePlugin.php:350 msgctxt "TOOLTIP" msgid "Pop up in a window" msgstr "Стрічка окремим вікном" diff --git a/plugins/Realtime/realtimeupdate.css b/plugins/Realtime/realtimeupdate.css index 7fd7fd5ed3..3295fe4a31 100644 --- a/plugins/Realtime/realtimeupdate.css +++ b/plugins/Realtime/realtimeupdate.css @@ -17,13 +17,13 @@ max-width:451px; display:none; } -.realtime-popup #form_notice label[for=notice_data-attach], -.realtime-popup #form_notice #notice_data-attach, +.realtime-popup #form_notice label.notice_data-attach, +.realtime-popup #form_notice input.notice_data-attach, .realtime-popup #form_notice label.notice_data-geo { top:0; } -.realtime-popup #form_notice #notice_data-attach { +.realtime-popup #form_notice input.notice_data-attach { left:auto; right:0; } diff --git a/plugins/Realtime/realtimeupdate.js b/plugins/Realtime/realtimeupdate.js index e615895cab..d9f5e7604f 100644 --- a/plugins/Realtime/realtimeupdate.js +++ b/plugins/Realtime/realtimeupdate.js @@ -44,10 +44,7 @@ */ RealtimeUpdate = { _userid: 0, - _replyurl: '', - _favorurl: '', - _repeaturl: '', - _deleteurl: '', + _showurl: '', _updatecounter: 0, _maxnotices: 50, _windowhasfocus: true, @@ -66,21 +63,15 @@ RealtimeUpdate = { * feed data into the RealtimeUpdate object! * * @param {int} userid: local profile ID of the currently logged-in user - * @param {String} replyurl: URL for newnotice action, used when generating reply buttons - * @param {String} favorurl: URL for favor action, used when generating fave buttons - * @param {String} repeaturl: URL for repeat action, used when generating repeat buttons - * @param {String} deleteurl: URL template for deletenotice action, used when generating delete buttons. + * @param {String} showurl: URL for shownotice action, used when fetching formatting notices. * This URL contains a stub value of 0000000000 which will be replaced with the notice ID. * * @access public */ - init: function(userid, replyurl, favorurl, repeaturl, deleteurl) + init: function(userid, showurl) { RealtimeUpdate._userid = userid; - RealtimeUpdate._replyurl = replyurl; - RealtimeUpdate._favorurl = favorurl; - RealtimeUpdate._repeaturl = repeaturl; - RealtimeUpdate._deleteurl = deleteurl; + RealtimeUpdate._showurl = showurl; RealtimeUpdate._documenttitle = document.title; @@ -163,50 +154,55 @@ RealtimeUpdate = { return; } - var noticeItem = RealtimeUpdate.makeNoticeItem(data); - var noticeItemID = $(noticeItem).attr('id'); - - var list = $("#notices_primary .notices:first") - var prepend = true; - - var threaded = list.hasClass('threaded-notices'); - if (threaded && data.in_reply_to_status_id) { - // aho! - var parent = $('#notice-' + data.in_reply_to_status_id); - if (parent.length == 0) { - // @todo fetch the original, insert it, and finish the rest - } else { - // Check the parent notice to make sure it's not a reply itself. - // If so, use it's parent as the parent. - var parentList = parent.closest('.notices'); - if (parentList.hasClass('threaded-replies')) { - parent = parentList.closest('.notice'); - } - list = parent.find('.threaded-replies'); - if (list.length == 0) { - list = $('
            '); - parent.append(list); - } - prepend = false; + RealtimeUpdate.makeNoticeItem(data, function(noticeItem) { + // Check again in case it got shown while we were waiting for data... + if (RealtimeUpdate.isNoticeVisible(data.id)) { + return; } - } + var noticeItemID = $(noticeItem).attr('id'); - var newNotice = $(noticeItem); - if (prepend) { - list.prepend(newNotice); - } else { - var placeholder = list.find('li.notice-reply-placeholder') - if (placeholder.length > 0) { - newNotice.insertBefore(placeholder) - } else { - newNotice.appendTo(list); - SN.U.NoticeInlineReplyPlaceholder(parent); + var list = $("#notices_primary .notices:first") + var prepend = true; + + var threaded = list.hasClass('threaded-notices'); + if (threaded && data.in_reply_to_status_id) { + // aho! + var parent = $('#notice-' + data.in_reply_to_status_id); + if (parent.length == 0) { + // @todo fetch the original, insert it, and finish the rest + } else { + // Check the parent notice to make sure it's not a reply itself. + // If so, use it's parent as the parent. + var parentList = parent.closest('.notices'); + if (parentList.hasClass('threaded-replies')) { + parent = parentList.closest('.notice'); + } + list = parent.find('.threaded-replies'); + if (list.length == 0) { + list = $('
              '); + parent.append(list); + SN.U.NoticeInlineReplyPlaceholder(parent); + } + prepend = false; + } } - } - newNotice.css({display:"none"}).fadeIn(1000); - SN.U.NoticeReplyTo($('#'+noticeItemID)); - SN.U.NoticeWithAttachment($('#'+noticeItemID)); + var newNotice = $(noticeItem); + if (prepend) { + list.prepend(newNotice); + } else { + var placeholder = list.find('li.notice-reply-placeholder') + if (placeholder.length > 0) { + newNotice.insertBefore(placeholder) + } else { + newNotice.appendTo(list); + } + } + newNotice.css({display:"none"}).fadeIn(1000); + + SN.U.NoticeReplyTo($('#'+noticeItemID)); + SN.U.NoticeWithAttachment($('#'+noticeItemID)); + }); }, /** @@ -263,86 +259,24 @@ RealtimeUpdate = { }, /** - * Builds a notice HTML block from JSON API-style data. + * Builds a notice HTML block from JSON API-style data; + * loads data from server, so runs async. * * @param {Object} data: extended JSON API-formatted notice - * @return {String} HTML fragment - * - * @fixme this replicates core StatusNet code, making maintenance harder - * @fixme sloppy HTML building (raw concat without escaping) - * @fixme no i18n support - * @fixme local variables pollute global namespace + * @param {function} callback: function(DOMNode) to receive new code * * @access private */ - makeNoticeItem: function(data) + makeNoticeItem: function(data, callback) { - if (data.hasOwnProperty('retweeted_status')) { - original = data['retweeted_status']; - repeat = data; - data = original; - unique = repeat['id']; - responsible = repeat['user']; - } else { - original = null; - repeat = null; - unique = data['id']; - responsible = data['user']; - } - - user = data['user']; - html = data['html'].replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"').replace(/&/g,'&'); - source = data['source'].replace(/</g,'<').replace(/>/g,'>').replace(/"/g,'"').replace(/&/g,'&'); - - ni = "
            • "+ - ""+ - "
              "+ - ""+ - "a few seconds ago"+ - " "+ - ""+ - "from "+ - ""+source+""+ // may have a link - ""; - if (data['conversation_url']) { - ni = ni+" in context"; - } - - if (repeat) { - ru = repeat['user']; - ni = ni + "Repeated by " + - "" + - ""+ ru['screen_name'] + ""; - } - - ni = ni+"
              "; - - ni = ni + "
              "; - - if (RealtimeUpdate._userid != 0) { - var input = $("form#form_notice fieldset input#token"); - var session_key = input.val(); - ni = ni+RealtimeUpdate.makeFavoriteForm(data['id'], session_key); - ni = ni+RealtimeUpdate.makeReplyLink(data['id'], data['user']['screen_name']); - if (RealtimeUpdate._userid == responsible['id']) { - ni = ni+RealtimeUpdate.makeDeleteLink(data['id']); - } else if (RealtimeUpdate._userid != user['id']) { - ni = ni+RealtimeUpdate.makeRepeatForm(data['id'], session_key); - } - } - - ni = ni+"
              "; - - ni = ni+"
            • "; - return ni; + var url = RealtimeUpdate._showurl.replace('0000000000', data.id); + $.get(url, {ajax: 1}, function(data, textStatus, xhr) { + var notice = $('li.notice:first', data); + if (notice.length) { + var node = document._importNode(notice[0], true); + callback(node); + } + }); }, /** diff --git a/plugins/Realtime/realtimeupdate.min.js b/plugins/Realtime/realtimeupdate.min.js index 931de982ef..a7453f3a16 100644 --- a/plugins/Realtime/realtimeupdate.min.js +++ b/plugins/Realtime/realtimeupdate.min.js @@ -1 +1 @@ -RealtimeUpdate={_userid:0,_replyurl:"",_favorurl:"",_repeaturl:"",_deleteurl:"",_updatecounter:0,_maxnotices:50,_windowhasfocus:true,_documenttitle:"",_paused:false,_queuedNotices:[],init:function(c,b,d,e,a){RealtimeUpdate._userid=c;RealtimeUpdate._replyurl=b;RealtimeUpdate._favorurl=d;RealtimeUpdate._repeaturl=e;RealtimeUpdate._deleteurl=a;RealtimeUpdate._documenttitle=document.title;$(window).bind("focus",function(){RealtimeUpdate._windowhasfocus=true;RealtimeUpdate._updatecounter=0;RealtimeUpdate.removeWindowCounter()});$(window).bind("blur",function(){$("#notices_primary .notice").removeClass("mark-top");$("#notices_primary .notice:first").addClass("mark-top");RealtimeUpdate._windowhasfocus=false;return false})},receive:function(a){if(RealtimeUpdate.isNoticeVisible(a.id)){return}if(RealtimeUpdate._paused===false){RealtimeUpdate.purgeLastNoticeItem();RealtimeUpdate.insertNoticeItem(a)}else{RealtimeUpdate._queuedNotices.push(a);RealtimeUpdate.updateQueuedCounter()}RealtimeUpdate.updateWindowCounter()},insertNoticeItem:function(b){if(RealtimeUpdate.isNoticeVisible(b.id)){return}var a=RealtimeUpdate.makeNoticeItem(b);var c=$(a).attr("id");var d=$("#notices_primary .notices:first");var j=true;var e=d.hasClass("threaded-notices");if(e&&b.in_reply_to_status_id){var g=$("#notice-"+b.in_reply_to_status_id);if(g.length==0){}else{var h=g.closest(".notices");if(h.hasClass("threaded-replies")){g=h.closest(".notice")}d=g.find(".threaded-replies");if(d.length==0){d=$('
                ');g.append(d)}j=false}}var i=$(a);if(j){d.prepend(i)}else{var f=d.find("li.notice-reply-placeholder");if(f.length>0){i.insertBefore(f)}else{i.appendTo(d);SN.U.NoticeInlineReplyPlaceholder(g)}}i.css({display:"none"}).fadeIn(1000);SN.U.NoticeReplyTo($("#"+c));SN.U.NoticeWithAttachment($("#"+c))},isNoticeVisible:function(a){return($("#notice-"+a).length>0)},purgeLastNoticeItem:function(){if($("#notices_primary .notice").length>RealtimeUpdate._maxnotices){$("#notices_primary .notice:last").remove()}},updateWindowCounter:function(){if(RealtimeUpdate._windowhasfocus===false){RealtimeUpdate._updatecounter+=1;document.title="("+RealtimeUpdate._updatecounter+") "+RealtimeUpdate._documenttitle}},removeWindowCounter:function(){document.title=RealtimeUpdate._documenttitle},makeNoticeItem:function(c){if(c.hasOwnProperty("retweeted_status")){original=c.retweeted_status;repeat=c;c=original;unique=repeat.id;responsible=repeat.user}else{original=null;repeat=null;unique=c.id;responsible=c.user}user=c.user;html=c.html.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/&/g,"&");source=c.source.replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/&/g,"&");ni='
              • '+user.screen_name+''+user.screen_name+'

                '+html+'

                a few seconds ago from '+source+"";if(c.conversation_url){ni=ni+' in context'}if(repeat){ru=repeat.user;ni=ni+'Repeated by '+ru.screen_name+""}ni=ni+"
                ";ni=ni+'
                ';if(RealtimeUpdate._userid!=0){var a=$("form#form_notice fieldset input#token");var b=a.val();ni=ni+RealtimeUpdate.makeFavoriteForm(c.id,b);ni=ni+RealtimeUpdate.makeReplyLink(c.id,c.user["screen_name"]);if(RealtimeUpdate._userid==responsible.id){ni=ni+RealtimeUpdate.makeDeleteLink(c.id)}else{if(RealtimeUpdate._userid!=user.id){ni=ni+RealtimeUpdate.makeRepeatForm(c.id,b)}}}ni=ni+"
                ";ni=ni+"
              • ";return ni},makeFavoriteForm:function(c,b){var a;a='
                Favor this notice
                ';return a},makeReplyLink:function(c,a){var b;b='Reply '+c+"";return b},makeRepeatForm:function(c,b){var a;a='
                Repeat this notice?
                ';return a},makeDeleteLink:function(c){var b,a;a=RealtimeUpdate._deleteurl.replace("0000000000",c);b='Delete';return b},initActions:function(a,b,c){$("#notices_primary").prepend('
                ');RealtimeUpdate._pluginPath=c;RealtimeUpdate.initPlayPause();RealtimeUpdate.initAddPopup(a,b,RealtimeUpdate._pluginPath)},initPlayPause:function(){if(typeof(localStorage)=="undefined"){RealtimeUpdate.showPause()}else{if(localStorage.getItem("RealtimeUpdate_paused")==="true"){RealtimeUpdate.showPlay()}else{RealtimeUpdate.showPause()}}},showPause:function(){RealtimeUpdate.setPause(false);RealtimeUpdate.showQueuedNotices();RealtimeUpdate.addNoticesHover();$("#realtime_playpause").remove();$("#realtime_actions").prepend('
              • ');$("#realtime_pause").text(SN.msg("realtime_pause")).attr("title",SN.msg("realtime_pause_tooltip")).bind("click",function(){RealtimeUpdate.removeNoticesHover();RealtimeUpdate.showPlay();return false})},showPlay:function(){RealtimeUpdate.setPause(true);$("#realtime_playpause").remove();$("#realtime_actions").prepend('
              • ');$("#realtime_play").text(SN.msg("realtime_play")).attr("title",SN.msg("realtime_play_tooltip")).bind("click",function(){RealtimeUpdate.showPause();return false})},setPause:function(a){RealtimeUpdate._paused=a;if(typeof(localStorage)!="undefined"){localStorage.setItem("RealtimeUpdate_paused",RealtimeUpdate._paused)}},showQueuedNotices:function(){$.each(RealtimeUpdate._queuedNotices,function(a,b){RealtimeUpdate.insertNoticeItem(b)});RealtimeUpdate._queuedNotices=[];RealtimeUpdate.removeQueuedCounter()},updateQueuedCounter:function(){$("#realtime_playpause #queued_counter").html("("+RealtimeUpdate._queuedNotices.length+")")},removeQueuedCounter:function(){$("#realtime_playpause #queued_counter").empty()},addNoticesHover:function(){$("#notices_primary .notices").hover(function(){if(RealtimeUpdate._paused===false){RealtimeUpdate.showPlay()}},function(){if(RealtimeUpdate._paused===true){RealtimeUpdate.showPause()}})},removeNoticesHover:function(){$("#notices_primary .notices").unbind()},initAddPopup:function(a,b,c){$("#realtime_timeline").append('');$("#realtime_popup").text(SN.msg("realtime_popup")).attr("title",SN.msg("realtime_popup_tooltip")).bind("click",function(){window.open(a,"","toolbar=no,resizable=yes,scrollbars=yes,status=no,menubar=no,personalbar=no,location=no,width=500,height=550");return false})},initPopupWindow:function(){$(".notices .entry-title a, .notices .entry-content a").bind("click",function(){window.open(this.href,"");return false});$("#showstream .entity_profile").css({width:"69%"})}}; \ No newline at end of file +RealtimeUpdate={_userid:0,_showurl:"",_updatecounter:0,_maxnotices:50,_windowhasfocus:true,_documenttitle:"",_paused:false,_queuedNotices:[],init:function(a,b){RealtimeUpdate._userid=a;RealtimeUpdate._showurl=b;RealtimeUpdate._documenttitle=document.title;$(window).bind("focus",function(){RealtimeUpdate._windowhasfocus=true;RealtimeUpdate._updatecounter=0;RealtimeUpdate.removeWindowCounter()});$(window).bind("blur",function(){$("#notices_primary .notice").removeClass("mark-top");$("#notices_primary .notice:first").addClass("mark-top");RealtimeUpdate._windowhasfocus=false;return false})},receive:function(a){if(RealtimeUpdate.isNoticeVisible(a.id)){return}if(RealtimeUpdate._paused===false){RealtimeUpdate.purgeLastNoticeItem();RealtimeUpdate.insertNoticeItem(a)}else{RealtimeUpdate._queuedNotices.push(a);RealtimeUpdate.updateQueuedCounter()}RealtimeUpdate.updateWindowCounter()},insertNoticeItem:function(a){if(RealtimeUpdate.isNoticeVisible(a.id)){return}RealtimeUpdate.makeNoticeItem(a,function(b){if(RealtimeUpdate.isNoticeVisible(a.id)){return}var c=$(b).attr("id");var d=$("#notices_primary .notices:first");var j=true;var e=d.hasClass("threaded-notices");if(e&&a.in_reply_to_status_id){var g=$("#notice-"+a.in_reply_to_status_id);if(g.length==0){}else{var h=g.closest(".notices");if(h.hasClass("threaded-replies")){g=h.closest(".notice")}d=g.find(".threaded-replies");if(d.length==0){d=$('
                  ');g.append(d);SN.U.NoticeInlineReplyPlaceholder(g)}j=false}}var i=$(b);if(j){d.prepend(i)}else{var f=d.find("li.notice-reply-placeholder");if(f.length>0){i.insertBefore(f)}else{i.appendTo(d)}}i.css({display:"none"}).fadeIn(1000);SN.U.NoticeReplyTo($("#"+c));SN.U.NoticeWithAttachment($("#"+c))})},isNoticeVisible:function(a){return($("#notice-"+a).length>0)},purgeLastNoticeItem:function(){if($("#notices_primary .notice").length>RealtimeUpdate._maxnotices){$("#notices_primary .notice:last").remove()}},updateWindowCounter:function(){if(RealtimeUpdate._windowhasfocus===false){RealtimeUpdate._updatecounter+=1;document.title="("+RealtimeUpdate._updatecounter+") "+RealtimeUpdate._documenttitle}},removeWindowCounter:function(){document.title=RealtimeUpdate._documenttitle},makeNoticeItem:function(b,c){var a=RealtimeUpdate._showurl.replace("0000000000",b.id);$.get(a,{ajax:1},function(f,h,g){var e=$("li.notice:first",f);if(e.length){var d=document._importNode(e[0],true);c(d)}})},makeFavoriteForm:function(c,b){var a;a='
                  Favor this notice
                  ';return a},makeReplyLink:function(c,a){var b;b='Reply '+c+"";return b},makeRepeatForm:function(c,b){var a;a='
                  Repeat this notice?
                  ';return a},makeDeleteLink:function(c){var b,a;a=RealtimeUpdate._deleteurl.replace("0000000000",c);b='Delete';return b},initActions:function(a,b,c){$("#notices_primary").prepend('
                  ');RealtimeUpdate._pluginPath=c;RealtimeUpdate.initPlayPause();RealtimeUpdate.initAddPopup(a,b,RealtimeUpdate._pluginPath)},initPlayPause:function(){if(typeof(localStorage)=="undefined"){RealtimeUpdate.showPause()}else{if(localStorage.getItem("RealtimeUpdate_paused")==="true"){RealtimeUpdate.showPlay()}else{RealtimeUpdate.showPause()}}},showPause:function(){RealtimeUpdate.setPause(false);RealtimeUpdate.showQueuedNotices();RealtimeUpdate.addNoticesHover();$("#realtime_playpause").remove();$("#realtime_actions").prepend('
                • ');$("#realtime_pause").text(SN.msg("realtime_pause")).attr("title",SN.msg("realtime_pause_tooltip")).bind("click",function(){RealtimeUpdate.removeNoticesHover();RealtimeUpdate.showPlay();return false})},showPlay:function(){RealtimeUpdate.setPause(true);$("#realtime_playpause").remove();$("#realtime_actions").prepend('
                • ');$("#realtime_play").text(SN.msg("realtime_play")).attr("title",SN.msg("realtime_play_tooltip")).bind("click",function(){RealtimeUpdate.showPause();return false})},setPause:function(a){RealtimeUpdate._paused=a;if(typeof(localStorage)!="undefined"){localStorage.setItem("RealtimeUpdate_paused",RealtimeUpdate._paused)}},showQueuedNotices:function(){$.each(RealtimeUpdate._queuedNotices,function(a,b){RealtimeUpdate.insertNoticeItem(b)});RealtimeUpdate._queuedNotices=[];RealtimeUpdate.removeQueuedCounter()},updateQueuedCounter:function(){$("#realtime_playpause #queued_counter").html("("+RealtimeUpdate._queuedNotices.length+")")},removeQueuedCounter:function(){$("#realtime_playpause #queued_counter").empty()},addNoticesHover:function(){$("#notices_primary .notices").hover(function(){if(RealtimeUpdate._paused===false){RealtimeUpdate.showPlay()}},function(){if(RealtimeUpdate._paused===true){RealtimeUpdate.showPause()}})},removeNoticesHover:function(){$("#notices_primary .notices").unbind()},initAddPopup:function(a,b,c){$("#realtime_timeline").append('');$("#realtime_popup").text(SN.msg("realtime_popup")).attr("title",SN.msg("realtime_popup_tooltip")).bind("click",function(){window.open(a,"","toolbar=no,resizable=yes,scrollbars=yes,status=no,menubar=no,personalbar=no,location=no,width=500,height=550");return false})},initPopupWindow:function(){$(".notices .entry-title a, .notices .entry-content a").bind("click",function(){window.open(this.href,"");return false});$("#showstream .entity_profile").css({width:"69%"})}}; \ No newline at end of file diff --git a/plugins/Recaptcha/locale/Recaptcha.pot b/plugins/Recaptcha/locale/Recaptcha.pot index 66faa46bb8..026f283501 100644 --- a/plugins/Recaptcha/locale/Recaptcha.pot +++ b/plugins/Recaptcha/locale/Recaptcha.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Recaptcha/locale/de/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/de/LC_MESSAGES/Recaptcha.po index 9acfd15397..a15eb31c7e 100644 --- a/plugins/Recaptcha/locale/de/LC_MESSAGES/Recaptcha.po +++ b/plugins/Recaptcha/locale/de/LC_MESSAGES/Recaptcha.po @@ -10,27 +10,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Recaptcha\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:49+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:36+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:18+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-recaptcha\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RecaptchaPlugin.php:57 msgid "Captcha" msgstr "Captcha" -#: RecaptchaPlugin.php:98 msgid "Captcha does not match!" msgstr "Captcha stimmt nicht mit Text überein!" -#: RecaptchaPlugin.php:110 msgid "" "Uses Recaptcha service to add a " "captcha to the registration page." diff --git a/plugins/Recaptcha/locale/fr/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/fr/LC_MESSAGES/Recaptcha.po index 7976544b4f..291e1c776a 100644 --- a/plugins/Recaptcha/locale/fr/LC_MESSAGES/Recaptcha.po +++ b/plugins/Recaptcha/locale/fr/LC_MESSAGES/Recaptcha.po @@ -10,27 +10,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Recaptcha\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:49+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:36+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:18+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-recaptcha\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: RecaptchaPlugin.php:57 msgid "Captcha" msgstr "Vérificateur anti-robot Captcha" -#: RecaptchaPlugin.php:98 msgid "Captcha does not match!" msgstr "Le Captcha ne correspond pas !" -#: RecaptchaPlugin.php:110 msgid "" "Uses Recaptcha service to add a " "captcha to the registration page." diff --git a/plugins/Recaptcha/locale/fur/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/fur/LC_MESSAGES/Recaptcha.po index 273b509c28..772ffe3083 100644 --- a/plugins/Recaptcha/locale/fur/LC_MESSAGES/Recaptcha.po +++ b/plugins/Recaptcha/locale/fur/LC_MESSAGES/Recaptcha.po @@ -9,27 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Recaptcha\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:49+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:36+0000\n" "Language-Team: Friulian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:18+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fur\n" "X-Message-Group: #out-statusnet-plugin-recaptcha\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RecaptchaPlugin.php:57 msgid "Captcha" msgstr "Captcha" -#: RecaptchaPlugin.php:98 msgid "Captcha does not match!" msgstr "Il Captcha nol corispuint!" -#: RecaptchaPlugin.php:110 msgid "" "Uses Recaptcha service to add a " "captcha to the registration page." diff --git a/plugins/Recaptcha/locale/ia/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/ia/LC_MESSAGES/Recaptcha.po index 33334530cf..d112560251 100644 --- a/plugins/Recaptcha/locale/ia/LC_MESSAGES/Recaptcha.po +++ b/plugins/Recaptcha/locale/ia/LC_MESSAGES/Recaptcha.po @@ -9,27 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Recaptcha\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:49+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:36+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:18+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-recaptcha\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RecaptchaPlugin.php:57 msgid "Captcha" msgstr "Captcha" -#: RecaptchaPlugin.php:98 msgid "Captcha does not match!" msgstr "Captcha non corresponde!" -#: RecaptchaPlugin.php:110 msgid "" "Uses Recaptcha service to add a " "captcha to the registration page." diff --git a/plugins/Recaptcha/locale/mk/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/mk/LC_MESSAGES/Recaptcha.po index d641ab985f..09a0501960 100644 --- a/plugins/Recaptcha/locale/mk/LC_MESSAGES/Recaptcha.po +++ b/plugins/Recaptcha/locale/mk/LC_MESSAGES/Recaptcha.po @@ -9,27 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Recaptcha\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:50+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:36+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:18+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-recaptcha\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: RecaptchaPlugin.php:57 msgid "Captcha" msgstr "Captcha" -#: RecaptchaPlugin.php:98 msgid "Captcha does not match!" msgstr "Captcha не се совпаѓа!" -#: RecaptchaPlugin.php:110 msgid "" "Uses Recaptcha service to add a " "captcha to the registration page." diff --git a/plugins/Recaptcha/locale/nb/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/nb/LC_MESSAGES/Recaptcha.po index ae5b0716e1..3680ac656d 100644 --- a/plugins/Recaptcha/locale/nb/LC_MESSAGES/Recaptcha.po +++ b/plugins/Recaptcha/locale/nb/LC_MESSAGES/Recaptcha.po @@ -9,27 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Recaptcha\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:50+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:37+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:18+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-recaptcha\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RecaptchaPlugin.php:57 msgid "Captcha" msgstr "Captcha" -#: RecaptchaPlugin.php:98 msgid "Captcha does not match!" msgstr "Captcha stemmer ikke." -#: RecaptchaPlugin.php:110 msgid "" "Uses Recaptcha service to add a " "captcha to the registration page." diff --git a/plugins/Recaptcha/locale/nl/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/nl/LC_MESSAGES/Recaptcha.po index fe6ed4629e..da7ea9db57 100644 --- a/plugins/Recaptcha/locale/nl/LC_MESSAGES/Recaptcha.po +++ b/plugins/Recaptcha/locale/nl/LC_MESSAGES/Recaptcha.po @@ -9,27 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Recaptcha\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:50+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:36+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:18+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-recaptcha\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RecaptchaPlugin.php:57 msgid "Captcha" msgstr "Captcha" -#: RecaptchaPlugin.php:98 msgid "Captcha does not match!" msgstr "Captcha komt niet overeen!" -#: RecaptchaPlugin.php:110 msgid "" "Uses Recaptcha service to add a " "captcha to the registration page." diff --git a/plugins/Recaptcha/locale/pt/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/pt/LC_MESSAGES/Recaptcha.po index d47d24e1c8..f203f063f8 100644 --- a/plugins/Recaptcha/locale/pt/LC_MESSAGES/Recaptcha.po +++ b/plugins/Recaptcha/locale/pt/LC_MESSAGES/Recaptcha.po @@ -9,27 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Recaptcha\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:50+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:37+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:18+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-recaptcha\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RecaptchaPlugin.php:57 msgid "Captcha" msgstr "Imagem de verificação" -#: RecaptchaPlugin.php:98 msgid "Captcha does not match!" msgstr "A imagem de verificação não corresponde!" -#: RecaptchaPlugin.php:110 msgid "" "Uses Recaptcha service to add a " "captcha to the registration page." diff --git a/plugins/Recaptcha/locale/ru/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/ru/LC_MESSAGES/Recaptcha.po index e90689a5ce..a04c7cde7b 100644 --- a/plugins/Recaptcha/locale/ru/LC_MESSAGES/Recaptcha.po +++ b/plugins/Recaptcha/locale/ru/LC_MESSAGES/Recaptcha.po @@ -10,28 +10,25 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Recaptcha\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:50+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:37+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:18+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-recaptcha\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: RecaptchaPlugin.php:57 msgid "Captcha" msgstr "Капча" -#: RecaptchaPlugin.php:98 msgid "Captcha does not match!" msgstr "Код проверки не совпадает!" -#: RecaptchaPlugin.php:110 msgid "" "Uses Recaptcha service to add a " "captcha to the registration page." diff --git a/plugins/Recaptcha/locale/tl/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/tl/LC_MESSAGES/Recaptcha.po index d3dac3b2f2..28de2da4fc 100644 --- a/plugins/Recaptcha/locale/tl/LC_MESSAGES/Recaptcha.po +++ b/plugins/Recaptcha/locale/tl/LC_MESSAGES/Recaptcha.po @@ -9,27 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Recaptcha\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:50+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:37+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:18+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-recaptcha\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RecaptchaPlugin.php:57 msgid "Captcha" msgstr "Captcha" -#: RecaptchaPlugin.php:98 msgid "Captcha does not match!" msgstr "Hindi tugma ang Captcha!" -#: RecaptchaPlugin.php:110 msgid "" "Uses Recaptcha service to add a " "captcha to the registration page." diff --git a/plugins/Recaptcha/locale/uk/LC_MESSAGES/Recaptcha.po b/plugins/Recaptcha/locale/uk/LC_MESSAGES/Recaptcha.po index f1ff37a26b..39858658c1 100644 --- a/plugins/Recaptcha/locale/uk/LC_MESSAGES/Recaptcha.po +++ b/plugins/Recaptcha/locale/uk/LC_MESSAGES/Recaptcha.po @@ -9,28 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Recaptcha\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:50+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:37+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:18+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-recaptcha\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: RecaptchaPlugin.php:57 msgid "Captcha" msgstr "Captcha" -#: RecaptchaPlugin.php:98 msgid "Captcha does not match!" msgstr "Коди перевірки не збігаються!" -#: RecaptchaPlugin.php:110 msgid "" "Uses Recaptcha service to add a " "captcha to the registration page." diff --git a/plugins/RegisterThrottle/locale/RegisterThrottle.pot b/plugins/RegisterThrottle/locale/RegisterThrottle.pot index 3a34c4fef4..018f7f90d0 100644 --- a/plugins/RegisterThrottle/locale/RegisterThrottle.pot +++ b/plugins/RegisterThrottle/locale/RegisterThrottle.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/RegisterThrottle/locale/de/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/de/LC_MESSAGES/RegisterThrottle.po index 543dc825e5..bb1c99231a 100644 --- a/plugins/RegisterThrottle/locale/de/LC_MESSAGES/RegisterThrottle.po +++ b/plugins/RegisterThrottle/locale/de/LC_MESSAGES/RegisterThrottle.po @@ -9,31 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RegisterThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:37+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-22 19:32:40+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-registerthrottle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RegisterThrottlePlugin.php:134 msgid "Cannot find IP address." msgstr "Kann IP-Addresse nicht finden." -#: RegisterThrottlePlugin.php:149 msgid "Too many registrations. Take a break and try again later." msgstr "" "Zu viele Registrierungen. Mach eine Pause and versuche es später noch einmal." -#: RegisterThrottlePlugin.php:161 msgid "A banned user has registered from this address." msgstr "Ein gesperrter Benutzer hat sich von dieser Adresse registriert." -#: RegisterThrottlePlugin.php:220 msgid "Throttles excessive registration from a single IP address." msgstr "Drosselt exzessive Registrierungen einer einzelnen IP-Adresse." diff --git a/plugins/RegisterThrottle/locale/fr/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/fr/LC_MESSAGES/RegisterThrottle.po index a4883015ed..d683528cf5 100644 --- a/plugins/RegisterThrottle/locale/fr/LC_MESSAGES/RegisterThrottle.po +++ b/plugins/RegisterThrottle/locale/fr/LC_MESSAGES/RegisterThrottle.po @@ -10,32 +10,28 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RegisterThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:37+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-22 19:32:40+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-registerthrottle\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: RegisterThrottlePlugin.php:134 msgid "Cannot find IP address." msgstr "Impossible de trouver l’adresse IP." -#: RegisterThrottlePlugin.php:149 msgid "Too many registrations. Take a break and try again later." msgstr "" "Inscriptions trop nombreuses. Faites une pause et essayez à nouveau plus " "tard." -#: RegisterThrottlePlugin.php:161 msgid "A banned user has registered from this address." msgstr "Un utilisateur banni s’est inscrit depuis cette adresse." -#: RegisterThrottlePlugin.php:220 msgid "Throttles excessive registration from a single IP address." msgstr "Évite les inscriptions excessives depuis une même adresse IP." diff --git a/plugins/RegisterThrottle/locale/ia/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/ia/LC_MESSAGES/RegisterThrottle.po index 679ddfc7af..4d4563695d 100644 --- a/plugins/RegisterThrottle/locale/ia/LC_MESSAGES/RegisterThrottle.po +++ b/plugins/RegisterThrottle/locale/ia/LC_MESSAGES/RegisterThrottle.po @@ -9,30 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RegisterThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:37+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-22 19:32:40+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-registerthrottle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RegisterThrottlePlugin.php:134 msgid "Cannot find IP address." msgstr "Non pote trovar adresse IP." -#: RegisterThrottlePlugin.php:149 msgid "Too many registrations. Take a break and try again later." msgstr "Troppo de registrationes. Face un pausa e reproba plus tarde." -#: RegisterThrottlePlugin.php:161 msgid "A banned user has registered from this address." msgstr "Un usator bannite se ha registrate ab iste adresse." -#: RegisterThrottlePlugin.php:220 msgid "Throttles excessive registration from a single IP address." msgstr "Inhibi le creation de contos excessive ab un sol adresse IP." diff --git a/plugins/RegisterThrottle/locale/mk/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/mk/LC_MESSAGES/RegisterThrottle.po index f16f19eb57..2f358133a7 100644 --- a/plugins/RegisterThrottle/locale/mk/LC_MESSAGES/RegisterThrottle.po +++ b/plugins/RegisterThrottle/locale/mk/LC_MESSAGES/RegisterThrottle.po @@ -9,30 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RegisterThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:37+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-22 19:32:40+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-registerthrottle\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: RegisterThrottlePlugin.php:134 msgid "Cannot find IP address." msgstr "Не можам да ја пронајдам IP-адресата." -#: RegisterThrottlePlugin.php:149 msgid "Too many registrations. Take a break and try again later." msgstr "Премногу регистрации. Направете пауза и обидете се подоцна." -#: RegisterThrottlePlugin.php:161 msgid "A banned user has registered from this address." msgstr "Од оваа адреса се регистрирал забранет корисник." -#: RegisterThrottlePlugin.php:220 msgid "Throttles excessive registration from a single IP address." msgstr "Истиснува прекумерни регистрации од една IP-адреса." diff --git a/plugins/RegisterThrottle/locale/nl/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/nl/LC_MESSAGES/RegisterThrottle.po index 6511fa207b..4ba797310c 100644 --- a/plugins/RegisterThrottle/locale/nl/LC_MESSAGES/RegisterThrottle.po +++ b/plugins/RegisterThrottle/locale/nl/LC_MESSAGES/RegisterThrottle.po @@ -10,30 +10,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RegisterThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:37+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-22 19:32:40+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-registerthrottle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RegisterThrottlePlugin.php:134 msgid "Cannot find IP address." msgstr "Het IP-adres kon niet gevonden worden." -#: RegisterThrottlePlugin.php:149 msgid "Too many registrations. Take a break and try again later." msgstr "Te veel registraties. Wacht even en probeer het later opnieuw." -#: RegisterThrottlePlugin.php:161 msgid "A banned user has registered from this address." msgstr "Er is een geblokkeerde gebruiker die vanaf dit adres is geregistreerd." -#: RegisterThrottlePlugin.php:220 msgid "Throttles excessive registration from a single IP address." msgstr "Beperkt excessieve aantallen registraties vanaf één IP-adres." diff --git a/plugins/RegisterThrottle/locale/tl/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/tl/LC_MESSAGES/RegisterThrottle.po index cc6f8f7f26..5b9b0fc011 100644 --- a/plugins/RegisterThrottle/locale/tl/LC_MESSAGES/RegisterThrottle.po +++ b/plugins/RegisterThrottle/locale/tl/LC_MESSAGES/RegisterThrottle.po @@ -9,31 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RegisterThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:38+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-22 19:32:40+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-registerthrottle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RegisterThrottlePlugin.php:134 msgid "Cannot find IP address." msgstr "Hindi matagpuan ang tirahan ng IP." -#: RegisterThrottlePlugin.php:149 msgid "Too many registrations. Take a break and try again later." msgstr "Napakaraming mga pagpapatala. Magpahinga muna at subukan uli mamaya." -#: RegisterThrottlePlugin.php:161 msgid "A banned user has registered from this address." msgstr "" -#: RegisterThrottlePlugin.php:220 msgid "Throttles excessive registration from a single IP address." msgstr "" "Naglilipat-lipat ng labis na pagpapatala mula sa isang nag-iisang tirahan ng " diff --git a/plugins/RegisterThrottle/locale/uk/LC_MESSAGES/RegisterThrottle.po b/plugins/RegisterThrottle/locale/uk/LC_MESSAGES/RegisterThrottle.po index 0fcaa61ca2..9f5eac3b24 100644 --- a/plugins/RegisterThrottle/locale/uk/LC_MESSAGES/RegisterThrottle.po +++ b/plugins/RegisterThrottle/locale/uk/LC_MESSAGES/RegisterThrottle.po @@ -10,31 +10,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RegisterThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-01-29 21:45+0000\n" -"PO-Revision-Date: 2011-01-29 21:51:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:38+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-22 19:32:40+0000\n" -"X-Generator: MediaWiki 1.18alpha (r81195); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-registerthrottle\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: RegisterThrottlePlugin.php:134 msgid "Cannot find IP address." msgstr "Не вдається знайти IP-адресу." -#: RegisterThrottlePlugin.php:149 msgid "Too many registrations. Take a break and try again later." msgstr "Забагато реєстрацій. Випийте поки що кави і повертайтесь пізніше." -#: RegisterThrottlePlugin.php:161 msgid "A banned user has registered from this address." msgstr "Заблокований користувач був зареєстрований з цієї адреси." -#: RegisterThrottlePlugin.php:220 msgid "Throttles excessive registration from a single IP address." msgstr "Цей додаток обмежує кількість реєстрацій з певної IP-адреси." diff --git a/plugins/RequireValidatedEmail/locale/RequireValidatedEmail.pot b/plugins/RequireValidatedEmail/locale/RequireValidatedEmail.pot index 82f2070334..6b7b2cc616 100644 --- a/plugins/RequireValidatedEmail/locale/RequireValidatedEmail.pot +++ b/plugins/RequireValidatedEmail/locale/RequireValidatedEmail.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/RequireValidatedEmail/locale/de/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/de/LC_MESSAGES/RequireValidatedEmail.po index f92c965cc6..40825fb053 100644 --- a/plugins/RequireValidatedEmail/locale/de/LC_MESSAGES/RequireValidatedEmail.po +++ b/plugins/RequireValidatedEmail/locale/de/LC_MESSAGES/RequireValidatedEmail.po @@ -9,26 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RequireValidatedEmail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:38+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-25 23:45:22+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RequireValidatedEmailPlugin.php:121 msgid "You must validate your email address before posting." msgstr "Du musst deine E-Mail-Adresse validieren, bevor du beitragen kannst." -#: RequireValidatedEmailPlugin.php:141 msgid "You must provide an email address to register." msgstr "Du musst eine E-Mail-Adresse angeben, um dich zu registrieren." -#: RequireValidatedEmailPlugin.php:245 msgid "Disables posting without a validated email address." msgstr "Deaktiviert Posten ohne gültige E-Mail-Adresse." diff --git a/plugins/RequireValidatedEmail/locale/fr/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/fr/LC_MESSAGES/RequireValidatedEmail.po index 75c1d5bd6c..c1b7e7f39c 100644 --- a/plugins/RequireValidatedEmail/locale/fr/LC_MESSAGES/RequireValidatedEmail.po +++ b/plugins/RequireValidatedEmail/locale/fr/LC_MESSAGES/RequireValidatedEmail.po @@ -9,27 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RequireValidatedEmail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:38+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-25 23:45:22+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: RequireValidatedEmailPlugin.php:121 msgid "You must validate your email address before posting." msgstr "Vous devez valider votre adresse électronique avant de poster." -#: RequireValidatedEmailPlugin.php:141 msgid "You must provide an email address to register." msgstr "Vous devez fournir une adresse électronique avant de vous enregistrer." -#: RequireValidatedEmailPlugin.php:245 msgid "Disables posting without a validated email address." msgstr "" "Désactive le postage pour ceux qui n’ont pas d’adresse électronique valide." diff --git a/plugins/RequireValidatedEmail/locale/ia/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/ia/LC_MESSAGES/RequireValidatedEmail.po index a5f9e6aec9..0fa999f6f5 100644 --- a/plugins/RequireValidatedEmail/locale/ia/LC_MESSAGES/RequireValidatedEmail.po +++ b/plugins/RequireValidatedEmail/locale/ia/LC_MESSAGES/RequireValidatedEmail.po @@ -9,26 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RequireValidatedEmail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:38+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-25 23:45:22+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RequireValidatedEmailPlugin.php:121 msgid "You must validate your email address before posting." msgstr "Tu debe validar tu adresse de e-mail ante de publicar." -#: RequireValidatedEmailPlugin.php:141 msgid "You must provide an email address to register." msgstr "Tu debe fornir un adresse de e-mail pro poter crear un conto." -#: RequireValidatedEmailPlugin.php:245 msgid "Disables posting without a validated email address." msgstr "Disactiva le publication de messages sin adresse de e-mail validate." diff --git a/plugins/RequireValidatedEmail/locale/mk/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/mk/LC_MESSAGES/RequireValidatedEmail.po index b55a7520c3..23c76d7134 100644 --- a/plugins/RequireValidatedEmail/locale/mk/LC_MESSAGES/RequireValidatedEmail.po +++ b/plugins/RequireValidatedEmail/locale/mk/LC_MESSAGES/RequireValidatedEmail.po @@ -9,28 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RequireValidatedEmail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:38+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-25 23:45:22+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: RequireValidatedEmailPlugin.php:121 msgid "You must validate your email address before posting." msgstr "" "Пред да почнете да објавувате ќе мора да ја потврдите Вашата е-поштенска " "адреса." -#: RequireValidatedEmailPlugin.php:141 msgid "You must provide an email address to register." msgstr "За да се регистрирате, ќе мора да наведете е-поштенска адреса." -#: RequireValidatedEmailPlugin.php:245 msgid "Disables posting without a validated email address." msgstr "Оневозможува објавување без потврдена е-пошта." diff --git a/plugins/RequireValidatedEmail/locale/nl/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/nl/LC_MESSAGES/RequireValidatedEmail.po index 64c055389f..0f8a548a32 100644 --- a/plugins/RequireValidatedEmail/locale/nl/LC_MESSAGES/RequireValidatedEmail.po +++ b/plugins/RequireValidatedEmail/locale/nl/LC_MESSAGES/RequireValidatedEmail.po @@ -9,26 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RequireValidatedEmail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:38+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-25 23:45:22+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RequireValidatedEmailPlugin.php:121 msgid "You must validate your email address before posting." msgstr "U moet uw e-mailadres bevestigen voordat u berichten kunt plaatsen." -#: RequireValidatedEmailPlugin.php:141 msgid "You must provide an email address to register." msgstr "U moet een e-mailadres opgeven om te kunnen registreren." -#: RequireValidatedEmailPlugin.php:245 msgid "Disables posting without a validated email address." msgstr "Schakelt berichten plaatsen zonder gevalideerd e-mailadres uit." diff --git a/plugins/RequireValidatedEmail/locale/tl/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/tl/LC_MESSAGES/RequireValidatedEmail.po index 3639efe2bc..61186d419e 100644 --- a/plugins/RequireValidatedEmail/locale/tl/LC_MESSAGES/RequireValidatedEmail.po +++ b/plugins/RequireValidatedEmail/locale/tl/LC_MESSAGES/RequireValidatedEmail.po @@ -9,26 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RequireValidatedEmail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:38+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-25 23:45:22+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: RequireValidatedEmailPlugin.php:121 msgid "You must validate your email address before posting." msgstr "Kailangan patunayan mo ang iyong tirahan ng e-liham bago magpaskil." -#: RequireValidatedEmailPlugin.php:141 msgid "You must provide an email address to register." msgstr "Dapat kang magbigay ng isang tirahan ng e-liham upang makapagpatala." -#: RequireValidatedEmailPlugin.php:245 msgid "Disables posting without a validated email address." msgstr "" diff --git a/plugins/RequireValidatedEmail/locale/uk/LC_MESSAGES/RequireValidatedEmail.po b/plugins/RequireValidatedEmail/locale/uk/LC_MESSAGES/RequireValidatedEmail.po index bba5ef7932..4c90e89dd1 100644 --- a/plugins/RequireValidatedEmail/locale/uk/LC_MESSAGES/RequireValidatedEmail.po +++ b/plugins/RequireValidatedEmail/locale/uk/LC_MESSAGES/RequireValidatedEmail.po @@ -9,30 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - RequireValidatedEmail\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:38+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-25 23:45:22+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:42+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-requirevalidatedemail\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: RequireValidatedEmailPlugin.php:121 msgid "You must validate your email address before posting." msgstr "" "Ви повинні підтвердити свою адресу електронної пошти до того, як почнете " "надсилати дописи поштою." -#: RequireValidatedEmailPlugin.php:141 msgid "You must provide an email address to register." msgstr "Ви повинні зазначити свою адресу електронної пошти для реєстрації." -#: RequireValidatedEmailPlugin.php:245 msgid "Disables posting without a validated email address." msgstr "" "Забороняє надсилання дописів, якщо користувач не має підтвердженої " diff --git a/plugins/ReverseUsernameAuthentication/locale/ReverseUsernameAuthentication.pot b/plugins/ReverseUsernameAuthentication/locale/ReverseUsernameAuthentication.pot index b242fcbc72..0a8d18c958 100644 --- a/plugins/ReverseUsernameAuthentication/locale/ReverseUsernameAuthentication.pot +++ b/plugins/ReverseUsernameAuthentication/locale/ReverseUsernameAuthentication.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/ReverseUsernameAuthentication/locale/de/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/de/LC_MESSAGES/ReverseUsernameAuthentication.po index 42dfe1bc9f..1b742ebed2 100644 --- a/plugins/ReverseUsernameAuthentication/locale/de/LC_MESSAGES/ReverseUsernameAuthentication.po +++ b/plugins/ReverseUsernameAuthentication/locale/de/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:39+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:02+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ReverseUsernameAuthenticationPlugin.php:67 msgid "" "The Reverse Username Authentication plugin allows for StatusNet to handle " "authentication by checking if the provided password is the same as the " diff --git a/plugins/ReverseUsernameAuthentication/locale/fr/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/fr/LC_MESSAGES/ReverseUsernameAuthentication.po index b381cfaf01..f976902c39 100644 --- a/plugins/ReverseUsernameAuthentication/locale/fr/LC_MESSAGES/ReverseUsernameAuthentication.po +++ b/plugins/ReverseUsernameAuthentication/locale/fr/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:39+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:02+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: ReverseUsernameAuthenticationPlugin.php:67 msgid "" "The Reverse Username Authentication plugin allows for StatusNet to handle " "authentication by checking if the provided password is the same as the " diff --git a/plugins/ReverseUsernameAuthentication/locale/he/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/he/LC_MESSAGES/ReverseUsernameAuthentication.po index 070d21c078..873c68e816 100644 --- a/plugins/ReverseUsernameAuthentication/locale/he/LC_MESSAGES/ReverseUsernameAuthentication.po +++ b/plugins/ReverseUsernameAuthentication/locale/he/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:39+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:02+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ReverseUsernameAuthenticationPlugin.php:67 msgid "" "The Reverse Username Authentication plugin allows for StatusNet to handle " "authentication by checking if the provided password is the same as the " diff --git a/plugins/ReverseUsernameAuthentication/locale/ia/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/ia/LC_MESSAGES/ReverseUsernameAuthentication.po index 6dfde61a0e..ceca9269e7 100644 --- a/plugins/ReverseUsernameAuthentication/locale/ia/LC_MESSAGES/ReverseUsernameAuthentication.po +++ b/plugins/ReverseUsernameAuthentication/locale/ia/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:39+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:02+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ReverseUsernameAuthenticationPlugin.php:67 msgid "" "The Reverse Username Authentication plugin allows for StatusNet to handle " "authentication by checking if the provided password is the same as the " diff --git a/plugins/ReverseUsernameAuthentication/locale/id/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/id/LC_MESSAGES/ReverseUsernameAuthentication.po index de4ca247c3..aba664acd6 100644 --- a/plugins/ReverseUsernameAuthentication/locale/id/LC_MESSAGES/ReverseUsernameAuthentication.po +++ b/plugins/ReverseUsernameAuthentication/locale/id/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:39+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:02+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ReverseUsernameAuthenticationPlugin.php:67 msgid "" "The Reverse Username Authentication plugin allows for StatusNet to handle " "authentication by checking if the provided password is the same as the " diff --git a/plugins/ReverseUsernameAuthentication/locale/ja/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/ja/LC_MESSAGES/ReverseUsernameAuthentication.po index e1e9211d43..a1a77505a1 100644 --- a/plugins/ReverseUsernameAuthentication/locale/ja/LC_MESSAGES/ReverseUsernameAuthentication.po +++ b/plugins/ReverseUsernameAuthentication/locale/ja/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:39+0000\n" "Language-Team: Japanese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:02+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ReverseUsernameAuthenticationPlugin.php:67 msgid "" "The Reverse Username Authentication plugin allows for StatusNet to handle " "authentication by checking if the provided password is the same as the " diff --git a/plugins/ReverseUsernameAuthentication/locale/mk/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/mk/LC_MESSAGES/ReverseUsernameAuthentication.po index 36eda184e4..91206392ec 100644 --- a/plugins/ReverseUsernameAuthentication/locale/mk/LC_MESSAGES/ReverseUsernameAuthentication.po +++ b/plugins/ReverseUsernameAuthentication/locale/mk/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:39+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:02+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: ReverseUsernameAuthenticationPlugin.php:67 msgid "" "The Reverse Username Authentication plugin allows for StatusNet to handle " "authentication by checking if the provided password is the same as the " diff --git a/plugins/ReverseUsernameAuthentication/locale/nb/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/nb/LC_MESSAGES/ReverseUsernameAuthentication.po index a3918398ab..aa2dc12c6e 100644 --- a/plugins/ReverseUsernameAuthentication/locale/nb/LC_MESSAGES/ReverseUsernameAuthentication.po +++ b/plugins/ReverseUsernameAuthentication/locale/nb/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:39+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:02+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ReverseUsernameAuthenticationPlugin.php:67 msgid "" "The Reverse Username Authentication plugin allows for StatusNet to handle " "authentication by checking if the provided password is the same as the " diff --git a/plugins/ReverseUsernameAuthentication/locale/nl/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/nl/LC_MESSAGES/ReverseUsernameAuthentication.po index 4ff6e99151..6b028a08e8 100644 --- a/plugins/ReverseUsernameAuthentication/locale/nl/LC_MESSAGES/ReverseUsernameAuthentication.po +++ b/plugins/ReverseUsernameAuthentication/locale/nl/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:39+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:02+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ReverseUsernameAuthenticationPlugin.php:67 msgid "" "The Reverse Username Authentication plugin allows for StatusNet to handle " "authentication by checking if the provided password is the same as the " diff --git a/plugins/ReverseUsernameAuthentication/locale/ru/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/ru/LC_MESSAGES/ReverseUsernameAuthentication.po index ba1547fabd..076e30233f 100644 --- a/plugins/ReverseUsernameAuthentication/locale/ru/LC_MESSAGES/ReverseUsernameAuthentication.po +++ b/plugins/ReverseUsernameAuthentication/locale/ru/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:39+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:02+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: ReverseUsernameAuthenticationPlugin.php:67 msgid "" "The Reverse Username Authentication plugin allows for StatusNet to handle " "authentication by checking if the provided password is the same as the " diff --git a/plugins/ReverseUsernameAuthentication/locale/tl/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/tl/LC_MESSAGES/ReverseUsernameAuthentication.po index f24ce5355f..f2aa756d99 100644 --- a/plugins/ReverseUsernameAuthentication/locale/tl/LC_MESSAGES/ReverseUsernameAuthentication.po +++ b/plugins/ReverseUsernameAuthentication/locale/tl/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:39+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:02+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: ReverseUsernameAuthenticationPlugin.php:67 msgid "" "The Reverse Username Authentication plugin allows for StatusNet to handle " "authentication by checking if the provided password is the same as the " diff --git a/plugins/ReverseUsernameAuthentication/locale/uk/LC_MESSAGES/ReverseUsernameAuthentication.po b/plugins/ReverseUsernameAuthentication/locale/uk/LC_MESSAGES/ReverseUsernameAuthentication.po index baeb04e5c7..d97b4f3f28 100644 --- a/plugins/ReverseUsernameAuthentication/locale/uk/LC_MESSAGES/ReverseUsernameAuthentication.po +++ b/plugins/ReverseUsernameAuthentication/locale/uk/LC_MESSAGES/ReverseUsernameAuthentication.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ReverseUsernameAuthentication\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:51+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:39+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:02+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-reverseusernameauthentication\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: ReverseUsernameAuthenticationPlugin.php:67 msgid "" "The Reverse Username Authentication plugin allows for StatusNet to handle " "authentication by checking if the provided password is the same as the " diff --git a/plugins/SQLProfile/locale/SQLProfile.pot b/plugins/SQLProfile/locale/SQLProfile.pot index 1548a38ebd..6c94bb4d41 100644 --- a/plugins/SQLProfile/locale/SQLProfile.pot +++ b/plugins/SQLProfile/locale/SQLProfile.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/SQLProfile/locale/de/LC_MESSAGES/SQLProfile.po b/plugins/SQLProfile/locale/de/LC_MESSAGES/SQLProfile.po index 26bbe7c858..514f5c65b6 100644 --- a/plugins/SQLProfile/locale/de/LC_MESSAGES/SQLProfile.po +++ b/plugins/SQLProfile/locale/de/LC_MESSAGES/SQLProfile.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SQLProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:03+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:48+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-sqlprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SQLProfilePlugin.php:41 msgid "Debug tool to watch for poorly indexed DB queries." msgstr "Debug-Werkzeug zur Überwachung von schlecht indexierten DB-Abfragen." diff --git a/plugins/SQLProfile/locale/fr/LC_MESSAGES/SQLProfile.po b/plugins/SQLProfile/locale/fr/LC_MESSAGES/SQLProfile.po index b5d35fc1b3..18d723dc62 100644 --- a/plugins/SQLProfile/locale/fr/LC_MESSAGES/SQLProfile.po +++ b/plugins/SQLProfile/locale/fr/LC_MESSAGES/SQLProfile.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SQLProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:03+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:48+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-sqlprofile\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: SQLProfilePlugin.php:41 msgid "Debug tool to watch for poorly indexed DB queries." msgstr "" "Outil de débogage pour surveiller les requêtes de la base de données mal " diff --git a/plugins/SQLProfile/locale/ia/LC_MESSAGES/SQLProfile.po b/plugins/SQLProfile/locale/ia/LC_MESSAGES/SQLProfile.po index 80b96c5998..efcb0bcc28 100644 --- a/plugins/SQLProfile/locale/ia/LC_MESSAGES/SQLProfile.po +++ b/plugins/SQLProfile/locale/ia/LC_MESSAGES/SQLProfile.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SQLProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:03+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:48+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-sqlprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SQLProfilePlugin.php:41 msgid "Debug tool to watch for poorly indexed DB queries." msgstr "Instrumento pro deteger le consultas mal indexate del base de datos." diff --git a/plugins/SQLProfile/locale/mk/LC_MESSAGES/SQLProfile.po b/plugins/SQLProfile/locale/mk/LC_MESSAGES/SQLProfile.po index dc514d16cc..9787c9b545 100644 --- a/plugins/SQLProfile/locale/mk/LC_MESSAGES/SQLProfile.po +++ b/plugins/SQLProfile/locale/mk/LC_MESSAGES/SQLProfile.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SQLProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:03+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:48+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-sqlprofile\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: SQLProfilePlugin.php:41 msgid "Debug tool to watch for poorly indexed DB queries." msgstr "" "Алатка за поправање грешки што пронаоѓа лошо индексирани барања до базата на " diff --git a/plugins/SQLProfile/locale/nl/LC_MESSAGES/SQLProfile.po b/plugins/SQLProfile/locale/nl/LC_MESSAGES/SQLProfile.po index 57892bd43a..fae22afc55 100644 --- a/plugins/SQLProfile/locale/nl/LC_MESSAGES/SQLProfile.po +++ b/plugins/SQLProfile/locale/nl/LC_MESSAGES/SQLProfile.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SQLProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:03+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:49+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-sqlprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SQLProfilePlugin.php:41 msgid "Debug tool to watch for poorly indexed DB queries." msgstr "Debughulpmiddel om slecht geïndexeerde databasequery's te ontdekken." diff --git a/plugins/SQLProfile/locale/pt/LC_MESSAGES/SQLProfile.po b/plugins/SQLProfile/locale/pt/LC_MESSAGES/SQLProfile.po index 775a2fb8ab..6727fd6d86 100644 --- a/plugins/SQLProfile/locale/pt/LC_MESSAGES/SQLProfile.po +++ b/plugins/SQLProfile/locale/pt/LC_MESSAGES/SQLProfile.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SQLProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:03+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:49+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-sqlprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SQLProfilePlugin.php:41 msgid "Debug tool to watch for poorly indexed DB queries." msgstr "Ferramenta de depuração para vigiar consultas à BD mal indexadas." diff --git a/plugins/SQLProfile/locale/ru/LC_MESSAGES/SQLProfile.po b/plugins/SQLProfile/locale/ru/LC_MESSAGES/SQLProfile.po index 443a30a27a..a5d3b24210 100644 --- a/plugins/SQLProfile/locale/ru/LC_MESSAGES/SQLProfile.po +++ b/plugins/SQLProfile/locale/ru/LC_MESSAGES/SQLProfile.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SQLProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:04+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:49+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-sqlprofile\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: SQLProfilePlugin.php:41 msgid "Debug tool to watch for poorly indexed DB queries." msgstr "" "Отладочный инструмент для наблюдения плохо индексированных запросов к БД." diff --git a/plugins/SQLProfile/locale/uk/LC_MESSAGES/SQLProfile.po b/plugins/SQLProfile/locale/uk/LC_MESSAGES/SQLProfile.po index 24c004b9b2..f34c9e95c5 100644 --- a/plugins/SQLProfile/locale/uk/LC_MESSAGES/SQLProfile.po +++ b/plugins/SQLProfile/locale/uk/LC_MESSAGES/SQLProfile.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SQLProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:04+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:49+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:43+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-sqlprofile\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: SQLProfilePlugin.php:41 msgid "Debug tool to watch for poorly indexed DB queries." msgstr "" "Інструмент правки для спостереження за погано індексованими запитами до бази " diff --git a/plugins/Sample/locale/Sample.pot b/plugins/Sample/locale/Sample.pot index d1a4d06887..b503d5f181 100644 --- a/plugins/Sample/locale/Sample.pot +++ b/plugins/Sample/locale/Sample.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,32 +17,10 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#. TRANS: Exception thrown when the user greeting count could not be saved in the database. -#. TRANS: %d is a user ID (number). -#: User_greeting_count.php:164 -#, php-format -msgid "Could not save new greeting count for %d." -msgstr "" - -#. TRANS: Exception thrown when the user greeting count could not be saved in the database. -#. TRANS: %d is a user ID (number). -#: User_greeting_count.php:177 -#, php-format -msgid "Could not increment greeting count for %d." -msgstr "" - -#: SamplePlugin.php:270 hello.php:111 +#: hello.php:111 SamplePlugin.php:270 msgid "Hello" msgstr "" -#: SamplePlugin.php:270 -msgid "A warm greeting" -msgstr "" - -#: SamplePlugin.php:281 -msgid "A sample plugin to show basics of development for new hackers." -msgstr "" - #: hello.php:113 #, php-format msgid "Hello, %s!" @@ -63,3 +41,25 @@ msgid "I have greeted you %d time." msgid_plural "I have greeted you %d times." msgstr[0] "" msgstr[1] "" + +#: SamplePlugin.php:270 +msgid "A warm greeting" +msgstr "" + +#: SamplePlugin.php:281 +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:164 +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#: User_greeting_count.php:177 +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "" diff --git a/plugins/Sample/locale/br/LC_MESSAGES/Sample.po b/plugins/Sample/locale/br/LC_MESSAGES/Sample.po index 61b030bfd5..35c42f6a72 100644 --- a/plugins/Sample/locale/br/LC_MESSAGES/Sample.po +++ b/plugins/Sample/locale/br/LC_MESSAGES/Sample.po @@ -9,63 +9,54 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sample\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:41+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:23+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-sample\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +msgid "Hello" +msgstr "Demat" + +#, php-format +msgid "Hello, %s!" +msgstr "Demat, %s !" + +msgid "Hello, stranger!" +msgstr "Demat, estrañjour!" + +#, php-format +msgid "Hello, %s" +msgstr "Demat, %s" + +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "ur" +msgstr[1] "%d" + +msgid "A warm greeting" +msgstr "Un degemer tomm" + +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" +"Ur skouer a lugant evit diskouez an diazezoù diorren evit ar c'hoderien " +"nevez." + #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:164 #, php-format msgid "Could not save new greeting count for %d." msgstr "Dibosupl eo enrollañ ar gont degemer nevez evit an implijer %d." #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:177 #, php-format msgid "Could not increment greeting count for %d." msgstr "Dibosupl eo inkremantañ ar gont degemer nevez evit an implijer %d." - -#: SamplePlugin.php:270 hello.php:111 -msgid "Hello" -msgstr "Demat" - -#: SamplePlugin.php:270 -msgid "A warm greeting" -msgstr "Un degemer tomm" - -#: SamplePlugin.php:281 -msgid "A sample plugin to show basics of development for new hackers." -msgstr "" -"Ur skouer a lugant evit diskouez an diazezoù diorren evit ar c'hoderien " -"nevez." - -#: hello.php:113 -#, php-format -msgid "Hello, %s!" -msgstr "Demat, %s !" - -#: hello.php:133 -msgid "Hello, stranger!" -msgstr "Demat, estrañjour!" - -#: hello.php:136 -#, php-format -msgid "Hello, %s" -msgstr "Demat, %s" - -#: hello.php:138 -#, php-format -msgid "I have greeted you %d time." -msgid_plural "I have greeted you %d times." -msgstr[0] "ur" -msgstr[1] "%d" diff --git a/plugins/Sample/locale/de/LC_MESSAGES/Sample.po b/plugins/Sample/locale/de/LC_MESSAGES/Sample.po index fc4e7612c6..8f4771f975 100644 --- a/plugins/Sample/locale/de/LC_MESSAGES/Sample.po +++ b/plugins/Sample/locale/de/LC_MESSAGES/Sample.po @@ -9,61 +9,52 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sample\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:41+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:23+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-sample\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Hello" +msgstr "Hallo" + +#, php-format +msgid "Hello, %s!" +msgstr "Hallo %s!" + +msgid "Hello, stranger!" +msgstr "Hallo Fremder!" + +#, php-format +msgid "Hello, %s" +msgstr "Hallo %s" + +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "Ich habe dich einmal begrüßt. " +msgstr[1] "Ich habe dich %d-mal begrüßt. " + +msgid "A warm greeting" +msgstr "Ein herzlicher Gruß" + +msgid "A sample plugin to show basics of development for new hackers." +msgstr "Ein Beispiel-Plugin, um die Entwicklungsbasis neuen Hackern zu zeigen." + #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:164 #, php-format msgid "Could not save new greeting count for %d." msgstr "Konnte neuen Grüßungszähler von %d nicht speichern." #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:177 #, php-format msgid "Could not increment greeting count for %d." msgstr "Konnte Grüßungszähler von %d nicht erhöhen." - -#: SamplePlugin.php:270 hello.php:111 -msgid "Hello" -msgstr "Hallo" - -#: SamplePlugin.php:270 -msgid "A warm greeting" -msgstr "Ein herzlicher Gruß" - -#: SamplePlugin.php:281 -msgid "A sample plugin to show basics of development for new hackers." -msgstr "Ein Beispiel-Plugin, um die Entwicklungsbasis neuen Hackern zu zeigen." - -#: hello.php:113 -#, php-format -msgid "Hello, %s!" -msgstr "Hallo %s!" - -#: hello.php:133 -msgid "Hello, stranger!" -msgstr "Hallo Fremder!" - -#: hello.php:136 -#, php-format -msgid "Hello, %s" -msgstr "Hallo %s" - -#: hello.php:138 -#, php-format -msgid "I have greeted you %d time." -msgid_plural "I have greeted you %d times." -msgstr[0] "Ich habe dich einmal begrüßt. " -msgstr[1] "Ich habe dich %d-mal begrüßt. " diff --git a/plugins/Sample/locale/fr/LC_MESSAGES/Sample.po b/plugins/Sample/locale/fr/LC_MESSAGES/Sample.po index 174910f779..db3951165c 100644 --- a/plugins/Sample/locale/fr/LC_MESSAGES/Sample.po +++ b/plugins/Sample/locale/fr/LC_MESSAGES/Sample.po @@ -9,21 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sample\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:41+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:23+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-sample\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +msgid "Hello" +msgstr "Bonjour" + +#, php-format +msgid "Hello, %s!" +msgstr "Bonjour, %s !" + +msgid "Hello, stranger!" +msgstr "Bonjour, étranger !" + +#, php-format +msgid "Hello, %s" +msgstr "Bonjour, %s" + +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "une" +msgstr[1] "%d" + +msgid "A warm greeting" +msgstr "Un accueil chaleureux" + +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" +"Un exemple de greffon pour montrer les bases de développement pour les " +"nouveaux codeurs." + #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:164 #, php-format msgid "Could not save new greeting count for %d." msgstr "" @@ -31,42 +58,6 @@ msgstr "" #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:177 #, php-format msgid "Could not increment greeting count for %d." msgstr "Impossible d’incrémenter le compte de vœux pour l’utilisateur %d." - -#: SamplePlugin.php:270 hello.php:111 -msgid "Hello" -msgstr "Bonjour" - -#: SamplePlugin.php:270 -msgid "A warm greeting" -msgstr "Un accueil chaleureux" - -#: SamplePlugin.php:281 -msgid "A sample plugin to show basics of development for new hackers." -msgstr "" -"Un exemple de greffon pour montrer les bases de développement pour les " -"nouveaux codeurs." - -#: hello.php:113 -#, php-format -msgid "Hello, %s!" -msgstr "Bonjour, %s !" - -#: hello.php:133 -msgid "Hello, stranger!" -msgstr "Bonjour, étranger !" - -#: hello.php:136 -#, php-format -msgid "Hello, %s" -msgstr "Bonjour, %s" - -#: hello.php:138 -#, php-format -msgid "I have greeted you %d time." -msgid_plural "I have greeted you %d times." -msgstr[0] "une" -msgstr[1] "%d" diff --git a/plugins/Sample/locale/ia/LC_MESSAGES/Sample.po b/plugins/Sample/locale/ia/LC_MESSAGES/Sample.po index ed716a4122..e81d8a8b84 100644 --- a/plugins/Sample/locale/ia/LC_MESSAGES/Sample.po +++ b/plugins/Sample/locale/ia/LC_MESSAGES/Sample.po @@ -9,63 +9,54 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sample\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:41+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:23+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-sample\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Hello" +msgstr "Salute" + +#, php-format +msgid "Hello, %s!" +msgstr "Salute %s!" + +msgid "Hello, stranger!" +msgstr "Salute estraniero!" + +#, php-format +msgid "Hello, %s" +msgstr "Salute %s" + +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "Io te ha salutate %d vice." +msgstr[1] "Io te ha salutate %d vices." + +msgid "A warm greeting" +msgstr "Un calide salutation" + +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" +"Un plug-in de exemplo pro demonstrar le principios de disveloppamento pro " +"nove programmatores." + #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:164 #, php-format msgid "Could not save new greeting count for %d." msgstr "Non poteva salveguardar le numero de nove salutationes pro %d." #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:177 #, php-format msgid "Could not increment greeting count for %d." msgstr "Non poteva incrementar le numero de salutationes pro %d." - -#: SamplePlugin.php:270 hello.php:111 -msgid "Hello" -msgstr "Salute" - -#: SamplePlugin.php:270 -msgid "A warm greeting" -msgstr "Un calide salutation" - -#: SamplePlugin.php:281 -msgid "A sample plugin to show basics of development for new hackers." -msgstr "" -"Un plug-in de exemplo pro demonstrar le principios de disveloppamento pro " -"nove programmatores." - -#: hello.php:113 -#, php-format -msgid "Hello, %s!" -msgstr "Salute %s!" - -#: hello.php:133 -msgid "Hello, stranger!" -msgstr "Salute estraniero!" - -#: hello.php:136 -#, php-format -msgid "Hello, %s" -msgstr "Salute %s" - -#: hello.php:138 -#, php-format -msgid "I have greeted you %d time." -msgid_plural "I have greeted you %d times." -msgstr[0] "Io te ha salutate %d vice." -msgstr[1] "Io te ha salutate %d vices." diff --git a/plugins/Sample/locale/lb/LC_MESSAGES/Sample.po b/plugins/Sample/locale/lb/LC_MESSAGES/Sample.po index 8fe949a127..fcbc0f10f0 100644 --- a/plugins/Sample/locale/lb/LC_MESSAGES/Sample.po +++ b/plugins/Sample/locale/lb/LC_MESSAGES/Sample.po @@ -9,61 +9,52 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sample\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:41+0000\n" "Language-Team: Luxembourgish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:23+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: lb\n" "X-Message-Group: #out-statusnet-plugin-sample\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Hello" +msgstr "Salut" + +#, php-format +msgid "Hello, %s!" +msgstr "Salut %s!" + +msgid "Hello, stranger!" +msgstr "" + +#, php-format +msgid "Hello, %s" +msgstr "Salut, %s" + +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "" +msgstr[1] "" + +msgid "A warm greeting" +msgstr "E schéine Bonjour" + +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" + #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:164 #, php-format msgid "Could not save new greeting count for %d." msgstr "" #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:177 #, php-format msgid "Could not increment greeting count for %d." msgstr "" - -#: SamplePlugin.php:270 hello.php:111 -msgid "Hello" -msgstr "Salut" - -#: SamplePlugin.php:270 -msgid "A warm greeting" -msgstr "E schéine Bonjour" - -#: SamplePlugin.php:281 -msgid "A sample plugin to show basics of development for new hackers." -msgstr "" - -#: hello.php:113 -#, php-format -msgid "Hello, %s!" -msgstr "Salut %s!" - -#: hello.php:133 -msgid "Hello, stranger!" -msgstr "" - -#: hello.php:136 -#, php-format -msgid "Hello, %s" -msgstr "Salut, %s" - -#: hello.php:138 -#, php-format -msgid "I have greeted you %d time." -msgid_plural "I have greeted you %d times." -msgstr[0] "" -msgstr[1] "" diff --git a/plugins/Sample/locale/mk/LC_MESSAGES/Sample.po b/plugins/Sample/locale/mk/LC_MESSAGES/Sample.po index 4d43e23db1..5304113054 100644 --- a/plugins/Sample/locale/mk/LC_MESSAGES/Sample.po +++ b/plugins/Sample/locale/mk/LC_MESSAGES/Sample.po @@ -9,62 +9,53 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sample\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:41+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:23+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-sample\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" +msgid "Hello" +msgstr "Здраво" + +#, php-format +msgid "Hello, %s!" +msgstr "Здраво, %s!" + +msgid "Hello, stranger!" +msgstr "Здрво, незнајнику!" + +#, php-format +msgid "Hello, %s" +msgstr "Здраво, %s" + +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "Ве поздравив еднаш." +msgstr[1] "Ве поздравив %d пати." + +msgid "A warm greeting" +msgstr "Срдечен поздрав" + +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" +"Приклучок-пример за основите на развојното програмирање за нови хакери." + #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:164 #, php-format msgid "Could not save new greeting count for %d." msgstr "Не можев да го зачувам бројот на поздрави за %d." #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:177 #, php-format msgid "Could not increment greeting count for %d." msgstr "Не можев да го дополнам бројот на поздрави за %d." - -#: SamplePlugin.php:270 hello.php:111 -msgid "Hello" -msgstr "Здраво" - -#: SamplePlugin.php:270 -msgid "A warm greeting" -msgstr "Срдечен поздрав" - -#: SamplePlugin.php:281 -msgid "A sample plugin to show basics of development for new hackers." -msgstr "" -"Приклучок-пример за основите на развојното програмирање за нови хакери." - -#: hello.php:113 -#, php-format -msgid "Hello, %s!" -msgstr "Здраво, %s!" - -#: hello.php:133 -msgid "Hello, stranger!" -msgstr "Здрво, незнајнику!" - -#: hello.php:136 -#, php-format -msgid "Hello, %s" -msgstr "Здраво, %s" - -#: hello.php:138 -#, php-format -msgid "I have greeted you %d time." -msgid_plural "I have greeted you %d times." -msgstr[0] "Ве поздравив еднаш." -msgstr[1] "Ве поздравив %d пати." diff --git a/plugins/Sample/locale/nl/LC_MESSAGES/Sample.po b/plugins/Sample/locale/nl/LC_MESSAGES/Sample.po index d0da1a36a5..e1b6c35095 100644 --- a/plugins/Sample/locale/nl/LC_MESSAGES/Sample.po +++ b/plugins/Sample/locale/nl/LC_MESSAGES/Sample.po @@ -9,62 +9,53 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sample\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:41+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:23+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-sample\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Hello" +msgstr "Hallo" + +#, php-format +msgid "Hello, %s!" +msgstr "Hallo, %s!" + +msgid "Hello, stranger!" +msgstr "Hallo vreemdeling!" + +#, php-format +msgid "Hello, %s" +msgstr "Hallo, %s" + +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "Ik heb u voor de eerste keer gegroet." +msgstr[1] "Ik heb u %d keer gegroet." + +msgid "A warm greeting" +msgstr "Een warme begroeting" + +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" +"Een voorbeeldplug-in als basis voor ontwikkelingen door nieuwe hackers." + #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:164 #, php-format msgid "Could not save new greeting count for %d." msgstr "Het was niet mogelijk het aantal begroetingen op te slaan voor %d." #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:177 #, php-format msgid "Could not increment greeting count for %d." msgstr "Het was niet mogelijk het aantal begroetingen op te hogen voor %d." - -#: SamplePlugin.php:270 hello.php:111 -msgid "Hello" -msgstr "Hallo" - -#: SamplePlugin.php:270 -msgid "A warm greeting" -msgstr "Een warme begroeting" - -#: SamplePlugin.php:281 -msgid "A sample plugin to show basics of development for new hackers." -msgstr "" -"Een voorbeeldplug-in als basis voor ontwikkelingen door nieuwe hackers." - -#: hello.php:113 -#, php-format -msgid "Hello, %s!" -msgstr "Hallo, %s!" - -#: hello.php:133 -msgid "Hello, stranger!" -msgstr "Hallo vreemdeling!" - -#: hello.php:136 -#, php-format -msgid "Hello, %s" -msgstr "Hallo, %s" - -#: hello.php:138 -#, php-format -msgid "I have greeted you %d time." -msgid_plural "I have greeted you %d times." -msgstr[0] "Ik heb u voor de eerste keer gegroet." -msgstr[1] "Ik heb u %d keer gegroet." diff --git a/plugins/Sample/locale/ru/LC_MESSAGES/Sample.po b/plugins/Sample/locale/ru/LC_MESSAGES/Sample.po index cecf620f0c..2ea28fc5dd 100644 --- a/plugins/Sample/locale/ru/LC_MESSAGES/Sample.po +++ b/plugins/Sample/locale/ru/LC_MESSAGES/Sample.po @@ -10,63 +10,54 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sample\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:41+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:23+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-sample\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#. TRANS: Exception thrown when the user greeting count could not be saved in the database. -#. TRANS: %d is a user ID (number). -#: User_greeting_count.php:164 -#, php-format -msgid "Could not save new greeting count for %d." -msgstr "Не удалось сохранить новое приветствие для %d." - -#. TRANS: Exception thrown when the user greeting count could not be saved in the database. -#. TRANS: %d is a user ID (number). -#: User_greeting_count.php:177 -#, php-format -msgid "Could not increment greeting count for %d." -msgstr "" - -#: SamplePlugin.php:270 hello.php:111 msgid "Hello" msgstr "Привет" -#: SamplePlugin.php:270 -msgid "A warm greeting" -msgstr "" - -#: SamplePlugin.php:281 -msgid "A sample plugin to show basics of development for new hackers." -msgstr "" - -#: hello.php:113 #, php-format msgid "Hello, %s!" msgstr "Здравствуйте, %s!" -#: hello.php:133 msgid "Hello, stranger!" msgstr "Привет, незнакомец!" -#: hello.php:136 #, php-format msgid "Hello, %s" msgstr "Здравствуйте,%s" -#: hello.php:138 #, php-format msgid "I have greeted you %d time." msgid_plural "I have greeted you %d times." msgstr[0] "Я вас попривестствовал %d раз." msgstr[1] "Я вас поприветствовал %d раза." msgstr[2] "Я вас попривестствовал %d раз." + +msgid "A warm greeting" +msgstr "" + +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "Не удалось сохранить новое приветствие для %d." + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "" diff --git a/plugins/Sample/locale/tl/LC_MESSAGES/Sample.po b/plugins/Sample/locale/tl/LC_MESSAGES/Sample.po index 5bb224ac76..19f190b949 100644 --- a/plugins/Sample/locale/tl/LC_MESSAGES/Sample.po +++ b/plugins/Sample/locale/tl/LC_MESSAGES/Sample.po @@ -9,63 +9,54 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sample\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:41+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:23+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-sample\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +msgid "Hello" +msgstr "Kumusta" + +#, php-format +msgid "Hello, %s!" +msgstr "Kumusta, %s!" + +msgid "Hello, stranger!" +msgstr "Kumusta, dayuhan!" + +#, php-format +msgid "Hello, %s" +msgstr "Kumusta, %s" + +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "Binati kita ng %d ulit." +msgstr[1] "Binati kita ng %d mga ulit." + +msgid "A warm greeting" +msgstr "Isang mainit-init na pagbati" + +msgid "A sample plugin to show basics of development for new hackers." +msgstr "" +"Isang halimbawang pampasak upang ipakita ang mga saligan ng kaunlaran para " +"sa bagong mga mangunguha." + #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:164 #, php-format msgid "Could not save new greeting count for %d." msgstr "Hindi masagip ang bagong bilang ng pagbati para sa %d." #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:177 #, php-format msgid "Could not increment greeting count for %d." msgstr "Hindi masudlungan ang bilang ng pagbati para sa %d." - -#: SamplePlugin.php:270 hello.php:111 -msgid "Hello" -msgstr "Kumusta" - -#: SamplePlugin.php:270 -msgid "A warm greeting" -msgstr "Isang mainit-init na pagbati" - -#: SamplePlugin.php:281 -msgid "A sample plugin to show basics of development for new hackers." -msgstr "" -"Isang halimbawang pampasak upang ipakita ang mga saligan ng kaunlaran para " -"sa bagong mga mangunguha." - -#: hello.php:113 -#, php-format -msgid "Hello, %s!" -msgstr "Kumusta, %s!" - -#: hello.php:133 -msgid "Hello, stranger!" -msgstr "Kumusta, dayuhan!" - -#: hello.php:136 -#, php-format -msgid "Hello, %s" -msgstr "Kumusta, %s" - -#: hello.php:138 -#, php-format -msgid "I have greeted you %d time." -msgid_plural "I have greeted you %d times." -msgstr[0] "Binati kita ng %d ulit." -msgstr[1] "Binati kita ng %d mga ulit." diff --git a/plugins/Sample/locale/uk/LC_MESSAGES/Sample.po b/plugins/Sample/locale/uk/LC_MESSAGES/Sample.po index a1209c8b62..8ea9f98cff 100644 --- a/plugins/Sample/locale/uk/LC_MESSAGES/Sample.po +++ b/plugins/Sample/locale/uk/LC_MESSAGES/Sample.po @@ -9,63 +9,54 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sample\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:41+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:23+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-sample\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#. TRANS: Exception thrown when the user greeting count could not be saved in the database. -#. TRANS: %d is a user ID (number). -#: User_greeting_count.php:164 -#, php-format -msgid "Could not save new greeting count for %d." -msgstr "Не вдалося зберегти новий лічильник привітань для %d." - -#. TRANS: Exception thrown when the user greeting count could not be saved in the database. -#. TRANS: %d is a user ID (number). -#: User_greeting_count.php:177 -#, php-format -msgid "Could not increment greeting count for %d." -msgstr "Не вдалося перерахувати лічильник привітань для %d." - -#: SamplePlugin.php:270 hello.php:111 msgid "Hello" msgstr "Привіт" -#: SamplePlugin.php:270 -msgid "A warm greeting" -msgstr "Щирі вітання" - -#: SamplePlugin.php:281 -msgid "A sample plugin to show basics of development for new hackers." -msgstr "Приклад додатку для демонстрації основ розробки новим гакерам." - -#: hello.php:113 #, php-format msgid "Hello, %s!" msgstr "Привіт, %s!" -#: hello.php:133 msgid "Hello, stranger!" msgstr "Привіт, чужинцю!" -#: hello.php:136 #, php-format msgid "Hello, %s" msgstr "Привіт, %s" -#: hello.php:138 #, php-format msgid "I have greeted you %d time." msgid_plural "I have greeted you %d times." msgstr[0] "Я привітав вас %d раз." msgstr[1] "Я привітав вас %d разів." msgstr[2] "Я привітав вас %d разів." + +msgid "A warm greeting" +msgstr "Щирі вітання" + +msgid "A sample plugin to show basics of development for new hackers." +msgstr "Приклад додатку для демонстрації основ розробки новим гакерам." + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#, php-format +msgid "Could not save new greeting count for %d." +msgstr "Не вдалося зберегти новий лічильник привітань для %d." + +#. TRANS: Exception thrown when the user greeting count could not be saved in the database. +#. TRANS: %d is a user ID (number). +#, php-format +msgid "Could not increment greeting count for %d." +msgstr "Не вдалося перерахувати лічильник привітань для %d." diff --git a/plugins/Sample/locale/zh_CN/LC_MESSAGES/Sample.po b/plugins/Sample/locale/zh_CN/LC_MESSAGES/Sample.po index a50a8d8fb1..1d02a7d7c1 100644 --- a/plugins/Sample/locale/zh_CN/LC_MESSAGES/Sample.po +++ b/plugins/Sample/locale/zh_CN/LC_MESSAGES/Sample.po @@ -9,61 +9,52 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sample\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:53+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:41+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:23+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:45+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-sample\n" "Plural-Forms: nplurals=1; plural=0;\n" +msgid "Hello" +msgstr "你好" + +#, php-format +msgid "Hello, %s!" +msgstr "你好,%s!" + +msgid "Hello, stranger!" +msgstr "你好,陌生人!" + +#, php-format +msgid "Hello, %s" +msgstr "你好,%s" + +#, php-format +msgid "I have greeted you %d time." +msgid_plural "I have greeted you %d times." +msgstr[0] "" + +msgid "A warm greeting" +msgstr "一个热情的问候" + +msgid "A sample plugin to show basics of development for new hackers." +msgstr "一个为新的 hackers 显示基础开发的示例插件。" + #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:164 #, php-format msgid "Could not save new greeting count for %d." msgstr "无法保存%d新的问候计数。" #. TRANS: Exception thrown when the user greeting count could not be saved in the database. #. TRANS: %d is a user ID (number). -#: User_greeting_count.php:177 #, php-format msgid "Could not increment greeting count for %d." msgstr "无法增加%d的问候计数。" - -#: SamplePlugin.php:270 hello.php:111 -msgid "Hello" -msgstr "你好" - -#: SamplePlugin.php:270 -msgid "A warm greeting" -msgstr "一个热情的问候" - -#: SamplePlugin.php:281 -msgid "A sample plugin to show basics of development for new hackers." -msgstr "一个为新的 hackers 显示基础开发的示例插件。" - -#: hello.php:113 -#, php-format -msgid "Hello, %s!" -msgstr "你好,%s!" - -#: hello.php:133 -msgid "Hello, stranger!" -msgstr "你好,陌生人!" - -#: hello.php:136 -#, php-format -msgid "Hello, %s" -msgstr "你好,%s" - -#: hello.php:138 -#, php-format -msgid "I have greeted you %d time." -msgid_plural "I have greeted you %d times." -msgstr[0] "" diff --git a/plugins/SearchSub/SearchSub.php b/plugins/SearchSub/SearchSub.php new file mode 100644 index 0000000000..cbf64d39cc --- /dev/null +++ b/plugins/SearchSub/SearchSub.php @@ -0,0 +1,140 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2011, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * For storing the search subscriptions + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see DB_DataObject + */ + +class SearchSub extends Managed_DataObject +{ + public $__table = 'searchsub'; // table name + public $search; // text + public $profile_id; // int -> profile.id + public $created; // datetime + + /** + * Get an instance by key + * + * This is a utility method to get a single instance with a given key value. + * + * @param string $k Key to use to lookup (usually 'user_id' for this class) + * @param mixed $v Value to lookup + * + * @return SearchSub object found, or null for no hits + * + */ + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('SearchSub', $k, $v); + } + + /** + * Get an instance by compound key + * + * This is a utility method to get a single instance with a given set of + * key-value pairs. Usually used for the primary key for a compound key; thus + * the name. + * + * @param array $kv array of key-value mappings + * + * @return SearchSub object found, or null for no hits + * + */ + function pkeyGet($kv) + { + return Memcached_DataObject::pkeyGet('SearchSub', $kv); + } + + /** + * The One True Thingy that must be defined and declared. + */ + public static function schemaDef() + { + return array( + 'description' => 'SearchSubPlugin search subscription records', + 'fields' => array( + 'search' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'hash search associated with this subscription'), + 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'profile ID of subscribing user'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + ), + 'primary key' => array('search', 'profile_id'), + 'foreign keys' => array( + 'searchsub_profile_id_fkey' => array('profile', array('profile_id' => 'id')), + ), + 'indexes' => array( + 'searchsub_created_idx' => array('created'), + 'searchsub_profile_id_tag_idx' => array('profile_id', 'search'), + ), + ); + } + + /** + * Start a search subscription! + * + * @param profile $profile subscriber + * @param string $search subscribee + * @return SearchSub + */ + static function start(Profile $profile, $search) + { + $ts = new SearchSub(); + $ts->search = $search; + $ts->profile_id = $profile->id; + $ts->created = common_sql_now(); + $ts->insert(); + return $ts; + } + + /** + * End a search subscription! + * + * @param profile $profile subscriber + * @param string $search subscribee + */ + static function cancel(Profile $profile, $search) + { + $ts = SearchSub::pkeyGet(array('search' => $search, + 'profile_id' => $profile->id)); + if ($ts) { + $ts->delete(); + } + } +} diff --git a/plugins/SearchSub/SearchSubPlugin.php b/plugins/SearchSub/SearchSubPlugin.php new file mode 100644 index 0000000000..c07f7695da --- /dev/null +++ b/plugins/SearchSub/SearchSubPlugin.php @@ -0,0 +1,321 @@ +. + * + * @category SearchSubPlugin + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * SearchSub plugin main class + * + * @category SearchSubPlugin + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +class SearchSubPlugin extends Plugin +{ + const VERSION = '0.1'; + + /** + * Database schema setup + * + * @see Schema + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onCheckSchema() + { + $schema = Schema::get(); + $schema->ensureTable('searchsub', SearchSub::schemaDef()); + return true; + } + + /** + * Load related modules when needed + * + * @param string $cls Name of the class to be loaded + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onAutoload($cls) + { + $dir = dirname(__FILE__); + + switch ($cls) + { + case 'SearchSub': + include_once $dir.'/'.$cls.'.php'; + return false; + case 'SearchsubAction': + case 'SearchunsubAction': + case 'SearchsubsAction': + case 'SearchSubForm': + case 'SearchUnsubForm': + case 'SearchSubTrackCommand': + case 'SearchSubTrackOffCommand': + case 'SearchSubTrackingCommand': + case 'SearchSubUntrackCommand': + include_once $dir.'/'.strtolower($cls).'.php'; + return false; + default: + return true; + } + } + + /** + * Map URLs to actions + * + * @param Net_URL_Mapper $m path-to-action mapper + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onRouterInitialized($m) + { + $m->connect('search/:search/subscribe', + array('action' => 'searchsub'), + array('search' => Router::REGEX_TAG)); + $m->connect('search/:search/unsubscribe', + array('action' => 'searchunsub'), + array('search' => Router::REGEX_TAG)); + + $m->connect(':nickname/search-subscriptions', + array('action' => 'searchsubs'), + array('nickname' => Nickname::DISPLAY_FMT)); + return true; + } + + /** + * Plugin version data + * + * @param array &$versions array of version data + * + * @return value + */ + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'SearchSub', + 'version' => self::VERSION, + 'author' => 'Brion Vibber', + 'homepage' => 'http://status.net/wiki/Plugin:SearchSub', + 'rawdescription' => + // TRANS: Plugin description. + _m('Plugin to allow following all messages with a given search.')); + return true; + } + + /** + * Hook inbox delivery setup so search subscribers receive all + * notices with that search in their inbox. + * + * Currently makes no distinction between local messages and + * remote ones which happen to come in to the system. Remote + * notices that don't come in at all won't ever reach this. + * + * @param Notice $notice + * @param array $ni in/out map of profile IDs to inbox constants + * @return boolean hook result + */ + function onStartNoticeWhoGets(Notice $notice, array &$ni) + { + // Warning: this is potentially very slow + // with a lot of searches! + $sub = new SearchSub(); + $sub->groupBy('search'); + $sub->find(); + while ($sub->fetch()) { + $search = $sub->search; + + if ($this->matchSearch($notice, $search)) { + // Match? Find all those who subscribed to this + // search term and get our delivery on... + $searchsub = new SearchSub(); + $searchsub->search = $search; + $searchsub->find(); + + while ($searchsub->fetch()) { + // These constants are currently not actually used, iirc + $ni[$searchsub->profile_id] = NOTICE_INBOX_SOURCE_SUB; + } + } + } + return true; + } + + /** + * Does the given notice match the given fulltext search query? + * + * Warning: not guaranteed to match other search engine behavior, etc. + * Currently using a basic case-insensitive substring match, which + * probably fits with the 'LIKE' search but not the default MySQL + * or Sphinx search backends. + * + * @param Notice $notice + * @param string $search + * @return boolean + */ + function matchSearch(Notice $notice, $search) + { + return (mb_stripos($notice->content, $search) !== false); + } + + /** + * + * @param NoticeSearchAction $action + * @param string $q + * @param Notice $notice + * @return boolean hook result + */ + function onStartNoticeSearchShowResults($action, $q, $notice) + { + $user = common_current_user(); + if ($user) { + $search = $q; + $searchsub = SearchSub::pkeyGet(array('search' => $search, + 'profile_id' => $user->id)); + if ($searchsub) { + $form = new SearchUnsubForm($action, $search); + } else { + $form = new SearchSubForm($action, $search); + } + $action->elementStart('div', 'entity_actions'); + $action->elementStart('ul'); + $action->elementStart('li', 'entity_subscribe'); + $form->show(); + $action->elementEnd('li'); + $action->elementEnd('ul'); + $action->elementEnd('div'); + } + return true; + } + + /** + * Menu item for personal subscriptions/groups area + * + * @param Widget $widget Widget being executed + * + * @return boolean hook return + */ + + function onEndSubGroupNav($widget) + { + $action = $widget->out; + $action_name = $action->trimmed('action'); + + $action->menuItem(common_local_url('searchsubs', array('nickname' => $action->user->nickname)), + // TRANS: SearchSub plugin menu item on user settings page. + _m('MENU', 'Searches'), + // TRANS: SearchSub plugin tooltip for user settings menu item. + _m('Configure search subscriptions'), + $action_name == 'searchsubs' && $action->arg('nickname') == $action->user->nickname); + + return true; + } + + /** + * Add a count of mirrored feeds into a user's profile sidebar stats. + * + * @param Profile $profile + * @param array $stats + * @return boolean hook return value + */ + function onProfileStats($profile, &$stats) + { + $cur = common_current_user(); + if (!empty($cur) && $cur->id == $profile->id) { + $searchsub = new SearchSub(); + $searchsub ->profile_id = $profile->id; + $entry = array( + 'id' => 'searchsubs', + 'label' => _m('Search subscriptions'), + 'link' => common_local_url('searchsubs', array('nickname' => $profile->nickname)), + 'value' => $searchsub->count(), + ); + + $insertAt = count($stats); + foreach ($stats as $i => $row) { + if ($row['id'] == 'groups') { + // Slip us in after them. + $insertAt = $i + 1; + break; + } + } + array_splice($stats, $insertAt, 0, array($entry)); + } + return true; + } + + /** + * Replace the built-in stub track commands with ones that control + * search subscriptions. + * + * @param CommandInterpreter $cmd + * @param string $arg + * @param User $user + * @param Command $result + * @return boolean hook result + */ + function onEndInterpretCommand($cmd, $arg, $user, &$result) + { + if ($result instanceof TrackCommand) { + $result = new SearchSubTrackCommand($user, $arg); + return false; + } else if ($result instanceof TrackOffCommand) { + $result = new SearchSubTrackOffCommand($user); + return false; + } else if ($result instanceof TrackingCommand) { + $result = new SearchSubTrackingCommand($user); + return false; + } else if ($result instanceof UntrackCommand) { + $result = new SearchSubUntrackCommand($user, $arg); + return false; + } else { + return true; + } + } + + function onHelpCommandMessages($cmd, &$commands) + { + // TRANS: Help message for IM/SMS command "track " + $commands["track "] = _m('COMMANDHELP', "Start following notices matching the given search query."); + // TRANS: Help message for IM/SMS command "untrack " + $commands["untrack "] = _m('COMMANDHELP', "Stop following notices matching the given search query."); + // TRANS: Help message for IM/SMS command "track off" + $commands["track off"] = _m('COMMANDHELP', "Disable all tracked search subscriptions."); + // TRANS: Help message for IM/SMS command "untrack all" + $commands["untrack all"] = _m('COMMANDHELP', "Disable all tracked search subscriptions."); + // TRANS: Help message for IM/SMS command "tracks" + $commands["tracks"] = _m('COMMANDHELP', "List all your search subscriptions."); + // TRANS: Help message for IM/SMS command "tracking" + $commands["tracking"] = _m('COMMANDHELP', "List all your search subscriptions."); + } +} diff --git a/plugins/SearchSub/locale/SearchSub.pot b/plugins/SearchSub/locale/SearchSub.pot new file mode 100644 index 0000000000..07209904e7 --- /dev/null +++ b/plugins/SearchSub/locale/SearchSub.pot @@ -0,0 +1,195 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: searchsubsaction.php:51 +#, php-format +msgid "%s's search subscriptions" +msgstr "" + +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: searchsubsaction.php:55 +#, php-format +msgid "%1$s's search subscriptions, page %2$d" +msgstr "" + +#. TRANS: Page notice for page with an overview of all search subscriptions +#. TRANS: of the logged in user's own profile. +#: searchsubsaction.php:68 +msgid "" +"You have subscribed to receive all notices on this site matching the " +"following searches:" +msgstr "" + +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: searchsubsaction.php:73 +#, php-format +msgid "" +"%s has subscribed to receive all notices on this site matching the following " +"searches:" +msgstr "" + +#. TRANS: Search subscription list text when the logged in user has no search subscriptions. +#: searchsubsaction.php:118 +msgid "" +"You are not subscribed to any text searches right now. You can push the " +"\"Subscribe\" button on any notice text search to automatically receive any " +"public messages on this site that match that search, even if you are not " +"subscribed to the poster." +msgstr "" + +#. TRANS: Search subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no search subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: searchsubsaction.php:124 searchsubsaction.php:130 +#, php-format +msgid "%s is not subscribed to any searches." +msgstr "" + +#. TRANS: Search subscription list item. %1$s is a URL to a notice search, +#. TRANS: %2$s are the search criteria, %3$s is a datestring. +#: searchsubsaction.php:170 +#, php-format +msgid "\"%2$s\" since %3$s" +msgstr "" + +#. TRANS: Error text shown a user tries to untrack a search query they're not subscribed to. +#: searchsubuntrackcommand.php:21 +#, php-format +msgid "You are not tracking the search \"%s\"." +msgstr "" + +#. TRANS: Message given having failed to cancel a search subscription by untrack command. +#: searchsubuntrackcommand.php:29 +#, php-format +msgid "Could not end a search subscription for query \"%s\"." +msgstr "" + +#. TRANS: Message given having removed a search subscription by untrack command. +#: searchsubuntrackcommand.php:35 +#, php-format +msgid "You are no longer subscribed to the search \"%s\"." +msgstr "" + +#. TRANS: Page title when search subscription succeeded. +#: searchsubaction.php:136 +msgid "Subscribed" +msgstr "" + +#: searchunsubform.php:96 searchunsubform.php:107 +msgid "Unsubscribe from this search" +msgstr "" + +#. TRANS: Page title when search unsubscription succeeded. +#: searchunsubaction.php:76 +msgid "Unsubscribed" +msgstr "" + +#. TRANS: Error text shown a user tries to track a search query they're already subscribed to. +#: searchsubtrackcommand.php:21 +#, php-format +msgid "You are already tracking the search \"%s\"." +msgstr "" + +#. TRANS: Message given having failed to set up a search subscription by track command. +#: searchsubtrackcommand.php:29 +#, php-format +msgid "Could not start a search subscription for query \"%s\"." +msgstr "" + +#. TRANS: Message given having added a search subscription by track command. +#: searchsubtrackcommand.php:35 +#, php-format +msgid "You are subscribed to the search \"%s\"." +msgstr "" + +#. TRANS: Plugin description. +#: SearchSubPlugin.php:132 +msgid "Plugin to allow following all messages with a given search." +msgstr "" + +#. TRANS: SearchSub plugin menu item on user settings page. +#: SearchSubPlugin.php:236 +msgctxt "MENU" +msgid "Searches" +msgstr "" + +#. TRANS: SearchSub plugin tooltip for user settings menu item. +#: SearchSubPlugin.php:238 +msgid "Configure search subscriptions" +msgstr "" + +#: SearchSubPlugin.php:259 +msgid "Search subscriptions" +msgstr "" + +#. TRANS: Help message for IM/SMS command "track " +#: SearchSubPlugin.php:309 +msgctxt "COMMANDHELP" +msgid "Start following notices matching the given search query." +msgstr "" + +#. TRANS: Help message for IM/SMS command "untrack " +#: SearchSubPlugin.php:311 +msgctxt "COMMANDHELP" +msgid "Stop following notices matching the given search query." +msgstr "" + +#. TRANS: Help message for IM/SMS command "track off" +#. TRANS: Help message for IM/SMS command "untrack all" +#: SearchSubPlugin.php:313 SearchSubPlugin.php:315 +msgctxt "COMMANDHELP" +msgid "Disable all tracked search subscriptions." +msgstr "" + +#. TRANS: Help message for IM/SMS command "tracks" +#. TRANS: Help message for IM/SMS command "tracking" +#: SearchSubPlugin.php:317 SearchSubPlugin.php:319 +msgctxt "COMMANDHELP" +msgid "List all your search subscriptions." +msgstr "" + +#. TRANS: Error text shown a user tries to disable all a search subscriptions with track off command, but has none. +#: searchsubtrackingcommand.php:14 searchsubtrackoffcommand.php:14 +msgid "You are not tracking any searches." +msgstr "" + +#. TRANS: Message given having disabled all search subscriptions with 'track off'. +#: searchsubtrackingcommand.php:24 +#, php-format +msgid "You are tracking searches for: %s" +msgstr "" + +#: searchsubform.php:116 searchsubform.php:140 +msgid "Subscribe to this search" +msgstr "" + +#. TRANS: Message given having failed to cancel one of the search subs with 'track off' command. +#: searchsubtrackoffcommand.php:24 +#, php-format +msgid "Error disabling search subscription for query \"%s\"." +msgstr "" + +#. TRANS: Message given having disabled all search subscriptions with 'track off'. +#: searchsubtrackoffcommand.php:31 +msgid "Disabled all your search subscriptions." +msgstr "" diff --git a/plugins/SearchSub/locale/nl/LC_MESSAGES/SearchSub.po b/plugins/SearchSub/locale/nl/LC_MESSAGES/SearchSub.po new file mode 100644 index 0000000000..ee95299f47 --- /dev/null +++ b/plugins/SearchSub/locale/nl/LC_MESSAGES/SearchSub.po @@ -0,0 +1,178 @@ +# Translation of StatusNet - SearchSub to Dutch (Nederlands) +# Exported from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SearchSub\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:43+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 12:41:57+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-searchsub\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#, php-format +msgid "%s's search subscriptions" +msgstr "Zoekabonnementen van %s" + +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#, php-format +msgid "%1$s's search subscriptions, page %2$d" +msgstr "Zoekabonnementen van %1$s, pagina %2$d" + +#. TRANS: Page notice for page with an overview of all search subscriptions +#. TRANS: of the logged in user's own profile. +msgid "" +"You have subscribed to receive all notices on this site matching the " +"following searches:" +msgstr "" +"U hebt een abonnement genomen op alle mededelingen op deze site waarin de " +"volgende zoektermen voorkomen:" + +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#, php-format +msgid "" +"%s has subscribed to receive all notices on this site matching the following " +"searches:" +msgstr "" +"%s heeft een abonnement genomen op alle mededelingen op deze site met de " +"volgende zoektermen:" + +#. TRANS: Search subscription list text when the logged in user has no search subscriptions. +msgid "" +"You are not subscribed to any text searches right now. You can push the " +"\"Subscribe\" button on any notice text search to automatically receive any " +"public messages on this site that match that search, even if you are not " +"subscribed to the poster." +msgstr "" + +#. TRANS: Search subscription list text when looking at the subscriptions for a of a user other +#. TRANS: than the logged in user that has no search subscriptions. %s is the user nickname. +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#, php-format +msgid "%s is not subscribed to any searches." +msgstr "%s heeft geen zoekabonnementen." + +#. TRANS: Search subscription list item. %1$s is a URL to a notice search, +#. TRANS: %2$s are the search criteria, %3$s is a datestring. +#, fuzzy, php-format +msgid "\"%2$s\" since %3$s" +msgstr "\"%s\" sinds %s" + +#. TRANS: Error text shown a user tries to untrack a search query they're not subscribed to. +#, php-format +msgid "You are not tracking the search \"%s\"." +msgstr "U hebt geen abonnement op de zoekopdracht \"%s\"." + +#. TRANS: Message given having failed to cancel a search subscription by untrack command. +#, php-format +msgid "Could not end a search subscription for query \"%s\"." +msgstr "Het opzeggen van het abonnement op de zoekopdracht \"%s\" is mislukt." + +#. TRANS: Message given having removed a search subscription by untrack command. +#, php-format +msgid "You are no longer subscribed to the search \"%s\"." +msgstr "U hebt niet langer meer een abonnement op de zoekopdracht \"%s\"." + +#. TRANS: Page title when search subscription succeeded. +msgid "Subscribed" +msgstr "Geabonneerd" + +msgid "Unsubscribe from this search" +msgstr "Abonnement op deze zoekopdracht opzeggen" + +#. TRANS: Page title when search unsubscription succeeded. +msgid "Unsubscribed" +msgstr "Het abonnement is opgezegd" + +#. TRANS: Error text shown a user tries to track a search query they're already subscribed to. +#, php-format +msgid "You are already tracking the search \"%s\"." +msgstr "U bent al geabonneerd op de zoekopdracht \"%s\"." + +#. TRANS: Message given having failed to set up a search subscription by track command. +#, php-format +msgid "Could not start a search subscription for query \"%s\"." +msgstr "" +"Het was niet mogelijk om een abonnement te namen op de zoekopdracht \"%s\"." + +#. TRANS: Message given having added a search subscription by track command. +#, php-format +msgid "You are subscribed to the search \"%s\"." +msgstr "U bent geabonneerd op de zoekopdracht \"%s\"." + +#. TRANS: Plugin description. +msgid "Plugin to allow following all messages with a given search." +msgstr "Plug-in om mededelingen via een zoekopdracht te volgen." + +#. TRANS: SearchSub plugin menu item on user settings page. +msgctxt "MENU" +msgid "Searches" +msgstr "Zoekopdrachten" + +#. TRANS: SearchSub plugin tooltip for user settings menu item. +msgid "Configure search subscriptions" +msgstr "Zoekopdrachtabonnementen instellen" + +msgid "Search subscriptions" +msgstr "Zoekopdrachtabonnementen" + +#. TRANS: Help message for IM/SMS command "track " +msgctxt "COMMANDHELP" +msgid "Start following notices matching the given search query." +msgstr "Volg berichten die deze zoekopdracht oplevert." + +#. TRANS: Help message for IM/SMS command "untrack " +msgctxt "COMMANDHELP" +msgid "Stop following notices matching the given search query." +msgstr "Volg berichten die deze zoekopdracht oplevert niet langer." + +#. TRANS: Help message for IM/SMS command "track off" +#. TRANS: Help message for IM/SMS command "untrack all" +msgctxt "COMMANDHELP" +msgid "Disable all tracked search subscriptions." +msgstr "Alle gevolgde zoekopdrachten uitschakelen." + +#. TRANS: Help message for IM/SMS command "tracks" +#. TRANS: Help message for IM/SMS command "tracking" +msgctxt "COMMANDHELP" +msgid "List all your search subscriptions." +msgstr "Al uw abonnementen op zoekopdrachten beëindigen." + +#. TRANS: Error text shown a user tries to disable all a search subscriptions with track off command, but has none. +msgid "You are not tracking any searches." +msgstr "U volgt geen zoekopdrachten." + +#. TRANS: Message given having disabled all search subscriptions with 'track off'. +#, php-format +msgid "You are tracking searches for: %s" +msgstr "U volgt zoekopdrachten naar: %s." + +msgid "Subscribe to this search" +msgstr "Deze zoekopdracht volgen" + +#. TRANS: Message given having failed to cancel one of the search subs with 'track off' command. +#, php-format +msgid "Error disabling search subscription for query \"%s\"." +msgstr "" +"Er is een fout opgetreden tijdens het beëindigen van het abonnement op de " +"zoekopdracht \"%s\"." + +#. TRANS: Message given having disabled all search subscriptions with 'track off'. +msgid "Disabled all your search subscriptions." +msgstr "Al uw abonnementen op zoekopdrachten zijn uitgeschakeld." diff --git a/plugins/SearchSub/searchsubaction.php b/plugins/SearchSub/searchsubaction.php new file mode 100644 index 0000000000..67bc178df6 --- /dev/null +++ b/plugins/SearchSub/searchsubaction.php @@ -0,0 +1,149 @@ +. + * + * PHP version 5 + * + * @category Action + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @copyright 2008-2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Search subscription action + * + * Takes parameters: + * + * - token: session token to prevent CSRF attacks + * - ajax: boolean; whether to return Ajax or full-browser results + * + * Only works if the current user is logged in. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @author Brion Vibber + * @copyright 2008-2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ +class SearchsubAction extends Action +{ + var $user; + var $search; + + /** + * Check pre-requisites and instantiate attributes + * + * @param Array $args array of arguments (URL, GET, POST) + * + * @return boolean success flag + */ + function prepare($args) + { + parent::prepare($args); + if ($this->boolean('ajax')) { + StatusNet::setApi(true); + } + + // Only allow POST requests + + if ($_SERVER['REQUEST_METHOD'] != 'POST') { + // TRANS: Client error displayed trying to perform any request method other than POST. + // TRANS: Do not translate POST. + $this->clientError(_('This action only accepts POST requests.')); + return false; + } + + // CSRF protection + + $token = $this->trimmed('token'); + + if (!$token || $token != common_session_token()) { + // TRANS: Client error displayed when the session token is not okay. + $this->clientError(_('There was a problem with your session token.'. + ' Try again, please.')); + return false; + } + + // Only for logged-in users + + $this->user = common_current_user(); + + if (empty($this->user)) { + // TRANS: Client error displayed trying to subscribe when not logged in. + $this->clientError(_('Not logged in.')); + return false; + } + + // Profile to subscribe to + + $this->search = $this->arg('search'); + + if (empty($this->search)) { + // TRANS: Client error displayed trying to subscribe to a non-existing profile. + $this->clientError(_('No such profile.')); + return false; + } + + return true; + } + + /** + * Handle request + * + * Does the subscription and returns results. + * + * @param Array $args unused. + * + * @return void + */ + function handle($args) + { + // Throws exception on error + + SearchSub::start($this->user->getProfile(), + $this->search); + + if ($this->boolean('ajax')) { + $this->startHTML('text/xml;charset=utf-8'); + $this->elementStart('head'); + // TRANS: Page title when search subscription succeeded. + $this->element('title', null, _m('Subscribed')); + $this->elementEnd('head'); + $this->elementStart('body'); + $unsubscribe = new SearchUnsubForm($this, $this->search); + $unsubscribe->show(); + $this->elementEnd('body'); + $this->elementEnd('html'); + } else { + $url = common_local_url('search', + array('search' => $this->search)); + common_redirect($url, 303); + } + } +} diff --git a/plugins/SearchSub/searchsubform.php b/plugins/SearchSub/searchsubform.php new file mode 100644 index 0000000000..8078cdde1b --- /dev/null +++ b/plugins/SearchSub/searchsubform.php @@ -0,0 +1,142 @@ +. + * + * @category SearchSubPlugin + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @author Sarven Capadisli + * @copyright 2009-2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * Form for subscribing to a user + * + * @category SearchSubPlugin + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @author Sarven Capadisli + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see UnsubscribeForm + */ + +class SearchSubForm extends Form +{ + /** + * Name of search to subscribe to + */ + + var $search = ''; + + /** + * Constructor + * + * @param HTMLOutputter $out output channel + * @param string $search name of search to subscribe to + */ + + function __construct($out=null, $search=null) + { + parent::__construct($out); + + $this->search = $search; + } + + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'search-subscribe-' . $this->search; + } + + + /** + * class of the form + * + * @return string of the form class + */ + + function formClass() + { + // class to match existing styles... + return 'form_user_subscribe ajax'; + } + + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('searchsub', array('search' => $this->search)); + } + + + /** + * Legend of the Form + * + * @return void + */ + function formLegend() + { + $this->out->element('legend', null, _m('Subscribe to this search')); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $this->out->hidden('subscribeto-' . $this->search, + $this->search, + 'subscribeto'); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->submit('submit', _('Subscribe'), 'submit', null, _m('Subscribe to this search')); + } +} diff --git a/plugins/SearchSub/searchsubsaction.php b/plugins/SearchSub/searchsubsaction.php new file mode 100644 index 0000000000..54563ed0e7 --- /dev/null +++ b/plugins/SearchSub/searchsubsaction.php @@ -0,0 +1,196 @@ +. + * + * @category Social + * @package StatusNet + * @author Evan Prodromou + * @author Sarven Capadisli + * @copyright 2008-2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * A list of the user's subscriptions + * + * @category Social + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ +class SearchSubsAction extends GalleryAction +{ + function title() + { + if ($this->page == 1) { + // TRANS: Header for subscriptions overview for a user (first page). + // TRANS: %s is a user nickname. + return sprintf(_m('%s\'s search subscriptions'), $this->user->nickname); + } else { + // TRANS: Header for subscriptions overview for a user (not first page). + // TRANS: %1$s is a user nickname, %2$d is the page number. + return sprintf(_m('%1$s\'s search subscriptions, page %2$d'), + $this->user->nickname, + $this->page); + } + } + + function showPageNotice() + { + $user = common_current_user(); + if ($user && ($user->id == $this->profile->id)) { + $this->element('p', null, + // TRANS: Page notice for page with an overview of all search subscriptions + // TRANS: of the logged in user's own profile. + _m('You have subscribed to receive all notices on this site matching the following searches:')); + } else { + $this->element('p', null, + // TRANS: Page notice for page with an overview of all subscriptions of a user other + // TRANS: than the logged in user. %s is the user nickname. + sprintf(_m('%s has subscribed to receive all notices on this site matching the following searches:'), + $this->profile->nickname)); + } + } + + function showContent() + { + if (Event::handle('StartShowTagSubscriptionsContent', array($this))) { + parent::showContent(); + + $offset = ($this->page-1) * PROFILES_PER_PAGE; + $limit = PROFILES_PER_PAGE + 1; + + $cnt = 0; + + $searchsub = new SearchSub(); + $searchsub->profile_id = $this->user->id; + $searchsub->limit($limit, $offset); + $searchsub->find(); + + if ($searchsub->N) { + $list = new SearchSubscriptionsList($searchsub, $this->user, $this); + $cnt = $list->show(); + if (0 == $cnt) { + $this->showEmptyListMessage(); + } + } else { + $this->showEmptyListMessage(); + } + + $this->pagination($this->page > 1, $cnt > PROFILES_PER_PAGE, + $this->page, 'searchsubs', + array('nickname' => $this->user->nickname)); + + + Event::handle('EndShowTagSubscriptionsContent', array($this)); + } + } + + function showEmptyListMessage() + { + if (common_logged_in()) { + $current_user = common_current_user(); + if ($this->user->id === $current_user->id) { + // TRANS: Search subscription list text when the logged in user has no search subscriptions. + $message = _m('You are not subscribed to any text searches right now. You can push the "Subscribe" button ' . + 'on any notice text search to automatically receive any public messages on this site that match that ' . + 'search, even if you are not subscribed to the poster.'); + } else { + // TRANS: Search subscription list text when looking at the subscriptions for a of a user other + // TRANS: than the logged in user that has no search subscriptions. %s is the user nickname. + $message = sprintf(_m('%s is not subscribed to any searches.'), $this->user->nickname); + } + } + else { + // TRANS: Subscription list text when looking at the subscriptions for a of a user that has none + // TRANS: as an anonymous user. %s is the user nickname. + $message = sprintf(_m('%s is not subscribed to any searches.'), $this->user->nickname); + } + + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('div'); + } +} + +// XXX SubscriptionsList and SubscriptionList are dangerously close + +class SearchSubscriptionsList extends SubscriptionList +{ + function newListItem($searchsub) + { + return new SearchSubscriptionsListItem($searchsub, $this->owner, $this->action); + } +} + +class SearchSubscriptionsListItem extends SubscriptionListItem +{ + function startItem() + { + $this->out->elementStart('li', array('class' => 'searchsub')); + } + + function showProfile() + { + $searchsub = $this->profile; + $search = $searchsub->search; + + // Relevant portion! + $cur = common_current_user(); + if (!empty($cur) && $cur->id == $this->owner->id) { + $this->showOwnerControls(); + } + + $url = common_local_url('noticesearch', array('q' => $search)); + // TRANS: Search subscription list item. %1$s is a URL to a notice search, + // TRANS: %2$s are the search criteria, %3$s is a datestring. + $linkline = sprintf(_m('"%2$s" since %3$s'), + htmlspecialchars($url), + htmlspecialchars($search), + common_date_string($searchsub->created)); + + $this->out->elementStart('div', 'searchsub-item'); + $this->out->raw($linkline); + $this->out->element('div', array('style' => 'clear: both')); + $this->out->elementEnd('div'); + } + + function showActions() + { + } + + function showOwnerControls() + { + $this->out->elementStart('div', 'entity_actions'); + + $searchsub = $this->profile; // ? + $form = new SearchUnsubForm($this->out, $searchsub->search); + $form->show(); + + $this->out->elementEnd('div'); + return; + } +} diff --git a/plugins/SearchSub/searchsubtrackcommand.php b/plugins/SearchSub/searchsubtrackcommand.php new file mode 100644 index 0000000000..bba2cb36e7 --- /dev/null +++ b/plugins/SearchSub/searchsubtrackcommand.php @@ -0,0 +1,38 @@ +keyword = $keyword; + } + + function handle($channel) + { + $cur = $this->user; + $searchsub = SearchSub::pkeyGet(array('search' => $this->keyword, + 'profile_id' => $cur->id)); + + if ($searchsub) { + // TRANS: Error text shown a user tries to track a search query they're already subscribed to. + $channel->error($cur, sprintf(_m('You are already tracking the search "%s".'), $this->keyword)); + return; + } + + try { + SearchSub::start($cur->getProfile(), $this->keyword); + } catch (Exception $e) { + // TRANS: Message given having failed to set up a search subscription by track command. + $channel->error($cur, sprintf(_m('Could not start a search subscription for query "%s".'), + $this->keyword)); + return; + } + + // TRANS: Message given having added a search subscription by track command. + $channel->output($cur, sprintf(_m('You are subscribed to the search "%s".'), + $this->keyword)); + } +} \ No newline at end of file diff --git a/plugins/SearchSub/searchsubtrackingcommand.php b/plugins/SearchSub/searchsubtrackingcommand.php new file mode 100644 index 0000000000..385a22b8ba --- /dev/null +++ b/plugins/SearchSub/searchsubtrackingcommand.php @@ -0,0 +1,27 @@ +user; + $all = new SearchSub(); + $all->profile_id = $cur->id; + $all->find(); + + if ($all->N == 0) { + // TRANS: Error text shown a user tries to disable all a search subscriptions with track off command, but has none. + $channel->error($cur, _m('You are not tracking any searches.')); + return; + } + + $list = array(); + while ($all->fetch()) { + $list[] = $all->search; + } + + // TRANS: Message given having disabled all search subscriptions with 'track off'. + $channel->output($cur, sprintf(_m('You are tracking searches for: %s'), + '"' . implode('", "', $list) . '"')); + } +} \ No newline at end of file diff --git a/plugins/SearchSub/searchsubtrackoffcommand.php b/plugins/SearchSub/searchsubtrackoffcommand.php new file mode 100644 index 0000000000..1e5eb97ebc --- /dev/null +++ b/plugins/SearchSub/searchsubtrackoffcommand.php @@ -0,0 +1,33 @@ +user; + $all = new SearchSub(); + $all->profile_id = $cur->id; + $all->find(); + + if ($all->N == 0) { + // TRANS: Error text shown a user tries to disable all a search subscriptions with track off command, but has none. + $channel->error($cur, _m('You are not tracking any searches.')); + return; + } + + $profile = $cur->getProfile(); + while ($all->fetch()) { + try { + SearchSub::cancel($profile, $all->search); + } catch (Exception $e) { + // TRANS: Message given having failed to cancel one of the search subs with 'track off' command. + $channel->error($cur, sprintf(_m('Error disabling search subscription for query "%s".'), + $all->search)); + return; + } + } + + // TRANS: Message given having disabled all search subscriptions with 'track off'. + $channel->output($cur, _m('Disabled all your search subscriptions.')); + } +} \ No newline at end of file diff --git a/plugins/SearchSub/searchsubuntrackcommand.php b/plugins/SearchSub/searchsubuntrackcommand.php new file mode 100644 index 0000000000..9fb84cd130 --- /dev/null +++ b/plugins/SearchSub/searchsubuntrackcommand.php @@ -0,0 +1,38 @@ +keyword = $keyword; + } + + function handle($channel) + { + $cur = $this->user; + $searchsub = SearchSub::pkeyGet(array('search' => $this->keyword, + 'profile_id' => $cur->id)); + + if (!$searchsub) { + // TRANS: Error text shown a user tries to untrack a search query they're not subscribed to. + $channel->error($cur, sprintf(_m('You are not tracking the search "%s".'), $this->keyword)); + return; + } + + try { + SearchSub::cancel($cur->getProfile(), $this->keyword); + } catch (Exception $e) { + // TRANS: Message given having failed to cancel a search subscription by untrack command. + $channel->error($cur, sprintf(_m('Could not end a search subscription for query "%s".'), + $this->keyword)); + return; + } + + // TRANS: Message given having removed a search subscription by untrack command. + $channel->output($cur, sprintf(_m('You are no longer subscribed to the search "%s".'), + $this->keyword)); + } +} \ No newline at end of file diff --git a/plugins/SearchSub/searchunsubaction.php b/plugins/SearchSub/searchunsubaction.php new file mode 100644 index 0000000000..f7f006e21c --- /dev/null +++ b/plugins/SearchSub/searchunsubaction.php @@ -0,0 +1,89 @@ +. + * + * PHP version 5 + * + * @category Action + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @copyright 2008-2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Search unsubscription action + * + * Takes parameters: + * + * - token: session token to prevent CSRF attacks + * - ajax: boolean; whether to return Ajax or full-browser results + * + * Only works if the current user is logged in. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @author Brion Vibber + * @copyright 2008-2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ +class SearchunsubAction extends SearchsubAction +{ + /** + * Handle request + * + * Does the subscription and returns results. + * + * @param Array $args unused. + * + * @return void + */ + function handle($args) + { + // Throws exception on error + + SearchSub::cancel($this->user->getProfile(), + $this->search); + + if ($this->boolean('ajax')) { + $this->startHTML('text/xml;charset=utf-8'); + $this->elementStart('head'); + // TRANS: Page title when search unsubscription succeeded. + $this->element('title', null, _m('Unsubscribed')); + $this->elementEnd('head'); + $this->elementStart('body'); + $subscribe = new SearchSubForm($this, $this->search); + $subscribe->show(); + $this->elementEnd('body'); + $this->elementEnd('html'); + } else { + $url = common_local_url('search', + array('search' => $this->search)); + common_redirect($url, 303); + } + } +} diff --git a/plugins/SearchSub/searchunsubform.php b/plugins/SearchSub/searchunsubform.php new file mode 100644 index 0000000000..296b74f4a1 --- /dev/null +++ b/plugins/SearchSub/searchunsubform.php @@ -0,0 +1,109 @@ +. + * + * @category SearchSubPlugin + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @author Sarven Capadisli + * @copyright 2009-2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * Form for subscribing to a user + * + * @category SearchSubPlugin + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @author Sarven Capadisli + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see UnsubscribeForm + */ + +class SearchUnsubForm extends SearchSubForm +{ + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'search-unsubscribe-' . $this->search; + } + + + /** + * class of the form + * + * @return string of the form class + */ + + function formClass() + { + // class to match existing styles... + return 'form_user_unsubscribe ajax'; + } + + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('searchunsub', array('search' => $this->search)); + } + + + /** + * Legend of the Form + * + * @return void + */ + function formLegend() + { + $this->out->element('legend', null, _m('Unsubscribe from this search')); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->submit('submit', _('Unsubscribe'), 'submit', null, _m('Unsubscribe from this search')); + } +} diff --git a/plugins/ShareNotice/locale/ShareNotice.pot b/plugins/ShareNotice/locale/ShareNotice.pot index a1bbabf296..21a555d99a 100644 --- a/plugins/ShareNotice/locale/ShareNotice.pot +++ b/plugins/ShareNotice/locale/ShareNotice.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/ShareNotice/locale/br/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/br/LC_MESSAGES/ShareNotice.po index d85b76bfa2..58508f0681 100644 --- a/plugins/ShareNotice/locale/br/LC_MESSAGES/ShareNotice.po +++ b/plugins/ShareNotice/locale/br/LC_MESSAGES/ShareNotice.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ShareNotice\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-sharenotice\n" @@ -23,30 +23,25 @@ msgstr "" #. TRANS: Leave this message unchanged. #. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. -#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 #, php-format msgid "\"%s\"" msgstr "\"%s\"" #. TRANS: Tooltip for image to share a notice on Twitter. -#: ShareNoticePlugin.php:130 msgid "Share on Twitter" msgstr "Rannañ war Twitter" #. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). #. TRANS: %s is a host name. -#: ShareNoticePlugin.php:163 #, php-format msgid "Share on %s" msgstr "Rannañ war %s" #. TRANS: Tooltip for image to share a notice on Facebook. -#: ShareNoticePlugin.php:186 msgid "Share on Facebook" msgstr "Rannañ war Facebook" #. TRANS: Plugin description. -#: ShareNoticePlugin.php:219 msgid "" "This plugin allows sharing of notices to Twitter, Facebook and other " "platforms." diff --git a/plugins/ShareNotice/locale/ca/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/ca/LC_MESSAGES/ShareNotice.po index 8ddfa69819..f975655fd6 100644 --- a/plugins/ShareNotice/locale/ca/LC_MESSAGES/ShareNotice.po +++ b/plugins/ShareNotice/locale/ca/LC_MESSAGES/ShareNotice.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ShareNotice\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" "Language-Team: Catalan \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: #out-statusnet-plugin-sharenotice\n" @@ -23,30 +23,25 @@ msgstr "" #. TRANS: Leave this message unchanged. #. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. -#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 #, php-format msgid "\"%s\"" msgstr "«%s»" #. TRANS: Tooltip for image to share a notice on Twitter. -#: ShareNoticePlugin.php:130 msgid "Share on Twitter" msgstr "Comparteix al Twitter" #. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). #. TRANS: %s is a host name. -#: ShareNoticePlugin.php:163 #, php-format msgid "Share on %s" msgstr "Comparteix a %s" #. TRANS: Tooltip for image to share a notice on Facebook. -#: ShareNoticePlugin.php:186 msgid "Share on Facebook" msgstr "Comparteix al Facebook" #. TRANS: Plugin description. -#: ShareNoticePlugin.php:219 msgid "" "This plugin allows sharing of notices to Twitter, Facebook and other " "platforms." diff --git a/plugins/ShareNotice/locale/de/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/de/LC_MESSAGES/ShareNotice.po index c940aa6edd..dfe3a92151 100644 --- a/plugins/ShareNotice/locale/de/LC_MESSAGES/ShareNotice.po +++ b/plugins/ShareNotice/locale/de/LC_MESSAGES/ShareNotice.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ShareNotice\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-sharenotice\n" @@ -23,30 +23,25 @@ msgstr "" #. TRANS: Leave this message unchanged. #. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. -#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 #, php-format msgid "\"%s\"" msgstr "„%s“" #. TRANS: Tooltip for image to share a notice on Twitter. -#: ShareNoticePlugin.php:130 msgid "Share on Twitter" msgstr "Auf Twitter teilen" #. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). #. TRANS: %s is a host name. -#: ShareNoticePlugin.php:163 #, php-format msgid "Share on %s" msgstr "Auf %s teilen" #. TRANS: Tooltip for image to share a notice on Facebook. -#: ShareNoticePlugin.php:186 msgid "Share on Facebook" msgstr "Auf Facebook teilen" #. TRANS: Plugin description. -#: ShareNoticePlugin.php:219 msgid "" "This plugin allows sharing of notices to Twitter, Facebook and other " "platforms." diff --git a/plugins/ShareNotice/locale/fr/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/fr/LC_MESSAGES/ShareNotice.po index 6a56078243..ca337a85b7 100644 --- a/plugins/ShareNotice/locale/fr/LC_MESSAGES/ShareNotice.po +++ b/plugins/ShareNotice/locale/fr/LC_MESSAGES/ShareNotice.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ShareNotice\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-sharenotice\n" @@ -23,30 +23,25 @@ msgstr "" #. TRANS: Leave this message unchanged. #. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. -#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 #, php-format msgid "\"%s\"" msgstr "« %s »" #. TRANS: Tooltip for image to share a notice on Twitter. -#: ShareNoticePlugin.php:130 msgid "Share on Twitter" msgstr "Partager sur Twitter" #. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). #. TRANS: %s is a host name. -#: ShareNoticePlugin.php:163 #, php-format msgid "Share on %s" msgstr "Partager sur %s" #. TRANS: Tooltip for image to share a notice on Facebook. -#: ShareNoticePlugin.php:186 msgid "Share on Facebook" msgstr "Partager sur Facebook" #. TRANS: Plugin description. -#: ShareNoticePlugin.php:219 msgid "" "This plugin allows sharing of notices to Twitter, Facebook and other " "platforms." diff --git a/plugins/ShareNotice/locale/ia/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/ia/LC_MESSAGES/ShareNotice.po index 3701273edd..0de3f4f826 100644 --- a/plugins/ShareNotice/locale/ia/LC_MESSAGES/ShareNotice.po +++ b/plugins/ShareNotice/locale/ia/LC_MESSAGES/ShareNotice.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ShareNotice\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-sharenotice\n" @@ -23,30 +23,25 @@ msgstr "" #. TRANS: Leave this message unchanged. #. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. -#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 #, php-format msgid "\"%s\"" msgstr "\"%s\"" #. TRANS: Tooltip for image to share a notice on Twitter. -#: ShareNoticePlugin.php:130 msgid "Share on Twitter" msgstr "Condivider in Twitter" #. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). #. TRANS: %s is a host name. -#: ShareNoticePlugin.php:163 #, php-format msgid "Share on %s" msgstr "Condivider in %s" #. TRANS: Tooltip for image to share a notice on Facebook. -#: ShareNoticePlugin.php:186 msgid "Share on Facebook" msgstr "Condivider in Facebook" #. TRANS: Plugin description. -#: ShareNoticePlugin.php:219 msgid "" "This plugin allows sharing of notices to Twitter, Facebook and other " "platforms." diff --git a/plugins/ShareNotice/locale/mk/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/mk/LC_MESSAGES/ShareNotice.po index 976c2e97f4..18ae3d86f4 100644 --- a/plugins/ShareNotice/locale/mk/LC_MESSAGES/ShareNotice.po +++ b/plugins/ShareNotice/locale/mk/LC_MESSAGES/ShareNotice.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ShareNotice\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-sharenotice\n" @@ -23,30 +23,25 @@ msgstr "" #. TRANS: Leave this message unchanged. #. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. -#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 #, php-format msgid "\"%s\"" msgstr "„%s“" #. TRANS: Tooltip for image to share a notice on Twitter. -#: ShareNoticePlugin.php:130 msgid "Share on Twitter" msgstr "Сподели на Twitter" #. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). #. TRANS: %s is a host name. -#: ShareNoticePlugin.php:163 #, php-format msgid "Share on %s" msgstr "Сподели на %s" #. TRANS: Tooltip for image to share a notice on Facebook. -#: ShareNoticePlugin.php:186 msgid "Share on Facebook" msgstr "Сподели на Facebook" #. TRANS: Plugin description. -#: ShareNoticePlugin.php:219 msgid "" "This plugin allows sharing of notices to Twitter, Facebook and other " "platforms." diff --git a/plugins/ShareNotice/locale/nl/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/nl/LC_MESSAGES/ShareNotice.po index fc05170ae0..84f572983a 100644 --- a/plugins/ShareNotice/locale/nl/LC_MESSAGES/ShareNotice.po +++ b/plugins/ShareNotice/locale/nl/LC_MESSAGES/ShareNotice.po @@ -10,13 +10,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ShareNotice\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-sharenotice\n" @@ -24,30 +24,25 @@ msgstr "" #. TRANS: Leave this message unchanged. #. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. -#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 #, php-format msgid "\"%s\"" msgstr "\"%s\"" #. TRANS: Tooltip for image to share a notice on Twitter. -#: ShareNoticePlugin.php:130 msgid "Share on Twitter" msgstr "Delen op Twitter" #. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). #. TRANS: %s is a host name. -#: ShareNoticePlugin.php:163 #, php-format msgid "Share on %s" msgstr "Delen op %s" #. TRANS: Tooltip for image to share a notice on Facebook. -#: ShareNoticePlugin.php:186 msgid "Share on Facebook" msgstr "Delen op Facebook" #. TRANS: Plugin description. -#: ShareNoticePlugin.php:219 msgid "" "This plugin allows sharing of notices to Twitter, Facebook and other " "platforms." diff --git a/plugins/ShareNotice/locale/te/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/te/LC_MESSAGES/ShareNotice.po index 779d511c03..6e427f6cec 100644 --- a/plugins/ShareNotice/locale/te/LC_MESSAGES/ShareNotice.po +++ b/plugins/ShareNotice/locale/te/LC_MESSAGES/ShareNotice.po @@ -1,5 +1,5 @@ # Translation of StatusNet - ShareNotice to Telugu (తెలుగు) -# Expored from translatewiki.net +# Exported from translatewiki.net # # Author: Veeven # -- @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ShareNotice\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-12-16 15:08+0000\n" -"PO-Revision-Date: 2010-12-16 15:12:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" "Language-Team: Telugu \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2010-11-30 20:43:55+0000\n" -"X-Generator: MediaWiki 1.18alpha (r78478); Translate extension (2010-09-17)\n" +"X-POT-Import-Date: 2011-03-11 18:53:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: te\n" "X-Message-Group: #out-statusnet-plugin-sharenotice\n" @@ -23,30 +23,25 @@ msgstr "" #. TRANS: Leave this message unchanged. #. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. -#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 #, php-format msgid "\"%s\"" msgstr "\"%s\"" #. TRANS: Tooltip for image to share a notice on Twitter. -#: ShareNoticePlugin.php:130 msgid "Share on Twitter" -msgstr "" +msgstr "ట్విట్టర్లో పంచుకోండి" #. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). #. TRANS: %s is a host name. -#: ShareNoticePlugin.php:163 #, php-format msgid "Share on %s" msgstr "" #. TRANS: Tooltip for image to share a notice on Facebook. -#: ShareNoticePlugin.php:186 msgid "Share on Facebook" -msgstr "" +msgstr "ఫేస్‌బుక్‌లో పంచుకోండి" #. TRANS: Plugin description. -#: ShareNoticePlugin.php:219 msgid "" "This plugin allows sharing of notices to Twitter, Facebook and other " "platforms." diff --git a/plugins/ShareNotice/locale/tl/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/tl/LC_MESSAGES/ShareNotice.po index 8be749ef27..df25b04e5d 100644 --- a/plugins/ShareNotice/locale/tl/LC_MESSAGES/ShareNotice.po +++ b/plugins/ShareNotice/locale/tl/LC_MESSAGES/ShareNotice.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ShareNotice\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-sharenotice\n" @@ -23,30 +23,25 @@ msgstr "" #. TRANS: Leave this message unchanged. #. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. -#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 #, php-format msgid "\"%s\"" msgstr "\"%s\"" #. TRANS: Tooltip for image to share a notice on Twitter. -#: ShareNoticePlugin.php:130 msgid "Share on Twitter" msgstr "Ibahagi sa Twitter" #. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). #. TRANS: %s is a host name. -#: ShareNoticePlugin.php:163 #, php-format msgid "Share on %s" msgstr "Ibahagi sa %s" #. TRANS: Tooltip for image to share a notice on Facebook. -#: ShareNoticePlugin.php:186 msgid "Share on Facebook" msgstr "Ibahagi sa Facebook" #. TRANS: Plugin description. -#: ShareNoticePlugin.php:219 msgid "" "This plugin allows sharing of notices to Twitter, Facebook and other " "platforms." diff --git a/plugins/ShareNotice/locale/uk/LC_MESSAGES/ShareNotice.po b/plugins/ShareNotice/locale/uk/LC_MESSAGES/ShareNotice.po index a669984d0c..12e684f49a 100644 --- a/plugins/ShareNotice/locale/uk/LC_MESSAGES/ShareNotice.po +++ b/plugins/ShareNotice/locale/uk/LC_MESSAGES/ShareNotice.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - ShareNotice\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:24+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:25+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-sharenotice\n" @@ -24,30 +24,25 @@ msgstr "" #. TRANS: Leave this message unchanged. #. TRANS: %s is notice content that is shared on Twitter, Facebook or another platform. -#: ShareNoticePlugin.php:106 ShareNoticePlugin.php:194 #, php-format msgid "\"%s\"" msgstr "«%s»" #. TRANS: Tooltip for image to share a notice on Twitter. -#: ShareNoticePlugin.php:130 msgid "Share on Twitter" msgstr "Розмістити в Twitter" #. TRANS: Tooltip for image to share a notice on another platform (other than Twitter or Facebook). #. TRANS: %s is a host name. -#: ShareNoticePlugin.php:163 #, php-format msgid "Share on %s" msgstr "Розмістити в %s" #. TRANS: Tooltip for image to share a notice on Facebook. -#: ShareNoticePlugin.php:186 msgid "Share on Facebook" msgstr "Розмістити в Facebook" #. TRANS: Plugin description. -#: ShareNoticePlugin.php:219 msgid "" "This plugin allows sharing of notices to Twitter, Facebook and other " "platforms." diff --git a/plugins/SimpleUrl/locale/SimpleUrl.pot b/plugins/SimpleUrl/locale/SimpleUrl.pot index d75df682c7..d2366b4bc4 100644 --- a/plugins/SimpleUrl/locale/SimpleUrl.pot +++ b/plugins/SimpleUrl/locale/SimpleUrl.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/SimpleUrl/locale/br/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/br/LC_MESSAGES/SimpleUrl.po index b8b7dc37ff..abb8ec3bc6 100644 --- a/plugins/SimpleUrl/locale/br/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/br/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/SimpleUrl/locale/de/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/de/LC_MESSAGES/SimpleUrl.po index 161eb788dc..164ca5755e 100644 --- a/plugins/SimpleUrl/locale/de/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/de/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Benutzung des %1$s-URL-Kürzungsdienstes." diff --git a/plugins/SimpleUrl/locale/es/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/es/LC_MESSAGES/SimpleUrl.po index f408784173..99f2025775 100644 --- a/plugins/SimpleUrl/locale/es/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/es/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/SimpleUrl/locale/fi/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/fi/LC_MESSAGES/SimpleUrl.po new file mode 100644 index 0000000000..98175f970d --- /dev/null +++ b/plugins/SimpleUrl/locale/fi/LC_MESSAGES/SimpleUrl.po @@ -0,0 +1,26 @@ +# Translation of StatusNet - SimpleUrl to Finnish (Suomi) +# Exported from translatewiki.net +# +# Author: Nike +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - SimpleUrl\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:44+0000\n" +"Language-Team: Finnish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fi\n" +"X-Message-Group: #out-statusnet-plugin-simpleurl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#, php-format +msgid "Uses %1$s URL-shortener service." +msgstr "Käyttää %1$s URL-lyhennyspalvelua." diff --git a/plugins/SimpleUrl/locale/fr/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/fr/LC_MESSAGES/SimpleUrl.po index a0d157b926..4ccb05571d 100644 --- a/plugins/SimpleUrl/locale/fr/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/fr/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:45+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/SimpleUrl/locale/gl/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/gl/LC_MESSAGES/SimpleUrl.po index b26c8551ca..381379c25d 100644 --- a/plugins/SimpleUrl/locale/gl/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/gl/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:45+0000\n" "Language-Team: Galician \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: gl\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/SimpleUrl/locale/he/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/he/LC_MESSAGES/SimpleUrl.po index 0464888b73..a02975e0f1 100644 --- a/plugins/SimpleUrl/locale/he/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/he/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:54+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:45+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "שימוש בשירות קיצור הכתובות %1$s." diff --git a/plugins/SimpleUrl/locale/ia/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/ia/LC_MESSAGES/SimpleUrl.po index 7c316f18a7..5d91371496 100644 --- a/plugins/SimpleUrl/locale/ia/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/ia/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:55+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:45+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/SimpleUrl/locale/id/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/id/LC_MESSAGES/SimpleUrl.po index e4c4b48fdf..88e415d61d 100644 --- a/plugins/SimpleUrl/locale/id/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/id/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:55+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:45+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Menggunakan layanan pemendek URL %1$s." diff --git a/plugins/SimpleUrl/locale/ja/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/ja/LC_MESSAGES/SimpleUrl.po index 8f781859ed..926ee15b24 100644 --- a/plugins/SimpleUrl/locale/ja/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/ja/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:55+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:45+0000\n" "Language-Team: Japanese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "%1$sをURL短縮サービスとして利用する。" diff --git a/plugins/SimpleUrl/locale/mk/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/mk/LC_MESSAGES/SimpleUrl.po index 68ff2bb8cc..dc9c6c0692 100644 --- a/plugins/SimpleUrl/locale/mk/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/mk/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:55+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:45+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/SimpleUrl/locale/nb/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/nb/LC_MESSAGES/SimpleUrl.po index 037ae501ff..59b673aa3f 100644 --- a/plugins/SimpleUrl/locale/nb/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/nb/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:55+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:45+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Bruker URL-forkortertjenesten %1$s." diff --git a/plugins/SimpleUrl/locale/nl/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/nl/LC_MESSAGES/SimpleUrl.po index e08ad1d4aa..7e151415c3 100644 --- a/plugins/SimpleUrl/locale/nl/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/nl/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:55+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:45+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/SimpleUrl/locale/pt/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/pt/LC_MESSAGES/SimpleUrl.po index e02cf8320b..33474c30cf 100644 --- a/plugins/SimpleUrl/locale/pt/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/pt/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:55+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:45+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Usa o serviço de abreviação de URLs %1$s." diff --git a/plugins/SimpleUrl/locale/ru/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/ru/LC_MESSAGES/SimpleUrl.po index db579ddd05..7c163f8be6 100644 --- a/plugins/SimpleUrl/locale/ru/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/ru/LC_MESSAGES/SimpleUrl.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:55+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:45+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Использование службы сокращения URL %1$s." diff --git a/plugins/SimpleUrl/locale/tl/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/tl/LC_MESSAGES/SimpleUrl.po index f4568ab003..0785258984 100644 --- a/plugins/SimpleUrl/locale/tl/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/tl/LC_MESSAGES/SimpleUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:55+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:45+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/SimpleUrl/locale/uk/LC_MESSAGES/SimpleUrl.po b/plugins/SimpleUrl/locale/uk/LC_MESSAGES/SimpleUrl.po index a155748315..a72b2fd54f 100644 --- a/plugins/SimpleUrl/locale/uk/LC_MESSAGES/SimpleUrl.po +++ b/plugins/SimpleUrl/locale/uk/LC_MESSAGES/SimpleUrl.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SimpleUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:55+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:45+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:28:26+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:18:46+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-simpleurl\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: SimpleUrlPlugin.php:56 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/Sitemap/locale/Sitemap.pot b/plugins/Sitemap/locale/Sitemap.pot index 142406585b..0aad8fc2cc 100644 --- a/plugins/Sitemap/locale/Sitemap.pot +++ b/plugins/Sitemap/locale/Sitemap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/Sitemap/locale/br/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/br/LC_MESSAGES/Sitemap.po index 9e57dc248e..302f3397b5 100644 --- a/plugins/Sitemap/locale/br/LC_MESSAGES/Sitemap.po +++ b/plugins/Sitemap/locale/br/LC_MESSAGES/Sitemap.po @@ -10,82 +10,69 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sitemap\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:46+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-sitemap\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANS: Title for sitemap. -#: sitemapadminpanel.php:53 msgid "Sitemap" msgstr "Tres al lec'hienn" #. TRANS: Instructions for sitemap. -#: sitemapadminpanel.php:64 msgid "Sitemap settings for this StatusNet site" msgstr "" #. TRANS: Field label. -#: sitemapadminpanel.php:167 msgid "Google key" msgstr "Alc'hwez Google" #. TRANS: Title for field label. -#: sitemapadminpanel.php:169 msgid "Google Webmaster Tools verification key." msgstr "" #. TRANS: Field label. -#: sitemapadminpanel.php:175 msgid "Yahoo key" msgstr "Alc'hwez Yahoo" #. TRANS: Title for field label. -#: sitemapadminpanel.php:177 msgid "Yahoo! Site Explorer verification key." msgstr "" #. TRANS: Field label. -#: sitemapadminpanel.php:183 msgid "Bing key" msgstr "Alc'hwez Bing" #. TRANS: Title for field label. -#: sitemapadminpanel.php:185 msgid "Bing Webmaster Tools verification key." msgstr "" #. TRANS: Submit button text to save sitemap settings. -#: sitemapadminpanel.php:200 msgctxt "BUTTON" msgid "Save" msgstr "Enrollañ" #. TRANS: Submit button title to save sitemap settings. -#: sitemapadminpanel.php:204 msgid "Save sitemap settings." msgstr "Enrollañ arventennoù tres al lec'hienn" #. TRANS: Menu item title/tooltip -#: SitemapPlugin.php:211 msgid "Sitemap configuration" msgstr "Kefluniadur tres al lec'hienn" #. TRANS: Menu item for site administration -#: SitemapPlugin.php:213 msgctxt "MENU" msgid "Sitemap" msgstr "Tres al lec'hienn" #. TRANS: Plugin description. -#: SitemapPlugin.php:238 msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." msgstr "" "Gant an astenn-mañ e c'haller sevel tresoù lec'hiennoù evit Bing, Yahoo! ha " diff --git a/plugins/Sitemap/locale/de/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/de/LC_MESSAGES/Sitemap.po index 890e989b8b..ceb65846cf 100644 --- a/plugins/Sitemap/locale/de/LC_MESSAGES/Sitemap.po +++ b/plugins/Sitemap/locale/de/LC_MESSAGES/Sitemap.po @@ -10,82 +10,69 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sitemap\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:46+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-sitemap\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Title for sitemap. -#: sitemapadminpanel.php:53 msgid "Sitemap" msgstr "Sitemap" #. TRANS: Instructions for sitemap. -#: sitemapadminpanel.php:64 msgid "Sitemap settings for this StatusNet site" msgstr "Sitemap-Einstellungen dieser StatusNet-Website" #. TRANS: Field label. -#: sitemapadminpanel.php:167 msgid "Google key" msgstr "Google-Schlüssel" #. TRANS: Title for field label. -#: sitemapadminpanel.php:169 msgid "Google Webmaster Tools verification key." msgstr "Google Webmaster-Tools-Verifikationsschlüssel." #. TRANS: Field label. -#: sitemapadminpanel.php:175 msgid "Yahoo key" msgstr "Yahoo-Schlüssel" #. TRANS: Title for field label. -#: sitemapadminpanel.php:177 msgid "Yahoo! Site Explorer verification key." msgstr "„Yahoo! Site Explorer“-Verifikationsschlüssel" #. TRANS: Field label. -#: sitemapadminpanel.php:183 msgid "Bing key" msgstr "Bing-Schlüssel" #. TRANS: Title for field label. -#: sitemapadminpanel.php:185 msgid "Bing Webmaster Tools verification key." msgstr "Bing Webmaster-Tools-Verifikationsschlüssel." #. TRANS: Submit button text to save sitemap settings. -#: sitemapadminpanel.php:200 msgctxt "BUTTON" msgid "Save" msgstr "Speichern" #. TRANS: Submit button title to save sitemap settings. -#: sitemapadminpanel.php:204 msgid "Save sitemap settings." msgstr "Sitemap-Einstellungen speichern." #. TRANS: Menu item title/tooltip -#: SitemapPlugin.php:211 msgid "Sitemap configuration" msgstr "Sitemap-Konfiguration" #. TRANS: Menu item for site administration -#: SitemapPlugin.php:213 msgctxt "MENU" msgid "Sitemap" msgstr "Sitemap" #. TRANS: Plugin description. -#: SitemapPlugin.php:238 msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." msgstr "" "Dieses Plugin ermöglicht die Erstellung von Sitemaps für Bing, Yahoo! und " diff --git a/plugins/Sitemap/locale/fr/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/fr/LC_MESSAGES/Sitemap.po index 5dcd13ff78..fcf3c264dd 100644 --- a/plugins/Sitemap/locale/fr/LC_MESSAGES/Sitemap.po +++ b/plugins/Sitemap/locale/fr/LC_MESSAGES/Sitemap.po @@ -9,82 +9,69 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sitemap\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:46+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-sitemap\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANS: Title for sitemap. -#: sitemapadminpanel.php:53 msgid "Sitemap" msgstr "Plan du site" #. TRANS: Instructions for sitemap. -#: sitemapadminpanel.php:64 msgid "Sitemap settings for this StatusNet site" msgstr "Paramètres de plan du site pour ce site StatusNet" #. TRANS: Field label. -#: sitemapadminpanel.php:167 msgid "Google key" msgstr "Clé Google" #. TRANS: Title for field label. -#: sitemapadminpanel.php:169 msgid "Google Webmaster Tools verification key." msgstr "Clé de vérification pour les outils Google Webmaster." #. TRANS: Field label. -#: sitemapadminpanel.php:175 msgid "Yahoo key" msgstr "Clé Yahoo" #. TRANS: Title for field label. -#: sitemapadminpanel.php:177 msgid "Yahoo! Site Explorer verification key." msgstr "Clé de vérification pour l’explorateur de site Yahoo!" #. TRANS: Field label. -#: sitemapadminpanel.php:183 msgid "Bing key" msgstr "Clé Bing" #. TRANS: Title for field label. -#: sitemapadminpanel.php:185 msgid "Bing Webmaster Tools verification key." msgstr "Clé de vérification pour les outils Bing Webmaster." #. TRANS: Submit button text to save sitemap settings. -#: sitemapadminpanel.php:200 msgctxt "BUTTON" msgid "Save" msgstr "Sauvegarder" #. TRANS: Submit button title to save sitemap settings. -#: sitemapadminpanel.php:204 msgid "Save sitemap settings." msgstr "Sauvegarder les paramètres de plan du site." #. TRANS: Menu item title/tooltip -#: SitemapPlugin.php:211 msgid "Sitemap configuration" msgstr "Configuration du plan du site" #. TRANS: Menu item for site administration -#: SitemapPlugin.php:213 msgctxt "MENU" msgid "Sitemap" msgstr "Plan du site" #. TRANS: Plugin description. -#: SitemapPlugin.php:238 msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." msgstr "" "Cette extension permet de créer des plans du site pour Bing, Yahoo! et " diff --git a/plugins/Sitemap/locale/ia/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/ia/LC_MESSAGES/Sitemap.po index de14e52422..7ef289cc95 100644 --- a/plugins/Sitemap/locale/ia/LC_MESSAGES/Sitemap.po +++ b/plugins/Sitemap/locale/ia/LC_MESSAGES/Sitemap.po @@ -9,82 +9,69 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sitemap\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:46+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-sitemap\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Title for sitemap. -#: sitemapadminpanel.php:53 msgid "Sitemap" msgstr "Mappa del sito" #. TRANS: Instructions for sitemap. -#: sitemapadminpanel.php:64 msgid "Sitemap settings for this StatusNet site" msgstr "Configuration de mappa de sito pro iste sito StatusNet" #. TRANS: Field label. -#: sitemapadminpanel.php:167 msgid "Google key" msgstr "Clave Google" #. TRANS: Title for field label. -#: sitemapadminpanel.php:169 msgid "Google Webmaster Tools verification key." msgstr "Clave de verification de Google Webmaster Tools." #. TRANS: Field label. -#: sitemapadminpanel.php:175 msgid "Yahoo key" msgstr "Clave Yahoo" #. TRANS: Title for field label. -#: sitemapadminpanel.php:177 msgid "Yahoo! Site Explorer verification key." msgstr "Clave de verification de Yahoo Site Explorer." #. TRANS: Field label. -#: sitemapadminpanel.php:183 msgid "Bing key" msgstr "Clave Bing" #. TRANS: Title for field label. -#: sitemapadminpanel.php:185 msgid "Bing Webmaster Tools verification key." msgstr "Clave de verification de Bing Webmaster Tools." #. TRANS: Submit button text to save sitemap settings. -#: sitemapadminpanel.php:200 msgctxt "BUTTON" msgid "Save" msgstr "Salveguardar" #. TRANS: Submit button title to save sitemap settings. -#: sitemapadminpanel.php:204 msgid "Save sitemap settings." msgstr "Salveguardar configuration de mappa de sito." #. TRANS: Menu item title/tooltip -#: SitemapPlugin.php:211 msgid "Sitemap configuration" msgstr "Configuration de mappa de sito" #. TRANS: Menu item for site administration -#: SitemapPlugin.php:213 msgctxt "MENU" msgid "Sitemap" msgstr "Mappa del sito" #. TRANS: Plugin description. -#: SitemapPlugin.php:238 msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." msgstr "" "Iste plug-in permitte le creation de mappas de sito pro Bing, Yahoo! e " diff --git a/plugins/Sitemap/locale/mk/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/mk/LC_MESSAGES/Sitemap.po index 95ed335ff4..447021376f 100644 --- a/plugins/Sitemap/locale/mk/LC_MESSAGES/Sitemap.po +++ b/plugins/Sitemap/locale/mk/LC_MESSAGES/Sitemap.po @@ -9,82 +9,69 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sitemap\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:46+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-sitemap\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" #. TRANS: Title for sitemap. -#: sitemapadminpanel.php:53 msgid "Sitemap" msgstr "План на мреж. место" #. TRANS: Instructions for sitemap. -#: sitemapadminpanel.php:64 msgid "Sitemap settings for this StatusNet site" msgstr "Нагодувања за планот на ова StatusNet-мрежно место" #. TRANS: Field label. -#: sitemapadminpanel.php:167 msgid "Google key" msgstr "Google-клуч" #. TRANS: Title for field label. -#: sitemapadminpanel.php:169 msgid "Google Webmaster Tools verification key." msgstr "Потврден клуч за Управните алатки на Google." #. TRANS: Field label. -#: sitemapadminpanel.php:175 msgid "Yahoo key" msgstr "Yahoo-клуч" #. TRANS: Title for field label. -#: sitemapadminpanel.php:177 msgid "Yahoo! Site Explorer verification key." msgstr "Потврден клуч за Yahoo! Site Explorer." #. TRANS: Field label. -#: sitemapadminpanel.php:183 msgid "Bing key" msgstr "Bing-клуч" #. TRANS: Title for field label. -#: sitemapadminpanel.php:185 msgid "Bing Webmaster Tools verification key." msgstr "Потврден клуч за Управните алатки на Bing." #. TRANS: Submit button text to save sitemap settings. -#: sitemapadminpanel.php:200 msgctxt "BUTTON" msgid "Save" msgstr "Зачувај" #. TRANS: Submit button title to save sitemap settings. -#: sitemapadminpanel.php:204 msgid "Save sitemap settings." msgstr "Зачувај нагодувања за план." #. TRANS: Menu item title/tooltip -#: SitemapPlugin.php:211 msgid "Sitemap configuration" msgstr "Поставки за план" #. TRANS: Menu item for site administration -#: SitemapPlugin.php:213 msgctxt "MENU" msgid "Sitemap" msgstr "План на мреж. место" #. TRANS: Plugin description. -#: SitemapPlugin.php:238 msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." msgstr "" "Овој приклучок овозможува создавање на планови на мреж. места на Bing, " diff --git a/plugins/Sitemap/locale/nl/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/nl/LC_MESSAGES/Sitemap.po index 128f5cb72d..6fc08a84ca 100644 --- a/plugins/Sitemap/locale/nl/LC_MESSAGES/Sitemap.po +++ b/plugins/Sitemap/locale/nl/LC_MESSAGES/Sitemap.po @@ -9,82 +9,69 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sitemap\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:46+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-sitemap\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Title for sitemap. -#: sitemapadminpanel.php:53 msgid "Sitemap" msgstr "Sitemap" #. TRANS: Instructions for sitemap. -#: sitemapadminpanel.php:64 msgid "Sitemap settings for this StatusNet site" msgstr "Sitemapinstellingen voor deze StatusNetwebsite" #. TRANS: Field label. -#: sitemapadminpanel.php:167 msgid "Google key" msgstr "Googlesleutel" #. TRANS: Title for field label. -#: sitemapadminpanel.php:169 msgid "Google Webmaster Tools verification key." msgstr "Verificatiesleutel voor Google Webmaster Tools." #. TRANS: Field label. -#: sitemapadminpanel.php:175 msgid "Yahoo key" msgstr "Yahoosleutel" #. TRANS: Title for field label. -#: sitemapadminpanel.php:177 msgid "Yahoo! Site Explorer verification key." msgstr "Verificatiesleutel voor Yahoo! Site Explorer." #. TRANS: Field label. -#: sitemapadminpanel.php:183 msgid "Bing key" msgstr "Bingsleutel" #. TRANS: Title for field label. -#: sitemapadminpanel.php:185 msgid "Bing Webmaster Tools verification key." msgstr "Verificatiesleutel voor Bing Webmaster Tools." #. TRANS: Submit button text to save sitemap settings. -#: sitemapadminpanel.php:200 msgctxt "BUTTON" msgid "Save" msgstr "Opslaan" #. TRANS: Submit button title to save sitemap settings. -#: sitemapadminpanel.php:204 msgid "Save sitemap settings." msgstr "Instellingen voor sitemap opslaan." #. TRANS: Menu item title/tooltip -#: SitemapPlugin.php:211 msgid "Sitemap configuration" msgstr "Instellingen voor sitemap" #. TRANS: Menu item for site administration -#: SitemapPlugin.php:213 msgctxt "MENU" msgid "Sitemap" msgstr "Sitemap" #. TRANS: Plugin description. -#: SitemapPlugin.php:238 msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." msgstr "" "Deze plugin maakt het mogelijk sitemaps aan te maken voor Bing, Yahoo! en " diff --git a/plugins/Sitemap/locale/ru/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/ru/LC_MESSAGES/Sitemap.po index 3c3a31414d..022e43937e 100644 --- a/plugins/Sitemap/locale/ru/LC_MESSAGES/Sitemap.po +++ b/plugins/Sitemap/locale/ru/LC_MESSAGES/Sitemap.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sitemap\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:46+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-sitemap\n" @@ -23,68 +23,55 @@ msgstr "" "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" #. TRANS: Title for sitemap. -#: sitemapadminpanel.php:53 msgid "Sitemap" msgstr "Карта сайта" #. TRANS: Instructions for sitemap. -#: sitemapadminpanel.php:64 msgid "Sitemap settings for this StatusNet site" msgstr "Настройки карты этого сайта на движке StatusNet" #. TRANS: Field label. -#: sitemapadminpanel.php:167 msgid "Google key" msgstr "Ключ Google" #. TRANS: Title for field label. -#: sitemapadminpanel.php:169 msgid "Google Webmaster Tools verification key." msgstr "Ключ для подтверждения в инструментах вебмастера Google." #. TRANS: Field label. -#: sitemapadminpanel.php:175 msgid "Yahoo key" msgstr "Ключ Yahoo" #. TRANS: Title for field label. -#: sitemapadminpanel.php:177 msgid "Yahoo! Site Explorer verification key." msgstr "Ключ для подтверждения в Yahoo! Site Explorer." #. TRANS: Field label. -#: sitemapadminpanel.php:183 msgid "Bing key" msgstr "Ключ Bing" #. TRANS: Title for field label. -#: sitemapadminpanel.php:185 msgid "Bing Webmaster Tools verification key." msgstr "Ключ для подтверждения в инструментах вебмастера Bing." #. TRANS: Submit button text to save sitemap settings. -#: sitemapadminpanel.php:200 msgctxt "BUTTON" msgid "Save" msgstr "Сохранить" #. TRANS: Submit button title to save sitemap settings. -#: sitemapadminpanel.php:204 msgid "Save sitemap settings." msgstr "Сохранить настройки карты сайта." #. TRANS: Menu item title/tooltip -#: SitemapPlugin.php:211 msgid "Sitemap configuration" msgstr "Настройки карты сайта" #. TRANS: Menu item for site administration -#: SitemapPlugin.php:213 msgctxt "MENU" msgid "Sitemap" msgstr "Карта сайта" #. TRANS: Plugin description. -#: SitemapPlugin.php:238 msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." msgstr "Этот плагин позволяет создавать карты сайта для Bing, Yahoo! и Google." diff --git a/plugins/Sitemap/locale/tl/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/tl/LC_MESSAGES/Sitemap.po index f3d33006cb..277a8c7402 100644 --- a/plugins/Sitemap/locale/tl/LC_MESSAGES/Sitemap.po +++ b/plugins/Sitemap/locale/tl/LC_MESSAGES/Sitemap.po @@ -9,82 +9,69 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sitemap\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:46+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-sitemap\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Title for sitemap. -#: sitemapadminpanel.php:53 msgid "Sitemap" msgstr "Mapa ng sityo" #. TRANS: Instructions for sitemap. -#: sitemapadminpanel.php:64 msgid "Sitemap settings for this StatusNet site" msgstr "Mga katakdaan ng mapa ng sityo para sa sityong ito ng StatusNet" #. TRANS: Field label. -#: sitemapadminpanel.php:167 msgid "Google key" msgstr "Susi ng Google" #. TRANS: Title for field label. -#: sitemapadminpanel.php:169 msgid "Google Webmaster Tools verification key." msgstr "Susing pantiyak ng mga Kasangkapan ng Maestro ng Web ng Google." #. TRANS: Field label. -#: sitemapadminpanel.php:175 msgid "Yahoo key" msgstr "Susi ng Yahoo" #. TRANS: Title for field label. -#: sitemapadminpanel.php:177 msgid "Yahoo! Site Explorer verification key." msgstr "Susing pantiyak ng Panggalugad ng Sityo ng Yahoo!" #. TRANS: Field label. -#: sitemapadminpanel.php:183 msgid "Bing key" msgstr "Susi ng Bing" #. TRANS: Title for field label. -#: sitemapadminpanel.php:185 msgid "Bing Webmaster Tools verification key." msgstr "Susing pantiyak ng mga Kasangkapan ng Maestro ng Web ng Bing." #. TRANS: Submit button text to save sitemap settings. -#: sitemapadminpanel.php:200 msgctxt "BUTTON" msgid "Save" msgstr "Sagipin" #. TRANS: Submit button title to save sitemap settings. -#: sitemapadminpanel.php:204 msgid "Save sitemap settings." msgstr "Sagipin ang mga katakdaan ng mapa ng sityo." #. TRANS: Menu item title/tooltip -#: SitemapPlugin.php:211 msgid "Sitemap configuration" msgstr "Pagkakaayos ng mapa ng sityo" #. TRANS: Menu item for site administration -#: SitemapPlugin.php:213 msgctxt "MENU" msgid "Sitemap" msgstr "Mapa ng sityo" #. TRANS: Plugin description. -#: SitemapPlugin.php:238 msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." msgstr "" "Nagpapahintulot ang pampasak na ito ng paglikha ng mga mapa ng sityo para sa " diff --git a/plugins/Sitemap/locale/uk/LC_MESSAGES/Sitemap.po b/plugins/Sitemap/locale/uk/LC_MESSAGES/Sitemap.po index 2505524903..38de5854b7 100644 --- a/plugins/Sitemap/locale/uk/LC_MESSAGES/Sitemap.po +++ b/plugins/Sitemap/locale/uk/LC_MESSAGES/Sitemap.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - Sitemap\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:46+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:31+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-sitemap\n" @@ -23,69 +23,56 @@ msgstr "" "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" #. TRANS: Title for sitemap. -#: sitemapadminpanel.php:53 msgid "Sitemap" msgstr "Карта сайту" #. TRANS: Instructions for sitemap. -#: sitemapadminpanel.php:64 msgid "Sitemap settings for this StatusNet site" msgstr "Налаштування карти сайту на даному сайті StatusNet" #. TRANS: Field label. -#: sitemapadminpanel.php:167 msgid "Google key" msgstr "Ключ Google" #. TRANS: Title for field label. -#: sitemapadminpanel.php:169 msgid "Google Webmaster Tools verification key." msgstr "Ключ підтвердження Google Webmaster Tools" #. TRANS: Field label. -#: sitemapadminpanel.php:175 msgid "Yahoo key" msgstr "Ключ Yahoo" #. TRANS: Title for field label. -#: sitemapadminpanel.php:177 msgid "Yahoo! Site Explorer verification key." msgstr "Ключ підтвердження Yahoo! Site Explorer" #. TRANS: Field label. -#: sitemapadminpanel.php:183 msgid "Bing key" msgstr "Ключ Bing" #. TRANS: Title for field label. -#: sitemapadminpanel.php:185 msgid "Bing Webmaster Tools verification key." msgstr "Ключ підтвердження Bing Webmaster Tools" #. TRANS: Submit button text to save sitemap settings. -#: sitemapadminpanel.php:200 msgctxt "BUTTON" msgid "Save" msgstr "Зберегти" #. TRANS: Submit button title to save sitemap settings. -#: sitemapadminpanel.php:204 msgid "Save sitemap settings." msgstr "Зберегти налаштування карти сайту." #. TRANS: Menu item title/tooltip -#: SitemapPlugin.php:211 msgid "Sitemap configuration" msgstr "Конфігурація карти сайту" #. TRANS: Menu item for site administration -#: SitemapPlugin.php:213 msgctxt "MENU" msgid "Sitemap" msgstr "Карта сайту" #. TRANS: Plugin description. -#: SitemapPlugin.php:238 msgid "This plugin allows creation of sitemaps for Bing, Yahoo! and Google." msgstr "" "Цей додаток дозволяє створювати карти сайту для Bing, Yahoo! та Google." diff --git a/plugins/SlicedFavorites/locale/SlicedFavorites.pot b/plugins/SlicedFavorites/locale/SlicedFavorites.pot index 5e6912450e..b06fa5b055 100644 --- a/plugins/SlicedFavorites/locale/SlicedFavorites.pot +++ b/plugins/SlicedFavorites/locale/SlicedFavorites.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/SlicedFavorites/locale/de/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/de/LC_MESSAGES/SlicedFavorites.po index 661e6bab1c..818bd29f05 100644 --- a/plugins/SlicedFavorites/locale/de/LC_MESSAGES/SlicedFavorites.po +++ b/plugins/SlicedFavorites/locale/de/LC_MESSAGES/SlicedFavorites.po @@ -9,26 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SlicedFavorites\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:47+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Plugin description. -#: SlicedFavoritesPlugin.php:129 msgid "Shows timelines of popular notices for defined subsets of users." msgstr "" "Zeigt Zeitleisten beliebter Nachrichten für eine definierte Teilmenge von " "Benutzern." #. TRANS: Client exception. -#: favoritedsliceaction.php:56 msgid "Unknown favorites slice." msgstr "Unbekannter Favoriten-Slice." diff --git a/plugins/SlicedFavorites/locale/fr/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/fr/LC_MESSAGES/SlicedFavorites.po index 5ec335d54b..46ef38b2c7 100644 --- a/plugins/SlicedFavorites/locale/fr/LC_MESSAGES/SlicedFavorites.po +++ b/plugins/SlicedFavorites/locale/fr/LC_MESSAGES/SlicedFavorites.po @@ -9,26 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SlicedFavorites\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:47+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #. TRANS: Plugin description. -#: SlicedFavoritesPlugin.php:129 msgid "Shows timelines of popular notices for defined subsets of users." msgstr "" "Affiche des listes d’avis populaires pour des sous-ensembles définis " "d’utilisateurs." #. TRANS: Client exception. -#: favoritedsliceaction.php:56 msgid "Unknown favorites slice." msgstr "Tranche préférée inconnue." diff --git a/plugins/SlicedFavorites/locale/he/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/he/LC_MESSAGES/SlicedFavorites.po index 67e4130f48..5fe148a537 100644 --- a/plugins/SlicedFavorites/locale/he/LC_MESSAGES/SlicedFavorites.po +++ b/plugins/SlicedFavorites/locale/he/LC_MESSAGES/SlicedFavorites.po @@ -9,24 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SlicedFavorites\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:47+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Plugin description. -#: SlicedFavoritesPlugin.php:129 msgid "Shows timelines of popular notices for defined subsets of users." msgstr "הצגת צירי זמן של התרעות נפוצות לקבוצות מסוימות של משתמשים." #. TRANS: Client exception. -#: favoritedsliceaction.php:56 msgid "Unknown favorites slice." msgstr "נתח מועדפים בלתי ידוע." diff --git a/plugins/SlicedFavorites/locale/ia/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/ia/LC_MESSAGES/SlicedFavorites.po index d129160ef3..ac6a0ed225 100644 --- a/plugins/SlicedFavorites/locale/ia/LC_MESSAGES/SlicedFavorites.po +++ b/plugins/SlicedFavorites/locale/ia/LC_MESSAGES/SlicedFavorites.po @@ -9,24 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SlicedFavorites\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:47+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Plugin description. -#: SlicedFavoritesPlugin.php:129 msgid "Shows timelines of popular notices for defined subsets of users." msgstr "Monstra chronologias de notas popular pro certe gruppos de usatores." #. TRANS: Client exception. -#: favoritedsliceaction.php:56 msgid "Unknown favorites slice." msgstr "Section de favorites incognite." diff --git a/plugins/SlicedFavorites/locale/id/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/id/LC_MESSAGES/SlicedFavorites.po index 0c0b8651b1..d2458cb36b 100644 --- a/plugins/SlicedFavorites/locale/id/LC_MESSAGES/SlicedFavorites.po +++ b/plugins/SlicedFavorites/locale/id/LC_MESSAGES/SlicedFavorites.po @@ -9,26 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SlicedFavorites\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:47+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" "Plural-Forms: nplurals=1; plural=0;\n" #. TRANS: Plugin description. -#: SlicedFavoritesPlugin.php:129 msgid "Shows timelines of popular notices for defined subsets of users." msgstr "" "Menampilkan garis waktu pemberitahuan populer untuk sekumpulan pengguna yang " "ditentukan." #. TRANS: Client exception. -#: favoritedsliceaction.php:56 msgid "Unknown favorites slice." msgstr "Pembagian favorit tidak diketahui." diff --git a/plugins/SlicedFavorites/locale/mk/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/mk/LC_MESSAGES/SlicedFavorites.po index c7634d1b04..6bab68029e 100644 --- a/plugins/SlicedFavorites/locale/mk/LC_MESSAGES/SlicedFavorites.po +++ b/plugins/SlicedFavorites/locale/mk/LC_MESSAGES/SlicedFavorites.po @@ -9,26 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SlicedFavorites\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:47+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" #. TRANS: Plugin description. -#: SlicedFavoritesPlugin.php:129 msgid "Shows timelines of popular notices for defined subsets of users." msgstr "" "Прикажува хронологии на популарни забелешки за определени подмножества " "корисници." #. TRANS: Client exception. -#: favoritedsliceaction.php:56 msgid "Unknown favorites slice." msgstr "Непознато парче од бендисаните." diff --git a/plugins/SlicedFavorites/locale/nl/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/nl/LC_MESSAGES/SlicedFavorites.po index 26bf1f4780..dbe6b473da 100644 --- a/plugins/SlicedFavorites/locale/nl/LC_MESSAGES/SlicedFavorites.po +++ b/plugins/SlicedFavorites/locale/nl/LC_MESSAGES/SlicedFavorites.po @@ -9,26 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SlicedFavorites\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:47+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Plugin description. -#: SlicedFavoritesPlugin.php:129 msgid "Shows timelines of popular notices for defined subsets of users." msgstr "" "Geeft de tijdlijnen van populaire mededelingen weer voor ingestelde groepen " "gebruikers." #. TRANS: Client exception. -#: favoritedsliceaction.php:56 msgid "Unknown favorites slice." msgstr "Onbekende favorietengebruikersgroep." diff --git a/plugins/SlicedFavorites/locale/ru/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/ru/LC_MESSAGES/SlicedFavorites.po index e26c3aa0bf..512f20d9ab 100644 --- a/plugins/SlicedFavorites/locale/ru/LC_MESSAGES/SlicedFavorites.po +++ b/plugins/SlicedFavorites/locale/ru/LC_MESSAGES/SlicedFavorites.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SlicedFavorites\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:47+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" @@ -23,13 +23,11 @@ msgstr "" "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" #. TRANS: Plugin description. -#: SlicedFavoritesPlugin.php:129 msgid "Shows timelines of popular notices for defined subsets of users." msgstr "" "Показывает хронологию популярных уведомлений для определенных подмножеств " "пользователей." #. TRANS: Client exception. -#: favoritedsliceaction.php:56 msgid "Unknown favorites slice." msgstr "Неизвестный срез избранного." diff --git a/plugins/SlicedFavorites/locale/tl/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/tl/LC_MESSAGES/SlicedFavorites.po index ed9b1df3ec..42d8621bab 100644 --- a/plugins/SlicedFavorites/locale/tl/LC_MESSAGES/SlicedFavorites.po +++ b/plugins/SlicedFavorites/locale/tl/LC_MESSAGES/SlicedFavorites.po @@ -9,26 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SlicedFavorites\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:47+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #. TRANS: Plugin description. -#: SlicedFavoritesPlugin.php:129 msgid "Shows timelines of popular notices for defined subsets of users." msgstr "" "Nagpapakita ng mga guhit ng panahon ng tanyag na mga pabatid para sa " "inilarawang mga kabahaging pangkat ng mga tagagamit." #. TRANS: Client exception. -#: favoritedsliceaction.php:56 msgid "Unknown favorites slice." msgstr "Hindi nalalamang hiwa ng mga paborito." diff --git a/plugins/SlicedFavorites/locale/uk/LC_MESSAGES/SlicedFavorites.po b/plugins/SlicedFavorites/locale/uk/LC_MESSAGES/SlicedFavorites.po index cc08b9b994..8c717a3b55 100644 --- a/plugins/SlicedFavorites/locale/uk/LC_MESSAGES/SlicedFavorites.po +++ b/plugins/SlicedFavorites/locale/uk/LC_MESSAGES/SlicedFavorites.po @@ -9,13 +9,13 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SlicedFavorites\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:56+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:47+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:32+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-slicedfavorites\n" @@ -23,11 +23,9 @@ msgstr "" "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" #. TRANS: Plugin description. -#: SlicedFavoritesPlugin.php:129 msgid "Shows timelines of popular notices for defined subsets of users." msgstr "Показує стрічки популярних дописів для певних підмножин користувачів." #. TRANS: Client exception. -#: favoritedsliceaction.php:56 msgid "Unknown favorites slice." msgstr "Невідома вибірка обраних повідомлень." diff --git a/plugins/SphinxSearch/locale/SphinxSearch.pot b/plugins/SphinxSearch/locale/SphinxSearch.pot index 977547f73c..a99ad2a690 100644 --- a/plugins/SphinxSearch/locale/SphinxSearch.pot +++ b/plugins/SphinxSearch/locale/SphinxSearch.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,6 +16,11 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +#. TRANS: Server exception thrown when a database name cannot be identified. +#: sphinxsearch.php:126 +msgid "Sphinx search could not identify database name." +msgstr "" + #. TRANS: Server exception. #: SphinxSearchPlugin.php:87 msgid "Sphinx PHP extension must be installed." @@ -25,8 +30,3 @@ msgstr "" #: SphinxSearchPlugin.php:118 msgid "Plugin for Sphinx search backend." msgstr "" - -#. TRANS: Server exception thrown when a database name cannot be identified. -#: sphinxsearch.php:96 -msgid "Sphinx search could not identify database name." -msgstr "" diff --git a/plugins/SphinxSearch/locale/de/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/de/LC_MESSAGES/SphinxSearch.po index 2b49580dd1..f2bd62e932 100644 --- a/plugins/SphinxSearch/locale/de/LC_MESSAGES/SphinxSearch.po +++ b/plugins/SphinxSearch/locale/de/LC_MESSAGES/SphinxSearch.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SphinxSearch\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:57+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:48+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:09+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:16+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#. TRANS: Server exception thrown when a database name cannot be identified. +msgid "Sphinx search could not identify database name." +msgstr "Sphinx-Suche konnte den Datenbanknamen nicht identifizieren." + #. TRANS: Server exception. -#: SphinxSearchPlugin.php:87 msgid "Sphinx PHP extension must be installed." msgstr "Sphinx-PHP-Erweiterung muss installiert sein." #. TRANS: Plugin description. -#: SphinxSearchPlugin.php:118 msgid "Plugin for Sphinx search backend." msgstr "Plugin für das Sphinx-Suchbackend." - -#. TRANS: Server exception thrown when a database name cannot be identified. -#: sphinxsearch.php:96 -msgid "Sphinx search could not identify database name." -msgstr "Sphinx-Suche konnte den Datenbanknamen nicht identifizieren." diff --git a/plugins/SphinxSearch/locale/fr/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/fr/LC_MESSAGES/SphinxSearch.po index eb3da48b50..ed04bda3da 100644 --- a/plugins/SphinxSearch/locale/fr/LC_MESSAGES/SphinxSearch.po +++ b/plugins/SphinxSearch/locale/fr/LC_MESSAGES/SphinxSearch.po @@ -9,30 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SphinxSearch\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:57+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:48+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:09+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:16+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#. TRANS: Server exception thrown when a database name cannot be identified. +msgid "Sphinx search could not identify database name." +msgstr "" +"La recherche Sphinx n’a pas pu identifier le nom de la base de données." + #. TRANS: Server exception. -#: SphinxSearchPlugin.php:87 msgid "Sphinx PHP extension must be installed." msgstr "L’extension PHP Sphinx doit être installée." #. TRANS: Plugin description. -#: SphinxSearchPlugin.php:118 msgid "Plugin for Sphinx search backend." msgstr "Extension pour le moteur de recherche Sphinx." - -#. TRANS: Server exception thrown when a database name cannot be identified. -#: sphinxsearch.php:96 -msgid "Sphinx search could not identify database name." -msgstr "" -"La recherche Sphinx n’a pas pu identifier le nom de la base de données." diff --git a/plugins/SphinxSearch/locale/ia/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/ia/LC_MESSAGES/SphinxSearch.po index 35b4d81481..6893432344 100644 --- a/plugins/SphinxSearch/locale/ia/LC_MESSAGES/SphinxSearch.po +++ b/plugins/SphinxSearch/locale/ia/LC_MESSAGES/SphinxSearch.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SphinxSearch\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:57+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:48+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:09+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:16+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#. TRANS: Server exception thrown when a database name cannot be identified. +msgid "Sphinx search could not identify database name." +msgstr "Le recerca Sphinx non poteva identificar le nomine del base de datos." + #. TRANS: Server exception. -#: SphinxSearchPlugin.php:87 msgid "Sphinx PHP extension must be installed." msgstr "Le extension PHP Sphinx debe esser installate." #. TRANS: Plugin description. -#: SphinxSearchPlugin.php:118 msgid "Plugin for Sphinx search backend." msgstr "Plug-in pro back-end de recerca Sphinx." - -#. TRANS: Server exception thrown when a database name cannot be identified. -#: sphinxsearch.php:96 -msgid "Sphinx search could not identify database name." -msgstr "Le recerca Sphinx non poteva identificar le nomine del base de datos." diff --git a/plugins/SphinxSearch/locale/mk/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/mk/LC_MESSAGES/SphinxSearch.po index fba5987035..efc1da721f 100644 --- a/plugins/SphinxSearch/locale/mk/LC_MESSAGES/SphinxSearch.po +++ b/plugins/SphinxSearch/locale/mk/LC_MESSAGES/SphinxSearch.po @@ -9,29 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SphinxSearch\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:27:57+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:48+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:09+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:16+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" +#. TRANS: Server exception thrown when a database name cannot be identified. +msgid "Sphinx search could not identify database name." +msgstr "Пребарувањето со Sphinx не можеше да го утврди името на базата." + #. TRANS: Server exception. -#: SphinxSearchPlugin.php:87 msgid "Sphinx PHP extension must be installed." msgstr "Мора да се инсталира PHP-додатокот Sphinx" #. TRANS: Plugin description. -#: SphinxSearchPlugin.php:118 msgid "Plugin for Sphinx search backend." msgstr "Приклучок за пребарување со Sphinx." - -#. TRANS: Server exception thrown when a database name cannot be identified. -#: sphinxsearch.php:96 -msgid "Sphinx search could not identify database name." -msgstr "Пребарувањето со Sphinx не можеше да го утврди името на базата." diff --git a/plugins/SphinxSearch/locale/nl/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/nl/LC_MESSAGES/SphinxSearch.po index 01db579045..ec873b4fd0 100644 --- a/plugins/SphinxSearch/locale/nl/LC_MESSAGES/SphinxSearch.po +++ b/plugins/SphinxSearch/locale/nl/LC_MESSAGES/SphinxSearch.po @@ -9,30 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SphinxSearch\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:00+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:48+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:09+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:16+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#. TRANS: Server exception thrown when a database name cannot be identified. +msgid "Sphinx search could not identify database name." +msgstr "" +"Het was voor Sphinx search niet mogelijk een database te identificeren." + #. TRANS: Server exception. -#: SphinxSearchPlugin.php:87 msgid "Sphinx PHP extension must be installed." msgstr "De PHP-extensie Sphinx moet geïnstalleerd. zijn." #. TRANS: Plugin description. -#: SphinxSearchPlugin.php:118 msgid "Plugin for Sphinx search backend." msgstr "Plug-in voor een Sphinxbackend." - -#. TRANS: Server exception thrown when a database name cannot be identified. -#: sphinxsearch.php:96 -msgid "Sphinx search could not identify database name." -msgstr "" -"Het was voor Sphinx search niet mogelijk een database te identificeren." diff --git a/plugins/SphinxSearch/locale/ru/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/ru/LC_MESSAGES/SphinxSearch.po index b43b59fea2..7738da887e 100644 --- a/plugins/SphinxSearch/locale/ru/LC_MESSAGES/SphinxSearch.po +++ b/plugins/SphinxSearch/locale/ru/LC_MESSAGES/SphinxSearch.po @@ -9,30 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SphinxSearch\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:03+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:48+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:09+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:16+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" +#. TRANS: Server exception thrown when a database name cannot be identified. +msgid "Sphinx search could not identify database name." +msgstr "Поиск Sphinx не смог определить название базы данных." + #. TRANS: Server exception. -#: SphinxSearchPlugin.php:87 msgid "Sphinx PHP extension must be installed." msgstr "Необходимо установить расширение Sphinx для PHP." #. TRANS: Plugin description. -#: SphinxSearchPlugin.php:118 msgid "Plugin for Sphinx search backend." msgstr "Плагин для поискового движка Sphinx." - -#. TRANS: Server exception thrown when a database name cannot be identified. -#: sphinxsearch.php:96 -msgid "Sphinx search could not identify database name." -msgstr "Поиск Sphinx не смог определить название базы данных." diff --git a/plugins/SphinxSearch/locale/tl/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/tl/LC_MESSAGES/SphinxSearch.po index c1fa820bd8..a1a1dec25c 100644 --- a/plugins/SphinxSearch/locale/tl/LC_MESSAGES/SphinxSearch.po +++ b/plugins/SphinxSearch/locale/tl/LC_MESSAGES/SphinxSearch.po @@ -9,30 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SphinxSearch\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:03+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:48+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:09+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:16+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#. TRANS: Server exception thrown when a database name cannot be identified. +msgid "Sphinx search could not identify database name." +msgstr "" +"Hindi makilala ng panghanap ng Sphinx ang pangalan ng kalipunan ng dato." + #. TRANS: Server exception. -#: SphinxSearchPlugin.php:87 msgid "Sphinx PHP extension must be installed." msgstr "Dapat na iluklok ang dugtong na PHP ng Sphinx." #. TRANS: Plugin description. -#: SphinxSearchPlugin.php:118 msgid "Plugin for Sphinx search backend." msgstr "Pamasak para sa wakas ng likuran ng panghanap ng Sphinx." - -#. TRANS: Server exception thrown when a database name cannot be identified. -#: sphinxsearch.php:96 -msgid "Sphinx search could not identify database name." -msgstr "" -"Hindi makilala ng panghanap ng Sphinx ang pangalan ng kalipunan ng dato." diff --git a/plugins/SphinxSearch/locale/uk/LC_MESSAGES/SphinxSearch.po b/plugins/SphinxSearch/locale/uk/LC_MESSAGES/SphinxSearch.po index 245d5d14e4..461f045723 100644 --- a/plugins/SphinxSearch/locale/uk/LC_MESSAGES/SphinxSearch.po +++ b/plugins/SphinxSearch/locale/uk/LC_MESSAGES/SphinxSearch.po @@ -9,30 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SphinxSearch\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:03+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:48+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:09+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:16+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-sphinxsearch\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" +#. TRANS: Server exception thrown when a database name cannot be identified. +msgid "Sphinx search could not identify database name." +msgstr "Пошук Sphinx не може визначити ім’я бази даних." + #. TRANS: Server exception. -#: SphinxSearchPlugin.php:87 msgid "Sphinx PHP extension must be installed." msgstr "Розширення Sphinx PHP повинно бути встановлено." #. TRANS: Plugin description. -#: SphinxSearchPlugin.php:118 msgid "Plugin for Sphinx search backend." msgstr "Додаток для пошуку за допомогою Sphinx." - -#. TRANS: Server exception thrown when a database name cannot be identified. -#: sphinxsearch.php:96 -msgid "Sphinx search could not identify database name." -msgstr "Пошук Sphinx не може визначити ім’я бази даних." diff --git a/plugins/SphinxSearch/sphinxsearch.php b/plugins/SphinxSearch/sphinxsearch.php index 1ce9bfd72d..46b5e3e28a 100644 --- a/plugins/SphinxSearch/sphinxsearch.php +++ b/plugins/SphinxSearch/sphinxsearch.php @@ -73,9 +73,39 @@ class SphinxSearch extends SearchEngine function set_sort_mode($mode) { - if ('chron' === $mode) { + switch ($mode) { + case 'chron': $this->sphinx->SetSortMode(SPH_SORT_ATTR_DESC, 'created_ts'); return $this->target->orderBy('id desc'); + break; + case 'reverse_chron': + $this->sphinx->SetSortMode(SPH_SORT_ATTR_ASC, 'created_ts'); + return $this->target->orderBy('id asc'); + break; + case 'nickname_desc': + if ($this->table != 'profile') { + throw new Exception( + 'nickname_desc sort mode can only be use when searching profile.' + ); + } else { + $this->sphinx->SetSortMode(SPH_SORT_ATTR_DESC, 'nickname'); + return $this->target->orderBy('id desc'); + } + break; + case 'nickname_asc': + if ($this->table != 'profile') { + throw new Exception( + 'nickname_desc sort mode can only be use when searching profile.' + ); + } else { + $this->sphinx->SetSortMode(SPH_SORT_ATTR_ASC, 'nickname'); + return $this->target->orderBy('id asc'); + } + break; + default: + $this->sphinx->SetSortMode(SPH_SORT_ATTR_DESC, 'created_ts'); + return $this->target->orderBy('id desc'); + break; } } diff --git a/plugins/StrictTransportSecurity/locale/StrictTransportSecurity.pot b/plugins/StrictTransportSecurity/locale/StrictTransportSecurity.pot index 8b5836eb3e..a6cbdab185 100644 --- a/plugins/StrictTransportSecurity/locale/StrictTransportSecurity.pot +++ b/plugins/StrictTransportSecurity/locale/StrictTransportSecurity.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/StrictTransportSecurity/locale/ia/LC_MESSAGES/StrictTransportSecurity.po b/plugins/StrictTransportSecurity/locale/ia/LC_MESSAGES/StrictTransportSecurity.po new file mode 100644 index 0000000000..274bfa2cec --- /dev/null +++ b/plugins/StrictTransportSecurity/locale/ia/LC_MESSAGES/StrictTransportSecurity.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - StrictTransportSecurity to Interlingua (Interlingua) +# Exported from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - StrictTransportSecurity\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:49+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-stricttransportsecurity\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "" +"The Strict Transport Security plugin implements the Strict Transport " +"Security header, improving the security of HTTPS only sites." +msgstr "" +"Le plug-in \"Strict Transport Security\" (securitate rigorose de " +"transmission) implementa le capite (header) \"Strict Transport Security\", " +"meliorante le securitate de sitos attingibile per HTTPS sol." diff --git a/plugins/StrictTransportSecurity/locale/mk/LC_MESSAGES/StrictTransportSecurity.po b/plugins/StrictTransportSecurity/locale/mk/LC_MESSAGES/StrictTransportSecurity.po new file mode 100644 index 0000000000..7706fe7300 --- /dev/null +++ b/plugins/StrictTransportSecurity/locale/mk/LC_MESSAGES/StrictTransportSecurity.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - StrictTransportSecurity to Macedonian (Македонски) +# Exported from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - StrictTransportSecurity\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:49+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-stricttransportsecurity\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +msgid "" +"The Strict Transport Security plugin implements the Strict Transport " +"Security header, improving the security of HTTPS only sites." +msgstr "" +"Приклучокот Strict Transport Security става заглавие за строга безбедност " +"при пренос, подобрувајќи ја безбедноста на мреж. места со само HTTPS." diff --git a/plugins/StrictTransportSecurity/locale/nl/LC_MESSAGES/StrictTransportSecurity.po b/plugins/StrictTransportSecurity/locale/nl/LC_MESSAGES/StrictTransportSecurity.po new file mode 100644 index 0000000000..1cde174173 --- /dev/null +++ b/plugins/StrictTransportSecurity/locale/nl/LC_MESSAGES/StrictTransportSecurity.po @@ -0,0 +1,29 @@ +# Translation of StatusNet - StrictTransportSecurity to Dutch (Nederlands) +# Exported from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - StrictTransportSecurity\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:49+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-stricttransportsecurity\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "" +"The Strict Transport Security plugin implements the Strict Transport " +"Security header, improving the security of HTTPS only sites." +msgstr "" +"Implementeert de Strict Transport Security-header, waardoor de beveiliging " +"van sites die alleen HTTPS gebruiken wordt verbeterd." diff --git a/plugins/StrictTransportSecurity/locale/uk/LC_MESSAGES/StrictTransportSecurity.po b/plugins/StrictTransportSecurity/locale/uk/LC_MESSAGES/StrictTransportSecurity.po new file mode 100644 index 0000000000..61eae4632d --- /dev/null +++ b/plugins/StrictTransportSecurity/locale/uk/LC_MESSAGES/StrictTransportSecurity.po @@ -0,0 +1,30 @@ +# Translation of StatusNet - StrictTransportSecurity to Ukrainian (Українська) +# Exported from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - StrictTransportSecurity\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:49+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-08 01:22:12+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-stricttransportsecurity\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +msgid "" +"The Strict Transport Security plugin implements the Strict Transport " +"Security header, improving the security of HTTPS only sites." +msgstr "" +"Додаток Strict Transport Security реалізує режим суворої безпеки, " +"забезпечуючи безпеку лише для https-сайтів." diff --git a/plugins/SubMirror/SubMirrorPlugin.php b/plugins/SubMirror/SubMirrorPlugin.php index 38a4c40d48..a9cb2315b4 100644 --- a/plugins/SubMirror/SubMirrorPlugin.php +++ b/plugins/SubMirror/SubMirrorPlugin.php @@ -35,6 +35,9 @@ class SubMirrorPlugin extends Plugin { $m->connect('settings/mirror', array('action' => 'mirrorsettings')); + $m->connect('settings/mirror/add/:provider', + array('action' => 'mirrorsettings'), + array('provider' => '[A-Za-z0-9_-]+')); $m->connect('settings/mirror/add', array('action' => 'addmirror')); $m->connect('settings/mirror/edit', diff --git a/plugins/SubMirror/actions/addmirror.php b/plugins/SubMirror/actions/addmirror.php index 8c3a9740f3..31805c1669 100644 --- a/plugins/SubMirror/actions/addmirror.php +++ b/plugins/SubMirror/actions/addmirror.php @@ -59,11 +59,27 @@ class AddMirrorAction extends BaseMirrorAction function prepare($args) { parent::prepare($args); - $this->feedurl = $this->validateFeedUrl($this->trimmed('feedurl')); + $feedurl = $this->getFeedUrl(); + $this->feedurl = $this->validateFeedUrl($feedurl); $this->profile = $this->profileForFeed($this->feedurl); return true; } + function getFeedUrl() + { + $provider = $this->trimmed('provider'); + switch ($provider) { + case 'feed': + return $this->trimmed('feedurl'); + case 'twitter': + $screenie = $this->trimmed('screen_name'); + $base = 'http://api.twitter.com/1/statuses/user_timeline.atom?screen_name='; + return $base . urlencode($screenie); + default: + throw new Exception('Internal form error: unrecognized feed provider.'); + } + } + function saveMirror() { if ($this->oprofile->subscribe()) { diff --git a/plugins/SubMirror/actions/basemirror.php b/plugins/SubMirror/actions/basemirror.php index 3e3431103f..6a9109d13a 100644 --- a/plugins/SubMirror/actions/basemirror.php +++ b/plugins/SubMirror/actions/basemirror.php @@ -68,7 +68,9 @@ abstract class BaseMirrorAction extends Action if (common_valid_http_url($url)) { return $url; } else { - $this->clientError(_m("Invalid feed URL.")); + // TRANS: Client error displayed when entering an invalid URL for a feed. + // TRANS: %s is the invalid feed URL. + $this->clientError(sprintf(_m("Invalid feed URL: %s."), $url)); } } @@ -79,8 +81,9 @@ abstract class BaseMirrorAction extends Action if ($profile && $profile->id != $this->user->id) { return $profile; } - // TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. - $this->clientError(_m("Invalid profile for mirroring.")); + // TRANS: Error message returned to user when setting up feed mirroring, + // TRANS: but we were unable to resolve the given URL to a working feed. + $this->clientError(_m('Invalid profile for mirroring.')); } /** @@ -98,7 +101,7 @@ abstract class BaseMirrorAction extends Action $oprofile = Ostatus_profile::ensureFeedURL($url); } if ($oprofile->isGroup()) { - $this->clientError(_m("Can't mirror a StatusNet group at this time.")); + $this->clientError(_m("Cannot mirror a StatusNet group at this time.")); } $this->oprofile = $oprofile; // @fixme ugly side effect :D return $oprofile->localProfile(); diff --git a/plugins/SubMirror/actions/mirrorsettings.php b/plugins/SubMirror/actions/mirrorsettings.php index 856099afa3..90bbf3dffb 100644 --- a/plugins/SubMirror/actions/mirrorsettings.php +++ b/plugins/SubMirror/actions/mirrorsettings.php @@ -65,18 +65,30 @@ class MirrorSettingsAction extends SettingsAction function showContent() { $user = common_current_user(); + $provider = $this->trimmed('provider'); + if ($provider) { + $this->showAddFeedForm($provider); + } else { + $this->elementStart('div', array('id' => 'add-mirror')); + $this->showAddWizard(); + $this->elementEnd('div'); - $this->showAddFeedForm(); - - $mirror = new SubMirror(); - $mirror->subscriber = $user->id; - if ($mirror->find()) { - while ($mirror->fetch()) { - $this->showFeedForm($mirror); + $mirror = new SubMirror(); + $mirror->subscriber = $user->id; + if ($mirror->find()) { + while ($mirror->fetch()) { + $this->showFeedForm($mirror); + } } } } + function showAddWizard() + { + $form = new AddMirrorWizard($this); + $form->show(); + } + function showFeedForm($mirror) { $profile = Profile::staticGet('id', $mirror->subscribed); @@ -88,10 +100,47 @@ class MirrorSettingsAction extends SettingsAction function showAddFeedForm() { - $form = new AddMirrorForm($this); + switch ($this->arg('provider')) { + case 'statusnet': + break; + case 'twitter': + $form = new AddTwitterMirrorForm($this); + break; + case 'wordpress': + break; + case 'linkedin': + break; + case 'feed': + default: + $form = new AddMirrorForm($this); + } $form->show(); } + /** + * + * @param array $args + * + * @todo move the ajax display handling to common code + */ + function handle($args) + { + if ($this->boolean('ajax')) { + header('Content-Type: text/html;charset=utf-8'); + $this->elementStart('html'); + $this->elementStart('head'); + $this->element('title', null, _('Provider add')); + $this->elementEnd('head'); + $this->elementStart('body'); + + $this->showAddFeedForm(); + + $this->elementEnd('body'); + $this->elementEnd('html'); + } else { + return parent::handle($args); + } + } /** * Handle a POST request * @@ -108,4 +157,16 @@ class MirrorSettingsAction extends SettingsAction $nav = new SubGroupNav($this, common_current_user()); $nav->show(); } + + function showScripts() + { + parent::showScripts(); + $this->script('plugins/SubMirror/js/mirrorsettings.js'); + } + + function showStylesheets() + { + parent::showStylesheets(); + $this->cssLink('plugins/SubMirror/css/mirrorsettings.css'); + } } diff --git a/plugins/SubMirror/css/mirrorsettings.css b/plugins/SubMirror/css/mirrorsettings.css new file mode 100644 index 0000000000..c91bb73b6b --- /dev/null +++ b/plugins/SubMirror/css/mirrorsettings.css @@ -0,0 +1,26 @@ +/* undo insane stuff from core styles */ +#add-mirror-wizard img { + display: inline; +} + +/* we need #something to override most of the #content crap */ + +#add-mirror-wizard { + margin-left: 20px; + margin-right: 20px; +} + +#add-mirror-wizard .provider-list table { + width: 100%; +} + +#add-mirror-wizard .provider-heading img { + vertical-align: middle; +} +#add-mirror-wizard .provider-heading { + cursor: pointer; +} +#add-mirror-wizard .provider-detail fieldset { + margin-top: 8px; /* hack */ + margin-bottom: 8px; /* hack */ +} \ No newline at end of file diff --git a/plugins/SubMirror/images/providers/facebook.png b/plugins/SubMirror/images/providers/facebook.png new file mode 100644 index 0000000000..13a53aa63c Binary files /dev/null and b/plugins/SubMirror/images/providers/facebook.png differ diff --git a/plugins/SubMirror/images/providers/feed.png b/plugins/SubMirror/images/providers/feed.png new file mode 100644 index 0000000000..bd1da4f914 Binary files /dev/null and b/plugins/SubMirror/images/providers/feed.png differ diff --git a/plugins/SubMirror/images/providers/linkedin.png b/plugins/SubMirror/images/providers/linkedin.png new file mode 100644 index 0000000000..82103d1f3f Binary files /dev/null and b/plugins/SubMirror/images/providers/linkedin.png differ diff --git a/plugins/SubMirror/images/providers/statusnet.png b/plugins/SubMirror/images/providers/statusnet.png new file mode 100644 index 0000000000..6edca21697 Binary files /dev/null and b/plugins/SubMirror/images/providers/statusnet.png differ diff --git a/plugins/SubMirror/images/providers/twitter.png b/plugins/SubMirror/images/providers/twitter.png new file mode 100644 index 0000000000..41dabc883e Binary files /dev/null and b/plugins/SubMirror/images/providers/twitter.png differ diff --git a/plugins/SubMirror/images/providers/wordpress.png b/plugins/SubMirror/images/providers/wordpress.png new file mode 100644 index 0000000000..dfafc75a2f Binary files /dev/null and b/plugins/SubMirror/images/providers/wordpress.png differ diff --git a/plugins/SubMirror/js/mirrorsettings.js b/plugins/SubMirror/js/mirrorsettings.js new file mode 100644 index 0000000000..a27abe7ad5 --- /dev/null +++ b/plugins/SubMirror/js/mirrorsettings.js @@ -0,0 +1,47 @@ +$(function() { + /** + * Append 'ajax=1' parameter onto URL. + */ + function ajaxize(url) { + if (url.indexOf('?') == '-1') { + return url + '?ajax=1'; + } else { + return url + '&ajax=1'; + } + } + + var addMirror = $('#add-mirror'); + var wizard = $('#add-mirror-wizard'); + if (wizard.length > 0) { + var list = wizard.find('.provider-list'); + var providers = list.find('.provider-heading'); + providers.click(function(event) { + console.log(this); + var targetUrl = $(this).find('a').attr('href'); + if (targetUrl) { + // Make sure we don't accidentally follow the direct link + event.preventDefault(); + + var node = this; + function showNew() { + var detail = $('').insertAfter(node); + detail.load(ajaxize(targetUrl), function(responseText, testStatus, xhr) { + detail.slideDown('fast', function() { + detail.find('input[type="text"]').focus(); + }); + }); + } + + var old = addMirror.find('.provider-detail'); + if (old.length) { + old.slideUp('fast', function() { + old.remove(); + showNew(); + }); + } else { + showNew(); + } + } + }); + } +}); \ No newline at end of file diff --git a/plugins/SubMirror/lib/addmirrorform.php b/plugins/SubMirror/lib/addmirrorform.php index e1d50c272c..17edbd5e96 100644 --- a/plugins/SubMirror/lib/addmirrorform.php +++ b/plugins/SubMirror/lib/addmirrorform.php @@ -49,6 +49,7 @@ class AddMirrorForm extends Form */ function formData() { + $this->out->hidden('provider', 'feed'); $this->out->elementStart('fieldset'); $this->out->elementStart('ul'); @@ -67,7 +68,7 @@ class AddMirrorForm extends Form $this->out->elementEnd('fieldset'); } - private function doInput($id, $name, $label, $value=null, $instructions=null) + protected function doInput($id, $name, $label, $value=null, $instructions=null) { $this->out->element('label', array('for' => $id), $label); $attrs = array('name' => $name, diff --git a/plugins/SubMirror/lib/addmirrorwizard.php b/plugins/SubMirror/lib/addmirrorwizard.php new file mode 100644 index 0000000000..920db0bc9c --- /dev/null +++ b/plugins/SubMirror/lib/addmirrorwizard.php @@ -0,0 +1,187 @@ +. + * + * @package StatusNet + * @copyright 2010-2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +class AddMirrorWizard extends Widget +{ + /** + * Name of the form + * + * Sub-classes should overload this with the name of their form. + * + * @return void + */ + function formLegend() + { + } + + /** + * Visible or invisible data elements + * + * Display the form fields that make up the data of the form. + * Sub-classes should overload this to show their data. + * + * @return void + */ + function show() + { + $this->out->elementStart('div', array('id' => 'add-mirror-wizard')); + + $providers = $this->providers(); + $this->showProviders($providers); + + $this->out->elementEnd('div'); + } + + function providers() + { + return array( + /* + // We could accept hostname & username combos here, or + // webfingery combinations as for remote users. + array( + 'id' => 'statusnet', + 'name' => _m('StatusNet'), + ), + */ + // Accepts a Twitter username and pulls their user timeline as a + // public Atom feed. Requires a working alternate hub which, one + // hopes, is getting timely updates. + array( + 'id' => 'twitter', + 'name' => _m('Twitter'), + ), + /* + // WordPress was on our list some whiles ago, but not sure + // what we can actually do here. Search on Wordpress.com hosted + // sites, or ? + array( + 'id' => 'wordpress', + 'name' => _m('WordPress'), + ), + */ + /* + // In theory, Facebook lets you pull public updates over RSS, + // but the URLs for your own update feed that I can find from + // 2009-era websites no longer seem to work and there's no + // good current documentation. May not still be available... + // Mirroring from an FB account is probably better done with + // the dedicated plugin. (As of March 2011) + array( + 'id' => 'facebook', + 'name' => _m('Facebook'), + ), + */ + /* + // LinkedIn doesn't currently seem to have public feeds + // for users or groups (March 2011) + array( + 'id' => 'linkedin', + 'name' => _m('LinkedIn'), + ), + */ + array( + 'id' => 'feed', + 'name' => _m('RSS or Atom feed'), + ), + ); + } + + function showProviders(array $providers) + { + $out = $this->out; + + $out->elementStart('div', 'provider-list'); + $out->element('h2', null, _m('Select a feed provider')); + $out->elementStart('table'); + foreach ($providers as $provider) { + $icon = common_path('plugins/SubMirror/images/providers/' . $provider['id'] . '.png'); + $targetUrl = common_local_url('mirrorsettings', array('provider' => $provider['id'])); + + $out->elementStart('tr', array('class' => 'provider')); + $out->elementStart('td'); + + $out->elementStart('div', 'provider-heading'); + $out->element('img', array('src' => $icon)); + $out->element('a', array('href' => $targetUrl), $provider['name']); + $out->elementEnd('div'); + + $out->elementEnd('td'); + $out->elementEnd('tr'); + } + $out->elementEnd('table'); + $out->elementEnd('div'); + } + + /** + * Buttons for form actions + * + * Submit and cancel buttons (or whatever) + * Sub-classes should overload this to show their own buttons. + * + * @return void + */ + function formActions() + { + } + + /** + * ID of the form + * + * Should be unique on the page. Sub-classes should overload this + * to show their own IDs. + * + * @return string ID of the form + */ + function id() + { + return 'add-mirror-wizard'; + } + + /** + * Action of the form. + * + * URL to post to. Should be overloaded by subclasses to give + * somewhere to post to. + * + * @return string URL to post to + */ + function action() + { + return common_local_url('addmirror'); + } + + /** + * Class of the form. + * + * @return string the form's class + */ + function formClass() + { + return 'form_settings'; + } +} diff --git a/plugins/SubMirror/lib/addtwittermirrorform.php b/plugins/SubMirror/lib/addtwittermirrorform.php new file mode 100644 index 0000000000..eb28aa038f --- /dev/null +++ b/plugins/SubMirror/lib/addtwittermirrorform.php @@ -0,0 +1,60 @@ +. + * + * @package StatusNet + * @copyright 2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +class AddTwitterMirrorForm extends AddMirrorForm +{ + + /** + * Visible or invisible data elements + * + * Display the form fields that make up the data of the form. + * Sub-classes should overload this to show their data. + * + * @return void + */ + function formData() + { + $this->out->hidden('provider', 'twitter'); + $this->out->elementStart('fieldset'); + + $this->out->elementStart('ul'); + + $this->li(); + $this->doInput('addmirror-feedurl', + 'screen_name', + _m('Twitter username:'), + $this->out->trimmed('screen_name')); + $this->unli(); + + $this->li(); + $this->out->submit('addmirror-save', _m('BUTTON','Add feed')); + $this->unli(); + $this->out->elementEnd('ul'); + $this->out->elementEnd('fieldset'); + } +} diff --git a/plugins/SubMirror/locale/SubMirror.pot b/plugins/SubMirror/locale/SubMirror.pot index 2c331f21bc..58375a0d6f 100644 --- a/plugins/SubMirror/locale/SubMirror.pot +++ b/plugins/SubMirror/locale/SubMirror.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,25 +16,100 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: SubMirrorPlugin.php:90 +#. TRANS: Client error displayed when entering an invalid URL for a feed. +#. TRANS: %s is the invalid feed URL. +#: actions/basemirror.php:73 +#, php-format +msgid "Invalid feed URL: %s." +msgstr "" + +#. TRANS: Error message returned to user when setting up feed mirroring, +#. TRANS: but we were unable to resolve the given URL to a working feed. +#: actions/basemirror.php:86 +msgid "Invalid profile for mirroring." +msgstr "" + +#: actions/basemirror.php:104 +msgid "Cannot mirror a StatusNet group at this time." +msgstr "" + +#: actions/basemirror.php:118 +msgid "This action only accepts POST requests." +msgstr "" + +#: actions/basemirror.php:126 +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +#: actions/basemirror.php:136 +msgid "Not logged in." +msgstr "" + +#: actions/basemirror.php:159 +msgid "Subscribed" +msgstr "" + +#: actions/editmirror.php:68 +msgid "Requested invalid profile to edit." +msgstr "" + +#: actions/editmirror.php:86 +msgid "Bad form data." +msgstr "" + +#. TRANS: Client error thrown when a mirror request is made and no result is retrieved. +#: actions/editmirror.php:95 +msgid "Requested edit of missing mirror." +msgstr "" + +#: actions/addmirror.php:88 +msgid "Could not subscribe to feed." +msgstr "" + +#. TRANS: Title. +#: actions/mirrorsettings.php:42 +msgid "Feed mirror settings" +msgstr "" + +#. TRANS: Instructions. +#: actions/mirrorsettings.php:54 +msgid "" +"You can mirror updates from many RSS and Atom feeds into your StatusNet " +"timeline!" +msgstr "" + +#: SubMirrorPlugin.php:93 msgid "Pull feeds into your timeline!" msgstr "" #. TRANS: SubMirror plugin menu item on user settings page. -#: SubMirrorPlugin.php:110 +#: SubMirrorPlugin.php:113 msgctxt "MENU" msgid "Mirroring" msgstr "" #. TRANS: SubMirror plugin tooltip for user settings menu item. -#: SubMirrorPlugin.php:112 +#: SubMirrorPlugin.php:115 msgid "Configure mirroring of posts from other feeds" msgstr "" -#: SubMirrorPlugin.php:183 +#: SubMirrorPlugin.php:186 msgid "Mirrored feeds" msgstr "" +#: lib/addmirrorform.php:60 +msgid "Web page or feed URL:" +msgstr "" + +#: lib/addmirrorform.php:65 lib/addtwittermirrorform.php:55 +msgctxt "BUTTON" +msgid "Add feed" +msgstr "" + +#: lib/addtwittermirrorform.php:50 +msgid "Twitter username:" +msgstr "" + #: lib/editmirrorform.php:83 msgctxt "LABEL" msgid "Remote feed:" @@ -66,69 +141,14 @@ msgstr "" msgid "Stop mirroring" msgstr "" -#: lib/addmirrorform.php:59 -msgid "Web page or feed URL:" +#: lib/addmirrorwizard.php:76 +msgid "Twitter" msgstr "" -#: lib/addmirrorform.php:64 -msgctxt "BUTTON" -msgid "Add feed" +#: lib/addmirrorwizard.php:109 +msgid "RSS or Atom feed" msgstr "" -#: actions/basemirror.php:71 -msgid "Invalid feed URL." -msgstr "" - -#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. -#: actions/basemirror.php:83 -msgid "Invalid profile for mirroring." -msgstr "" - -#: actions/basemirror.php:101 -msgid "Can't mirror a StatusNet group at this time." -msgstr "" - -#: actions/basemirror.php:115 -msgid "This action only accepts POST requests." -msgstr "" - -#: actions/basemirror.php:123 -msgid "There was a problem with your session token. Try again, please." -msgstr "" - -#: actions/basemirror.php:133 -msgid "Not logged in." -msgstr "" - -#: actions/basemirror.php:156 -msgid "Subscribed" -msgstr "" - -#: actions/editmirror.php:68 -msgid "Requested invalid profile to edit." -msgstr "" - -#: actions/editmirror.php:86 -msgid "Bad form data." -msgstr "" - -#. TRANS: Client error thrown when a mirror request is made and no result is retrieved. -#: actions/editmirror.php:95 -msgid "Requested edit of missing mirror." -msgstr "" - -#: actions/addmirror.php:72 -msgid "Could not subscribe to feed." -msgstr "" - -#. TRANS: Title. -#: actions/mirrorsettings.php:42 -msgid "Feed mirror settings" -msgstr "" - -#. TRANS: Instructions. -#: actions/mirrorsettings.php:54 -msgid "" -"You can mirror updates from many RSS and Atom feeds into your StatusNet " -"timeline!" +#: lib/addmirrorwizard.php:119 +msgid "Select a feed provider" msgstr "" diff --git a/plugins/SubMirror/locale/de/LC_MESSAGES/SubMirror.po b/plugins/SubMirror/locale/de/LC_MESSAGES/SubMirror.po index 07d1c2a376..4160cd5d34 100644 --- a/plugins/SubMirror/locale/de/LC_MESSAGES/SubMirror.po +++ b/plugins/SubMirror/locale/de/LC_MESSAGES/SubMirror.po @@ -9,133 +9,124 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubMirror\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:05+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:51+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:11+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 13:01:06+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-submirror\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SubMirrorPlugin.php:90 +#. TRANS: Client error displayed when entering an invalid URL for a feed. +#. TRANS: %s is the invalid feed URL. +#, fuzzy, php-format +msgid "Invalid feed URL: %s." +msgstr "Ungültige Feed-URL." + +#. TRANS: Error message returned to user when setting up feed mirroring, +#. TRANS: but we were unable to resolve the given URL to a working feed. +msgid "Invalid profile for mirroring." +msgstr "Ungültiges Profil für das Spiegeln." + +#, fuzzy +msgid "Cannot mirror a StatusNet group at this time." +msgstr "Kann im Moment keine StatusNet-Gruppe spiegeln." + +msgid "This action only accepts POST requests." +msgstr "Diese Aktion nimmt nur POST-Requests." + +msgid "There was a problem with your session token. Try again, please." +msgstr "Es gab ein Problem mit deinem Sitzungstoken. Bitte versuche es erneut." + +msgid "Not logged in." +msgstr "Nicht angemeldet." + +msgid "Subscribed" +msgstr "Abonniert" + +msgid "Requested invalid profile to edit." +msgstr "Ungültiges Profil zum Bearbeiten angefordert." + +msgid "Bad form data." +msgstr "Ungültige Formulardaten." + +#. TRANS: Client error thrown when a mirror request is made and no result is retrieved. +msgid "Requested edit of missing mirror." +msgstr "Bearbeitung eines fehlenden Spiegels angefordert." + +msgid "Could not subscribe to feed." +msgstr "Konnte den Feed nicht abonnieren." + +#. TRANS: Title. +msgid "Feed mirror settings" +msgstr "Feed-Spiegel-Einstellungen" + +#. TRANS: Instructions. +msgid "" +"You can mirror updates from many RSS and Atom feeds into your StatusNet " +"timeline!" +msgstr "" + msgid "Pull feeds into your timeline!" msgstr "Ziehe Feeds in deine Zeitleiste!" #. TRANS: SubMirror plugin menu item on user settings page. -#: SubMirrorPlugin.php:110 msgctxt "MENU" msgid "Mirroring" msgstr "Spiegeln" #. TRANS: SubMirror plugin tooltip for user settings menu item. -#: SubMirrorPlugin.php:112 msgid "Configure mirroring of posts from other feeds" msgstr "Konfiguration des Spiegelns von Posts von anderen Feeds" -#: SubMirrorPlugin.php:183 msgid "Mirrored feeds" msgstr "Gespiegelte Feeds" -#: lib/editmirrorform.php:83 +msgid "Web page or feed URL:" +msgstr "Webseiten- oder Feed-URL:" + +msgctxt "BUTTON" +msgid "Add feed" +msgstr "Feed hinzufügen" + +msgid "Twitter username:" +msgstr "" + msgctxt "LABEL" msgid "Remote feed:" msgstr "Remote-Feed:" -#: lib/editmirrorform.php:87 msgctxt "LABEL" msgid "Local user" msgstr "Lokaler Benutzer" -#: lib/editmirrorform.php:93 msgid "Mirroring style" msgstr "Spiegelungs-Stil" -#: lib/editmirrorform.php:95 msgid "" "Repeat: reference the original user's post (sometimes shows as 'RT @blah')" msgstr "" "Wiederholen: Auf den Post des ursprünglichen Benutzers beziehen (manchmal " "als „RT @blah“ dargestellt)" -#: lib/editmirrorform.php:96 msgid "Repost the content under my account" msgstr "Den Inhalt mit meinem Konto erneut posten" -#: lib/editmirrorform.php:115 msgid "Save" msgstr "Speichern" -#: lib/editmirrorform.php:117 msgid "Stop mirroring" msgstr "Mit dem Spiegeln aufhören" -#: lib/addmirrorform.php:59 -msgid "Web page or feed URL:" -msgstr "Webseiten- oder Feed-URL:" - -#: lib/addmirrorform.php:64 -msgctxt "BUTTON" -msgid "Add feed" -msgstr "Feed hinzufügen" - -#: actions/basemirror.php:71 -msgid "Invalid feed URL." -msgstr "Ungültige Feed-URL." - -#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. -#: actions/basemirror.php:83 -msgid "Invalid profile for mirroring." -msgstr "Ungültiges Profil für das Spiegeln." - -#: actions/basemirror.php:101 -msgid "Can't mirror a StatusNet group at this time." -msgstr "Kann im Moment keine StatusNet-Gruppe spiegeln." - -#: actions/basemirror.php:115 -msgid "This action only accepts POST requests." -msgstr "Diese Aktion nimmt nur POST-Requests." - -#: actions/basemirror.php:123 -msgid "There was a problem with your session token. Try again, please." -msgstr "Es gab ein Problem mit deinem Sitzungstoken. Bitte versuche es erneut." - -#: actions/basemirror.php:133 -msgid "Not logged in." -msgstr "Nicht angemeldet." - -#: actions/basemirror.php:156 -msgid "Subscribed" -msgstr "Abonniert" - -#: actions/editmirror.php:68 -msgid "Requested invalid profile to edit." -msgstr "Ungültiges Profil zum Bearbeiten angefordert." - -#: actions/editmirror.php:86 -msgid "Bad form data." -msgstr "Ungültige Formulardaten." - -#. TRANS: Client error thrown when a mirror request is made and no result is retrieved. -#: actions/editmirror.php:95 -msgid "Requested edit of missing mirror." -msgstr "Bearbeitung eines fehlenden Spiegels angefordert." - -#: actions/addmirror.php:72 -msgid "Could not subscribe to feed." -msgstr "Konnte den Feed nicht abonnieren." - -#. TRANS: Title. -#: actions/mirrorsettings.php:42 -msgid "Feed mirror settings" -msgstr "Feed-Spiegel-Einstellungen" - -#. TRANS: Instructions. -#: actions/mirrorsettings.php:54 -msgid "" -"You can mirror updates from many RSS and Atom feeds into your StatusNet " -"timeline!" +msgid "Twitter" +msgstr "" + +msgid "RSS or Atom feed" +msgstr "" + +msgid "Select a feed provider" msgstr "" diff --git a/plugins/SubMirror/locale/fr/LC_MESSAGES/SubMirror.po b/plugins/SubMirror/locale/fr/LC_MESSAGES/SubMirror.po index 2933870198..24b67fe31b 100644 --- a/plugins/SubMirror/locale/fr/LC_MESSAGES/SubMirror.po +++ b/plugins/SubMirror/locale/fr/LC_MESSAGES/SubMirror.po @@ -10,137 +10,128 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubMirror\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:05+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:51+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:11+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 13:01:06+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-submirror\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: SubMirrorPlugin.php:90 -msgid "Pull feeds into your timeline!" -msgstr "Importez des flux d’information dans votre agenda !" - -#. TRANS: SubMirror plugin menu item on user settings page. -#: SubMirrorPlugin.php:110 -msgctxt "MENU" -msgid "Mirroring" -msgstr "Mise en miroir" - -#. TRANS: SubMirror plugin tooltip for user settings menu item. -#: SubMirrorPlugin.php:112 -msgid "Configure mirroring of posts from other feeds" -msgstr "Configurer la mise en miroir de messages provenant d’autres flux" - -#: SubMirrorPlugin.php:183 -msgid "Mirrored feeds" -msgstr "Flux en miroir" - -#: lib/editmirrorform.php:83 -msgctxt "LABEL" -msgid "Remote feed:" -msgstr "Flux distant :" - -#: lib/editmirrorform.php:87 -msgctxt "LABEL" -msgid "Local user" -msgstr "Utilisateur local" - -#: lib/editmirrorform.php:93 -msgid "Mirroring style" -msgstr "Style de mise en miroir" - -#: lib/editmirrorform.php:95 -msgid "" -"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" -msgstr "" -"Répéter : référence le message de l’auteur d’origine (montré parfois comme « " -"RT @blabla »)" - -#: lib/editmirrorform.php:96 -msgid "Repost the content under my account" -msgstr "Reposter le contenu sous mon compte" - -#: lib/editmirrorform.php:115 -msgid "Save" -msgstr "Sauvegarder" - -#: lib/editmirrorform.php:117 -msgid "Stop mirroring" -msgstr "Arrêter le miroir" - -#: lib/addmirrorform.php:59 -msgid "Web page or feed URL:" -msgstr "Adresse URL de la page Web ou du flux :" - -#: lib/addmirrorform.php:64 -msgctxt "BUTTON" -msgid "Add feed" -msgstr "Ajouter le flux" - -#: actions/basemirror.php:71 -msgid "Invalid feed URL." +#. TRANS: Client error displayed when entering an invalid URL for a feed. +#. TRANS: %s is the invalid feed URL. +#, fuzzy, php-format +msgid "Invalid feed URL: %s." msgstr "Adresse URL de flux invalide." -#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. -#: actions/basemirror.php:83 +#. TRANS: Error message returned to user when setting up feed mirroring, +#. TRANS: but we were unable to resolve the given URL to a working feed. msgid "Invalid profile for mirroring." msgstr "Profil invalide pour la mise en miroir." -#: actions/basemirror.php:101 -msgid "Can't mirror a StatusNet group at this time." +#, fuzzy +msgid "Cannot mirror a StatusNet group at this time." msgstr "Impossible de mettre en miroir un groupe StatusNet actuellement." -#: actions/basemirror.php:115 msgid "This action only accepts POST requests." msgstr "Cette action n’accepte que les requêtes de type POST." -#: actions/basemirror.php:123 msgid "There was a problem with your session token. Try again, please." msgstr "" "Un problème est survenu avec votre jeton de session. Veuillez essayer à " "nouveau." -#: actions/basemirror.php:133 msgid "Not logged in." msgstr "Non connecté." -#: actions/basemirror.php:156 msgid "Subscribed" msgstr "Abonné" -#: actions/editmirror.php:68 msgid "Requested invalid profile to edit." msgstr "Profil invalide demandé à modifier." -#: actions/editmirror.php:86 msgid "Bad form data." msgstr "Données de formulaire erronées." #. TRANS: Client error thrown when a mirror request is made and no result is retrieved. -#: actions/editmirror.php:95 msgid "Requested edit of missing mirror." msgstr "Miroir inexistant demandé à modifier." -#: actions/addmirror.php:72 msgid "Could not subscribe to feed." msgstr "Impossible de vous abonner au flux." #. TRANS: Title. -#: actions/mirrorsettings.php:42 msgid "Feed mirror settings" msgstr "Paramètres de miroir de flux" #. TRANS: Instructions. -#: actions/mirrorsettings.php:54 msgid "" "You can mirror updates from many RSS and Atom feeds into your StatusNet " "timeline!" msgstr "" "Vous pouvez mettre en miroir dans votre agenda StatusNet les mises à jour de " "nombreux flux RSS et Atom !" + +msgid "Pull feeds into your timeline!" +msgstr "Importez des flux d’information dans votre agenda !" + +#. TRANS: SubMirror plugin menu item on user settings page. +msgctxt "MENU" +msgid "Mirroring" +msgstr "Mise en miroir" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +msgid "Configure mirroring of posts from other feeds" +msgstr "Configurer la mise en miroir de messages provenant d’autres flux" + +msgid "Mirrored feeds" +msgstr "Flux en miroir" + +msgid "Web page or feed URL:" +msgstr "Adresse URL de la page Web ou du flux :" + +msgctxt "BUTTON" +msgid "Add feed" +msgstr "Ajouter le flux" + +msgid "Twitter username:" +msgstr "" + +msgctxt "LABEL" +msgid "Remote feed:" +msgstr "Flux distant :" + +msgctxt "LABEL" +msgid "Local user" +msgstr "Utilisateur local" + +msgid "Mirroring style" +msgstr "Style de mise en miroir" + +msgid "" +"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" +msgstr "" +"Répéter : référence le message de l’auteur d’origine (montré parfois comme « " +"RT @blabla »)" + +msgid "Repost the content under my account" +msgstr "Reposter le contenu sous mon compte" + +msgid "Save" +msgstr "Sauvegarder" + +msgid "Stop mirroring" +msgstr "Arrêter le miroir" + +msgid "Twitter" +msgstr "" + +msgid "RSS or Atom feed" +msgstr "" + +msgid "Select a feed provider" +msgstr "" diff --git a/plugins/SubMirror/locale/ia/LC_MESSAGES/SubMirror.po b/plugins/SubMirror/locale/ia/LC_MESSAGES/SubMirror.po index 48fa001c4b..64f6872104 100644 --- a/plugins/SubMirror/locale/ia/LC_MESSAGES/SubMirror.po +++ b/plugins/SubMirror/locale/ia/LC_MESSAGES/SubMirror.po @@ -9,135 +9,126 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubMirror\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:05+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:51+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:11+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 13:01:06+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-submirror\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SubMirrorPlugin.php:90 -msgid "Pull feeds into your timeline!" -msgstr "Importar syndicationes in tu chronologia!" - -#. TRANS: SubMirror plugin menu item on user settings page. -#: SubMirrorPlugin.php:110 -msgctxt "MENU" -msgid "Mirroring" -msgstr "Republication" - -#. TRANS: SubMirror plugin tooltip for user settings menu item. -#: SubMirrorPlugin.php:112 -msgid "Configure mirroring of posts from other feeds" -msgstr "Configurar le republication de messages de altere syndicationes" - -#: SubMirrorPlugin.php:183 -msgid "Mirrored feeds" -msgstr "Speculos de syndicationes" - -#: lib/editmirrorform.php:83 -msgctxt "LABEL" -msgid "Remote feed:" -msgstr "Syndication remote:" - -#: lib/editmirrorform.php:87 -msgctxt "LABEL" -msgid "Local user" -msgstr "Usator local" - -#: lib/editmirrorform.php:93 -msgid "Mirroring style" -msgstr "Stilo de republication" - -#: lib/editmirrorform.php:95 -msgid "" -"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" -msgstr "" -"Repeter: referer al message del usator original (monstrate a vices como 'RT " -"@pseudonymo')" - -#: lib/editmirrorform.php:96 -msgid "Repost the content under my account" -msgstr "Republicar le contento sub mi conto" - -#: lib/editmirrorform.php:115 -msgid "Save" -msgstr "Salveguardar" - -#: lib/editmirrorform.php:117 -msgid "Stop mirroring" -msgstr "Cessar le republication" - -#: lib/addmirrorform.php:59 -msgid "Web page or feed URL:" -msgstr "URL de pagina web o syndication:" - -#: lib/addmirrorform.php:64 -msgctxt "BUTTON" -msgid "Add feed" -msgstr "Adder syndication" - -#: actions/basemirror.php:71 -msgid "Invalid feed URL." +#. TRANS: Client error displayed when entering an invalid URL for a feed. +#. TRANS: %s is the invalid feed URL. +#, fuzzy, php-format +msgid "Invalid feed URL: %s." msgstr "URL de syndication invalide." -#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. -#: actions/basemirror.php:83 +#. TRANS: Error message returned to user when setting up feed mirroring, +#. TRANS: but we were unable to resolve the given URL to a working feed. msgid "Invalid profile for mirroring." msgstr "Profilo invalide pro republication." -#: actions/basemirror.php:101 -msgid "Can't mirror a StatusNet group at this time." +#, fuzzy +msgid "Cannot mirror a StatusNet group at this time." msgstr "Al presente il es impossibile republicar un gruppo StatusNet." -#: actions/basemirror.php:115 msgid "This action only accepts POST requests." msgstr "Iste action accepta solmente le requestas de typo POST." -#: actions/basemirror.php:123 msgid "There was a problem with your session token. Try again, please." msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." -#: actions/basemirror.php:133 msgid "Not logged in." msgstr "Tu non ha aperite un session." -#: actions/basemirror.php:156 msgid "Subscribed" msgstr "Subscribite" -#: actions/editmirror.php:68 msgid "Requested invalid profile to edit." msgstr "Requestava un profilo invalide a modificar." -#: actions/editmirror.php:86 msgid "Bad form data." msgstr "Mal datos de formulario." #. TRANS: Client error thrown when a mirror request is made and no result is retrieved. -#: actions/editmirror.php:95 msgid "Requested edit of missing mirror." msgstr "Requestava le modification de un speculo mancante." -#: actions/addmirror.php:72 msgid "Could not subscribe to feed." msgstr "Non poteva subscriber al syndication." #. TRANS: Title. -#: actions/mirrorsettings.php:42 msgid "Feed mirror settings" msgstr "Configuration de speculo de syndication" #. TRANS: Instructions. -#: actions/mirrorsettings.php:54 msgid "" "You can mirror updates from many RSS and Atom feeds into your StatusNet " "timeline!" msgstr "" "Tu pote republicar actualisationes de multe syndicationes RSS e Atom in tu " "chronologia de StatusNet!" + +msgid "Pull feeds into your timeline!" +msgstr "Importar syndicationes in tu chronologia!" + +#. TRANS: SubMirror plugin menu item on user settings page. +msgctxt "MENU" +msgid "Mirroring" +msgstr "Republication" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +msgid "Configure mirroring of posts from other feeds" +msgstr "Configurar le republication de messages de altere syndicationes" + +msgid "Mirrored feeds" +msgstr "Speculos de syndicationes" + +msgid "Web page or feed URL:" +msgstr "URL de pagina web o syndication:" + +msgctxt "BUTTON" +msgid "Add feed" +msgstr "Adder syndication" + +msgid "Twitter username:" +msgstr "" + +msgctxt "LABEL" +msgid "Remote feed:" +msgstr "Syndication remote:" + +msgctxt "LABEL" +msgid "Local user" +msgstr "Usator local" + +msgid "Mirroring style" +msgstr "Stilo de republication" + +msgid "" +"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" +msgstr "" +"Repeter: referer al message del usator original (monstrate a vices como 'RT " +"@pseudonymo')" + +msgid "Repost the content under my account" +msgstr "Republicar le contento sub mi conto" + +msgid "Save" +msgstr "Salveguardar" + +msgid "Stop mirroring" +msgstr "Cessar le republication" + +msgid "Twitter" +msgstr "" + +msgid "RSS or Atom feed" +msgstr "" + +msgid "Select a feed provider" +msgstr "" diff --git a/plugins/SubMirror/locale/mk/LC_MESSAGES/SubMirror.po b/plugins/SubMirror/locale/mk/LC_MESSAGES/SubMirror.po index 208fd8db5b..2ed461631e 100644 --- a/plugins/SubMirror/locale/mk/LC_MESSAGES/SubMirror.po +++ b/plugins/SubMirror/locale/mk/LC_MESSAGES/SubMirror.po @@ -9,135 +9,125 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubMirror\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:05+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:51+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:11+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 13:01:06+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-submirror\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: SubMirrorPlugin.php:90 -msgid "Pull feeds into your timeline!" -msgstr "Повлекувајте каналски емитувања во Вашата хронологија!" +#. TRANS: Client error displayed when entering an invalid URL for a feed. +#. TRANS: %s is the invalid feed URL. +#, php-format +msgid "Invalid feed URL: %s." +msgstr "Неважечка URL-адреса за каналот: %s." -#. TRANS: SubMirror plugin menu item on user settings page. -#: SubMirrorPlugin.php:110 -msgctxt "MENU" -msgid "Mirroring" -msgstr "Отсликување" - -#. TRANS: SubMirror plugin tooltip for user settings menu item. -#: SubMirrorPlugin.php:112 -msgid "Configure mirroring of posts from other feeds" -msgstr "Нагодување на отсликувањето на објавите од други канали" - -#: SubMirrorPlugin.php:183 -msgid "Mirrored feeds" -msgstr "Огледални канали" - -#: lib/editmirrorform.php:83 -msgctxt "LABEL" -msgid "Remote feed:" -msgstr "Далечински канал:" - -#: lib/editmirrorform.php:87 -msgctxt "LABEL" -msgid "Local user" -msgstr "Локален корисник" - -#: lib/editmirrorform.php:93 -msgid "Mirroring style" -msgstr "Стил на отсликување" - -#: lib/editmirrorform.php:95 -msgid "" -"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" -msgstr "" -"Повторување: наведете ја објавата на изворниот корисник (понекогаш се " -"прикажува како „RT @blah“)" - -#: lib/editmirrorform.php:96 -msgid "Repost the content under my account" -msgstr "Објави ја содржината под мојата сметка" - -#: lib/editmirrorform.php:115 -msgid "Save" -msgstr "Зачувај" - -#: lib/editmirrorform.php:117 -msgid "Stop mirroring" -msgstr "Престани со отсликување" - -#: lib/addmirrorform.php:59 -msgid "Web page or feed URL:" -msgstr "Мреж. страница или URL на каналот:" - -#: lib/addmirrorform.php:64 -msgctxt "BUTTON" -msgid "Add feed" -msgstr "Додај канал" - -#: actions/basemirror.php:71 -msgid "Invalid feed URL." -msgstr "Неважечка URL-адреса за каналот." - -#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. -#: actions/basemirror.php:83 +#. TRANS: Error message returned to user when setting up feed mirroring, +#. TRANS: but we were unable to resolve the given URL to a working feed. msgid "Invalid profile for mirroring." msgstr "Неважечки профил за отсликување." -#: actions/basemirror.php:101 -msgid "Can't mirror a StatusNet group at this time." +msgid "Cannot mirror a StatusNet group at this time." msgstr "Моментално не можам да отсликам група од StatusNet." -#: actions/basemirror.php:115 msgid "This action only accepts POST requests." msgstr "Оваа постапка прифаќа само POST-барања." -#: actions/basemirror.php:123 msgid "There was a problem with your session token. Try again, please." msgstr "Се појави проблем со жетонот на Вашата сесија. Обидете се подоцна." -#: actions/basemirror.php:133 msgid "Not logged in." msgstr "Не сте најавени." -#: actions/basemirror.php:156 msgid "Subscribed" msgstr "Претплатено" -#: actions/editmirror.php:68 msgid "Requested invalid profile to edit." msgstr "Побаран е неважечки профил за уредување." -#: actions/editmirror.php:86 msgid "Bad form data." msgstr "Неисправни податоци за образецот." #. TRANS: Client error thrown when a mirror request is made and no result is retrieved. -#: actions/editmirror.php:95 msgid "Requested edit of missing mirror." msgstr "Побаравте уредување на отсликување што недостасува." -#: actions/addmirror.php:72 msgid "Could not subscribe to feed." msgstr "Не можев да Ве претплатам на каналот." #. TRANS: Title. -#: actions/mirrorsettings.php:42 msgid "Feed mirror settings" msgstr "Нагодувања на каналското отсликување" #. TRANS: Instructions. -#: actions/mirrorsettings.php:54 msgid "" "You can mirror updates from many RSS and Atom feeds into your StatusNet " "timeline!" msgstr "" "Можете да отсликувате поднови од многу RSS- и Atom-канали во Вашата " "хронологија на StatusNet!" + +msgid "Pull feeds into your timeline!" +msgstr "Повлекувајте каналски емитувања во Вашата хронологија!" + +#. TRANS: SubMirror plugin menu item on user settings page. +msgctxt "MENU" +msgid "Mirroring" +msgstr "Отсликување" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +msgid "Configure mirroring of posts from other feeds" +msgstr "Нагодување на отсликувањето на објавите од други канали" + +msgid "Mirrored feeds" +msgstr "Огледални канали" + +msgid "Web page or feed URL:" +msgstr "Мреж. страница или URL на каналот:" + +msgctxt "BUTTON" +msgid "Add feed" +msgstr "Додај канал" + +msgid "Twitter username:" +msgstr "" + +msgctxt "LABEL" +msgid "Remote feed:" +msgstr "Далечински канал:" + +msgctxt "LABEL" +msgid "Local user" +msgstr "Локален корисник" + +msgid "Mirroring style" +msgstr "Стил на отсликување" + +msgid "" +"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" +msgstr "" +"Повторување: наведете ја објавата на изворниот корисник (понекогаш се " +"прикажува како „RT @blah“)" + +msgid "Repost the content under my account" +msgstr "Објави ја содржината под мојата сметка" + +msgid "Save" +msgstr "Зачувај" + +msgid "Stop mirroring" +msgstr "Престани со отсликување" + +msgid "Twitter" +msgstr "" + +msgid "RSS or Atom feed" +msgstr "" + +msgid "Select a feed provider" +msgstr "" diff --git a/plugins/SubMirror/locale/nl/LC_MESSAGES/SubMirror.po b/plugins/SubMirror/locale/nl/LC_MESSAGES/SubMirror.po index e603027c02..ef7e7c3acc 100644 --- a/plugins/SubMirror/locale/nl/LC_MESSAGES/SubMirror.po +++ b/plugins/SubMirror/locale/nl/LC_MESSAGES/SubMirror.po @@ -9,137 +9,127 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubMirror\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:05+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:51+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:11+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 13:01:06+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-submirror\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SubMirrorPlugin.php:90 -msgid "Pull feeds into your timeline!" -msgstr "Neem feeds op in uw tijdlijn!" +#. TRANS: Client error displayed when entering an invalid URL for a feed. +#. TRANS: %s is the invalid feed URL. +#, php-format +msgid "Invalid feed URL: %s." +msgstr "Ongeldige URL voor feed: %s." -#. TRANS: SubMirror plugin menu item on user settings page. -#: SubMirrorPlugin.php:110 -msgctxt "MENU" -msgid "Mirroring" -msgstr "Spiegelen" - -#. TRANS: SubMirror plugin tooltip for user settings menu item. -#: SubMirrorPlugin.php:112 -msgid "Configure mirroring of posts from other feeds" -msgstr "Spiegelen instellen voor berichten van andere feeds" - -#: SubMirrorPlugin.php:183 -msgid "Mirrored feeds" -msgstr "Gespiegelde feeds" - -#: lib/editmirrorform.php:83 -msgctxt "LABEL" -msgid "Remote feed:" -msgstr "Bronfeed:" - -#: lib/editmirrorform.php:87 -msgctxt "LABEL" -msgid "Local user" -msgstr "Lokale gebruiker" - -#: lib/editmirrorform.php:93 -msgid "Mirroring style" -msgstr "Spiegelstijl" - -#: lib/editmirrorform.php:95 -msgid "" -"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" -msgstr "" -"Herhalen: refereer aan het bericht van de originele gebruiker (wordt soms " -"weergegeven als \"RT @blah ...\")" - -#: lib/editmirrorform.php:96 -msgid "Repost the content under my account" -msgstr "De inhoud herhalen alsof die van mij komt" - -#: lib/editmirrorform.php:115 -msgid "Save" -msgstr "Opslaan" - -#: lib/editmirrorform.php:117 -msgid "Stop mirroring" -msgstr "Spiegelen beëindigen" - -#: lib/addmirrorform.php:59 -msgid "Web page or feed URL:" -msgstr "URL van webpagina of feed:" - -#: lib/addmirrorform.php:64 -msgctxt "BUTTON" -msgid "Add feed" -msgstr "Feed toevoegen" - -#: actions/basemirror.php:71 -msgid "Invalid feed URL." -msgstr "Ongeldige URL voor feed." - -#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. -#: actions/basemirror.php:83 +#. TRANS: Error message returned to user when setting up feed mirroring, +#. TRANS: but we were unable to resolve the given URL to a working feed. msgid "Invalid profile for mirroring." msgstr "Ongeldig profiel om te spiegelen." -#: actions/basemirror.php:101 -msgid "Can't mirror a StatusNet group at this time." +msgid "Cannot mirror a StatusNet group at this time." msgstr "Het is niet mogelijk om een StatusNet-groep te spiegelen." -#: actions/basemirror.php:115 msgid "This action only accepts POST requests." msgstr "Deze handeling accepteert alleen POST-verzoeken." -#: actions/basemirror.php:123 msgid "There was a problem with your session token. Try again, please." msgstr "" "Er is een probleem ontstaan met uw sessie. Probeer het nog een keer, " "alstublieft." -#: actions/basemirror.php:133 msgid "Not logged in." msgstr "Niet aangemeld." -#: actions/basemirror.php:156 msgid "Subscribed" msgstr "Geabonneerd" -#: actions/editmirror.php:68 msgid "Requested invalid profile to edit." msgstr "Er is een ongeldig profiel opgevraagd om te bewerken." -#: actions/editmirror.php:86 msgid "Bad form data." msgstr "Onjuiste formuliergegevens." #. TRANS: Client error thrown when a mirror request is made and no result is retrieved. -#: actions/editmirror.php:95 msgid "Requested edit of missing mirror." msgstr "Er is een missende spiegel opgevraagd om te bewerken." -#: actions/addmirror.php:72 msgid "Could not subscribe to feed." msgstr "Het abonneren op de feed is mislukt." #. TRANS: Title. -#: actions/mirrorsettings.php:42 msgid "Feed mirror settings" msgstr "Instellingen voor spiegelfeed" #. TRANS: Instructions. -#: actions/mirrorsettings.php:54 msgid "" "You can mirror updates from many RSS and Atom feeds into your StatusNet " "timeline!" msgstr "" "U kunt statusupdates vanuit veel RSS- en Atomfeeds spiegelen in uit " "StatusNet-tijdlijn." + +msgid "Pull feeds into your timeline!" +msgstr "Neem feeds op in uw tijdlijn!" + +#. TRANS: SubMirror plugin menu item on user settings page. +msgctxt "MENU" +msgid "Mirroring" +msgstr "Spiegelen" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +msgid "Configure mirroring of posts from other feeds" +msgstr "Spiegelen instellen voor berichten van andere feeds" + +msgid "Mirrored feeds" +msgstr "Gespiegelde feeds" + +msgid "Web page or feed URL:" +msgstr "URL van webpagina of feed:" + +msgctxt "BUTTON" +msgid "Add feed" +msgstr "Feed toevoegen" + +msgid "Twitter username:" +msgstr "Twitter-gebruikersnaam:" + +msgctxt "LABEL" +msgid "Remote feed:" +msgstr "Bronfeed:" + +msgctxt "LABEL" +msgid "Local user" +msgstr "Lokale gebruiker" + +msgid "Mirroring style" +msgstr "Spiegelstijl" + +msgid "" +"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" +msgstr "" +"Herhalen: refereer aan het bericht van de originele gebruiker (wordt soms " +"weergegeven als \"RT @blah ...\")" + +msgid "Repost the content under my account" +msgstr "De inhoud herhalen alsof die van mij komt" + +msgid "Save" +msgstr "Opslaan" + +msgid "Stop mirroring" +msgstr "Spiegelen beëindigen" + +msgid "Twitter" +msgstr "Twitter" + +msgid "RSS or Atom feed" +msgstr "RSS- of Atom-feed" + +msgid "Select a feed provider" +msgstr "Selecteer een feedprovider" diff --git a/plugins/SubMirror/locale/tl/LC_MESSAGES/SubMirror.po b/plugins/SubMirror/locale/tl/LC_MESSAGES/SubMirror.po index 15bdb4b660..0afb8d6a2d 100644 --- a/plugins/SubMirror/locale/tl/LC_MESSAGES/SubMirror.po +++ b/plugins/SubMirror/locale/tl/LC_MESSAGES/SubMirror.po @@ -9,135 +9,126 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubMirror\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:51+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:11+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 13:01:06+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-submirror\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SubMirrorPlugin.php:90 -msgid "Pull feeds into your timeline!" -msgstr "Hilahin ang mga pakain papasok sa iyong guhit ng panahon!" - -#. TRANS: SubMirror plugin menu item on user settings page. -#: SubMirrorPlugin.php:110 -msgctxt "MENU" -msgid "Mirroring" -msgstr "Sinasalamin" - -#. TRANS: SubMirror plugin tooltip for user settings menu item. -#: SubMirrorPlugin.php:112 -msgid "Configure mirroring of posts from other feeds" -msgstr "Iayos ang pagsasalamin ng mga pagpapaskil mula sa ibang mga pakain" - -#: SubMirrorPlugin.php:183 -msgid "Mirrored feeds" -msgstr "" - -#: lib/editmirrorform.php:83 -msgctxt "LABEL" -msgid "Remote feed:" -msgstr "Pakaing malayo:" - -#: lib/editmirrorform.php:87 -msgctxt "LABEL" -msgid "Local user" -msgstr "Katutubong tagagamit" - -#: lib/editmirrorform.php:93 -msgid "Mirroring style" -msgstr "Estilo ng pagsasalamin" - -#: lib/editmirrorform.php:95 -msgid "" -"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" -msgstr "" -"Ulitin: sangguniin ang orihinal na pagpapaskil ng tagagamit (minsang " -"ipinapakita bilang 'RT @blah')" - -#: lib/editmirrorform.php:96 -msgid "Repost the content under my account" -msgstr "Muling ipaskil ang nilalaman sa ilalim ng aking akawnt" - -#: lib/editmirrorform.php:115 -msgid "Save" -msgstr "Sagipin" - -#: lib/editmirrorform.php:117 -msgid "Stop mirroring" -msgstr "Ihinto ang pagsasalamin" - -#: lib/addmirrorform.php:59 -msgid "Web page or feed URL:" -msgstr "URL ng pahina sa web o pakain:" - -#: lib/addmirrorform.php:64 -msgctxt "BUTTON" -msgid "Add feed" -msgstr "Idagdag ang pakain" - -#: actions/basemirror.php:71 -msgid "Invalid feed URL." +#. TRANS: Client error displayed when entering an invalid URL for a feed. +#. TRANS: %s is the invalid feed URL. +#, fuzzy, php-format +msgid "Invalid feed URL: %s." msgstr "Hindi tanggap na URL ng pakain." -#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. -#: actions/basemirror.php:83 +#. TRANS: Error message returned to user when setting up feed mirroring, +#. TRANS: but we were unable to resolve the given URL to a working feed. msgid "Invalid profile for mirroring." msgstr "Hindi tanggap na balangkas para sa pagsasalamin." -#: actions/basemirror.php:101 -msgid "Can't mirror a StatusNet group at this time." +#, fuzzy +msgid "Cannot mirror a StatusNet group at this time." msgstr "Hindi maisalamin sa ngayon ang isang pangkat ng StatusNet." -#: actions/basemirror.php:115 msgid "This action only accepts POST requests." msgstr "Ang galaw na ito ay tumatanggap lamang ng mga kahilingang POST." -#: actions/basemirror.php:123 msgid "There was a problem with your session token. Try again, please." msgstr "May isang suliranin sa iyong token ng sesyon. Pakisubukan uli." -#: actions/basemirror.php:133 msgid "Not logged in." msgstr "Hindi nakalagda." -#: actions/basemirror.php:156 msgid "Subscribed" msgstr "Tumanggap ng sipi" -#: actions/editmirror.php:68 msgid "Requested invalid profile to edit." msgstr "Hiniling na pamamatnugutang hindi tanggap na balangkas." -#: actions/editmirror.php:86 msgid "Bad form data." msgstr "Datong may masamang anyo." #. TRANS: Client error thrown when a mirror request is made and no result is retrieved. -#: actions/editmirror.php:95 msgid "Requested edit of missing mirror." msgstr "Hiniling na pagpatnugot ng nawawalang salamin." -#: actions/addmirror.php:72 msgid "Could not subscribe to feed." msgstr "Hindi magawang makatanggap ng pakain." #. TRANS: Title. -#: actions/mirrorsettings.php:42 msgid "Feed mirror settings" msgstr "Mga katakdaan ng salamin ng pakain" #. TRANS: Instructions. -#: actions/mirrorsettings.php:54 msgid "" "You can mirror updates from many RSS and Atom feeds into your StatusNet " "timeline!" msgstr "" "Maisasalamin mo ang mga pagsasapanahon mula sa maraming mga pakain ng RSS at " "Atom sa iyong guhit ng panahon ng StatusNet!" + +msgid "Pull feeds into your timeline!" +msgstr "Hilahin ang mga pakain papasok sa iyong guhit ng panahon!" + +#. TRANS: SubMirror plugin menu item on user settings page. +msgctxt "MENU" +msgid "Mirroring" +msgstr "Sinasalamin" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +msgid "Configure mirroring of posts from other feeds" +msgstr "Iayos ang pagsasalamin ng mga pagpapaskil mula sa ibang mga pakain" + +msgid "Mirrored feeds" +msgstr "" + +msgid "Web page or feed URL:" +msgstr "URL ng pahina sa web o pakain:" + +msgctxt "BUTTON" +msgid "Add feed" +msgstr "Idagdag ang pakain" + +msgid "Twitter username:" +msgstr "" + +msgctxt "LABEL" +msgid "Remote feed:" +msgstr "Pakaing malayo:" + +msgctxt "LABEL" +msgid "Local user" +msgstr "Katutubong tagagamit" + +msgid "Mirroring style" +msgstr "Estilo ng pagsasalamin" + +msgid "" +"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" +msgstr "" +"Ulitin: sangguniin ang orihinal na pagpapaskil ng tagagamit (minsang " +"ipinapakita bilang 'RT @blah')" + +msgid "Repost the content under my account" +msgstr "Muling ipaskil ang nilalaman sa ilalim ng aking akawnt" + +msgid "Save" +msgstr "Sagipin" + +msgid "Stop mirroring" +msgstr "Ihinto ang pagsasalamin" + +msgid "Twitter" +msgstr "" + +msgid "RSS or Atom feed" +msgstr "" + +msgid "Select a feed provider" +msgstr "" diff --git a/plugins/SubMirror/locale/uk/LC_MESSAGES/SubMirror.po b/plugins/SubMirror/locale/uk/LC_MESSAGES/SubMirror.po index ac9e7741e5..2cceedd833 100644 --- a/plugins/SubMirror/locale/uk/LC_MESSAGES/SubMirror.po +++ b/plugins/SubMirror/locale/uk/LC_MESSAGES/SubMirror.po @@ -9,136 +9,127 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubMirror\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:51+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:11+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 13:01:06+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-submirror\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: SubMirrorPlugin.php:90 -msgid "Pull feeds into your timeline!" -msgstr "Стягування веб-каналів до вашої стрічки повідомлень!" - -#. TRANS: SubMirror plugin menu item on user settings page. -#: SubMirrorPlugin.php:110 -msgctxt "MENU" -msgid "Mirroring" -msgstr "Дзеркала" - -#. TRANS: SubMirror plugin tooltip for user settings menu item. -#: SubMirrorPlugin.php:112 -msgid "Configure mirroring of posts from other feeds" -msgstr "Конфігурація віддзеркалення дописів з інших веб-стрічок" - -#: SubMirrorPlugin.php:183 -msgid "Mirrored feeds" -msgstr "Дзеркала" - -#: lib/editmirrorform.php:83 -msgctxt "LABEL" -msgid "Remote feed:" -msgstr "Віддалена веб-стрічка:" - -#: lib/editmirrorform.php:87 -msgctxt "LABEL" -msgid "Local user" -msgstr "Тутешній користувач" - -#: lib/editmirrorform.php:93 -msgid "Mirroring style" -msgstr "Форма віддзеркалення" - -#: lib/editmirrorform.php:95 -msgid "" -"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" -msgstr "" -"Повторення: посилання до оригінального допису користувача (щось на зразок «RT " -"@pupkin»)" - -#: lib/editmirrorform.php:96 -msgid "Repost the content under my account" -msgstr "Повторення змісту під моїм акаунтом" - -#: lib/editmirrorform.php:115 -msgid "Save" -msgstr "Зберегти" - -#: lib/editmirrorform.php:117 -msgid "Stop mirroring" -msgstr "Зупинити віддзеркалення" - -#: lib/addmirrorform.php:59 -msgid "Web page or feed URL:" -msgstr "Веб-сторінка або ж URL-адреса стрічки:" - -#: lib/addmirrorform.php:64 -msgctxt "BUTTON" -msgid "Add feed" -msgstr "Додати веб-стрічку" - -#: actions/basemirror.php:71 -msgid "Invalid feed URL." +#. TRANS: Client error displayed when entering an invalid URL for a feed. +#. TRANS: %s is the invalid feed URL. +#, fuzzy, php-format +msgid "Invalid feed URL: %s." msgstr "Помилкова URL-адреса веб-стрічки." -#. TRANS: Error message returned to user when setting up feed mirroring, but we were unable to resolve the given URL to a working feed. -#: actions/basemirror.php:83 +#. TRANS: Error message returned to user when setting up feed mirroring, +#. TRANS: but we were unable to resolve the given URL to a working feed. msgid "Invalid profile for mirroring." msgstr "Помилковий профіль для віддзеркалення." -#: actions/basemirror.php:101 -msgid "Can't mirror a StatusNet group at this time." +#, fuzzy +msgid "Cannot mirror a StatusNet group at this time." msgstr "На даний момент не можу віддзеркалювати спільноту на сайті StatusNet." -#: actions/basemirror.php:115 msgid "This action only accepts POST requests." msgstr "Ця дія приймає запити лише за формою POST." -#: actions/basemirror.php:123 msgid "There was a problem with your session token. Try again, please." msgstr "Виникли певні проблеми з токеном сесії. Спробуйте знов, будь ласка." -#: actions/basemirror.php:133 msgid "Not logged in." msgstr "Ви не увійшли до системи." -#: actions/basemirror.php:156 msgid "Subscribed" msgstr "Підписані" -#: actions/editmirror.php:68 msgid "Requested invalid profile to edit." msgstr "Було запитано невірний профіль для редагування." -#: actions/editmirror.php:86 msgid "Bad form data." msgstr "Невірні дані форми." #. TRANS: Client error thrown when a mirror request is made and no result is retrieved. -#: actions/editmirror.php:95 msgid "Requested edit of missing mirror." msgstr "Запитано редагування зниклого дзеркала." -#: actions/addmirror.php:72 msgid "Could not subscribe to feed." msgstr "Не можу підписатися до веб-стрічки." #. TRANS: Title. -#: actions/mirrorsettings.php:42 msgid "Feed mirror settings" msgstr "Налаштування дзеркала веб-стрічки" #. TRANS: Instructions. -#: actions/mirrorsettings.php:54 msgid "" "You can mirror updates from many RSS and Atom feeds into your StatusNet " "timeline!" msgstr "" "Ви маєте можливість віддзеркалювати оновлення багатьох веб-стрічок формату " "RSS або Atom одразу до стрічки своїх дописів на сайті StatusNet!" + +msgid "Pull feeds into your timeline!" +msgstr "Стягування веб-каналів до вашої стрічки повідомлень!" + +#. TRANS: SubMirror plugin menu item on user settings page. +msgctxt "MENU" +msgid "Mirroring" +msgstr "Дзеркала" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +msgid "Configure mirroring of posts from other feeds" +msgstr "Конфігурація віддзеркалення дописів з інших веб-стрічок" + +msgid "Mirrored feeds" +msgstr "Дзеркала" + +msgid "Web page or feed URL:" +msgstr "Веб-сторінка або ж URL-адреса стрічки:" + +msgctxt "BUTTON" +msgid "Add feed" +msgstr "Додати веб-стрічку" + +msgid "Twitter username:" +msgstr "" + +msgctxt "LABEL" +msgid "Remote feed:" +msgstr "Віддалена веб-стрічка:" + +msgctxt "LABEL" +msgid "Local user" +msgstr "Тутешній користувач" + +msgid "Mirroring style" +msgstr "Форма віддзеркалення" + +msgid "" +"Repeat: reference the original user's post (sometimes shows as 'RT @blah')" +msgstr "" +"Повторення: посилання до оригінального допису користувача (щось на зразок «RT " +"@pupkin»)" + +msgid "Repost the content under my account" +msgstr "Повторення змісту під моїм акаунтом" + +msgid "Save" +msgstr "Зберегти" + +msgid "Stop mirroring" +msgstr "Зупинити віддзеркалення" + +msgid "Twitter" +msgstr "" + +msgid "RSS or Atom feed" +msgstr "" + +msgid "Select a feed provider" +msgstr "" diff --git a/plugins/SubscriptionThrottle/locale/SubscriptionThrottle.pot b/plugins/SubscriptionThrottle/locale/SubscriptionThrottle.pot index cb3be6b7e9..fe3b9b573a 100644 --- a/plugins/SubscriptionThrottle/locale/SubscriptionThrottle.pot +++ b/plugins/SubscriptionThrottle/locale/SubscriptionThrottle.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/SubscriptionThrottle/locale/de/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/de/LC_MESSAGES/SubscriptionThrottle.po index c1eefbdda5..2347427810 100644 --- a/plugins/SubscriptionThrottle/locale/de/LC_MESSAGES/SubscriptionThrottle.po +++ b/plugins/SubscriptionThrottle/locale/de/LC_MESSAGES/SubscriptionThrottle.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubscriptionThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:52+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SubscriptionThrottlePlugin.php:171 msgid "Configurable limits for subscriptions and group memberships." msgstr "Konfigurierbare Limits für Abonnements und Gruppenmitgliedschaften." diff --git a/plugins/SubscriptionThrottle/locale/es/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/es/LC_MESSAGES/SubscriptionThrottle.po index 16a45f15c4..dd34af611e 100644 --- a/plugins/SubscriptionThrottle/locale/es/LC_MESSAGES/SubscriptionThrottle.po +++ b/plugins/SubscriptionThrottle/locale/es/LC_MESSAGES/SubscriptionThrottle.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubscriptionThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:52+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SubscriptionThrottlePlugin.php:171 msgid "Configurable limits for subscriptions and group memberships." msgstr "" "Límites configurables para las suscripciones y adhesiones a los grupos." diff --git a/plugins/SubscriptionThrottle/locale/fr/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/fr/LC_MESSAGES/SubscriptionThrottle.po index 1df4cac4c9..3111530e14 100644 --- a/plugins/SubscriptionThrottle/locale/fr/LC_MESSAGES/SubscriptionThrottle.po +++ b/plugins/SubscriptionThrottle/locale/fr/LC_MESSAGES/SubscriptionThrottle.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubscriptionThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:52+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: SubscriptionThrottlePlugin.php:171 msgid "Configurable limits for subscriptions and group memberships." msgstr "Limites configurables pour les abonnements et adhésions aux groupes." diff --git a/plugins/SubscriptionThrottle/locale/he/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/he/LC_MESSAGES/SubscriptionThrottle.po index 889086db5e..7f7ffe1f3e 100644 --- a/plugins/SubscriptionThrottle/locale/he/LC_MESSAGES/SubscriptionThrottle.po +++ b/plugins/SubscriptionThrottle/locale/he/LC_MESSAGES/SubscriptionThrottle.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubscriptionThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:52+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SubscriptionThrottlePlugin.php:171 msgid "Configurable limits for subscriptions and group memberships." msgstr "הגבלות מינוי וחברות בקבוצות הניתנות להגדרה." diff --git a/plugins/SubscriptionThrottle/locale/ia/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/ia/LC_MESSAGES/SubscriptionThrottle.po index e920e0ba0b..4dff6a123b 100644 --- a/plugins/SubscriptionThrottle/locale/ia/LC_MESSAGES/SubscriptionThrottle.po +++ b/plugins/SubscriptionThrottle/locale/ia/LC_MESSAGES/SubscriptionThrottle.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubscriptionThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:52+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SubscriptionThrottlePlugin.php:171 msgid "Configurable limits for subscriptions and group memberships." msgstr "Limites configurabile pro subscriptiones e membrato de gruppos." diff --git a/plugins/SubscriptionThrottle/locale/id/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/id/LC_MESSAGES/SubscriptionThrottle.po index 4e03f4e48f..6be339d6bc 100644 --- a/plugins/SubscriptionThrottle/locale/id/LC_MESSAGES/SubscriptionThrottle.po +++ b/plugins/SubscriptionThrottle/locale/id/LC_MESSAGES/SubscriptionThrottle.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubscriptionThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:52+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: SubscriptionThrottlePlugin.php:171 msgid "Configurable limits for subscriptions and group memberships." msgstr "" "Batasan yang dapat disesuaikan untuk langganan dan keanggotaan kelompok." diff --git a/plugins/SubscriptionThrottle/locale/mk/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/mk/LC_MESSAGES/SubscriptionThrottle.po index 6592f994f4..d4f0a0f346 100644 --- a/plugins/SubscriptionThrottle/locale/mk/LC_MESSAGES/SubscriptionThrottle.po +++ b/plugins/SubscriptionThrottle/locale/mk/LC_MESSAGES/SubscriptionThrottle.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubscriptionThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:52+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: SubscriptionThrottlePlugin.php:171 msgid "Configurable limits for subscriptions and group memberships." msgstr "Прилагодливи ограничувања за претплата и членства во групи." diff --git a/plugins/SubscriptionThrottle/locale/nb/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/nb/LC_MESSAGES/SubscriptionThrottle.po index 74c1c7a710..084d360d04 100644 --- a/plugins/SubscriptionThrottle/locale/nb/LC_MESSAGES/SubscriptionThrottle.po +++ b/plugins/SubscriptionThrottle/locale/nb/LC_MESSAGES/SubscriptionThrottle.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubscriptionThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:52+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SubscriptionThrottlePlugin.php:171 msgid "Configurable limits for subscriptions and group memberships." msgstr "Konfigurerbare grenser for abonnement og gruppemedlemsskap." diff --git a/plugins/SubscriptionThrottle/locale/nl/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/nl/LC_MESSAGES/SubscriptionThrottle.po index bbb0c8de12..cb4be2d877 100644 --- a/plugins/SubscriptionThrottle/locale/nl/LC_MESSAGES/SubscriptionThrottle.po +++ b/plugins/SubscriptionThrottle/locale/nl/LC_MESSAGES/SubscriptionThrottle.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubscriptionThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:52+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SubscriptionThrottlePlugin.php:171 msgid "Configurable limits for subscriptions and group memberships." msgstr "In te stellen limieten voor abonnementen en groepslidmaatschappen." diff --git a/plugins/SubscriptionThrottle/locale/pt/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/pt/LC_MESSAGES/SubscriptionThrottle.po index 090e41870c..4ec2381fe8 100644 --- a/plugins/SubscriptionThrottle/locale/pt/LC_MESSAGES/SubscriptionThrottle.po +++ b/plugins/SubscriptionThrottle/locale/pt/LC_MESSAGES/SubscriptionThrottle.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubscriptionThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:52+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SubscriptionThrottlePlugin.php:171 msgid "Configurable limits for subscriptions and group memberships." msgstr "Limites configuráveis para subscrições e adesões a grupos." diff --git a/plugins/SubscriptionThrottle/locale/ru/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/ru/LC_MESSAGES/SubscriptionThrottle.po index 7dbb0c3f5e..e1b53efb8b 100644 --- a/plugins/SubscriptionThrottle/locale/ru/LC_MESSAGES/SubscriptionThrottle.po +++ b/plugins/SubscriptionThrottle/locale/ru/LC_MESSAGES/SubscriptionThrottle.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubscriptionThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:52+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: SubscriptionThrottlePlugin.php:171 msgid "Configurable limits for subscriptions and group memberships." msgstr "Настраиваемые ограничения на подписки и членство в группах." diff --git a/plugins/SubscriptionThrottle/locale/tl/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/tl/LC_MESSAGES/SubscriptionThrottle.po index cf367ad2ad..9aaed9204a 100644 --- a/plugins/SubscriptionThrottle/locale/tl/LC_MESSAGES/SubscriptionThrottle.po +++ b/plugins/SubscriptionThrottle/locale/tl/LC_MESSAGES/SubscriptionThrottle.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubscriptionThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:52+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: SubscriptionThrottlePlugin.php:171 msgid "Configurable limits for subscriptions and group memberships." msgstr "" "Maisasaayos na mga hangganan para sa mga pagtatanggap at mga kasapian sa " diff --git a/plugins/SubscriptionThrottle/locale/uk/LC_MESSAGES/SubscriptionThrottle.po b/plugins/SubscriptionThrottle/locale/uk/LC_MESSAGES/SubscriptionThrottle.po index c9bd03f549..5e64c29743 100644 --- a/plugins/SubscriptionThrottle/locale/uk/LC_MESSAGES/SubscriptionThrottle.po +++ b/plugins/SubscriptionThrottle/locale/uk/LC_MESSAGES/SubscriptionThrottle.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - SubscriptionThrottle\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:52+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:07+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:34+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-subscriptionthrottle\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: SubscriptionThrottlePlugin.php:171 msgid "Configurable limits for subscriptions and group memberships." msgstr "" "З допомогою цього додатку можна обмежувати кількість можливих підписок для " diff --git a/plugins/TabFocus/locale/TabFocus.pot b/plugins/TabFocus/locale/TabFocus.pot index dfd9c09fc9..fc4460c2de 100644 --- a/plugins/TabFocus/locale/TabFocus.pot +++ b/plugins/TabFocus/locale/TabFocus.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/TabFocus/locale/br/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/br/LC_MESSAGES/TabFocus.po index 9fa70fdfb1..948ad71c64 100644 --- a/plugins/TabFocus/locale/br/LC_MESSAGES/TabFocus.po +++ b/plugins/TabFocus/locale/br/LC_MESSAGES/TabFocus.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TabFocus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:53+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-tabfocus\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " "pressing the tab key focuses the \"Send\" button, matching the behavior of " diff --git a/plugins/TabFocus/locale/es/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/es/LC_MESSAGES/TabFocus.po index 662e2aacab..a4638ff35f 100644 --- a/plugins/TabFocus/locale/es/LC_MESSAGES/TabFocus.po +++ b/plugins/TabFocus/locale/es/LC_MESSAGES/TabFocus.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TabFocus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:53+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-tabfocus\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " "pressing the tab key focuses the \"Send\" button, matching the behavior of " diff --git a/plugins/TabFocus/locale/fr/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/fr/LC_MESSAGES/TabFocus.po index 6e022603fc..59e45251ca 100644 --- a/plugins/TabFocus/locale/fr/LC_MESSAGES/TabFocus.po +++ b/plugins/TabFocus/locale/fr/LC_MESSAGES/TabFocus.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TabFocus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:53+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-tabfocus\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " "pressing the tab key focuses the \"Send\" button, matching the behavior of " diff --git a/plugins/TabFocus/locale/gl/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/gl/LC_MESSAGES/TabFocus.po index b9e99a39c4..811757a54f 100644 --- a/plugins/TabFocus/locale/gl/LC_MESSAGES/TabFocus.po +++ b/plugins/TabFocus/locale/gl/LC_MESSAGES/TabFocus.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TabFocus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:53+0000\n" "Language-Team: Galician \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: gl\n" "X-Message-Group: #out-statusnet-plugin-tabfocus\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " "pressing the tab key focuses the \"Send\" button, matching the behavior of " diff --git a/plugins/TabFocus/locale/he/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/he/LC_MESSAGES/TabFocus.po index 2d4769b235..27391e6f53 100644 --- a/plugins/TabFocus/locale/he/LC_MESSAGES/TabFocus.po +++ b/plugins/TabFocus/locale/he/LC_MESSAGES/TabFocus.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TabFocus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:53+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-tabfocus\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " "pressing the tab key focuses the \"Send\" button, matching the behavior of " diff --git a/plugins/TabFocus/locale/ia/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/ia/LC_MESSAGES/TabFocus.po index 15a0d27d25..8ef482826d 100644 --- a/plugins/TabFocus/locale/ia/LC_MESSAGES/TabFocus.po +++ b/plugins/TabFocus/locale/ia/LC_MESSAGES/TabFocus.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TabFocus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:53+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-tabfocus\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " "pressing the tab key focuses the \"Send\" button, matching the behavior of " diff --git a/plugins/TabFocus/locale/id/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/id/LC_MESSAGES/TabFocus.po index b1bc20069d..0e34d742fe 100644 --- a/plugins/TabFocus/locale/id/LC_MESSAGES/TabFocus.po +++ b/plugins/TabFocus/locale/id/LC_MESSAGES/TabFocus.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TabFocus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:53+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-tabfocus\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " "pressing the tab key focuses the \"Send\" button, matching the behavior of " diff --git a/plugins/TabFocus/locale/mk/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/mk/LC_MESSAGES/TabFocus.po index 2de7f9c020..4874b2638f 100644 --- a/plugins/TabFocus/locale/mk/LC_MESSAGES/TabFocus.po +++ b/plugins/TabFocus/locale/mk/LC_MESSAGES/TabFocus.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TabFocus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:06+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:53+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-tabfocus\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " "pressing the tab key focuses the \"Send\" button, matching the behavior of " diff --git a/plugins/TabFocus/locale/nb/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/nb/LC_MESSAGES/TabFocus.po index 9e0cc691b0..d697218a10 100644 --- a/plugins/TabFocus/locale/nb/LC_MESSAGES/TabFocus.po +++ b/plugins/TabFocus/locale/nb/LC_MESSAGES/TabFocus.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TabFocus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:53+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-tabfocus\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " "pressing the tab key focuses the \"Send\" button, matching the behavior of " diff --git a/plugins/TabFocus/locale/nl/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/nl/LC_MESSAGES/TabFocus.po index 01ae767b1f..ac1effc394 100644 --- a/plugins/TabFocus/locale/nl/LC_MESSAGES/TabFocus.po +++ b/plugins/TabFocus/locale/nl/LC_MESSAGES/TabFocus.po @@ -10,19 +10,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TabFocus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:53+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-tabfocus\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " "pressing the tab key focuses the \"Send\" button, matching the behavior of " diff --git a/plugins/TabFocus/locale/ru/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/ru/LC_MESSAGES/TabFocus.po index 921ac5c4b5..57756ceda9 100644 --- a/plugins/TabFocus/locale/ru/LC_MESSAGES/TabFocus.po +++ b/plugins/TabFocus/locale/ru/LC_MESSAGES/TabFocus.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TabFocus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:53+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-tabfocus\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " "pressing the tab key focuses the \"Send\" button, matching the behavior of " diff --git a/plugins/TabFocus/locale/tl/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/tl/LC_MESSAGES/TabFocus.po index af192168ed..20e6181a14 100644 --- a/plugins/TabFocus/locale/tl/LC_MESSAGES/TabFocus.po +++ b/plugins/TabFocus/locale/tl/LC_MESSAGES/TabFocus.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TabFocus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:53+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-tabfocus\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " "pressing the tab key focuses the \"Send\" button, matching the behavior of " diff --git a/plugins/TabFocus/locale/uk/LC_MESSAGES/TabFocus.po b/plugins/TabFocus/locale/uk/LC_MESSAGES/TabFocus.po index 307609b06f..e4535fad82 100644 --- a/plugins/TabFocus/locale/uk/LC_MESSAGES/TabFocus.po +++ b/plugins/TabFocus/locale/uk/LC_MESSAGES/TabFocus.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TabFocus\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:53+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:08+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:35+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-tabfocus\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: TabFocusPlugin.php:54 msgid "" "TabFocus changes the notice form behavior so that, while in the text area, " "pressing the tab key focuses the \"Send\" button, matching the behavior of " diff --git a/plugins/TagSub/TagSub.php b/plugins/TagSub/TagSub.php new file mode 100644 index 0000000000..a734b4fc5f --- /dev/null +++ b/plugins/TagSub/TagSub.php @@ -0,0 +1,140 @@ + + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * StatusNet - the distributed open-source microblogging tool + * Copyright (C) 2011, StatusNet, Inc. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * For storing the tag subscriptions + * + * @category PollPlugin + * @package StatusNet + * @author Brion Vibber + * @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3 + * @link http://status.net/ + * + * @see DB_DataObject + */ + +class TagSub extends Managed_DataObject +{ + public $__table = 'tagsub'; // table name + public $tag; // text + public $profile_id; // int -> profile.id + public $created; // datetime + + /** + * Get an instance by key + * + * This is a utility method to get a single instance with a given key value. + * + * @param string $k Key to use to lookup (usually 'user_id' for this class) + * @param mixed $v Value to lookup + * + * @return TagSub object found, or null for no hits + * + */ + function staticGet($k, $v=null) + { + return Memcached_DataObject::staticGet('TagSub', $k, $v); + } + + /** + * Get an instance by compound key + * + * This is a utility method to get a single instance with a given set of + * key-value pairs. Usually used for the primary key for a compound key; thus + * the name. + * + * @param array $kv array of key-value mappings + * + * @return TagSub object found, or null for no hits + * + */ + function pkeyGet($kv) + { + return Memcached_DataObject::pkeyGet('TagSub', $kv); + } + + /** + * The One True Thingy that must be defined and declared. + */ + public static function schemaDef() + { + return array( + 'description' => 'TagSubPlugin tag subscription records', + 'fields' => array( + 'tag' => array('type' => 'varchar', 'length' => 64, 'not null' => true, 'description' => 'hash tag associated with this subscription'), + 'profile_id' => array('type' => 'int', 'not null' => true, 'description' => 'profile ID of subscribing user'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + ), + 'primary key' => array('tag', 'profile_id'), + 'foreign keys' => array( + 'tagsub_profile_id_fkey' => array('profile', array('profile_id' => 'id')), + ), + 'indexes' => array( + 'tagsub_created_idx' => array('created'), + 'tagsub_profile_id_tag_idx' => array('profile_id', 'tag'), + ), + ); + } + + /** + * Start a tag subscription! + * + * @param profile $profile subscriber + * @param string $tag subscribee + * @return TagSub + */ + static function start(Profile $profile, $tag) + { + $ts = new TagSub(); + $ts->tag = $tag; + $ts->profile_id = $profile->id; + $ts->created = common_sql_now(); + $ts->insert(); + return $ts; + } + + /** + * End a tag subscription! + * + * @param profile $profile subscriber + * @param string $tag subscribee + */ + static function cancel(Profile $profile, $tag) + { + $ts = TagSub::pkeyGet(array('tag' => $tag, + 'profile_id' => $profile->id)); + if ($ts) { + $ts->delete(); + } + } +} diff --git a/plugins/TagSub/TagSubPlugin.php b/plugins/TagSub/TagSubPlugin.php new file mode 100644 index 0000000000..53a06ab5bf --- /dev/null +++ b/plugins/TagSub/TagSubPlugin.php @@ -0,0 +1,242 @@ +. + * + * @category TagSubPlugin + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * TagSub plugin main class + * + * @category TagSubPlugin + * @package StatusNet + * @author Brion Vibber + * @copyright 2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0 + * @link http://status.net/ + */ +class TagSubPlugin extends Plugin +{ + const VERSION = '0.1'; + + /** + * Database schema setup + * + * @see Schema + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onCheckSchema() + { + $schema = Schema::get(); + $schema->ensureTable('tagsub', TagSub::schemaDef()); + return true; + } + + /** + * Load related modules when needed + * + * @param string $cls Name of the class to be loaded + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onAutoload($cls) + { + $dir = dirname(__FILE__); + + switch ($cls) + { + case 'TagSub': + include_once $dir.'/'.$cls.'.php'; + return false; + case 'TagsubAction': + case 'TagunsubAction': + case 'TagsubsAction': + case 'TagSubForm': + case 'TagUnsubForm': + include_once $dir.'/'.strtolower($cls).'.php'; + return false; + default: + return true; + } + } + + /** + * Map URLs to actions + * + * @param Net_URL_Mapper $m path-to-action mapper + * + * @return boolean hook value; true means continue processing, false means stop. + */ + function onRouterInitialized($m) + { + $m->connect('tag/:tag/subscribe', + array('action' => 'tagsub'), + array('tag' => Router::REGEX_TAG)); + $m->connect('tag/:tag/unsubscribe', + array('action' => 'tagunsub'), + array('tag' => Router::REGEX_TAG)); + + $m->connect(':nickname/tag-subscriptions', + array('action' => 'tagsubs'), + array('nickname' => Nickname::DISPLAY_FMT)); + return true; + } + + /** + * Plugin version data + * + * @param array &$versions array of version data + * + * @return value + */ + function onPluginVersion(&$versions) + { + $versions[] = array('name' => 'TagSub', + 'version' => self::VERSION, + 'author' => 'Brion Vibber', + 'homepage' => 'http://status.net/wiki/Plugin:TagSub', + 'rawdescription' => + // TRANS: Plugin description. + _m('Plugin to allow following all messages with a given tag.')); + return true; + } + + /** + * Hook inbox delivery setup so tag subscribers receive all + * notices with that tag in their inbox. + * + * Currently makes no distinction between local messages and + * remote ones which happen to come in to the system. Remote + * notices that don't come in at all won't ever reach this. + * + * @param Notice $notice + * @param array $ni in/out map of profile IDs to inbox constants + * @return boolean hook result + */ + function onStartNoticeWhoGets(Notice $notice, array &$ni) + { + foreach ($notice->getTags() as $tag) { + $tagsub = new TagSub(); + $tagsub->tag = $tag; + $tagsub->find(); + + while ($tagsub->fetch()) { + // These constants are currently not actually used, iirc + $ni[$tagsub->profile_id] = NOTICE_INBOX_SOURCE_SUB; + } + } + return true; + } + + /** + * + * @param TagAction $action + * @return boolean hook result + */ + function onStartTagShowContent(TagAction $action) + { + $user = common_current_user(); + if ($user) { + $tag = $action->trimmed('tag'); + $tagsub = TagSub::pkeyGet(array('tag' => $tag, + 'profile_id' => $user->id)); + if ($tagsub) { + $form = new TagUnsubForm($action, $tag); + } else { + $form = new TagSubForm($action, $tag); + } + $action->elementStart('div', 'entity_actions'); + $action->elementStart('ul'); + $action->elementStart('li', 'entity_subscribe'); + $form->show(); + $action->elementEnd('li'); + $action->elementEnd('ul'); + $action->elementEnd('div'); + } + return true; + } + + /** + * Menu item for personal subscriptions/groups area + * + * @param Widget $widget Widget being executed + * + * @return boolean hook return + */ + + function onEndSubGroupNav($widget) + { + $action = $widget->out; + $action_name = $action->trimmed('action'); + + $action->menuItem(common_local_url('tagsubs', array('nickname' => $action->user->nickname)), + // TRANS: SubMirror plugin menu item on user settings page. + _m('MENU', 'Tags'), + // TRANS: SubMirror plugin tooltip for user settings menu item. + _m('Configure tag subscriptions'), + $action_name == 'tagsubs' && $action->arg('nickname') == $action->user->nickname); + + return true; + } + + /** + * Add a count of mirrored feeds into a user's profile sidebar stats. + * + * @param Profile $profile + * @param array $stats + * @return boolean hook return value + */ + function onProfileStats($profile, &$stats) + { + $cur = common_current_user(); + if (!empty($cur) && $cur->id == $profile->id) { + $tagsub = new TagSub(); + $tagsub->profile_id = $profile->id; + $entry = array( + 'id' => 'tagsubs', + 'label' => _m('Tag subscriptions'), + 'link' => common_local_url('tagsubs', array('nickname' => $profile->nickname)), + 'value' => $tagsub->count(), + ); + + $insertAt = count($stats); + foreach ($stats as $i => $row) { + if ($row['id'] == 'groups') { + // Slip us in after them. + $insertAt = $i + 1; + break; + } + } + array_splice($stats, $insertAt, 0, array($entry)); + } + return true; + } +} diff --git a/plugins/TagSub/locale/TagSub.pot b/plugins/TagSub/locale/TagSub.pot new file mode 100644 index 0000000000..25baf3ba7c --- /dev/null +++ b/plugins/TagSub/locale/TagSub.pot @@ -0,0 +1,98 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: tagunsubform.php:96 tagunsubform.php:107 +msgid "Unsubscribe from this tag" +msgstr "" + +#. TRANS: Plugin description. +#: TagSubPlugin.php:128 +msgid "Plugin to allow following all messages with a given tag." +msgstr "" + +#. TRANS: SubMirror plugin menu item on user settings page. +#: TagSubPlugin.php:202 +msgctxt "MENU" +msgid "Tags" +msgstr "" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +#: TagSubPlugin.php:204 +msgid "Configure tag subscriptions" +msgstr "" + +#: TagSubPlugin.php:225 +msgid "Tag subscriptions" +msgstr "" + +#: tagsubform.php:116 tagsubform.php:140 +msgid "Subscribe to this tag" +msgstr "" + +#. TRANS: Page title when tag unsubscription succeeded. +#: tagunsubaction.php:76 +msgid "Unsubscribed" +msgstr "" + +#. TRANS: Page title when tag subscription succeeded. +#: tagsubaction.php:136 +msgid "Subscribed" +msgstr "" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#: tagsubsaction.php:51 +#, php-format +msgid "%s's tag subscriptions" +msgstr "" + +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#: tagsubsaction.php:55 +#, php-format +msgid "%1$s's tag subscriptions, page %2$d" +msgstr "" + +#. TRANS: Page notice for page with an overview of all tag subscriptions +#. TRANS: of the logged in user's own profile. +#: tagsubsaction.php:68 +msgid "" +"You have subscribed to receive all notices on this site containing the " +"following tags:" +msgstr "" + +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#: tagsubsaction.php:73 +#, php-format +msgid "" +"%s has subscribed to receive all notices on this site containing the " +"following tags:" +msgstr "" + +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#: tagsubsaction.php:130 +#, php-format +msgid "%s is not listening to any tags." +msgstr "" + +#: tagsubsaction.php:168 +#, php-format +msgid "#%s since %s" +msgstr "" diff --git a/plugins/TagSub/locale/nl/LC_MESSAGES/TagSub.po b/plugins/TagSub/locale/nl/LC_MESSAGES/TagSub.po new file mode 100644 index 0000000000..3d30399dc4 --- /dev/null +++ b/plugins/TagSub/locale/nl/LC_MESSAGES/TagSub.po @@ -0,0 +1,91 @@ +# Translation of StatusNet - TagSub to Dutch (Nederlands) +# Exported from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - TagSub\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:54+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 12:42:02+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-tagsub\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Unsubscribe from this tag" +msgstr "Abonnement op dit label beëindigen" + +#. TRANS: Plugin description. +msgid "Plugin to allow following all messages with a given tag." +msgstr "" +"Een plug-in die het mogelijk maakt alle berichten met een bepaald label te " +"volgen." + +#. TRANS: SubMirror plugin menu item on user settings page. +msgctxt "MENU" +msgid "Tags" +msgstr "Labels" + +#. TRANS: SubMirror plugin tooltip for user settings menu item. +msgid "Configure tag subscriptions" +msgstr "" + +msgid "Tag subscriptions" +msgstr "" + +msgid "Subscribe to this tag" +msgstr "" + +#. TRANS: Page title when tag unsubscription succeeded. +msgid "Unsubscribed" +msgstr "Het abonnement is opgezegd" + +#. TRANS: Page title when tag subscription succeeded. +msgid "Subscribed" +msgstr "Geabonneerd" + +#. TRANS: Header for subscriptions overview for a user (first page). +#. TRANS: %s is a user nickname. +#, php-format +msgid "%s's tag subscriptions" +msgstr "" + +#. TRANS: Header for subscriptions overview for a user (not first page). +#. TRANS: %1$s is a user nickname, %2$d is the page number. +#, php-format +msgid "%1$s's tag subscriptions, page %2$d" +msgstr "" + +#. TRANS: Page notice for page with an overview of all tag subscriptions +#. TRANS: of the logged in user's own profile. +msgid "" +"You have subscribed to receive all notices on this site containing the " +"following tags:" +msgstr "" + +#. TRANS: Page notice for page with an overview of all subscriptions of a user other +#. TRANS: than the logged in user. %s is the user nickname. +#, php-format +msgid "" +"%s has subscribed to receive all notices on this site containing the " +"following tags:" +msgstr "" + +#. TRANS: Subscription list text when looking at the subscriptions for a of a user that has none +#. TRANS: as an anonymous user. %s is the user nickname. +#, php-format +msgid "%s is not listening to any tags." +msgstr "" + +#, php-format +msgid "#%s since %s" +msgstr "" diff --git a/plugins/TagSub/tagsubaction.php b/plugins/TagSub/tagsubaction.php new file mode 100644 index 0000000000..2e4e25d6e1 --- /dev/null +++ b/plugins/TagSub/tagsubaction.php @@ -0,0 +1,149 @@ +. + * + * PHP version 5 + * + * @category Action + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @copyright 2008-2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Tag subscription action + * + * Takes parameters: + * + * - token: session token to prevent CSRF attacks + * - ajax: boolean; whether to return Ajax or full-browser results + * + * Only works if the current user is logged in. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @author Brion Vibber + * @copyright 2008-2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ +class TagsubAction extends Action +{ + var $user; + var $tag; + + /** + * Check pre-requisites and instantiate attributes + * + * @param Array $args array of arguments (URL, GET, POST) + * + * @return boolean success flag + */ + function prepare($args) + { + parent::prepare($args); + if ($this->boolean('ajax')) { + StatusNet::setApi(true); + } + + // Only allow POST requests + + if ($_SERVER['REQUEST_METHOD'] != 'POST') { + // TRANS: Client error displayed trying to perform any request method other than POST. + // TRANS: Do not translate POST. + $this->clientError(_('This action only accepts POST requests.')); + return false; + } + + // CSRF protection + + $token = $this->trimmed('token'); + + if (!$token || $token != common_session_token()) { + // TRANS: Client error displayed when the session token is not okay. + $this->clientError(_('There was a problem with your session token.'. + ' Try again, please.')); + return false; + } + + // Only for logged-in users + + $this->user = common_current_user(); + + if (empty($this->user)) { + // TRANS: Client error displayed trying to subscribe when not logged in. + $this->clientError(_('Not logged in.')); + return false; + } + + // Profile to subscribe to + + $this->tag = $this->arg('tag'); + + if (empty($this->tag)) { + // TRANS: Client error displayed trying to subscribe to a non-existing profile. + $this->clientError(_('No such profile.')); + return false; + } + + return true; + } + + /** + * Handle request + * + * Does the subscription and returns results. + * + * @param Array $args unused. + * + * @return void + */ + function handle($args) + { + // Throws exception on error + + TagSub::start($this->user->getProfile(), + $this->tag); + + if ($this->boolean('ajax')) { + $this->startHTML('text/xml;charset=utf-8'); + $this->elementStart('head'); + // TRANS: Page title when tag subscription succeeded. + $this->element('title', null, _m('Subscribed')); + $this->elementEnd('head'); + $this->elementStart('body'); + $unsubscribe = new TagUnsubForm($this, $this->tag); + $unsubscribe->show(); + $this->elementEnd('body'); + $this->elementEnd('html'); + } else { + $url = common_local_url('tag', + array('tag' => $this->tag)); + common_redirect($url, 303); + } + } +} diff --git a/plugins/TagSub/tagsubform.php b/plugins/TagSub/tagsubform.php new file mode 100644 index 0000000000..108558be24 --- /dev/null +++ b/plugins/TagSub/tagsubform.php @@ -0,0 +1,142 @@ +. + * + * @category TagSubPlugin + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @author Sarven Capadisli + * @copyright 2009-2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * Form for subscribing to a user + * + * @category TagSubPlugin + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @author Sarven Capadisli + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see UnsubscribeForm + */ + +class TagSubForm extends Form +{ + /** + * Name of tag to subscribe to + */ + + var $tag = ''; + + /** + * Constructor + * + * @param HTMLOutputter $out output channel + * @param string $tag name of tag to subscribe to + */ + + function __construct($out=null, $tag=null) + { + parent::__construct($out); + + $this->tag = $tag; + } + + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'tag-subscribe-' . $this->tag; + } + + + /** + * class of the form + * + * @return string of the form class + */ + + function formClass() + { + // class to match existing styles... + return 'form_user_subscribe ajax'; + } + + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('tagsub', array('tag' => $this->tag)); + } + + + /** + * Legend of the Form + * + * @return void + */ + function formLegend() + { + $this->out->element('legend', null, _m('Subscribe to this tag')); + } + + /** + * Data elements of the form + * + * @return void + */ + + function formData() + { + $this->out->hidden('subscribeto-' . $this->tag, + $this->tag, + 'subscribeto'); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->submit('submit', _('Subscribe'), 'submit', null, _m('Subscribe to this tag')); + } +} diff --git a/plugins/TagSub/tagsubsaction.php b/plugins/TagSub/tagsubsaction.php new file mode 100644 index 0000000000..f11935229b --- /dev/null +++ b/plugins/TagSub/tagsubsaction.php @@ -0,0 +1,194 @@ +. + * + * @category Social + * @package StatusNet + * @author Evan Prodromou + * @author Sarven Capadisli + * @copyright 2008-2009 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * A list of the user's subscriptions + * + * @category Social + * @package StatusNet + * @author Evan Prodromou + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ +class TagSubsAction extends GalleryAction +{ + function title() + { + if ($this->page == 1) { + // TRANS: Header for subscriptions overview for a user (first page). + // TRANS: %s is a user nickname. + return sprintf(_m('%s\'s tag subscriptions'), $this->user->nickname); + } else { + // TRANS: Header for subscriptions overview for a user (not first page). + // TRANS: %1$s is a user nickname, %2$d is the page number. + return sprintf(_m('%1$s\'s tag subscriptions, page %2$d'), + $this->user->nickname, + $this->page); + } + } + + function showPageNotice() + { + $user = common_current_user(); + if ($user && ($user->id == $this->profile->id)) { + $this->element('p', null, + // TRANS: Page notice for page with an overview of all tag subscriptions + // TRANS: of the logged in user's own profile. + _m('You have subscribed to receive all notices on this site containing the following tags:')); + } else { + $this->element('p', null, + // TRANS: Page notice for page with an overview of all subscriptions of a user other + // TRANS: than the logged in user. %s is the user nickname. + sprintf(_m('%s has subscribed to receive all notices on this site containing the following tags:'), + $this->profile->nickname)); + } + } + + function showContent() + { + if (Event::handle('StartShowTagSubscriptionsContent', array($this))) { + parent::showContent(); + + $offset = ($this->page-1) * PROFILES_PER_PAGE; + $limit = PROFILES_PER_PAGE + 1; + + $cnt = 0; + + $tagsub = new TagSub(); + $tagsub->profile_id = $this->user->id; + $tagsub->limit($limit, $offset); + $tagsub->find(); + + if ($tagsub->N) { + $list = new TagSubscriptionsList($tagsub, $this->user, $this); + $cnt = $list->show(); + if (0 == $cnt) { + $this->showEmptyListMessage(); + } + } else { + $this->showEmptyListMessage(); + } + + $this->pagination($this->page > 1, $cnt > PROFILES_PER_PAGE, + $this->page, 'tagsubs', + array('nickname' => $this->user->nickname)); + + + Event::handle('EndShowTagSubscriptionsContent', array($this)); + } + } + + function showEmptyListMessage() + { + if (common_logged_in()) { + $current_user = common_current_user(); + if ($this->user->id === $current_user->id) { + // TRANS: Tag subscription list text when the logged in user has no tag subscriptions. + $message = _('You\'re not listening to any hash tags right now. You can push the "Subscribe" button ' . + 'on any hashtag page to automatically receive any public messages on this site that use that ' . + 'tag, even if you\'re not subscribed to the poster.'); + } else { + // TRANS: Tag subscription list text when looking at the subscriptions for a of a user other + // TRANS: than the logged in user that has no tag subscriptions. %s is the user nickname. + $message = sprintf(_('%s is not listening to any tags.'), $this->user->nickname); + } + } + else { + // TRANS: Subscription list text when looking at the subscriptions for a of a user that has none + // TRANS: as an anonymous user. %s is the user nickname. + $message = sprintf(_m('%s is not listening to any tags.'), $this->user->nickname); + } + + $this->elementStart('div', 'guide'); + $this->raw(common_markup_to_html($message)); + $this->elementEnd('div'); + } +} + +// XXX SubscriptionsList and SubscriptionList are dangerously close + +class TagSubscriptionsList extends SubscriptionList +{ + function newListItem($tagsub) + { + return new TagSubscriptionsListItem($tagsub, $this->owner, $this->action); + } +} + +class TagSubscriptionsListItem extends SubscriptionListItem +{ + function startItem() + { + $this->out->elementStart('li', array('class' => 'tagsub')); + } + + function showProfile() + { + $tagsub = $this->profile; + $tag = $tagsub->tag; + + // Relevant portion! + $cur = common_current_user(); + if (!empty($cur) && $cur->id == $this->owner->id) { + $this->showOwnerControls(); + } + + $url = common_local_url('tag', array('tag' => $tag)); + $linkline = sprintf(_m('#%s since %s'), + htmlspecialchars($url), + htmlspecialchars($tag), + common_date_string($tagsub->created)); + + $this->out->elementStart('div', 'tagsub-item'); + $this->out->raw($linkline); + $this->out->element('div', array('style' => 'clear: both')); + $this->out->elementEnd('div'); + } + + function showActions() + { + } + + function showOwnerControls() + { + $this->out->elementStart('div', 'entity_actions'); + + $tagsub = $this->profile; // ? + $form = new TagUnsubForm($this->out, $tagsub->tag); + $form->show(); + + $this->out->elementEnd('div'); + return; + } +} diff --git a/plugins/TagSub/tagunsubaction.php b/plugins/TagSub/tagunsubaction.php new file mode 100644 index 0000000000..26fb9ffec8 --- /dev/null +++ b/plugins/TagSub/tagunsubaction.php @@ -0,0 +1,89 @@ +. + * + * PHP version 5 + * + * @category Action + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @copyright 2008-2010 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ + +if (!defined('STATUSNET')) { + exit(1); +} + +/** + * Tag unsubscription action + * + * Takes parameters: + * + * - token: session token to prevent CSRF attacks + * - ajax: boolean; whether to return Ajax or full-browser results + * + * Only works if the current user is logged in. + * + * @category Action + * @package StatusNet + * @author Evan Prodromou + * @author Brion Vibber + * @copyright 2008-2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3 + * @link http://status.net/ + */ +class TagunsubAction extends TagsubAction +{ + /** + * Handle request + * + * Does the subscription and returns results. + * + * @param Array $args unused. + * + * @return void + */ + function handle($args) + { + // Throws exception on error + + TagSub::cancel($this->user->getProfile(), + $this->tag); + + if ($this->boolean('ajax')) { + $this->startHTML('text/xml;charset=utf-8'); + $this->elementStart('head'); + // TRANS: Page title when tag unsubscription succeeded. + $this->element('title', null, _m('Unsubscribed')); + $this->elementEnd('head'); + $this->elementStart('body'); + $subscribe = new TagSubForm($this, $this->tag); + $subscribe->show(); + $this->elementEnd('body'); + $this->elementEnd('html'); + } else { + $url = common_local_url('tag', + array('tag' => $this->tag)); + common_redirect($url, 303); + } + } +} diff --git a/plugins/TagSub/tagunsubform.php b/plugins/TagSub/tagunsubform.php new file mode 100644 index 0000000000..0b44648071 --- /dev/null +++ b/plugins/TagSub/tagunsubform.php @@ -0,0 +1,109 @@ +. + * + * @category TagSubPlugin + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @author Sarven Capadisli + * @copyright 2009-2011 StatusNet, Inc. + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + */ + +if (!defined('STATUSNET') && !defined('LACONICA')) { + exit(1); +} + +/** + * Form for subscribing to a user + * + * @category TagSubPlugin + * @package StatusNet + * @author Brion Vibber + * @author Evan Prodromou + * @author Sarven Capadisli + * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 + * @link http://status.net/ + * + * @see UnsubscribeForm + */ + +class TagUnsubForm extends TagSubForm +{ + /** + * ID of the form + * + * @return int ID of the form + */ + + function id() + { + return 'tag-unsubscribe-' . $this->tag; + } + + + /** + * class of the form + * + * @return string of the form class + */ + + function formClass() + { + // class to match existing styles... + return 'form_user_unsubscribe ajax'; + } + + + /** + * Action of the form + * + * @return string URL of the action + */ + + function action() + { + return common_local_url('tagunsub', array('tag' => $this->tag)); + } + + + /** + * Legend of the Form + * + * @return void + */ + function formLegend() + { + $this->out->element('legend', null, _m('Unsubscribe from this tag')); + } + + /** + * Action elements + * + * @return void + */ + + function formActions() + { + $this->out->submit('submit', _('Unsubscribe'), 'submit', null, _m('Unsubscribe from this tag')); + } +} diff --git a/plugins/TightUrl/locale/TightUrl.pot b/plugins/TightUrl/locale/TightUrl.pot index e749d38002..fdbd8ed4f8 100644 --- a/plugins/TightUrl/locale/TightUrl.pot +++ b/plugins/TightUrl/locale/TightUrl.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/TightUrl/locale/de/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/de/LC_MESSAGES/TightUrl.po index 1283c83ba5..4d4a7f927c 100644 --- a/plugins/TightUrl/locale/de/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/de/LC_MESSAGES/TightUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:54+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Benutzung des %1$s-URL-Kürzungsdienstes." diff --git a/plugins/TightUrl/locale/es/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/es/LC_MESSAGES/TightUrl.po index d45993f150..75edc40fbe 100644 --- a/plugins/TightUrl/locale/es/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/es/LC_MESSAGES/TightUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/TightUrl/locale/fr/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/fr/LC_MESSAGES/TightUrl.po index 7f439fcb05..354893191a 100644 --- a/plugins/TightUrl/locale/fr/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/fr/LC_MESSAGES/TightUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/TightUrl/locale/gl/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/gl/LC_MESSAGES/TightUrl.po index 8da08b4a61..33370ed1e5 100644 --- a/plugins/TightUrl/locale/gl/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/gl/LC_MESSAGES/TightUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Galician \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: gl\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/TightUrl/locale/he/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/he/LC_MESSAGES/TightUrl.po index aa87a5c00b..48e3090ed9 100644 --- a/plugins/TightUrl/locale/he/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/he/LC_MESSAGES/TightUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "שימוש בשירות קיצור הכתובות %1$s." diff --git a/plugins/TightUrl/locale/ia/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/ia/LC_MESSAGES/TightUrl.po index 3609b610ad..b80f1238ce 100644 --- a/plugins/TightUrl/locale/ia/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/ia/LC_MESSAGES/TightUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/TightUrl/locale/id/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/id/LC_MESSAGES/TightUrl.po index 6bfb03c2d3..9aa8fce78a 100644 --- a/plugins/TightUrl/locale/id/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/id/LC_MESSAGES/TightUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Menggunakan layanan pemendek URL %1$s." diff --git a/plugins/TightUrl/locale/ja/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/ja/LC_MESSAGES/TightUrl.po index bd413f9195..13f0528e64 100644 --- a/plugins/TightUrl/locale/ja/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/ja/LC_MESSAGES/TightUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Japanese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ja\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "%1$sをURL短縮サービスとして利用する。" diff --git a/plugins/TightUrl/locale/mk/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/mk/LC_MESSAGES/TightUrl.po index 734a99405d..fd48ad6b44 100644 --- a/plugins/TightUrl/locale/mk/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/mk/LC_MESSAGES/TightUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/TightUrl/locale/nb/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/nb/LC_MESSAGES/TightUrl.po index 61595b125b..894b6020a5 100644 --- a/plugins/TightUrl/locale/nb/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/nb/LC_MESSAGES/TightUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Bruker URL-forkortertjenesten %1$s." diff --git a/plugins/TightUrl/locale/nl/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/nl/LC_MESSAGES/TightUrl.po index 0e8ade5788..86fb9e8419 100644 --- a/plugins/TightUrl/locale/nl/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/nl/LC_MESSAGES/TightUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/TightUrl/locale/pt/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/pt/LC_MESSAGES/TightUrl.po index 3c1d236268..a7a451dc79 100644 --- a/plugins/TightUrl/locale/pt/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/pt/LC_MESSAGES/TightUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Usa o serviço de abreviação de URLs %1$s." diff --git a/plugins/TightUrl/locale/pt_BR/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/pt_BR/LC_MESSAGES/TightUrl.po index d42461220b..d48c45f9b1 100644 --- a/plugins/TightUrl/locale/pt_BR/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/pt_BR/LC_MESSAGES/TightUrl.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Brazilian Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/TightUrl/locale/ru/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/ru/LC_MESSAGES/TightUrl.po index 63887b9209..c32a91f2c5 100644 --- a/plugins/TightUrl/locale/ru/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/ru/LC_MESSAGES/TightUrl.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "Использование службы сокращения URL %1$s." diff --git a/plugins/TightUrl/locale/tl/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/tl/LC_MESSAGES/TightUrl.po index 72a32a1a67..a0f7c51e64 100644 --- a/plugins/TightUrl/locale/tl/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/tl/LC_MESSAGES/TightUrl.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/TightUrl/locale/uk/LC_MESSAGES/TightUrl.po b/plugins/TightUrl/locale/uk/LC_MESSAGES/TightUrl.po index 84eb10730e..c948b58510 100644 --- a/plugins/TightUrl/locale/uk/LC_MESSAGES/TightUrl.po +++ b/plugins/TightUrl/locale/uk/LC_MESSAGES/TightUrl.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TightUrl\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:10+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-tighturl\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: TightUrlPlugin.php:66 #, php-format msgid "Uses %1$s URL-shortener service." msgstr "" diff --git a/plugins/TinyMCE/TinyMCEPlugin.php b/plugins/TinyMCE/TinyMCEPlugin.php index 49bbdf90db..4051ff59ee 100644 --- a/plugins/TinyMCE/TinyMCEPlugin.php +++ b/plugins/TinyMCE/TinyMCEPlugin.php @@ -290,9 +290,14 @@ class TinyMCEPlugin extends Plugin // our AJAX form submission. Manually moving it to trigger // on our send button click. $scr = <<'); - $('#notice_action-submit').click(function() { + form.find('.submit:first').click(function() { tinymce.triggerSave(); }); @@ -319,14 +324,15 @@ class TinyMCEPlugin extends Plugin SN.U.Counter(noticeForm); }); - $('#'+SN.C.S.NoticeDataAttach).change(function() { + form.find('input[type=file]').change(function() { var img = ''; var html = tinyMCE.activeEditor.getContent(); ed.setContent(html + img); }); } }); - }); + }; + })(); END_OF_SCRIPT; return $scr; diff --git a/plugins/TinyMCE/locale/TinyMCE.pot b/plugins/TinyMCE/locale/TinyMCE.pot index 55764b7288..cc868d1400 100644 --- a/plugins/TinyMCE/locale/TinyMCE.pot +++ b/plugins/TinyMCE/locale/TinyMCE.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/TinyMCE/locale/ca/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/ca/LC_MESSAGES/TinyMCE.po index 88eb00425a..f441c8bd5a 100644 --- a/plugins/TinyMCE/locale/ca/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/ca/LC_MESSAGES/TinyMCE.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Catalan \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "" "Fes servir la biblioteca TinyMCE per permetre l'edició de text ric en el " diff --git a/plugins/TinyMCE/locale/eo/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/eo/LC_MESSAGES/TinyMCE.po index 50c612c9b5..bf458f00dc 100644 --- a/plugins/TinyMCE/locale/eo/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/eo/LC_MESSAGES/TinyMCE.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:07+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Esperanto \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: eo\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "" "Uzas la bibliotekon TinyMCE por ebligi redakton de riĉigita teksto en la " diff --git a/plugins/TinyMCE/locale/es/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/es/LC_MESSAGES/TinyMCE.po index 9106672959..baa6b2428b 100644 --- a/plugins/TinyMCE/locale/es/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/es/LC_MESSAGES/TinyMCE.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "" "Utiliza la biblioteca TinyMCE para permitir la edición de texto enriquecido " diff --git a/plugins/TinyMCE/locale/fr/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/fr/LC_MESSAGES/TinyMCE.po index bc63c04bbc..cc7c96bffd 100644 --- a/plugins/TinyMCE/locale/fr/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/fr/LC_MESSAGES/TinyMCE.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "" "Utiliser la bibliothèque TinyMCE pour permettre la modification de texte " diff --git a/plugins/TinyMCE/locale/he/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/he/LC_MESSAGES/TinyMCE.po index 50a0615f07..ab96ae202f 100644 --- a/plugins/TinyMCE/locale/he/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/he/LC_MESSAGES/TinyMCE.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:55+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "שימוש בספרייה TinyMCE כדי לאפשר עריכת טקסט עשיר באמצעות הדפדפן." diff --git a/plugins/TinyMCE/locale/ia/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/ia/LC_MESSAGES/TinyMCE.po index 385df5da9f..ef7c434eff 100644 --- a/plugins/TinyMCE/locale/ia/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/ia/LC_MESSAGES/TinyMCE.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:56+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "" "Usar le bibliotheca TinyMCE pro permitter le modification de texto " diff --git a/plugins/TinyMCE/locale/id/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/id/LC_MESSAGES/TinyMCE.po index 9369ecf97b..2d3ac59415 100644 --- a/plugins/TinyMCE/locale/id/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/id/LC_MESSAGES/TinyMCE.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:56+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "" "Gunakan pustaka TinyMCE untuk memungkinkan penyuntingan teks kaya pada " diff --git a/plugins/TinyMCE/locale/mk/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/mk/LC_MESSAGES/TinyMCE.po index e9106594b6..2fe575d811 100644 --- a/plugins/TinyMCE/locale/mk/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/mk/LC_MESSAGES/TinyMCE.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:56+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "" "Користи ја библиотеката TinyMCE за уредување со збогатен текст во " diff --git a/plugins/TinyMCE/locale/nb/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/nb/LC_MESSAGES/TinyMCE.po index 0eed6e9667..da6cae6821 100644 --- a/plugins/TinyMCE/locale/nb/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/nb/LC_MESSAGES/TinyMCE.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:56+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "" "Bruk TinyMCE-biblioteket for å tillate rik tekstredigering i nettleseren." diff --git a/plugins/TinyMCE/locale/nl/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/nl/LC_MESSAGES/TinyMCE.po index d5e675d8bd..229a43c9f9 100644 --- a/plugins/TinyMCE/locale/nl/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/nl/LC_MESSAGES/TinyMCE.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:56+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "TinyMCE gebruiken om WYSIWYG-bewerken in de browser mogelijk te maken." diff --git a/plugins/TinyMCE/locale/pt/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/pt/LC_MESSAGES/TinyMCE.po index 1bc9f10e9f..13d5398292 100644 --- a/plugins/TinyMCE/locale/pt/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/pt/LC_MESSAGES/TinyMCE.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:56+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "Use biblioteca TinyMCE para permitir a edição em rich text no browser." diff --git a/plugins/TinyMCE/locale/pt_BR/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/pt_BR/LC_MESSAGES/TinyMCE.po index 328e93c5ee..3170423b3a 100644 --- a/plugins/TinyMCE/locale/pt_BR/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/pt_BR/LC_MESSAGES/TinyMCE.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:56+0000\n" "Language-Team: Brazilian Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "" "Utilizar a biblioteca TinyMCE para permitir edição em rich text no navegador." diff --git a/plugins/TinyMCE/locale/ru/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/ru/LC_MESSAGES/TinyMCE.po index e8d4fdccab..26f72e6ef2 100644 --- a/plugins/TinyMCE/locale/ru/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/ru/LC_MESSAGES/TinyMCE.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:56+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "" "Использование библиотеки TinyMCE, для редактирования текста в браузере." diff --git a/plugins/TinyMCE/locale/tl/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/tl/LC_MESSAGES/TinyMCE.po index 16e60f248f..8bc58dbeb8 100644 --- a/plugins/TinyMCE/locale/tl/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/tl/LC_MESSAGES/TinyMCE.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:56+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "" "Gamitin ang aklatan ng TinyMCE upang pahintulutan ang pamamatnugot ng " diff --git a/plugins/TinyMCE/locale/uk/LC_MESSAGES/TinyMCE.po b/plugins/TinyMCE/locale/uk/LC_MESSAGES/TinyMCE.po index 606ceabb70..2968dcc9f9 100644 --- a/plugins/TinyMCE/locale/uk/LC_MESSAGES/TinyMCE.po +++ b/plugins/TinyMCE/locale/uk/LC_MESSAGES/TinyMCE.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TinyMCE\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:08+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:49:56+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:12+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:36+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-tinymce\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: TinyMCEPlugin.php:87 msgid "Use TinyMCE library to allow rich text editing in the browser." msgstr "" "Використання бібліотеки TinyMCE для простого форматування тексту у вікні " diff --git a/plugins/TwitterBridge/locale/TwitterBridge.pot b/plugins/TwitterBridge/locale/TwitterBridge.pot index b8c627b9cb..a96773b437 100644 --- a/plugins/TwitterBridge/locale/TwitterBridge.pot +++ b/plugins/TwitterBridge/locale/TwitterBridge.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,150 +16,108 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. -#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: twitterimport.php:114 -#, php-format -msgid "RT @%1$s %2$s" +#: twittersettings.php:57 +msgid "Twitter settings" msgstr "" -#: twitter.php:409 -msgid "Your Twitter bridge has been disabled." +#: twittersettings.php:68 +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." msgstr "" -#: twitter.php:413 +#: twittersettings.php:115 +msgid "Twitter account" +msgstr "" + +#: twittersettings.php:120 +msgid "Connected Twitter account" +msgstr "" + +#: twittersettings.php:125 +msgid "Disconnect my account from Twitter" +msgstr "" + +#: twittersettings.php:131 +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" + +#: twittersettings.php:135 +msgid "set a password" +msgstr "" + +#: twittersettings.php:137 +msgid " first." +msgstr "" + +#. TRANS: %1$s is the current website name. +#: twittersettings.php:141 #, php-format msgid "" -"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " -"disabled. We no longer seem to have permission to update your Twitter " -"status. Did you maybe revoke %3$s's access?\n" -"\n" -"You can re-enable your Twitter bridge by visiting your Twitter settings " -"page:\n" -"\n" -"\t%2$s\n" -"\n" -"Regards,\n" -"%3$s" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." msgstr "" -#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 -#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 -msgid "Twitter" +#: twittersettings.php:149 +msgid "Disconnect" msgstr "" -#: TwitterBridgePlugin.php:152 -msgid "Login or register using Twitter" +#: twittersettings.php:156 +msgid "Preferences" msgstr "" -#: TwitterBridgePlugin.php:175 -msgid "Twitter integration options" +#: twittersettings.php:160 +msgid "Automatically send my notices to Twitter." msgstr "" -#: TwitterBridgePlugin.php:303 -msgid "Twitter bridge configuration" +#: twittersettings.php:167 +msgid "Send local \"@\" replies to Twitter." msgstr "" -#: TwitterBridgePlugin.php:327 -msgid "" -"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " -"with Twitter." +#: twittersettings.php:174 +msgid "Subscribe to my Twitter friends here." msgstr "" -#: twitteradminpanel.php:62 -msgid "Twitter bridge settings" +#: twittersettings.php:183 +msgid "Import my friends timeline." msgstr "" -#: twitteradminpanel.php:150 -msgid "Invalid consumer key. Max length is 255 characters." -msgstr "" - -#: twitteradminpanel.php:156 -msgid "Invalid consumer secret. Max length is 255 characters." -msgstr "" - -#: twitteradminpanel.php:212 -msgid "Twitter application settings" -msgstr "" - -#: twitteradminpanel.php:218 -msgid "Consumer key" -msgstr "" - -#: twitteradminpanel.php:219 -msgid "Consumer key assigned by Twitter" -msgstr "" - -#: twitteradminpanel.php:227 -msgid "Consumer secret" -msgstr "" - -#: twitteradminpanel.php:228 -msgid "Consumer secret assigned by Twitter" -msgstr "" - -#: twitteradminpanel.php:238 -msgid "Note: a global consumer key and secret are set." -msgstr "" - -#: twitteradminpanel.php:245 -msgid "Integration source" -msgstr "" - -#: twitteradminpanel.php:246 -msgid "Name of your Twitter application" -msgstr "" - -#: twitteradminpanel.php:258 -msgid "Options" -msgstr "" - -#: twitteradminpanel.php:265 -msgid "Enable \"Sign-in with Twitter\"" -msgstr "" - -#: twitteradminpanel.php:267 -msgid "Allow users to login with their Twitter credentials" -msgstr "" - -#: twitteradminpanel.php:274 -msgid "Enable Twitter import" -msgstr "" - -#: twitteradminpanel.php:276 -msgid "" -"Allow users to import their Twitter friends' timelines. Requires daemons to " -"be manually configured." -msgstr "" - -#: twitteradminpanel.php:293 twittersettings.php:199 +#: twittersettings.php:199 twitteradminpanel.php:293 msgid "Save" msgstr "" -#: twitteradminpanel.php:293 -msgid "Save Twitter settings" +#: twittersettings.php:201 +msgid "Add" msgstr "" -#: twitterlogin.php:56 -msgid "Already logged in." -msgstr "" - -#: twitterlogin.php:64 -msgid "Twitter Login" -msgstr "" - -#: twitterlogin.php:69 -msgid "Login with your Twitter account" -msgstr "" - -#: twitterlogin.php:87 -msgid "Sign in with Twitter" -msgstr "" - -#: twitterauthorization.php:120 twittersettings.php:225 +#: twittersettings.php:225 twitterauthorization.php:120 msgid "There was a problem with your session token. Try again, please." msgstr "" +#: twittersettings.php:235 +msgid "Unexpected form submission." +msgstr "" + +#: twittersettings.php:250 +msgid "No Twitter connection to remove." +msgstr "" + +#: twittersettings.php:258 +msgid "Couldn't remove Twitter user." +msgstr "" + +#: twittersettings.php:262 +msgid "Twitter account disconnected." +msgstr "" + +#: twittersettings.php:282 twittersettings.php:293 +msgid "Couldn't save Twitter preferences." +msgstr "" + +#: twittersettings.php:301 +msgid "Twitter preferences saved." +msgstr "" + #: twitterauthorization.php:126 msgid "You can't register if you don't agree to the license." msgstr "" @@ -271,96 +229,138 @@ msgstr "" msgid "Invalid username or password." msgstr "" -#: twittersettings.php:57 -msgid "Twitter settings" +#: twitteradminpanel.php:52 TwitterBridgePlugin.php:151 +#: TwitterBridgePlugin.php:174 TwitterBridgePlugin.php:302 +msgid "Twitter" msgstr "" -#: twittersettings.php:68 +#: twitteradminpanel.php:62 +msgid "Twitter bridge settings" +msgstr "" + +#: twitteradminpanel.php:150 +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "" + +#: twitteradminpanel.php:156 +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "" + +#: twitteradminpanel.php:212 +msgid "Twitter application settings" +msgstr "" + +#: twitteradminpanel.php:218 +msgid "Consumer key" +msgstr "" + +#: twitteradminpanel.php:219 +msgid "Consumer key assigned by Twitter" +msgstr "" + +#: twitteradminpanel.php:227 +msgid "Consumer secret" +msgstr "" + +#: twitteradminpanel.php:228 +msgid "Consumer secret assigned by Twitter" +msgstr "" + +#: twitteradminpanel.php:238 +msgid "Note: a global consumer key and secret are set." +msgstr "" + +#: twitteradminpanel.php:245 +msgid "Integration source" +msgstr "" + +#: twitteradminpanel.php:246 +msgid "Name of your Twitter application" +msgstr "" + +#: twitteradminpanel.php:258 +msgid "Options" +msgstr "" + +#: twitteradminpanel.php:265 +msgid "Enable \"Sign-in with Twitter\"" +msgstr "" + +#: twitteradminpanel.php:267 +msgid "Allow users to login with their Twitter credentials" +msgstr "" + +#: twitteradminpanel.php:274 +msgid "Enable Twitter import" +msgstr "" + +#: twitteradminpanel.php:276 msgid "" -"Connect your Twitter account to share your updates with your Twitter friends " -"and vice-versa." +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." msgstr "" -#: twittersettings.php:115 -msgid "Twitter account" +#: twitteradminpanel.php:293 +msgid "Save Twitter settings" msgstr "" -#: twittersettings.php:120 -msgid "Connected Twitter account" +#: TwitterBridgePlugin.php:152 +msgid "Login or register using Twitter" msgstr "" -#: twittersettings.php:125 -msgid "Disconnect my account from Twitter" +#: TwitterBridgePlugin.php:175 +msgid "Twitter integration options" msgstr "" -#: twittersettings.php:131 -msgid "Disconnecting your Twitter could make it impossible to log in! Please " +#: TwitterBridgePlugin.php:303 +msgid "Twitter bridge configuration" msgstr "" -#: twittersettings.php:135 -msgid "set a password" +#: TwitterBridgePlugin.php:327 +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with Twitter." msgstr "" -#: twittersettings.php:137 -msgid " first." +#: twitterlogin.php:56 +msgid "Already logged in." msgstr "" -#. TRANS: %1$s is the current website name. -#: twittersettings.php:141 +#: twitterlogin.php:64 +msgid "Twitter Login" +msgstr "" + +#: twitterlogin.php:69 +msgid "Login with your Twitter account" +msgstr "" + +#: twitterlogin.php:87 +msgid "Sign in with Twitter" +msgstr "" + +#: twitter.php:409 +msgid "Your Twitter bridge has been disabled." +msgstr "" + +#: twitter.php:413 #, php-format msgid "" -"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " -"password to log in." +"Hi, %1$s. We're sorry to inform you that your link to Twitter has been " +"disabled. We no longer seem to have permission to update your Twitter " +"status. Did you maybe revoke %3$s's access?\n" +"\n" +"You can re-enable your Twitter bridge by visiting your Twitter settings " +"page:\n" +"\n" +"\t%2$s\n" +"\n" +"Regards,\n" +"%3$s" msgstr "" -#: twittersettings.php:149 -msgid "Disconnect" -msgstr "" - -#: twittersettings.php:156 -msgid "Preferences" -msgstr "" - -#: twittersettings.php:160 -msgid "Automatically send my notices to Twitter." -msgstr "" - -#: twittersettings.php:167 -msgid "Send local \"@\" replies to Twitter." -msgstr "" - -#: twittersettings.php:174 -msgid "Subscribe to my Twitter friends here." -msgstr "" - -#: twittersettings.php:183 -msgid "Import my friends timeline." -msgstr "" - -#: twittersettings.php:201 -msgid "Add" -msgstr "" - -#: twittersettings.php:235 -msgid "Unexpected form submission." -msgstr "" - -#: twittersettings.php:250 -msgid "No Twitter connection to remove." -msgstr "" - -#: twittersettings.php:258 -msgid "Couldn't remove Twitter user." -msgstr "" - -#: twittersettings.php:262 -msgid "Twitter account disconnected." -msgstr "" - -#: twittersettings.php:282 twittersettings.php:293 -msgid "Couldn't save Twitter preferences." -msgstr "" - -#: twittersettings.php:301 -msgid "Twitter preferences saved." +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. +#: twitterimport.php:114 +#, php-format +msgid "RT @%1$s %2$s" msgstr "" diff --git a/plugins/TwitterBridge/locale/br/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/br/LC_MESSAGES/TwitterBridge.po index 49a8831e9f..944b602f14 100644 --- a/plugins/TwitterBridge/locale/br/LC_MESSAGES/TwitterBridge.po +++ b/plugins/TwitterBridge/locale/br/LC_MESSAGES/TwitterBridge.po @@ -9,30 +9,265 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TwitterBridge\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:13+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:00+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:14+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-twitterbridge\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. -#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: twitterimport.php:114 -#, php-format -msgid "RT @%1$s %2$s" -msgstr "RT @%1$s %2$s" +msgid "Twitter settings" +msgstr "Arventennoù Twitter" + +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" + +msgid "Twitter account" +msgstr "Kont Twitter" + +msgid "Connected Twitter account" +msgstr "" + +msgid "Disconnect my account from Twitter" +msgstr "Digevreañ ma c'hont deus Twitter" + +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" + +msgid "set a password" +msgstr "Termeniñ ur ger-tremen" + +msgid " first." +msgstr "da gentañ." + +#. TRANS: %1$s is the current website name. +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" + +msgid "Disconnect" +msgstr "Digevreet" + +msgid "Preferences" +msgstr "Penndibaboù" + +msgid "Automatically send my notices to Twitter." +msgstr "" + +msgid "Send local \"@\" replies to Twitter." +msgstr "" + +msgid "Subscribe to my Twitter friends here." +msgstr "" + +msgid "Import my friends timeline." +msgstr "" + +msgid "Save" +msgstr "Enrollañ" + +msgid "Add" +msgstr "Ouzhpennañ" + +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +msgid "Unexpected form submission." +msgstr "" + +msgid "No Twitter connection to remove." +msgstr "" + +msgid "Couldn't remove Twitter user." +msgstr "" + +msgid "Twitter account disconnected." +msgstr "" + +msgid "Couldn't save Twitter preferences." +msgstr "" + +msgid "Twitter preferences saved." +msgstr "" + +msgid "You can't register if you don't agree to the license." +msgstr "" + +msgid "Something weird happened." +msgstr "" + +msgid "Couldn't link your Twitter account." +msgstr "" + +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" + +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" + +msgid "Twitter Account Setup" +msgstr "" + +msgid "Connection options" +msgstr "Dibarzhioù kevreañ" + +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +msgid "Create new account" +msgstr "Krouiñ ur gont nevez" + +msgid "Create a new user with this nickname." +msgstr "Krouiñ un implijer nevez gant al lesanv-se." + +msgid "New nickname" +msgstr "Lesanv nevez" + +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +msgid "Create" +msgstr "Krouiñ" + +msgid "Connect existing account" +msgstr "Kevreañ d'ur gont a zo dioutañ" + +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" + +msgid "Existing nickname" +msgstr "Lesanv a zo dioutañ" + +msgid "Password" +msgstr "Ger-tremen" + +msgid "Connect" +msgstr "Kevreañ" + +msgid "Registration not allowed." +msgstr "N'eo ket aotreet krouiñ kontoù." + +msgid "Not a valid invitation code." +msgstr "" + +msgid "Nickname not allowed." +msgstr "Lesanv nann-aotreet." + +msgid "Nickname already in use. Try another one." +msgstr "Implijet eo dija al lesanv-se. Klaskit unan all." + +msgid "Error registering user." +msgstr "" + +msgid "Error connecting user to Twitter." +msgstr "" + +msgid "Invalid username or password." +msgstr "Anv implijer pe ger-tremen direizh." + +msgid "Twitter" +msgstr "Twitter" + +msgid "Twitter bridge settings" +msgstr "" + +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "" + +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "" + +msgid "Twitter application settings" +msgstr "" + +msgid "Consumer key" +msgstr "" + +msgid "Consumer key assigned by Twitter" +msgstr "" + +msgid "Consumer secret" +msgstr "" + +msgid "Consumer secret assigned by Twitter" +msgstr "" + +msgid "Note: a global consumer key and secret are set." +msgstr "" + +msgid "Integration source" +msgstr "" + +msgid "Name of your Twitter application" +msgstr "" + +msgid "Options" +msgstr "Dibarzhioù" + +msgid "Enable \"Sign-in with Twitter\"" +msgstr "" + +msgid "Allow users to login with their Twitter credentials" +msgstr "" + +msgid "Enable Twitter import" +msgstr "" + +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" + +msgid "Save Twitter settings" +msgstr "Enrollañ arventennoù Twitter" + +msgid "Login or register using Twitter" +msgstr "Kevreañ pe en em enskrivañ dre Twitter" + +msgid "Twitter integration options" +msgstr "Dibarzhioù enframmañ Twitter" + +msgid "Twitter bridge configuration" +msgstr "" + +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with Twitter." +msgstr "" + +msgid "Already logged in." +msgstr "Kevreet oc'h dija." + +msgid "Twitter Login" +msgstr "Keveadenn Twitter" + +msgid "Login with your Twitter account" +msgstr "Kevreadenn gant ho kont Twitter" + +msgid "Sign in with Twitter" +msgstr "Kevreañ gant Twitter" -#: twitter.php:409 msgid "Your Twitter bridge has been disabled." msgstr "" -#: twitter.php:413 #, php-format msgid "" "Hi, %1$s. We're sorry to inform you that your link to Twitter has been " @@ -48,324 +283,8 @@ msgid "" "%3$s" msgstr "" -#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 -#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 -msgid "Twitter" -msgstr "Twitter" - -#: TwitterBridgePlugin.php:152 -msgid "Login or register using Twitter" -msgstr "Kevreañ pe en em enskrivañ dre Twitter" - -#: TwitterBridgePlugin.php:175 -msgid "Twitter integration options" -msgstr "Dibarzhioù enframmañ Twitter" - -#: TwitterBridgePlugin.php:303 -msgid "Twitter bridge configuration" -msgstr "" - -#: TwitterBridgePlugin.php:327 -msgid "" -"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " -"with Twitter." -msgstr "" - -#: twitteradminpanel.php:62 -msgid "Twitter bridge settings" -msgstr "" - -#: twitteradminpanel.php:150 -msgid "Invalid consumer key. Max length is 255 characters." -msgstr "" - -#: twitteradminpanel.php:156 -msgid "Invalid consumer secret. Max length is 255 characters." -msgstr "" - -#: twitteradminpanel.php:212 -msgid "Twitter application settings" -msgstr "" - -#: twitteradminpanel.php:218 -msgid "Consumer key" -msgstr "" - -#: twitteradminpanel.php:219 -msgid "Consumer key assigned by Twitter" -msgstr "" - -#: twitteradminpanel.php:227 -msgid "Consumer secret" -msgstr "" - -#: twitteradminpanel.php:228 -msgid "Consumer secret assigned by Twitter" -msgstr "" - -#: twitteradminpanel.php:238 -msgid "Note: a global consumer key and secret are set." -msgstr "" - -#: twitteradminpanel.php:245 -msgid "Integration source" -msgstr "" - -#: twitteradminpanel.php:246 -msgid "Name of your Twitter application" -msgstr "" - -#: twitteradminpanel.php:258 -msgid "Options" -msgstr "Dibarzhioù" - -#: twitteradminpanel.php:265 -msgid "Enable \"Sign-in with Twitter\"" -msgstr "" - -#: twitteradminpanel.php:267 -msgid "Allow users to login with their Twitter credentials" -msgstr "" - -#: twitteradminpanel.php:274 -msgid "Enable Twitter import" -msgstr "" - -#: twitteradminpanel.php:276 -msgid "" -"Allow users to import their Twitter friends' timelines. Requires daemons to " -"be manually configured." -msgstr "" - -#: twitteradminpanel.php:293 twittersettings.php:199 -msgid "Save" -msgstr "Enrollañ" - -#: twitteradminpanel.php:293 -msgid "Save Twitter settings" -msgstr "Enrollañ arventennoù Twitter" - -#: twitterlogin.php:56 -msgid "Already logged in." -msgstr "Kevreet oc'h dija." - -#: twitterlogin.php:64 -msgid "Twitter Login" -msgstr "Keveadenn Twitter" - -#: twitterlogin.php:69 -msgid "Login with your Twitter account" -msgstr "Kevreadenn gant ho kont Twitter" - -#: twitterlogin.php:87 -msgid "Sign in with Twitter" -msgstr "Kevreañ gant Twitter" - -#: twitterauthorization.php:120 twittersettings.php:225 -msgid "There was a problem with your session token. Try again, please." -msgstr "" - -#: twitterauthorization.php:126 -msgid "You can't register if you don't agree to the license." -msgstr "" - -#: twitterauthorization.php:135 -msgid "Something weird happened." -msgstr "" - -#: twitterauthorization.php:181 twitterauthorization.php:229 -#: twitterauthorization.php:300 -msgid "Couldn't link your Twitter account." -msgstr "" - -#: twitterauthorization.php:201 -msgid "Couldn't link your Twitter account: oauth_token mismatch." -msgstr "" - -#: twitterauthorization.php:312 +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. #, php-format -msgid "" -"This is the first time you've logged into %s so we must connect your Twitter " -"account to a local account. You can either create a new account, or connect " -"with your existing account, if you have one." -msgstr "" - -#: twitterauthorization.php:318 -msgid "Twitter Account Setup" -msgstr "" - -#: twitterauthorization.php:351 -msgid "Connection options" -msgstr "Dibarzhioù kevreañ" - -#: twitterauthorization.php:360 -#, php-format -msgid "" -"My text and files are available under %s except this private data: password, " -"email address, IM address, and phone number." -msgstr "" - -#: twitterauthorization.php:381 -msgid "Create new account" -msgstr "Krouiñ ur gont nevez" - -#: twitterauthorization.php:383 -msgid "Create a new user with this nickname." -msgstr "Krouiñ un implijer nevez gant al lesanv-se." - -#: twitterauthorization.php:390 -msgid "New nickname" -msgstr "Lesanv nevez" - -#: twitterauthorization.php:392 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "" - -#: twitterauthorization.php:404 -msgid "Create" -msgstr "Krouiñ" - -#: twitterauthorization.php:409 -msgid "Connect existing account" -msgstr "Kevreañ d'ur gont a zo dioutañ" - -#: twitterauthorization.php:411 -msgid "" -"If you already have an account, login with your username and password to " -"connect it to your Twitter account." -msgstr "" - -#: twitterauthorization.php:414 -msgid "Existing nickname" -msgstr "Lesanv a zo dioutañ" - -#: twitterauthorization.php:417 -msgid "Password" -msgstr "Ger-tremen" - -#: twitterauthorization.php:420 -msgid "Connect" -msgstr "Kevreañ" - -#: twitterauthorization.php:466 twitterauthorization.php:475 -msgid "Registration not allowed." -msgstr "N'eo ket aotreet krouiñ kontoù." - -#: twitterauthorization.php:482 -msgid "Not a valid invitation code." -msgstr "" - -#: twitterauthorization.php:495 -msgid "Nickname not allowed." -msgstr "Lesanv nann-aotreet." - -#: twitterauthorization.php:500 -msgid "Nickname already in use. Try another one." -msgstr "Implijet eo dija al lesanv-se. Klaskit unan all." - -#: twitterauthorization.php:520 -msgid "Error registering user." -msgstr "" - -#: twitterauthorization.php:531 twitterauthorization.php:571 -#: twitterauthorization.php:591 -msgid "Error connecting user to Twitter." -msgstr "" - -#: twitterauthorization.php:553 -msgid "Invalid username or password." -msgstr "Anv implijer pe ger-tremen direizh." - -#: twittersettings.php:57 -msgid "Twitter settings" -msgstr "Arventennoù Twitter" - -#: twittersettings.php:68 -msgid "" -"Connect your Twitter account to share your updates with your Twitter friends " -"and vice-versa." -msgstr "" - -#: twittersettings.php:115 -msgid "Twitter account" -msgstr "Kont Twitter" - -#: twittersettings.php:120 -msgid "Connected Twitter account" -msgstr "" - -#: twittersettings.php:125 -msgid "Disconnect my account from Twitter" -msgstr "Digevreañ ma c'hont deus Twitter" - -#: twittersettings.php:131 -msgid "Disconnecting your Twitter could make it impossible to log in! Please " -msgstr "" - -#: twittersettings.php:135 -msgid "set a password" -msgstr "Termeniñ ur ger-tremen" - -#: twittersettings.php:137 -msgid " first." -msgstr "da gentañ." - -#. TRANS: %1$s is the current website name. -#: twittersettings.php:141 -#, php-format -msgid "" -"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " -"password to log in." -msgstr "" - -#: twittersettings.php:149 -msgid "Disconnect" -msgstr "Digevreet" - -#: twittersettings.php:156 -msgid "Preferences" -msgstr "Penndibaboù" - -#: twittersettings.php:160 -msgid "Automatically send my notices to Twitter." -msgstr "" - -#: twittersettings.php:167 -msgid "Send local \"@\" replies to Twitter." -msgstr "" - -#: twittersettings.php:174 -msgid "Subscribe to my Twitter friends here." -msgstr "" - -#: twittersettings.php:183 -msgid "Import my friends timeline." -msgstr "" - -#: twittersettings.php:201 -msgid "Add" -msgstr "Ouzhpennañ" - -#: twittersettings.php:235 -msgid "Unexpected form submission." -msgstr "" - -#: twittersettings.php:250 -msgid "No Twitter connection to remove." -msgstr "" - -#: twittersettings.php:258 -msgid "Couldn't remove Twitter user." -msgstr "" - -#: twittersettings.php:262 -msgid "Twitter account disconnected." -msgstr "" - -#: twittersettings.php:282 twittersettings.php:293 -msgid "Couldn't save Twitter preferences." -msgstr "" - -#: twittersettings.php:301 -msgid "Twitter preferences saved." -msgstr "" +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" diff --git a/plugins/TwitterBridge/locale/ca/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/ca/LC_MESSAGES/TwitterBridge.po index 8949997fcc..cedbe33bbb 100644 --- a/plugins/TwitterBridge/locale/ca/LC_MESSAGES/TwitterBridge.po +++ b/plugins/TwitterBridge/locale/ca/LC_MESSAGES/TwitterBridge.po @@ -9,30 +9,288 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TwitterBridge\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:13+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:00+0000\n" "Language-Team: Catalan \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:14+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: #out-statusnet-plugin-twitterbridge\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. -#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: twitterimport.php:114 -#, php-format -msgid "RT @%1$s %2$s" -msgstr "RT @%1$s %2$s" +msgid "Twitter settings" +msgstr "Paràmetres del Twitter" + +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Connecteu el vostre compte del Twitter per compartir les vostres " +"actualitzacions amb els vostres amics del Twitter i viceversa." + +msgid "Twitter account" +msgstr "Compte del Twitter" + +msgid "Connected Twitter account" +msgstr "Compte del Twitter connectat" + +msgid "Disconnect my account from Twitter" +msgstr "Desconnecta el meu compte del Twitter" + +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" +"En desconnectar el vostre Twitter podeu impossibilitar que torneu a iniciar " +"una sessió! " + +msgid "set a password" +msgstr "Definiu una contrasenya" + +msgid " first." +msgstr " primer." + +#. TRANS: %1$s is the current website name. +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" +"Mantingueu el vostre compte %1$s, però desconnecteu-lo del Twitter. Podeu " +"emprar la vostra contrasenya %1$s per iniciar una sessió." + +msgid "Disconnect" +msgstr "Desconnecta" + +msgid "Preferences" +msgstr "Preferències" + +msgid "Automatically send my notices to Twitter." +msgstr "Envia automàticament els meus avisos al Twitter." + +msgid "Send local \"@\" replies to Twitter." +msgstr "Envia les respostes locals «@» al Twitter." + +msgid "Subscribe to my Twitter friends here." +msgstr "Subscriu els meus amics del Twitter aquí." + +msgid "Import my friends timeline." +msgstr "Importa la línia temporal d'amics." + +msgid "Save" +msgstr "Desa" + +msgid "Add" +msgstr "Afegeix" + +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"S'ha produït un problema amb el vostre testimoni de sessió. Torneu-ho a " +"provar." + +msgid "Unexpected form submission." +msgstr "Enviament de formulari inesperat." + +msgid "No Twitter connection to remove." +msgstr "No hi ha cap connexió del Twitter a suprimir." + +msgid "Couldn't remove Twitter user." +msgstr "No s'ha pogut suprimir l'usuari del Twitter." + +msgid "Twitter account disconnected." +msgstr "S'ha desconnectat el compte del Twitter." + +msgid "Couldn't save Twitter preferences." +msgstr "No s'han pogut desar les preferències del Twitter." + +msgid "Twitter preferences saved." +msgstr "S'han desat les preferències del Twitter." + +msgid "You can't register if you don't agree to the license." +msgstr "No podeu registrar-vos-hi si no accepteu la llicència." + +msgid "Something weird happened." +msgstr "Ha passat quelcom estrany." + +msgid "Couldn't link your Twitter account." +msgstr "No s'ha pogut enllaçar amb el compte del Twitter." + +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" +"No s'ha pogut enllaçar amb el vostre compte del Twitter: no coincidència de " +"l'oath_token." + +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Aquesta és la primera vegada que inicieu una sessió a %s, per tant hem de " +"connectar el vostre compte del Twitter al vostre compte local. Podeu crear " +"un compte nou, o bé connectar-vos amb un compte ja existent si en teniu un." + +msgid "Twitter Account Setup" +msgstr "Configuració del compte del Twitter" + +msgid "Connection options" +msgstr "Opcions de connexió" + +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"El meu text i fitxers es troben disponibles sots %s excepte pel que fa a les " +"dades privades: contrasenya, adreça de correu electrònic i MI, i número de " +"telèfon." + +msgid "Create new account" +msgstr "Crea un compte nou" + +msgid "Create a new user with this nickname." +msgstr "Crea un usuari nom amb aquest sobrenom." + +msgid "New nickname" +msgstr "Nou sobrenom" + +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 lletres en minúscules o nombres, sense puntuació o espais" + +msgid "Create" +msgstr "Crea" + +msgid "Connect existing account" +msgstr "Connecta un compte ja existent" + +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Si ja teniu un compte, inicieu una sessió amb el vostre usuari i contrasenya " +"per connectar-lo al vostre compte del Twitter." + +msgid "Existing nickname" +msgstr "Sobrenom ja existent" + +msgid "Password" +msgstr "Contrasenya" + +msgid "Connect" +msgstr "Connecta" + +msgid "Registration not allowed." +msgstr "No es permet el registre." + +msgid "Not a valid invitation code." +msgstr "No és un codi d'invitació vàlid." + +msgid "Nickname not allowed." +msgstr "El sobrenom no és permès." + +msgid "Nickname already in use. Try another one." +msgstr "El sobrenom ja és en ús. Proveu-ne un altre." + +msgid "Error registering user." +msgstr "Error en registrar l'usuari." + +msgid "Error connecting user to Twitter." +msgstr "Error en connectar l'usuari al Twitter." + +msgid "Invalid username or password." +msgstr "Nom d'usuari o contrasenya no vàlida." + +msgid "Twitter" +msgstr "Twitter" + +msgid "Twitter bridge settings" +msgstr "Paràmetres del pont del Twitter" + +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "Clau de consumidor no vàlida. La llargada màxima és 255 caràcters." + +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "" +"Clau secreta de consumidor no vàlida. La llargada màxima és 255 caràcters." + +msgid "Twitter application settings" +msgstr "Paràmetres de l'aplicació del Twitter" + +msgid "Consumer key" +msgstr "Clau de consumidor" + +msgid "Consumer key assigned by Twitter" +msgstr "Clau de consumidor assignada pel Twitter" + +msgid "Consumer secret" +msgstr "Clau secreta de consumidor" + +msgid "Consumer secret assigned by Twitter" +msgstr "Clau secreta de consumidor assignada pel Twitter" + +msgid "Note: a global consumer key and secret are set." +msgstr "Nota: es defineixen una clau pública i secreta de consumidor." + +msgid "Integration source" +msgstr "Font d'integració" + +msgid "Name of your Twitter application" +msgstr "Nom de la vostra aplicació del Twitter" + +msgid "Options" +msgstr "Opcions" + +msgid "Enable \"Sign-in with Twitter\"" +msgstr "Habilita l'inici de sessió amb el Twitter" + +msgid "Allow users to login with their Twitter credentials" +msgstr "Permet als usuaris iniciar una sessió amb les credencials del Twitter" + +msgid "Enable Twitter import" +msgstr "Habilita la importació del Twitter" + +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" +"Permet als usuaris importar les línies temporals dels amics al Twitter. Cal " +"que es configurin els dimonis manualment." + +msgid "Save Twitter settings" +msgstr "Desa els paràmetres del Twitter" + +msgid "Login or register using Twitter" +msgstr "Inicieu una sessió o registreu-vos fent servir el Twitter" + +msgid "Twitter integration options" +msgstr "Opcions d'integració del Twitter" + +msgid "Twitter bridge configuration" +msgstr "Configuració del pont del Twitter" + +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with Twitter." +msgstr "" +"El connector del pont del Twitter permet integrar una instància de " +"l'StatusNet amb el Twitter." + +msgid "Already logged in." +msgstr "Ja heu iniciat una sessió." + +msgid "Twitter Login" +msgstr "Inici de sessió del Twitter" + +msgid "Login with your Twitter account" +msgstr "Inicieu una sessió amb el vostre compte del Twitter" + +msgid "Sign in with Twitter" +msgstr "Inici de sessió amb el Twitter" -#: twitter.php:409 msgid "Your Twitter bridge has been disabled." msgstr "S'ha inhabilitat el vostre pont del Twitter." -#: twitter.php:413 #, php-format msgid "" "Hi, %1$s. We're sorry to inform you that your link to Twitter has been " @@ -59,347 +317,8 @@ msgstr "" "Atentament,\n" "%3$s" -#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 -#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 -msgid "Twitter" -msgstr "Twitter" - -#: TwitterBridgePlugin.php:152 -msgid "Login or register using Twitter" -msgstr "Inicieu una sessió o registreu-vos fent servir el Twitter" - -#: TwitterBridgePlugin.php:175 -msgid "Twitter integration options" -msgstr "Opcions d'integració del Twitter" - -#: TwitterBridgePlugin.php:303 -msgid "Twitter bridge configuration" -msgstr "Configuració del pont del Twitter" - -#: TwitterBridgePlugin.php:327 -msgid "" -"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " -"with Twitter." -msgstr "" -"El connector del pont del Twitter permet integrar una instància de " -"l'StatusNet amb el Twitter." - -#: twitteradminpanel.php:62 -msgid "Twitter bridge settings" -msgstr "Paràmetres del pont del Twitter" - -#: twitteradminpanel.php:150 -msgid "Invalid consumer key. Max length is 255 characters." -msgstr "Clau de consumidor no vàlida. La llargada màxima és 255 caràcters." - -#: twitteradminpanel.php:156 -msgid "Invalid consumer secret. Max length is 255 characters." -msgstr "" -"Clau secreta de consumidor no vàlida. La llargada màxima és 255 caràcters." - -#: twitteradminpanel.php:212 -msgid "Twitter application settings" -msgstr "Paràmetres de l'aplicació del Twitter" - -#: twitteradminpanel.php:218 -msgid "Consumer key" -msgstr "Clau de consumidor" - -#: twitteradminpanel.php:219 -msgid "Consumer key assigned by Twitter" -msgstr "Clau de consumidor assignada pel Twitter" - -#: twitteradminpanel.php:227 -msgid "Consumer secret" -msgstr "Clau secreta de consumidor" - -#: twitteradminpanel.php:228 -msgid "Consumer secret assigned by Twitter" -msgstr "Clau secreta de consumidor assignada pel Twitter" - -#: twitteradminpanel.php:238 -msgid "Note: a global consumer key and secret are set." -msgstr "Nota: es defineixen una clau pública i secreta de consumidor." - -#: twitteradminpanel.php:245 -msgid "Integration source" -msgstr "Font d'integració" - -#: twitteradminpanel.php:246 -msgid "Name of your Twitter application" -msgstr "Nom de la vostra aplicació del Twitter" - -#: twitteradminpanel.php:258 -msgid "Options" -msgstr "Opcions" - -#: twitteradminpanel.php:265 -msgid "Enable \"Sign-in with Twitter\"" -msgstr "Habilita l'inici de sessió amb el Twitter" - -#: twitteradminpanel.php:267 -msgid "Allow users to login with their Twitter credentials" -msgstr "Permet als usuaris iniciar una sessió amb les credencials del Twitter" - -#: twitteradminpanel.php:274 -msgid "Enable Twitter import" -msgstr "Habilita la importació del Twitter" - -#: twitteradminpanel.php:276 -msgid "" -"Allow users to import their Twitter friends' timelines. Requires daemons to " -"be manually configured." -msgstr "" -"Permet als usuaris importar les línies temporals dels amics al Twitter. Cal " -"que es configurin els dimonis manualment." - -#: twitteradminpanel.php:293 twittersettings.php:199 -msgid "Save" -msgstr "Desa" - -#: twitteradminpanel.php:293 -msgid "Save Twitter settings" -msgstr "Desa els paràmetres del Twitter" - -#: twitterlogin.php:56 -msgid "Already logged in." -msgstr "Ja heu iniciat una sessió." - -#: twitterlogin.php:64 -msgid "Twitter Login" -msgstr "Inici de sessió del Twitter" - -#: twitterlogin.php:69 -msgid "Login with your Twitter account" -msgstr "Inicieu una sessió amb el vostre compte del Twitter" - -#: twitterlogin.php:87 -msgid "Sign in with Twitter" -msgstr "Inici de sessió amb el Twitter" - -#: twitterauthorization.php:120 twittersettings.php:225 -msgid "There was a problem with your session token. Try again, please." -msgstr "" -"S'ha produït un problema amb el vostre testimoni de sessió. Torneu-ho a " -"provar." - -#: twitterauthorization.php:126 -msgid "You can't register if you don't agree to the license." -msgstr "No podeu registrar-vos-hi si no accepteu la llicència." - -#: twitterauthorization.php:135 -msgid "Something weird happened." -msgstr "Ha passat quelcom estrany." - -#: twitterauthorization.php:181 twitterauthorization.php:229 -#: twitterauthorization.php:300 -msgid "Couldn't link your Twitter account." -msgstr "No s'ha pogut enllaçar amb el compte del Twitter." - -#: twitterauthorization.php:201 -msgid "Couldn't link your Twitter account: oauth_token mismatch." -msgstr "" -"No s'ha pogut enllaçar amb el vostre compte del Twitter: no coincidència de " -"l'oath_token." - -#: twitterauthorization.php:312 +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. #, php-format -msgid "" -"This is the first time you've logged into %s so we must connect your Twitter " -"account to a local account. You can either create a new account, or connect " -"with your existing account, if you have one." -msgstr "" -"Aquesta és la primera vegada que inicieu una sessió a %s, per tant hem de " -"connectar el vostre compte del Twitter al vostre compte local. Podeu crear " -"un compte nou, o bé connectar-vos amb un compte ja existent si en teniu un." - -#: twitterauthorization.php:318 -msgid "Twitter Account Setup" -msgstr "Configuració del compte del Twitter" - -#: twitterauthorization.php:351 -msgid "Connection options" -msgstr "Opcions de connexió" - -#: twitterauthorization.php:360 -#, php-format -msgid "" -"My text and files are available under %s except this private data: password, " -"email address, IM address, and phone number." -msgstr "" -"El meu text i fitxers es troben disponibles sots %s excepte pel que fa a les " -"dades privades: contrasenya, adreça de correu electrònic i MI, i número de " -"telèfon." - -#: twitterauthorization.php:381 -msgid "Create new account" -msgstr "Crea un compte nou" - -#: twitterauthorization.php:383 -msgid "Create a new user with this nickname." -msgstr "Crea un usuari nom amb aquest sobrenom." - -#: twitterauthorization.php:390 -msgid "New nickname" -msgstr "Nou sobrenom" - -#: twitterauthorization.php:392 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 lletres en minúscules o nombres, sense puntuació o espais" - -#: twitterauthorization.php:404 -msgid "Create" -msgstr "Crea" - -#: twitterauthorization.php:409 -msgid "Connect existing account" -msgstr "Connecta un compte ja existent" - -#: twitterauthorization.php:411 -msgid "" -"If you already have an account, login with your username and password to " -"connect it to your Twitter account." -msgstr "" -"Si ja teniu un compte, inicieu una sessió amb el vostre usuari i contrasenya " -"per connectar-lo al vostre compte del Twitter." - -#: twitterauthorization.php:414 -msgid "Existing nickname" -msgstr "Sobrenom ja existent" - -#: twitterauthorization.php:417 -msgid "Password" -msgstr "Contrasenya" - -#: twitterauthorization.php:420 -msgid "Connect" -msgstr "Connecta" - -#: twitterauthorization.php:466 twitterauthorization.php:475 -msgid "Registration not allowed." -msgstr "No es permet el registre." - -#: twitterauthorization.php:482 -msgid "Not a valid invitation code." -msgstr "No és un codi d'invitació vàlid." - -#: twitterauthorization.php:495 -msgid "Nickname not allowed." -msgstr "El sobrenom no és permès." - -#: twitterauthorization.php:500 -msgid "Nickname already in use. Try another one." -msgstr "El sobrenom ja és en ús. Proveu-ne un altre." - -#: twitterauthorization.php:520 -msgid "Error registering user." -msgstr "Error en registrar l'usuari." - -#: twitterauthorization.php:531 twitterauthorization.php:571 -#: twitterauthorization.php:591 -msgid "Error connecting user to Twitter." -msgstr "Error en connectar l'usuari al Twitter." - -#: twitterauthorization.php:553 -msgid "Invalid username or password." -msgstr "Nom d'usuari o contrasenya no vàlida." - -#: twittersettings.php:57 -msgid "Twitter settings" -msgstr "Paràmetres del Twitter" - -#: twittersettings.php:68 -msgid "" -"Connect your Twitter account to share your updates with your Twitter friends " -"and vice-versa." -msgstr "" -"Connecteu el vostre compte del Twitter per compartir les vostres " -"actualitzacions amb els vostres amics del Twitter i viceversa." - -#: twittersettings.php:115 -msgid "Twitter account" -msgstr "Compte del Twitter" - -#: twittersettings.php:120 -msgid "Connected Twitter account" -msgstr "Compte del Twitter connectat" - -#: twittersettings.php:125 -msgid "Disconnect my account from Twitter" -msgstr "Desconnecta el meu compte del Twitter" - -#: twittersettings.php:131 -msgid "Disconnecting your Twitter could make it impossible to log in! Please " -msgstr "" -"En desconnectar el vostre Twitter podeu impossibilitar que torneu a iniciar " -"una sessió! " - -#: twittersettings.php:135 -msgid "set a password" -msgstr "Definiu una contrasenya" - -#: twittersettings.php:137 -msgid " first." -msgstr " primer." - -#. TRANS: %1$s is the current website name. -#: twittersettings.php:141 -#, php-format -msgid "" -"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " -"password to log in." -msgstr "" -"Mantingueu el vostre compte %1$s, però desconnecteu-lo del Twitter. Podeu " -"emprar la vostra contrasenya %1$s per iniciar una sessió." - -#: twittersettings.php:149 -msgid "Disconnect" -msgstr "Desconnecta" - -#: twittersettings.php:156 -msgid "Preferences" -msgstr "Preferències" - -#: twittersettings.php:160 -msgid "Automatically send my notices to Twitter." -msgstr "Envia automàticament els meus avisos al Twitter." - -#: twittersettings.php:167 -msgid "Send local \"@\" replies to Twitter." -msgstr "Envia les respostes locals «@» al Twitter." - -#: twittersettings.php:174 -msgid "Subscribe to my Twitter friends here." -msgstr "Subscriu els meus amics del Twitter aquí." - -#: twittersettings.php:183 -msgid "Import my friends timeline." -msgstr "Importa la línia temporal d'amics." - -#: twittersettings.php:201 -msgid "Add" -msgstr "Afegeix" - -#: twittersettings.php:235 -msgid "Unexpected form submission." -msgstr "Enviament de formulari inesperat." - -#: twittersettings.php:250 -msgid "No Twitter connection to remove." -msgstr "No hi ha cap connexió del Twitter a suprimir." - -#: twittersettings.php:258 -msgid "Couldn't remove Twitter user." -msgstr "No s'ha pogut suprimir l'usuari del Twitter." - -#: twittersettings.php:262 -msgid "Twitter account disconnected." -msgstr "S'ha desconnectat el compte del Twitter." - -#: twittersettings.php:282 twittersettings.php:293 -msgid "Couldn't save Twitter preferences." -msgstr "No s'han pogut desar les preferències del Twitter." - -#: twittersettings.php:301 -msgid "Twitter preferences saved." -msgstr "S'han desat les preferències del Twitter." +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" diff --git a/plugins/TwitterBridge/locale/fa/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/fa/LC_MESSAGES/TwitterBridge.po index fa3129d220..89e7ad869b 100644 --- a/plugins/TwitterBridge/locale/fa/LC_MESSAGES/TwitterBridge.po +++ b/plugins/TwitterBridge/locale/fa/LC_MESSAGES/TwitterBridge.po @@ -9,30 +9,265 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TwitterBridge\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:13+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:01+0000\n" "Language-Team: Persian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:14+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fa\n" "X-Message-Group: #out-statusnet-plugin-twitterbridge\n" "Plural-Forms: nplurals=1; plural=0;\n" -#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. -#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: twitterimport.php:114 -#, php-format -msgid "RT @%1$s %2$s" +msgid "Twitter settings" +msgstr "تنظیمات توییتر" + +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." msgstr "" -#: twitter.php:409 +msgid "Twitter account" +msgstr "حساب کاربری توییتر" + +msgid "Connected Twitter account" +msgstr "حساب کاربری توییتر متصل شد" + +msgid "Disconnect my account from Twitter" +msgstr "قطع ارتباط حساب کاربری من از توییتر" + +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" + +msgid "set a password" +msgstr "تنظیم رمز عبور" + +msgid " first." +msgstr " ابتدا." + +#. TRANS: %1$s is the current website name. +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" + +msgid "Disconnect" +msgstr "قطع اتصال" + +msgid "Preferences" +msgstr "ترجیحات" + +msgid "Automatically send my notices to Twitter." +msgstr "" + +msgid "Send local \"@\" replies to Twitter." +msgstr "" + +msgid "Subscribe to my Twitter friends here." +msgstr "" + +msgid "Import my friends timeline." +msgstr "" + +msgid "Save" +msgstr "ذخیره" + +msgid "Add" +msgstr "افزودن" + +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +msgid "Unexpected form submission." +msgstr "" + +msgid "No Twitter connection to remove." +msgstr "هیچ ارتباط توییتری برای حذف وجود ندارد." + +msgid "Couldn't remove Twitter user." +msgstr "نمی‌توان کاربر توییتر را حذف کرد." + +msgid "Twitter account disconnected." +msgstr "حساب توییتر قطع شده است." + +msgid "Couldn't save Twitter preferences." +msgstr "نمی‌توان ترجیحات توییتر را ذخیره کرد." + +msgid "Twitter preferences saved." +msgstr "تنظیمات توییتر ذخیره شد." + +msgid "You can't register if you don't agree to the license." +msgstr "" + +msgid "Something weird happened." +msgstr "" + +msgid "Couldn't link your Twitter account." +msgstr "" + +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" + +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" + +msgid "Twitter Account Setup" +msgstr "تنظیم حساب کاربری توییتر" + +msgid "Connection options" +msgstr "تنظیمات اتصال" + +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" + +msgid "Create new account" +msgstr "ایجاد حساب کاربری جدید" + +msgid "Create a new user with this nickname." +msgstr "ایجاد یک کاربر جدید با این نام مستعار." + +msgid "New nickname" +msgstr "نام مستعار جدید" + +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" + +msgid "Create" +msgstr "ایجاد" + +msgid "Connect existing account" +msgstr "اتصال به حساب کاربری موجود" + +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" + +msgid "Existing nickname" +msgstr "نام مستعار موجود" + +msgid "Password" +msgstr "رمز عبور" + +msgid "Connect" +msgstr "اتصال" + +msgid "Registration not allowed." +msgstr "اجازهٔ ثبت‌نام داده نشده است." + +msgid "Not a valid invitation code." +msgstr "کد دعوت نامعتبر است." + +msgid "Nickname not allowed." +msgstr "نام مستعار مجاز نیست." + +msgid "Nickname already in use. Try another one." +msgstr "این نام مستعار در حال حاضر مورد استفاده است. یکی دیگر را بیازمایید." + +msgid "Error registering user." +msgstr "خطا در ثبت نام کاربر." + +msgid "Error connecting user to Twitter." +msgstr "خطا در اتصال کاربر به توییتر." + +msgid "Invalid username or password." +msgstr "نام کاربری یا رمز عبور اشتباه است." + +msgid "Twitter" +msgstr "توییتر" + +msgid "Twitter bridge settings" +msgstr "تنظیمات پل توییتر" + +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "" + +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "" + +msgid "Twitter application settings" +msgstr "" + +msgid "Consumer key" +msgstr "" + +msgid "Consumer key assigned by Twitter" +msgstr "" + +msgid "Consumer secret" +msgstr "" + +msgid "Consumer secret assigned by Twitter" +msgstr "" + +msgid "Note: a global consumer key and secret are set." +msgstr "" + +msgid "Integration source" +msgstr "" + +msgid "Name of your Twitter application" +msgstr "" + +msgid "Options" +msgstr "تنظیمات" + +msgid "Enable \"Sign-in with Twitter\"" +msgstr "" + +msgid "Allow users to login with their Twitter credentials" +msgstr "" + +msgid "Enable Twitter import" +msgstr "" + +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" + +msgid "Save Twitter settings" +msgstr "ذخیره تنظیمات توییتر" + +msgid "Login or register using Twitter" +msgstr "برای استفاده از توییتر، وارد شوید یا ثبت نام کنید" + +msgid "Twitter integration options" +msgstr "تنظیمات پیوسته توییتر" + +msgid "Twitter bridge configuration" +msgstr "پیکربندی پل توییتر" + +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with Twitter." +msgstr "" + +msgid "Already logged in." +msgstr "در حال حاضر وارد شده‌اید." + +msgid "Twitter Login" +msgstr "ورود به توییتر" + +msgid "Login with your Twitter account" +msgstr "" + +msgid "Sign in with Twitter" +msgstr "با حساب کاربری توییتر وارد شوید" + msgid "Your Twitter bridge has been disabled." msgstr "پل توییتر شما غیر فعال شده است." -#: twitter.php:413 #, php-format msgid "" "Hi, %1$s. We're sorry to inform you that your link to Twitter has been " @@ -48,324 +283,8 @@ msgid "" "%3$s" msgstr "" -#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 -#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 -msgid "Twitter" -msgstr "توییتر" - -#: TwitterBridgePlugin.php:152 -msgid "Login or register using Twitter" -msgstr "برای استفاده از توییتر، وارد شوید یا ثبت نام کنید" - -#: TwitterBridgePlugin.php:175 -msgid "Twitter integration options" -msgstr "تنظیمات پیوسته توییتر" - -#: TwitterBridgePlugin.php:303 -msgid "Twitter bridge configuration" -msgstr "پیکربندی پل توییتر" - -#: TwitterBridgePlugin.php:327 -msgid "" -"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " -"with Twitter." -msgstr "" - -#: twitteradminpanel.php:62 -msgid "Twitter bridge settings" -msgstr "تنظیمات پل توییتر" - -#: twitteradminpanel.php:150 -msgid "Invalid consumer key. Max length is 255 characters." -msgstr "" - -#: twitteradminpanel.php:156 -msgid "Invalid consumer secret. Max length is 255 characters." -msgstr "" - -#: twitteradminpanel.php:212 -msgid "Twitter application settings" -msgstr "" - -#: twitteradminpanel.php:218 -msgid "Consumer key" -msgstr "" - -#: twitteradminpanel.php:219 -msgid "Consumer key assigned by Twitter" -msgstr "" - -#: twitteradminpanel.php:227 -msgid "Consumer secret" -msgstr "" - -#: twitteradminpanel.php:228 -msgid "Consumer secret assigned by Twitter" -msgstr "" - -#: twitteradminpanel.php:238 -msgid "Note: a global consumer key and secret are set." -msgstr "" - -#: twitteradminpanel.php:245 -msgid "Integration source" -msgstr "" - -#: twitteradminpanel.php:246 -msgid "Name of your Twitter application" -msgstr "" - -#: twitteradminpanel.php:258 -msgid "Options" -msgstr "تنظیمات" - -#: twitteradminpanel.php:265 -msgid "Enable \"Sign-in with Twitter\"" -msgstr "" - -#: twitteradminpanel.php:267 -msgid "Allow users to login with their Twitter credentials" -msgstr "" - -#: twitteradminpanel.php:274 -msgid "Enable Twitter import" -msgstr "" - -#: twitteradminpanel.php:276 -msgid "" -"Allow users to import their Twitter friends' timelines. Requires daemons to " -"be manually configured." -msgstr "" - -#: twitteradminpanel.php:293 twittersettings.php:199 -msgid "Save" -msgstr "ذخیره" - -#: twitteradminpanel.php:293 -msgid "Save Twitter settings" -msgstr "ذخیره تنظیمات توییتر" - -#: twitterlogin.php:56 -msgid "Already logged in." -msgstr "در حال حاضر وارد شده‌اید." - -#: twitterlogin.php:64 -msgid "Twitter Login" -msgstr "ورود به توییتر" - -#: twitterlogin.php:69 -msgid "Login with your Twitter account" -msgstr "" - -#: twitterlogin.php:87 -msgid "Sign in with Twitter" -msgstr "با حساب کاربری توییتر وارد شوید" - -#: twitterauthorization.php:120 twittersettings.php:225 -msgid "There was a problem with your session token. Try again, please." -msgstr "" - -#: twitterauthorization.php:126 -msgid "You can't register if you don't agree to the license." -msgstr "" - -#: twitterauthorization.php:135 -msgid "Something weird happened." -msgstr "" - -#: twitterauthorization.php:181 twitterauthorization.php:229 -#: twitterauthorization.php:300 -msgid "Couldn't link your Twitter account." -msgstr "" - -#: twitterauthorization.php:201 -msgid "Couldn't link your Twitter account: oauth_token mismatch." -msgstr "" - -#: twitterauthorization.php:312 +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. #, php-format -msgid "" -"This is the first time you've logged into %s so we must connect your Twitter " -"account to a local account. You can either create a new account, or connect " -"with your existing account, if you have one." +msgid "RT @%1$s %2$s" msgstr "" - -#: twitterauthorization.php:318 -msgid "Twitter Account Setup" -msgstr "تنظیم حساب کاربری توییتر" - -#: twitterauthorization.php:351 -msgid "Connection options" -msgstr "تنظیمات اتصال" - -#: twitterauthorization.php:360 -#, php-format -msgid "" -"My text and files are available under %s except this private data: password, " -"email address, IM address, and phone number." -msgstr "" - -#: twitterauthorization.php:381 -msgid "Create new account" -msgstr "ایجاد حساب کاربری جدید" - -#: twitterauthorization.php:383 -msgid "Create a new user with this nickname." -msgstr "ایجاد یک کاربر جدید با این نام مستعار." - -#: twitterauthorization.php:390 -msgid "New nickname" -msgstr "نام مستعار جدید" - -#: twitterauthorization.php:392 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "" - -#: twitterauthorization.php:404 -msgid "Create" -msgstr "ایجاد" - -#: twitterauthorization.php:409 -msgid "Connect existing account" -msgstr "اتصال به حساب کاربری موجود" - -#: twitterauthorization.php:411 -msgid "" -"If you already have an account, login with your username and password to " -"connect it to your Twitter account." -msgstr "" - -#: twitterauthorization.php:414 -msgid "Existing nickname" -msgstr "نام مستعار موجود" - -#: twitterauthorization.php:417 -msgid "Password" -msgstr "رمز عبور" - -#: twitterauthorization.php:420 -msgid "Connect" -msgstr "اتصال" - -#: twitterauthorization.php:466 twitterauthorization.php:475 -msgid "Registration not allowed." -msgstr "اجازهٔ ثبت‌نام داده نشده است." - -#: twitterauthorization.php:482 -msgid "Not a valid invitation code." -msgstr "کد دعوت نامعتبر است." - -#: twitterauthorization.php:495 -msgid "Nickname not allowed." -msgstr "نام مستعار مجاز نیست." - -#: twitterauthorization.php:500 -msgid "Nickname already in use. Try another one." -msgstr "این نام مستعار در حال حاضر مورد استفاده است. یکی دیگر را بیازمایید." - -#: twitterauthorization.php:520 -msgid "Error registering user." -msgstr "خطا در ثبت نام کاربر." - -#: twitterauthorization.php:531 twitterauthorization.php:571 -#: twitterauthorization.php:591 -msgid "Error connecting user to Twitter." -msgstr "خطا در اتصال کاربر به توییتر." - -#: twitterauthorization.php:553 -msgid "Invalid username or password." -msgstr "نام کاربری یا رمز عبور اشتباه است." - -#: twittersettings.php:57 -msgid "Twitter settings" -msgstr "تنظیمات توییتر" - -#: twittersettings.php:68 -msgid "" -"Connect your Twitter account to share your updates with your Twitter friends " -"and vice-versa." -msgstr "" - -#: twittersettings.php:115 -msgid "Twitter account" -msgstr "حساب کاربری توییتر" - -#: twittersettings.php:120 -msgid "Connected Twitter account" -msgstr "حساب کاربری توییتر متصل شد" - -#: twittersettings.php:125 -msgid "Disconnect my account from Twitter" -msgstr "قطع ارتباط حساب کاربری من از توییتر" - -#: twittersettings.php:131 -msgid "Disconnecting your Twitter could make it impossible to log in! Please " -msgstr "" - -#: twittersettings.php:135 -msgid "set a password" -msgstr "تنظیم رمز عبور" - -#: twittersettings.php:137 -msgid " first." -msgstr " ابتدا." - -#. TRANS: %1$s is the current website name. -#: twittersettings.php:141 -#, php-format -msgid "" -"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " -"password to log in." -msgstr "" - -#: twittersettings.php:149 -msgid "Disconnect" -msgstr "قطع اتصال" - -#: twittersettings.php:156 -msgid "Preferences" -msgstr "ترجیحات" - -#: twittersettings.php:160 -msgid "Automatically send my notices to Twitter." -msgstr "" - -#: twittersettings.php:167 -msgid "Send local \"@\" replies to Twitter." -msgstr "" - -#: twittersettings.php:174 -msgid "Subscribe to my Twitter friends here." -msgstr "" - -#: twittersettings.php:183 -msgid "Import my friends timeline." -msgstr "" - -#: twittersettings.php:201 -msgid "Add" -msgstr "افزودن" - -#: twittersettings.php:235 -msgid "Unexpected form submission." -msgstr "" - -#: twittersettings.php:250 -msgid "No Twitter connection to remove." -msgstr "هیچ ارتباط توییتری برای حذف وجود ندارد." - -#: twittersettings.php:258 -msgid "Couldn't remove Twitter user." -msgstr "نمی‌توان کاربر توییتر را حذف کرد." - -#: twittersettings.php:262 -msgid "Twitter account disconnected." -msgstr "حساب توییتر قطع شده است." - -#: twittersettings.php:282 twittersettings.php:293 -msgid "Couldn't save Twitter preferences." -msgstr "نمی‌توان ترجیحات توییتر را ذخیره کرد." - -#: twittersettings.php:301 -msgid "Twitter preferences saved." -msgstr "تنظیمات توییتر ذخیره شد." diff --git a/plugins/TwitterBridge/locale/fr/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/fr/LC_MESSAGES/TwitterBridge.po index 0483cf33e2..e6652cb49c 100644 --- a/plugins/TwitterBridge/locale/fr/LC_MESSAGES/TwitterBridge.po +++ b/plugins/TwitterBridge/locale/fr/LC_MESSAGES/TwitterBridge.po @@ -10,30 +10,290 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TwitterBridge\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:13+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:01+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:14+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-twitterbridge\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. -#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: twitterimport.php:114 -#, php-format -msgid "RT @%1$s %2$s" -msgstr "RT @%1$s %2$s" +msgid "Twitter settings" +msgstr "Paramètres Twitter" + +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Connectez votre compte Twitter pour partager vos mises à jour avec vos amis " +"Twitter et vice-versa." + +msgid "Twitter account" +msgstr "Compte Twitter" + +msgid "Connected Twitter account" +msgstr "Compte Twitter connecté" + +msgid "Disconnect my account from Twitter" +msgstr "Déconnecter mon compte de Twitter" + +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" +"La déconnexion de votre compte Twitter ne vous permettrait plus de vous " +"connecter ! S’il vous plaît " + +msgid "set a password" +msgstr "définissez un mot de passe" + +msgid " first." +msgstr " tout d’abord." + +#. TRANS: %1$s is the current website name. +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" +"Gardez votre compte %1$s, mais déconnectez-vous de Twitter. Vous pouvez " +"utiliser votre mot de passe %1$s pour vous connecter." + +msgid "Disconnect" +msgstr "Déconnecter" + +msgid "Preferences" +msgstr "Préférences" + +msgid "Automatically send my notices to Twitter." +msgstr "Envoyer automatiquement mes avis sur Twitter." + +msgid "Send local \"@\" replies to Twitter." +msgstr "Envoyer des réponses \"@\" locales à Twitter." + +msgid "Subscribe to my Twitter friends here." +msgstr "S’abonner à mes amis Twitter ici." + +msgid "Import my friends timeline." +msgstr "Importer l’agenda de mes amis." + +msgid "Save" +msgstr "Sauvegarder" + +msgid "Add" +msgstr "Ajouter" + +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Un problème est survenu avec votre jeton de session. Veuillez essayer à " +"nouveau." + +msgid "Unexpected form submission." +msgstr "Soumission de formulaire inattendue." + +msgid "No Twitter connection to remove." +msgstr "Aucune connexion Twitter à retirer." + +msgid "Couldn't remove Twitter user." +msgstr "Impossible de supprimer l’utilisateur Twitter." + +msgid "Twitter account disconnected." +msgstr "Compte Twitter déconnecté." + +msgid "Couldn't save Twitter preferences." +msgstr "Impossible de sauvegarder les préférences Twitter." + +msgid "Twitter preferences saved." +msgstr "Préférences Twitter enregistrées." + +msgid "You can't register if you don't agree to the license." +msgstr "Vous ne pouvez pas vous inscrire si vous n’acceptez pas la licence." + +msgid "Something weird happened." +msgstr "Quelque chose de bizarre s’est passé." + +msgid "Couldn't link your Twitter account." +msgstr "Impossible de lier votre compte Twitter." + +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" +"Impossible de lier votre compte Twitter : le jeton d’authentification ne " +"correspond pas." + +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"C’est la première fois que vous êtes connecté à %s via Twitter, il nous faut " +"donc lier votre compte Twitter à un compte local. Vous pouvez soit créer un " +"nouveau compte, soit vous connecter avec votre compte local existant si vous " +"en avez un." + +msgid "Twitter Account Setup" +msgstr "Configuration du compte Twitter" + +msgid "Connection options" +msgstr "Options de connexion" + +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Mon texte et mes fichiers sont disponibles sous licence %s, à l’exception " +"des données privées suivantes : mot de passe, adresse courriel, adresse de " +"messagerie instantanée et numéro de téléphone." + +msgid "Create new account" +msgstr "Créer un nouveau compte" + +msgid "Create a new user with this nickname." +msgstr "Créer un nouvel utilisateur avec ce pseudonyme." + +msgid "New nickname" +msgstr "Nouveau pseudonyme" + +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces" + +msgid "Create" +msgstr "Créer" + +msgid "Connect existing account" +msgstr "Se connecter à un compte existant" + +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Si vous avez déjà un compte ici, connectez-vous avec votre nom d’utilisateur " +"et mot de passe pour l’associer à votre compte Twitter." + +msgid "Existing nickname" +msgstr "Pseudonyme existant" + +msgid "Password" +msgstr "Mot de passe" + +msgid "Connect" +msgstr "Connexion" + +msgid "Registration not allowed." +msgstr "Inscription non autorisée." + +msgid "Not a valid invitation code." +msgstr "Le code d’invitation n’est pas valide." + +msgid "Nickname not allowed." +msgstr "Pseudonyme non autorisé." + +msgid "Nickname already in use. Try another one." +msgstr "Pseudonyme déjà utilisé. Essayez-en un autre." + +msgid "Error registering user." +msgstr "Erreur lors de l’inscription de l’utilisateur." + +msgid "Error connecting user to Twitter." +msgstr "Erreur de connexion de l’utilisateur à Twitter." + +msgid "Invalid username or password." +msgstr "Nom d’utilisateur ou mot de passe incorrect." + +msgid "Twitter" +msgstr "Twitter" + +msgid "Twitter bridge settings" +msgstr "Paramètres de la passerelle Twitter" + +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "Clé de client invalide. La longueur maximum est de 255 caractères." + +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "" +"Code secret du client invalide. La longueur maximum est de 255 caractères." + +msgid "Twitter application settings" +msgstr "Paramètres de l’application Twitter" + +msgid "Consumer key" +msgstr "Clé du client" + +msgid "Consumer key assigned by Twitter" +msgstr "Clé du client assignée par Twitter" + +msgid "Consumer secret" +msgstr "Code secret du client" + +msgid "Consumer secret assigned by Twitter" +msgstr "Code secret du client assigné par Twitter" + +msgid "Note: a global consumer key and secret are set." +msgstr "Note : une clé et un code secret de client global sont définis." + +msgid "Integration source" +msgstr "Source d’intégration" + +msgid "Name of your Twitter application" +msgstr "Nom de votre application Twitter" + +msgid "Options" +msgstr "Options" + +msgid "Enable \"Sign-in with Twitter\"" +msgstr "Activer « S’inscrire avec Twitter »" + +msgid "Allow users to login with their Twitter credentials" +msgstr "" +"Permet aux utilisateurs de se connecter avec leurs identifiants Twitter" + +msgid "Enable Twitter import" +msgstr "Activer l’importation Twitter" + +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" +"Permettre aux utilisateurs d’importer les agendas de leurs amis Twitter. " +"Exige que les démons soient configurés manuellement." + +msgid "Save Twitter settings" +msgstr "Sauvegarder les paramètres Twitter" + +msgid "Login or register using Twitter" +msgstr "Se connecter ou s’inscrire via Twitter" + +msgid "Twitter integration options" +msgstr "Options d’intégration de Twitter" + +msgid "Twitter bridge configuration" +msgstr "Configuration de la passerelle Twitter" + +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with Twitter." +msgstr "" +"Le greffon de « passerelle » Twitter permet l’intégration d’une instance de " +"StatusNet avec Twitter." + +msgid "Already logged in." +msgstr "Déjà connecté." + +msgid "Twitter Login" +msgstr "Connexion Twitter" + +msgid "Login with your Twitter account" +msgstr "Connexion avec votre compte Twitter" + +msgid "Sign in with Twitter" +msgstr "S’inscrire avec Twitter" -#: twitter.php:409 msgid "Your Twitter bridge has been disabled." msgstr "Votre passerelle Twitter a été désactivée." -#: twitter.php:413 #, php-format msgid "" "Hi, %1$s. We're sorry to inform you that your link to Twitter has been " @@ -61,349 +321,8 @@ msgstr "" "Cordialement,\n" "%3$s" -#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 -#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 -msgid "Twitter" -msgstr "Twitter" - -#: TwitterBridgePlugin.php:152 -msgid "Login or register using Twitter" -msgstr "Se connecter ou s’inscrire via Twitter" - -#: TwitterBridgePlugin.php:175 -msgid "Twitter integration options" -msgstr "Options d’intégration de Twitter" - -#: TwitterBridgePlugin.php:303 -msgid "Twitter bridge configuration" -msgstr "Configuration de la passerelle Twitter" - -#: TwitterBridgePlugin.php:327 -msgid "" -"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " -"with Twitter." -msgstr "" -"Le greffon de « passerelle » Twitter permet l’intégration d’une instance de " -"StatusNet avec Twitter." - -#: twitteradminpanel.php:62 -msgid "Twitter bridge settings" -msgstr "Paramètres de la passerelle Twitter" - -#: twitteradminpanel.php:150 -msgid "Invalid consumer key. Max length is 255 characters." -msgstr "Clé de client invalide. La longueur maximum est de 255 caractères." - -#: twitteradminpanel.php:156 -msgid "Invalid consumer secret. Max length is 255 characters." -msgstr "" -"Code secret du client invalide. La longueur maximum est de 255 caractères." - -#: twitteradminpanel.php:212 -msgid "Twitter application settings" -msgstr "Paramètres de l’application Twitter" - -#: twitteradminpanel.php:218 -msgid "Consumer key" -msgstr "Clé du client" - -#: twitteradminpanel.php:219 -msgid "Consumer key assigned by Twitter" -msgstr "Clé du client assignée par Twitter" - -#: twitteradminpanel.php:227 -msgid "Consumer secret" -msgstr "Code secret du client" - -#: twitteradminpanel.php:228 -msgid "Consumer secret assigned by Twitter" -msgstr "Code secret du client assigné par Twitter" - -#: twitteradminpanel.php:238 -msgid "Note: a global consumer key and secret are set." -msgstr "Note : une clé et un code secret de client global sont définis." - -#: twitteradminpanel.php:245 -msgid "Integration source" -msgstr "Source d’intégration" - -#: twitteradminpanel.php:246 -msgid "Name of your Twitter application" -msgstr "Nom de votre application Twitter" - -#: twitteradminpanel.php:258 -msgid "Options" -msgstr "Options" - -#: twitteradminpanel.php:265 -msgid "Enable \"Sign-in with Twitter\"" -msgstr "Activer « S’inscrire avec Twitter »" - -#: twitteradminpanel.php:267 -msgid "Allow users to login with their Twitter credentials" -msgstr "" -"Permet aux utilisateurs de se connecter avec leurs identifiants Twitter" - -#: twitteradminpanel.php:274 -msgid "Enable Twitter import" -msgstr "Activer l’importation Twitter" - -#: twitteradminpanel.php:276 -msgid "" -"Allow users to import their Twitter friends' timelines. Requires daemons to " -"be manually configured." -msgstr "" -"Permettre aux utilisateurs d’importer les agendas de leurs amis Twitter. " -"Exige que les démons soient configurés manuellement." - -#: twitteradminpanel.php:293 twittersettings.php:199 -msgid "Save" -msgstr "Sauvegarder" - -#: twitteradminpanel.php:293 -msgid "Save Twitter settings" -msgstr "Sauvegarder les paramètres Twitter" - -#: twitterlogin.php:56 -msgid "Already logged in." -msgstr "Déjà connecté." - -#: twitterlogin.php:64 -msgid "Twitter Login" -msgstr "Connexion Twitter" - -#: twitterlogin.php:69 -msgid "Login with your Twitter account" -msgstr "Connexion avec votre compte Twitter" - -#: twitterlogin.php:87 -msgid "Sign in with Twitter" -msgstr "S’inscrire avec Twitter" - -#: twitterauthorization.php:120 twittersettings.php:225 -msgid "There was a problem with your session token. Try again, please." -msgstr "" -"Un problème est survenu avec votre jeton de session. Veuillez essayer à " -"nouveau." - -#: twitterauthorization.php:126 -msgid "You can't register if you don't agree to the license." -msgstr "Vous ne pouvez pas vous inscrire si vous n’acceptez pas la licence." - -#: twitterauthorization.php:135 -msgid "Something weird happened." -msgstr "Quelque chose de bizarre s’est passé." - -#: twitterauthorization.php:181 twitterauthorization.php:229 -#: twitterauthorization.php:300 -msgid "Couldn't link your Twitter account." -msgstr "Impossible de lier votre compte Twitter." - -#: twitterauthorization.php:201 -msgid "Couldn't link your Twitter account: oauth_token mismatch." -msgstr "" -"Impossible de lier votre compte Twitter : le jeton d’authentification ne " -"correspond pas." - -#: twitterauthorization.php:312 +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. #, php-format -msgid "" -"This is the first time you've logged into %s so we must connect your Twitter " -"account to a local account. You can either create a new account, or connect " -"with your existing account, if you have one." -msgstr "" -"C’est la première fois que vous êtes connecté à %s via Twitter, il nous faut " -"donc lier votre compte Twitter à un compte local. Vous pouvez soit créer un " -"nouveau compte, soit vous connecter avec votre compte local existant si vous " -"en avez un." - -#: twitterauthorization.php:318 -msgid "Twitter Account Setup" -msgstr "Configuration du compte Twitter" - -#: twitterauthorization.php:351 -msgid "Connection options" -msgstr "Options de connexion" - -#: twitterauthorization.php:360 -#, php-format -msgid "" -"My text and files are available under %s except this private data: password, " -"email address, IM address, and phone number." -msgstr "" -"Mon texte et mes fichiers sont disponibles sous licence %s, à l’exception " -"des données privées suivantes : mot de passe, adresse courriel, adresse de " -"messagerie instantanée et numéro de téléphone." - -#: twitterauthorization.php:381 -msgid "Create new account" -msgstr "Créer un nouveau compte" - -#: twitterauthorization.php:383 -msgid "Create a new user with this nickname." -msgstr "Créer un nouvel utilisateur avec ce pseudonyme." - -#: twitterauthorization.php:390 -msgid "New nickname" -msgstr "Nouveau pseudonyme" - -#: twitterauthorization.php:392 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1 à 64 lettres minuscules ou chiffres, sans ponctuation ni espaces" - -#: twitterauthorization.php:404 -msgid "Create" -msgstr "Créer" - -#: twitterauthorization.php:409 -msgid "Connect existing account" -msgstr "Se connecter à un compte existant" - -#: twitterauthorization.php:411 -msgid "" -"If you already have an account, login with your username and password to " -"connect it to your Twitter account." -msgstr "" -"Si vous avez déjà un compte ici, connectez-vous avec votre nom d’utilisateur " -"et mot de passe pour l’associer à votre compte Twitter." - -#: twitterauthorization.php:414 -msgid "Existing nickname" -msgstr "Pseudonyme existant" - -#: twitterauthorization.php:417 -msgid "Password" -msgstr "Mot de passe" - -#: twitterauthorization.php:420 -msgid "Connect" -msgstr "Connexion" - -#: twitterauthorization.php:466 twitterauthorization.php:475 -msgid "Registration not allowed." -msgstr "Inscription non autorisée." - -#: twitterauthorization.php:482 -msgid "Not a valid invitation code." -msgstr "Le code d’invitation n’est pas valide." - -#: twitterauthorization.php:495 -msgid "Nickname not allowed." -msgstr "Pseudonyme non autorisé." - -#: twitterauthorization.php:500 -msgid "Nickname already in use. Try another one." -msgstr "Pseudonyme déjà utilisé. Essayez-en un autre." - -#: twitterauthorization.php:520 -msgid "Error registering user." -msgstr "Erreur lors de l’inscription de l’utilisateur." - -#: twitterauthorization.php:531 twitterauthorization.php:571 -#: twitterauthorization.php:591 -msgid "Error connecting user to Twitter." -msgstr "Erreur de connexion de l’utilisateur à Twitter." - -#: twitterauthorization.php:553 -msgid "Invalid username or password." -msgstr "Nom d’utilisateur ou mot de passe incorrect." - -#: twittersettings.php:57 -msgid "Twitter settings" -msgstr "Paramètres Twitter" - -#: twittersettings.php:68 -msgid "" -"Connect your Twitter account to share your updates with your Twitter friends " -"and vice-versa." -msgstr "" -"Connectez votre compte Twitter pour partager vos mises à jour avec vos amis " -"Twitter et vice-versa." - -#: twittersettings.php:115 -msgid "Twitter account" -msgstr "Compte Twitter" - -#: twittersettings.php:120 -msgid "Connected Twitter account" -msgstr "Compte Twitter connecté" - -#: twittersettings.php:125 -msgid "Disconnect my account from Twitter" -msgstr "Déconnecter mon compte de Twitter" - -#: twittersettings.php:131 -msgid "Disconnecting your Twitter could make it impossible to log in! Please " -msgstr "" -"La déconnexion de votre compte Twitter ne vous permettrait plus de vous " -"connecter ! S’il vous plaît " - -#: twittersettings.php:135 -msgid "set a password" -msgstr "définissez un mot de passe" - -#: twittersettings.php:137 -msgid " first." -msgstr " tout d’abord." - -#. TRANS: %1$s is the current website name. -#: twittersettings.php:141 -#, php-format -msgid "" -"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " -"password to log in." -msgstr "" -"Gardez votre compte %1$s, mais déconnectez-vous de Twitter. Vous pouvez " -"utiliser votre mot de passe %1$s pour vous connecter." - -#: twittersettings.php:149 -msgid "Disconnect" -msgstr "Déconnecter" - -#: twittersettings.php:156 -msgid "Preferences" -msgstr "Préférences" - -#: twittersettings.php:160 -msgid "Automatically send my notices to Twitter." -msgstr "Envoyer automatiquement mes avis sur Twitter." - -#: twittersettings.php:167 -msgid "Send local \"@\" replies to Twitter." -msgstr "Envoyer des réponses \"@\" locales à Twitter." - -#: twittersettings.php:174 -msgid "Subscribe to my Twitter friends here." -msgstr "S’abonner à mes amis Twitter ici." - -#: twittersettings.php:183 -msgid "Import my friends timeline." -msgstr "Importer l’agenda de mes amis." - -#: twittersettings.php:201 -msgid "Add" -msgstr "Ajouter" - -#: twittersettings.php:235 -msgid "Unexpected form submission." -msgstr "Soumission de formulaire inattendue." - -#: twittersettings.php:250 -msgid "No Twitter connection to remove." -msgstr "Aucune connexion Twitter à retirer." - -#: twittersettings.php:258 -msgid "Couldn't remove Twitter user." -msgstr "Impossible de supprimer l’utilisateur Twitter." - -#: twittersettings.php:262 -msgid "Twitter account disconnected." -msgstr "Compte Twitter déconnecté." - -#: twittersettings.php:282 twittersettings.php:293 -msgid "Couldn't save Twitter preferences." -msgstr "Impossible de sauvegarder les préférences Twitter." - -#: twittersettings.php:301 -msgid "Twitter preferences saved." -msgstr "Préférences Twitter enregistrées." +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" diff --git a/plugins/TwitterBridge/locale/ia/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/ia/LC_MESSAGES/TwitterBridge.po index c1855ebffd..e09077575a 100644 --- a/plugins/TwitterBridge/locale/ia/LC_MESSAGES/TwitterBridge.po +++ b/plugins/TwitterBridge/locale/ia/LC_MESSAGES/TwitterBridge.po @@ -9,30 +9,283 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TwitterBridge\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:13+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:01+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:14+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-twitterbridge\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. -#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: twitterimport.php:114 -#, php-format -msgid "RT @%1$s %2$s" -msgstr "RT @%1$s %2$s" +msgid "Twitter settings" +msgstr "Configuration de Twitter" + +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Connecte tu conto de Twitter pro condivider tu actualisationes con tu amicos " +"de Twitter e vice versa." + +msgid "Twitter account" +msgstr "Conto de Twitter" + +msgid "Connected Twitter account" +msgstr "Conto de Twitter connectite" + +msgid "Disconnect my account from Twitter" +msgstr "Disconnecter mi conto ab Twitter" + +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" +"Le disconnexion de tu conto de Twitter renderea le authentication " +"impossibile! Per favor " + +msgid "set a password" +msgstr "defini un contrasigno" + +msgid " first." +msgstr " primo." + +#. TRANS: %1$s is the current website name. +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" +"Retene tu conto de %1$s ma disconnecte ab Twitter. Tu pote usar tu " +"contrasigno de %1$s pro aperir session." + +msgid "Disconnect" +msgstr "Disconnecter" + +msgid "Preferences" +msgstr "Preferentias" + +msgid "Automatically send my notices to Twitter." +msgstr "Automaticamente inviar mi notas a Twitter." + +msgid "Send local \"@\" replies to Twitter." +msgstr "Inviar responsas \"@\" local a Twitter." + +msgid "Subscribe to my Twitter friends here." +msgstr "Subscriber hic a mi amicos de Twitter." + +msgid "Import my friends timeline." +msgstr "Importar le chronologia de mi amicos." + +msgid "Save" +msgstr "Salveguardar" + +msgid "Add" +msgstr "Adder" + +msgid "There was a problem with your session token. Try again, please." +msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." + +msgid "Unexpected form submission." +msgstr "Submission de formulario inexpectate." + +msgid "No Twitter connection to remove." +msgstr "Nulle connexion Twitter a remover." + +msgid "Couldn't remove Twitter user." +msgstr "Non poteva remover le usator de Twitter." + +msgid "Twitter account disconnected." +msgstr "Conto de Twitter disconnectite." + +msgid "Couldn't save Twitter preferences." +msgstr "Non poteva salveguardar le preferentias de Twitter." + +msgid "Twitter preferences saved." +msgstr "Preferentias de Twitter salveguardate." + +msgid "You can't register if you don't agree to the license." +msgstr "Tu non pote crear un conto si tu non accepta le licentia." + +msgid "Something weird happened." +msgstr "Qualcosa de bizarre occurreva." + +msgid "Couldn't link your Twitter account." +msgstr "Non poteva ligar a tu conto de Twitter." + +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "Non poteva ligar a tu conto de Twitter: oauth_token non corresponde." + +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Isto es le prime vice que tu ha aperite un session in %s; dunque, nos debe " +"connecter tu conto de Twitter a un conto local. Tu pote crear un nove conto, " +"o connecter con tu conto existente, si tu ha un." + +msgid "Twitter Account Setup" +msgstr "Configuration del conto de Twitter" + +msgid "Connection options" +msgstr "Optiones de connexion" + +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Mi texto e files es disponibile sub %s excepte iste datos private: " +"contrasigno, adresse de e-mail, adresse de messageria instantanee, numero de " +"telephono." + +msgid "Create new account" +msgstr "Crear nove conto" + +msgid "Create a new user with this nickname." +msgstr "Crear un nove usator con iste pseudonymo." + +msgid "New nickname" +msgstr "Nove pseudonymo" + +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 minusculas o numeros, sin punctuation o spatios" + +msgid "Create" +msgstr "Crear" + +msgid "Connect existing account" +msgstr "Connecter conto existente" + +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Si tu ha jam un conto, aperi session con tu nomine de usator e contrasigno " +"pro connecter lo a tu conto de Twitter." + +msgid "Existing nickname" +msgstr "Pseudonymo existente" + +msgid "Password" +msgstr "Contrasigno" + +msgid "Connect" +msgstr "Connecter" + +msgid "Registration not allowed." +msgstr "Creation de conto non permittite." + +msgid "Not a valid invitation code." +msgstr "Le codice de invitation es invalide." + +msgid "Nickname not allowed." +msgstr "Pseudonymo non permittite." + +msgid "Nickname already in use. Try another one." +msgstr "Pseudonymo ja in uso. Proba un altere." + +msgid "Error registering user." +msgstr "Error durante le registration del usator." + +msgid "Error connecting user to Twitter." +msgstr "Error durante le connexion del usator a Twitter." + +msgid "Invalid username or password." +msgstr "Nomine de usator o contrasigno invalide." + +msgid "Twitter" +msgstr "Twitter" + +msgid "Twitter bridge settings" +msgstr "Configuration del ponte a Twitter" + +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "Clave de consumitor invalide. Longitude maximal es 255 characteres." + +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "Secreto de consumitor invalide. Longitude maximal es 255 characteres." + +msgid "Twitter application settings" +msgstr "Configuration del application Twitter" + +msgid "Consumer key" +msgstr "Clave de consumitor" + +msgid "Consumer key assigned by Twitter" +msgstr "Clave de consumitor assignate per Twitter" + +msgid "Consumer secret" +msgstr "Secreto de consumitor" + +msgid "Consumer secret assigned by Twitter" +msgstr "Secreto de consumitor assignate per Twitter" + +msgid "Note: a global consumer key and secret are set." +msgstr "Nota: un clave e un secreto de consumitor global es definite." + +msgid "Integration source" +msgstr "Fonte de integration" + +msgid "Name of your Twitter application" +msgstr "Nomine de tu application Twitter" + +msgid "Options" +msgstr "Optiones" + +msgid "Enable \"Sign-in with Twitter\"" +msgstr "Activar \"Aperir session con Twitter\"" + +msgid "Allow users to login with their Twitter credentials" +msgstr "Permitte que usatores aperi session con lor conto de Twitter" + +msgid "Enable Twitter import" +msgstr "Activar le importation de Twitter" + +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" +"Permitte que usatores importa le chronologias de lor amicos de Twitter. " +"Require que le demones sia configurate manualmente." + +msgid "Save Twitter settings" +msgstr "Salveguardar configurationes de Twitter" + +msgid "Login or register using Twitter" +msgstr "Aperir session o crear conto usante Twitter" + +msgid "Twitter integration options" +msgstr "Optiones de integration de Twitter" + +msgid "Twitter bridge configuration" +msgstr "Configuration del ponte a Twitter" + +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with Twitter." +msgstr "" +"Le plug-in de \"ponte\" a Twitter permitte le integration de un installation " +"de StatusNet con Twitter." + +msgid "Already logged in." +msgstr "Tu es jam authenticate." + +msgid "Twitter Login" +msgstr "Apertura de session con Twitter" + +msgid "Login with your Twitter account" +msgstr "Aperir session con tu conto de Twitter" + +msgid "Sign in with Twitter" +msgstr "Aperir session con Twitter" -#: twitter.php:409 msgid "Your Twitter bridge has been disabled." msgstr "Tu ponte a Twitter ha essite disactivate." -#: twitter.php:413 #, php-format msgid "" "Hi, %1$s. We're sorry to inform you that your link to Twitter has been " @@ -59,342 +312,8 @@ msgstr "" "Cordialmente,\n" "%3$s" -#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 -#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 -msgid "Twitter" -msgstr "Twitter" - -#: TwitterBridgePlugin.php:152 -msgid "Login or register using Twitter" -msgstr "Aperir session o crear conto usante Twitter" - -#: TwitterBridgePlugin.php:175 -msgid "Twitter integration options" -msgstr "Optiones de integration de Twitter" - -#: TwitterBridgePlugin.php:303 -msgid "Twitter bridge configuration" -msgstr "Configuration del ponte a Twitter" - -#: TwitterBridgePlugin.php:327 -msgid "" -"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " -"with Twitter." -msgstr "" -"Le plug-in de \"ponte\" a Twitter permitte le integration de un installation " -"de StatusNet con Twitter." - -#: twitteradminpanel.php:62 -msgid "Twitter bridge settings" -msgstr "Configuration del ponte a Twitter" - -#: twitteradminpanel.php:150 -msgid "Invalid consumer key. Max length is 255 characters." -msgstr "Clave de consumitor invalide. Longitude maximal es 255 characteres." - -#: twitteradminpanel.php:156 -msgid "Invalid consumer secret. Max length is 255 characters." -msgstr "Secreto de consumitor invalide. Longitude maximal es 255 characteres." - -#: twitteradminpanel.php:212 -msgid "Twitter application settings" -msgstr "Configuration del application Twitter" - -#: twitteradminpanel.php:218 -msgid "Consumer key" -msgstr "Clave de consumitor" - -#: twitteradminpanel.php:219 -msgid "Consumer key assigned by Twitter" -msgstr "Clave de consumitor assignate per Twitter" - -#: twitteradminpanel.php:227 -msgid "Consumer secret" -msgstr "Secreto de consumitor" - -#: twitteradminpanel.php:228 -msgid "Consumer secret assigned by Twitter" -msgstr "Secreto de consumitor assignate per Twitter" - -#: twitteradminpanel.php:238 -msgid "Note: a global consumer key and secret are set." -msgstr "Nota: un clave e un secreto de consumitor global es definite." - -#: twitteradminpanel.php:245 -msgid "Integration source" -msgstr "Fonte de integration" - -#: twitteradminpanel.php:246 -msgid "Name of your Twitter application" -msgstr "Nomine de tu application Twitter" - -#: twitteradminpanel.php:258 -msgid "Options" -msgstr "Optiones" - -#: twitteradminpanel.php:265 -msgid "Enable \"Sign-in with Twitter\"" -msgstr "Activar \"Aperir session con Twitter\"" - -#: twitteradminpanel.php:267 -msgid "Allow users to login with their Twitter credentials" -msgstr "Permitte que usatores aperi session con lor conto de Twitter" - -#: twitteradminpanel.php:274 -msgid "Enable Twitter import" -msgstr "Activar le importation de Twitter" - -#: twitteradminpanel.php:276 -msgid "" -"Allow users to import their Twitter friends' timelines. Requires daemons to " -"be manually configured." -msgstr "" -"Permitte que usatores importa le chronologias de lor amicos de Twitter. " -"Require que le demones sia configurate manualmente." - -#: twitteradminpanel.php:293 twittersettings.php:199 -msgid "Save" -msgstr "Salveguardar" - -#: twitteradminpanel.php:293 -msgid "Save Twitter settings" -msgstr "Salveguardar configurationes de Twitter" - -#: twitterlogin.php:56 -msgid "Already logged in." -msgstr "Tu es jam authenticate." - -#: twitterlogin.php:64 -msgid "Twitter Login" -msgstr "Apertura de session con Twitter" - -#: twitterlogin.php:69 -msgid "Login with your Twitter account" -msgstr "Aperir session con tu conto de Twitter" - -#: twitterlogin.php:87 -msgid "Sign in with Twitter" -msgstr "Aperir session con Twitter" - -#: twitterauthorization.php:120 twittersettings.php:225 -msgid "There was a problem with your session token. Try again, please." -msgstr "Occurreva un problema con le indicio de tu session. Per favor reproba." - -#: twitterauthorization.php:126 -msgid "You can't register if you don't agree to the license." -msgstr "Tu non pote crear un conto si tu non accepta le licentia." - -#: twitterauthorization.php:135 -msgid "Something weird happened." -msgstr "Qualcosa de bizarre occurreva." - -#: twitterauthorization.php:181 twitterauthorization.php:229 -#: twitterauthorization.php:300 -msgid "Couldn't link your Twitter account." -msgstr "Non poteva ligar a tu conto de Twitter." - -#: twitterauthorization.php:201 -msgid "Couldn't link your Twitter account: oauth_token mismatch." -msgstr "Non poteva ligar a tu conto de Twitter: oauth_token non corresponde." - -#: twitterauthorization.php:312 +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. #, php-format -msgid "" -"This is the first time you've logged into %s so we must connect your Twitter " -"account to a local account. You can either create a new account, or connect " -"with your existing account, if you have one." -msgstr "" -"Isto es le prime vice que tu ha aperite un session in %s; dunque, nos debe " -"connecter tu conto de Twitter a un conto local. Tu pote crear un nove conto, " -"o connecter con tu conto existente, si tu ha un." - -#: twitterauthorization.php:318 -msgid "Twitter Account Setup" -msgstr "Configuration del conto de Twitter" - -#: twitterauthorization.php:351 -msgid "Connection options" -msgstr "Optiones de connexion" - -#: twitterauthorization.php:360 -#, php-format -msgid "" -"My text and files are available under %s except this private data: password, " -"email address, IM address, and phone number." -msgstr "" -"Mi texto e files es disponibile sub %s excepte iste datos private: " -"contrasigno, adresse de e-mail, adresse de messageria instantanee, numero de " -"telephono." - -#: twitterauthorization.php:381 -msgid "Create new account" -msgstr "Crear nove conto" - -#: twitterauthorization.php:383 -msgid "Create a new user with this nickname." -msgstr "Crear un nove usator con iste pseudonymo." - -#: twitterauthorization.php:390 -msgid "New nickname" -msgstr "Nove pseudonymo" - -#: twitterauthorization.php:392 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 minusculas o numeros, sin punctuation o spatios" - -#: twitterauthorization.php:404 -msgid "Create" -msgstr "Crear" - -#: twitterauthorization.php:409 -msgid "Connect existing account" -msgstr "Connecter conto existente" - -#: twitterauthorization.php:411 -msgid "" -"If you already have an account, login with your username and password to " -"connect it to your Twitter account." -msgstr "" -"Si tu ha jam un conto, aperi session con tu nomine de usator e contrasigno " -"pro connecter lo a tu conto de Twitter." - -#: twitterauthorization.php:414 -msgid "Existing nickname" -msgstr "Pseudonymo existente" - -#: twitterauthorization.php:417 -msgid "Password" -msgstr "Contrasigno" - -#: twitterauthorization.php:420 -msgid "Connect" -msgstr "Connecter" - -#: twitterauthorization.php:466 twitterauthorization.php:475 -msgid "Registration not allowed." -msgstr "Creation de conto non permittite." - -#: twitterauthorization.php:482 -msgid "Not a valid invitation code." -msgstr "Le codice de invitation es invalide." - -#: twitterauthorization.php:495 -msgid "Nickname not allowed." -msgstr "Pseudonymo non permittite." - -#: twitterauthorization.php:500 -msgid "Nickname already in use. Try another one." -msgstr "Pseudonymo ja in uso. Proba un altere." - -#: twitterauthorization.php:520 -msgid "Error registering user." -msgstr "Error durante le registration del usator." - -#: twitterauthorization.php:531 twitterauthorization.php:571 -#: twitterauthorization.php:591 -msgid "Error connecting user to Twitter." -msgstr "Error durante le connexion del usator a Twitter." - -#: twitterauthorization.php:553 -msgid "Invalid username or password." -msgstr "Nomine de usator o contrasigno invalide." - -#: twittersettings.php:57 -msgid "Twitter settings" -msgstr "Configuration de Twitter" - -#: twittersettings.php:68 -msgid "" -"Connect your Twitter account to share your updates with your Twitter friends " -"and vice-versa." -msgstr "" -"Connecte tu conto de Twitter pro condivider tu actualisationes con tu amicos " -"de Twitter e vice versa." - -#: twittersettings.php:115 -msgid "Twitter account" -msgstr "Conto de Twitter" - -#: twittersettings.php:120 -msgid "Connected Twitter account" -msgstr "Conto de Twitter connectite" - -#: twittersettings.php:125 -msgid "Disconnect my account from Twitter" -msgstr "Disconnecter mi conto ab Twitter" - -#: twittersettings.php:131 -msgid "Disconnecting your Twitter could make it impossible to log in! Please " -msgstr "" -"Le disconnexion de tu conto de Twitter renderea le authentication " -"impossibile! Per favor " - -#: twittersettings.php:135 -msgid "set a password" -msgstr "defini un contrasigno" - -#: twittersettings.php:137 -msgid " first." -msgstr " primo." - -#. TRANS: %1$s is the current website name. -#: twittersettings.php:141 -#, php-format -msgid "" -"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " -"password to log in." -msgstr "" -"Retene tu conto de %1$s ma disconnecte ab Twitter. Tu pote usar tu " -"contrasigno de %1$s pro aperir session." - -#: twittersettings.php:149 -msgid "Disconnect" -msgstr "Disconnecter" - -#: twittersettings.php:156 -msgid "Preferences" -msgstr "Preferentias" - -#: twittersettings.php:160 -msgid "Automatically send my notices to Twitter." -msgstr "Automaticamente inviar mi notas a Twitter." - -#: twittersettings.php:167 -msgid "Send local \"@\" replies to Twitter." -msgstr "Inviar responsas \"@\" local a Twitter." - -#: twittersettings.php:174 -msgid "Subscribe to my Twitter friends here." -msgstr "Subscriber hic a mi amicos de Twitter." - -#: twittersettings.php:183 -msgid "Import my friends timeline." -msgstr "Importar le chronologia de mi amicos." - -#: twittersettings.php:201 -msgid "Add" -msgstr "Adder" - -#: twittersettings.php:235 -msgid "Unexpected form submission." -msgstr "Submission de formulario inexpectate." - -#: twittersettings.php:250 -msgid "No Twitter connection to remove." -msgstr "Nulle connexion Twitter a remover." - -#: twittersettings.php:258 -msgid "Couldn't remove Twitter user." -msgstr "Non poteva remover le usator de Twitter." - -#: twittersettings.php:262 -msgid "Twitter account disconnected." -msgstr "Conto de Twitter disconnectite." - -#: twittersettings.php:282 twittersettings.php:293 -msgid "Couldn't save Twitter preferences." -msgstr "Non poteva salveguardar le preferentias de Twitter." - -#: twittersettings.php:301 -msgid "Twitter preferences saved." -msgstr "Preferentias de Twitter salveguardate." +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" diff --git a/plugins/TwitterBridge/locale/mk/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/mk/LC_MESSAGES/TwitterBridge.po index b242639ee7..0e98e4d321 100644 --- a/plugins/TwitterBridge/locale/mk/LC_MESSAGES/TwitterBridge.po +++ b/plugins/TwitterBridge/locale/mk/LC_MESSAGES/TwitterBridge.po @@ -9,30 +9,285 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TwitterBridge\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:13+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:01+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:14+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-twitterbridge\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. -#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: twitterimport.php:114 -#, php-format -msgid "RT @%1$s %2$s" -msgstr "RT @%1$s %2$s" +msgid "Twitter settings" +msgstr "Нагодувања за Twitter" + +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Поврзете ја Вашата сметка на Twitter за да ги споделувате подновувањата со " +"Вашите пријатели на Twitter и обратно." + +msgid "Twitter account" +msgstr "Сметка на Twitter" + +msgid "Connected Twitter account" +msgstr "Поврзана сметка на Twitter" + +msgid "Disconnect my account from Twitter" +msgstr "Прекини ја врската со сметката на Twitter" + +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" +"Ако ја прекинете врската со сметката на Twitter, нема да можете да се " +"најавите! Затоа " + +msgid "set a password" +msgstr "ставете лозинка" + +msgid " first." +msgstr "пред да продолжите." + +#. TRANS: %1$s is the current website name. +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" +"Задржете си ја сметката на %1$s, но прекинете ја врската со Twitter. За " +"најава, користете ја Вашата лозинка на %1$s." + +msgid "Disconnect" +msgstr "Прекини" + +msgid "Preferences" +msgstr "Нагодувања" + +msgid "Automatically send my notices to Twitter." +msgstr "Автоматски испраќај ми ги забелешките на Twitter." + +msgid "Send local \"@\" replies to Twitter." +msgstr "Испраќај локални „@“ одговори на Twitter." + +msgid "Subscribe to my Twitter friends here." +msgstr "Претплатете се на пријателите од Twitter тука." + +msgid "Import my friends timeline." +msgstr "Увези ја хронологијата на моите пријатели." + +msgid "Save" +msgstr "Зачувај" + +msgid "Add" +msgstr "Додај" + +msgid "There was a problem with your session token. Try again, please." +msgstr "Се појави проблем со жетонот на Вашата сесија. Обидете се повторно." + +msgid "Unexpected form submission." +msgstr "Неочекувано поднесување на образец." + +msgid "No Twitter connection to remove." +msgstr "Нема врска со Twitter за отстранување." + +msgid "Couldn't remove Twitter user." +msgstr "Не можев да го отстранам корисникот на Twitter." + +msgid "Twitter account disconnected." +msgstr "Врската со сметката на Twitter е прекината." + +msgid "Couldn't save Twitter preferences." +msgstr "Не можев да ги зачувам нагодувањата за Twitter." + +msgid "Twitter preferences saved." +msgstr "Нагодувањата за Twitter се зачувани." + +msgid "You can't register if you don't agree to the license." +msgstr "Не можете да се регистрирате ако не се согласувате со лиценцата." + +msgid "Something weird happened." +msgstr "Се случи нешто чудно." + +msgid "Couldn't link your Twitter account." +msgstr "Не можам да ја поврзам Вашата сметка на Twitter." + +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" +"Не можев да ја поврзам Вашата сметка на Twitter: несогласување со " +"oauth_token." + +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Ова е прв пат како се најавувате на %s, па затоа мораме да ја поврземе " +"Вашата сметка на Twitter со локална сметка. Можете да создадете нова сметка, " +"или пак да се поврзете со Вашата постоечка сметка (ако ја имате)." + +msgid "Twitter Account Setup" +msgstr "Поставки за сметката на Twitter" + +msgid "Connection options" +msgstr "Нагодувања за врска" + +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Мојот текст и податотеки се достапни под %s, освен следниве приватни " +"податоци: лозинка, е-пошта, IM-адреса и телефонски број." + +msgid "Create new account" +msgstr "Создај нова сметка" + +msgid "Create a new user with this nickname." +msgstr "Создај нов корисник со овој прекар." + +msgid "New nickname" +msgstr "Нов прекар" + +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 мали букви или бројки, без интерпункциски знаци и празни места" + +msgid "Create" +msgstr "Создај" + +msgid "Connect existing account" +msgstr "Поврзи постоечка сметка" + +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Ако веќе имате сметка, најавете се со корисничкото име и лозинката за да ја " +"поврзете со профилот на Twitter." + +msgid "Existing nickname" +msgstr "Постоечки прекар" + +msgid "Password" +msgstr "Лозинка" + +msgid "Connect" +msgstr "Поврзи се" + +msgid "Registration not allowed." +msgstr "Регистрацијата не е дозволена." + +msgid "Not a valid invitation code." +msgstr "Ова не е важечки код за покана." + +msgid "Nickname not allowed." +msgstr "Прекарот не е дозволен." + +msgid "Nickname already in use. Try another one." +msgstr "Прекарот е зафатен. Одберете друг." + +msgid "Error registering user." +msgstr "Грешка при регистрирање на корисникот." + +msgid "Error connecting user to Twitter." +msgstr "Грешка при поврзувањето на корисникот со Twitter." + +msgid "Invalid username or password." +msgstr "Неважечко корисничко име или лозинка." + +msgid "Twitter" +msgstr "Twitter" + +msgid "Twitter bridge settings" +msgstr "Поставки за мостот до Twitter" + +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "Неважечки потрошувачки клуч. Дозволени се највеќе 255 знаци." + +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "Неважечка потрошувачка тајна. Дозволени се највеќе 255 знаци." + +msgid "Twitter application settings" +msgstr "Нагодувања на програмчето за Twitter" + +msgid "Consumer key" +msgstr "Потрошувачки клуч" + +msgid "Consumer key assigned by Twitter" +msgstr "Потрошувачкиот клуч доделен од Twitter" + +msgid "Consumer secret" +msgstr "Потрошувачка тајна" + +msgid "Consumer secret assigned by Twitter" +msgstr "Потрошувачката тајна доделена од Twitter" + +msgid "Note: a global consumer key and secret are set." +msgstr "Напомена: поставени се глобални потрошувачки клуч и тајна." + +msgid "Integration source" +msgstr "Извор на соединување" + +msgid "Name of your Twitter application" +msgstr "Име на Вашето програмче за Twitter" + +msgid "Options" +msgstr "Поставки" + +msgid "Enable \"Sign-in with Twitter\"" +msgstr "Овозможи „најава со Twitter“" + +msgid "Allow users to login with their Twitter credentials" +msgstr "" +"Им овозможува на корисниците да се најавуваат со нивните податоци од Twitter" + +msgid "Enable Twitter import" +msgstr "Овозможу увоз од Twitter" + +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" +"Им овозможува на корисниците да ги увезуваат хронологиите на нивните " +"пријатели на Twitter. Бара рачно нагодување на демоните." + +msgid "Save Twitter settings" +msgstr "Зачувај нагодувања на Twitter" + +msgid "Login or register using Twitter" +msgstr "Најава или регистрација со Twitter" + +msgid "Twitter integration options" +msgstr "Нагодувања за обединување со Twitter" + +msgid "Twitter bridge configuration" +msgstr "Нагодувања за мостот до Twitter" + +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with Twitter." +msgstr "" +"Приклучокот за „мост“ до Twitter овозможува соединување на примерок на " +"StatusNet со Twitter." + +msgid "Already logged in." +msgstr "Веќе сте најавени." + +msgid "Twitter Login" +msgstr "Најава со Twitter" + +msgid "Login with your Twitter account" +msgstr "Најава со Вашата сметка од Twitter" + +msgid "Sign in with Twitter" +msgstr "Најава со Twitter" -#: twitter.php:409 msgid "Your Twitter bridge has been disabled." msgstr "Вашиот мост до Twitter е оневозможен." -#: twitter.php:413 #, php-format msgid "" "Hi, %1$s. We're sorry to inform you that your link to Twitter has been " @@ -59,344 +314,8 @@ msgstr "" "Поздрав,\n" "%3$s" -#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 -#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 -msgid "Twitter" -msgstr "Twitter" - -#: TwitterBridgePlugin.php:152 -msgid "Login or register using Twitter" -msgstr "Најава или регистрација со Twitter" - -#: TwitterBridgePlugin.php:175 -msgid "Twitter integration options" -msgstr "Нагодувања за обединување со Twitter" - -#: TwitterBridgePlugin.php:303 -msgid "Twitter bridge configuration" -msgstr "Нагодувања за мостот до Twitter" - -#: TwitterBridgePlugin.php:327 -msgid "" -"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " -"with Twitter." -msgstr "" -"Приклучокот за „мост“ до Twitter овозможува соединување на примерок на " -"StatusNet со Twitter." - -#: twitteradminpanel.php:62 -msgid "Twitter bridge settings" -msgstr "Поставки за мостот до Twitter" - -#: twitteradminpanel.php:150 -msgid "Invalid consumer key. Max length is 255 characters." -msgstr "Неважечки потрошувачки клуч. Дозволени се највеќе 255 знаци." - -#: twitteradminpanel.php:156 -msgid "Invalid consumer secret. Max length is 255 characters." -msgstr "Неважечка потрошувачка тајна. Дозволени се највеќе 255 знаци." - -#: twitteradminpanel.php:212 -msgid "Twitter application settings" -msgstr "Нагодувања на програмчето за Twitter" - -#: twitteradminpanel.php:218 -msgid "Consumer key" -msgstr "Потрошувачки клуч" - -#: twitteradminpanel.php:219 -msgid "Consumer key assigned by Twitter" -msgstr "Потрошувачкиот клуч доделен од Twitter" - -#: twitteradminpanel.php:227 -msgid "Consumer secret" -msgstr "Потрошувачка тајна" - -#: twitteradminpanel.php:228 -msgid "Consumer secret assigned by Twitter" -msgstr "Потрошувачката тајна доделена од Twitter" - -#: twitteradminpanel.php:238 -msgid "Note: a global consumer key and secret are set." -msgstr "Напомена: поставени се глобални потрошувачки клуч и тајна." - -#: twitteradminpanel.php:245 -msgid "Integration source" -msgstr "Извор на соединување" - -#: twitteradminpanel.php:246 -msgid "Name of your Twitter application" -msgstr "Име на Вашето програмче за Twitter" - -#: twitteradminpanel.php:258 -msgid "Options" -msgstr "Поставки" - -#: twitteradminpanel.php:265 -msgid "Enable \"Sign-in with Twitter\"" -msgstr "Овозможи „најава со Twitter“" - -#: twitteradminpanel.php:267 -msgid "Allow users to login with their Twitter credentials" -msgstr "" -"Им овозможува на корисниците да се најавуваат со нивните податоци од Twitter" - -#: twitteradminpanel.php:274 -msgid "Enable Twitter import" -msgstr "Овозможу увоз од Twitter" - -#: twitteradminpanel.php:276 -msgid "" -"Allow users to import their Twitter friends' timelines. Requires daemons to " -"be manually configured." -msgstr "" -"Им овозможува на корисниците да ги увезуваат хронологиите на нивните " -"пријатели на Twitter. Бара рачно нагодување на демоните." - -#: twitteradminpanel.php:293 twittersettings.php:199 -msgid "Save" -msgstr "Зачувај" - -#: twitteradminpanel.php:293 -msgid "Save Twitter settings" -msgstr "Зачувај нагодувања на Twitter" - -#: twitterlogin.php:56 -msgid "Already logged in." -msgstr "Веќе сте најавени." - -#: twitterlogin.php:64 -msgid "Twitter Login" -msgstr "Најава со Twitter" - -#: twitterlogin.php:69 -msgid "Login with your Twitter account" -msgstr "Најава со Вашата сметка од Twitter" - -#: twitterlogin.php:87 -msgid "Sign in with Twitter" -msgstr "Најава со Twitter" - -#: twitterauthorization.php:120 twittersettings.php:225 -msgid "There was a problem with your session token. Try again, please." -msgstr "Се појави проблем со жетонот на Вашата сесија. Обидете се повторно." - -#: twitterauthorization.php:126 -msgid "You can't register if you don't agree to the license." -msgstr "Не можете да се регистрирате ако не се согласувате со лиценцата." - -#: twitterauthorization.php:135 -msgid "Something weird happened." -msgstr "Се случи нешто чудно." - -#: twitterauthorization.php:181 twitterauthorization.php:229 -#: twitterauthorization.php:300 -msgid "Couldn't link your Twitter account." -msgstr "Не можам да ја поврзам Вашата сметка на Twitter." - -#: twitterauthorization.php:201 -msgid "Couldn't link your Twitter account: oauth_token mismatch." -msgstr "" -"Не можев да ја поврзам Вашата сметка на Twitter: несогласување со " -"oauth_token." - -#: twitterauthorization.php:312 +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. #, php-format -msgid "" -"This is the first time you've logged into %s so we must connect your Twitter " -"account to a local account. You can either create a new account, or connect " -"with your existing account, if you have one." -msgstr "" -"Ова е прв пат како се најавувате на %s, па затоа мораме да ја поврземе " -"Вашата сметка на Twitter со локална сметка. Можете да создадете нова сметка, " -"или пак да се поврзете со Вашата постоечка сметка (ако ја имате)." - -#: twitterauthorization.php:318 -msgid "Twitter Account Setup" -msgstr "Поставки за сметката на Twitter" - -#: twitterauthorization.php:351 -msgid "Connection options" -msgstr "Нагодувања за врска" - -#: twitterauthorization.php:360 -#, php-format -msgid "" -"My text and files are available under %s except this private data: password, " -"email address, IM address, and phone number." -msgstr "" -"Мојот текст и податотеки се достапни под %s, освен следниве приватни " -"податоци: лозинка, е-пошта, IM-адреса и телефонски број." - -#: twitterauthorization.php:381 -msgid "Create new account" -msgstr "Создај нова сметка" - -#: twitterauthorization.php:383 -msgid "Create a new user with this nickname." -msgstr "Создај нов корисник со овој прекар." - -#: twitterauthorization.php:390 -msgid "New nickname" -msgstr "Нов прекар" - -#: twitterauthorization.php:392 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 мали букви или бројки, без интерпункциски знаци и празни места" - -#: twitterauthorization.php:404 -msgid "Create" -msgstr "Создај" - -#: twitterauthorization.php:409 -msgid "Connect existing account" -msgstr "Поврзи постоечка сметка" - -#: twitterauthorization.php:411 -msgid "" -"If you already have an account, login with your username and password to " -"connect it to your Twitter account." -msgstr "" -"Ако веќе имате сметка, најавете се со корисничкото име и лозинката за да ја " -"поврзете со профилот на Twitter." - -#: twitterauthorization.php:414 -msgid "Existing nickname" -msgstr "Постоечки прекар" - -#: twitterauthorization.php:417 -msgid "Password" -msgstr "Лозинка" - -#: twitterauthorization.php:420 -msgid "Connect" -msgstr "Поврзи се" - -#: twitterauthorization.php:466 twitterauthorization.php:475 -msgid "Registration not allowed." -msgstr "Регистрацијата не е дозволена." - -#: twitterauthorization.php:482 -msgid "Not a valid invitation code." -msgstr "Ова не е важечки код за покана." - -#: twitterauthorization.php:495 -msgid "Nickname not allowed." -msgstr "Прекарот не е дозволен." - -#: twitterauthorization.php:500 -msgid "Nickname already in use. Try another one." -msgstr "Прекарот е зафатен. Одберете друг." - -#: twitterauthorization.php:520 -msgid "Error registering user." -msgstr "Грешка при регистрирање на корисникот." - -#: twitterauthorization.php:531 twitterauthorization.php:571 -#: twitterauthorization.php:591 -msgid "Error connecting user to Twitter." -msgstr "Грешка при поврзувањето на корисникот со Twitter." - -#: twitterauthorization.php:553 -msgid "Invalid username or password." -msgstr "Неважечко корисничко име или лозинка." - -#: twittersettings.php:57 -msgid "Twitter settings" -msgstr "Нагодувања за Twitter" - -#: twittersettings.php:68 -msgid "" -"Connect your Twitter account to share your updates with your Twitter friends " -"and vice-versa." -msgstr "" -"Поврзете ја Вашата сметка на Twitter за да ги споделувате подновувањата со " -"Вашите пријатели на Twitter и обратно." - -#: twittersettings.php:115 -msgid "Twitter account" -msgstr "Сметка на Twitter" - -#: twittersettings.php:120 -msgid "Connected Twitter account" -msgstr "Поврзана сметка на Twitter" - -#: twittersettings.php:125 -msgid "Disconnect my account from Twitter" -msgstr "Прекини ја врската со сметката на Twitter" - -#: twittersettings.php:131 -msgid "Disconnecting your Twitter could make it impossible to log in! Please " -msgstr "" -"Ако ја прекинете врската со сметката на Twitter, нема да можете да се " -"најавите! Затоа " - -#: twittersettings.php:135 -msgid "set a password" -msgstr "ставете лозинка" - -#: twittersettings.php:137 -msgid " first." -msgstr "пред да продолжите." - -#. TRANS: %1$s is the current website name. -#: twittersettings.php:141 -#, php-format -msgid "" -"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " -"password to log in." -msgstr "" -"Задржете си ја сметката на %1$s, но прекинете ја врската со Twitter. За " -"најава, користете ја Вашата лозинка на %1$s." - -#: twittersettings.php:149 -msgid "Disconnect" -msgstr "Прекини" - -#: twittersettings.php:156 -msgid "Preferences" -msgstr "Нагодувања" - -#: twittersettings.php:160 -msgid "Automatically send my notices to Twitter." -msgstr "Автоматски испраќај ми ги забелешките на Twitter." - -#: twittersettings.php:167 -msgid "Send local \"@\" replies to Twitter." -msgstr "Испраќај локални „@“ одговори на Twitter." - -#: twittersettings.php:174 -msgid "Subscribe to my Twitter friends here." -msgstr "Претплатете се на пријателите од Twitter тука." - -#: twittersettings.php:183 -msgid "Import my friends timeline." -msgstr "Увези ја хронологијата на моите пријатели." - -#: twittersettings.php:201 -msgid "Add" -msgstr "Додај" - -#: twittersettings.php:235 -msgid "Unexpected form submission." -msgstr "Неочекувано поднесување на образец." - -#: twittersettings.php:250 -msgid "No Twitter connection to remove." -msgstr "Нема врска со Twitter за отстранување." - -#: twittersettings.php:258 -msgid "Couldn't remove Twitter user." -msgstr "Не можев да го отстранам корисникот на Twitter." - -#: twittersettings.php:262 -msgid "Twitter account disconnected." -msgstr "Врската со сметката на Twitter е прекината." - -#: twittersettings.php:282 twittersettings.php:293 -msgid "Couldn't save Twitter preferences." -msgstr "Не можев да ги зачувам нагодувањата за Twitter." - -#: twittersettings.php:301 -msgid "Twitter preferences saved." -msgstr "Нагодувањата за Twitter се зачувани." +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" diff --git a/plugins/TwitterBridge/locale/nl/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/nl/LC_MESSAGES/TwitterBridge.po index 45a9a209aa..3712a4a3eb 100644 --- a/plugins/TwitterBridge/locale/nl/LC_MESSAGES/TwitterBridge.po +++ b/plugins/TwitterBridge/locale/nl/LC_MESSAGES/TwitterBridge.po @@ -9,30 +9,289 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TwitterBridge\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:13+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:01+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:14+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-twitterbridge\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. -#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: twitterimport.php:114 -#, php-format -msgid "RT @%1$s %2$s" -msgstr "RT @%1$s %2$s" +msgid "Twitter settings" +msgstr "Twitterinstellingen" + +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Koppel uw Twittergebruiker om uw berichten te delen met uw Twittervrienden " +"en vice versa." + +msgid "Twitter account" +msgstr "Twittergebruiker" + +msgid "Connected Twitter account" +msgstr "Gekoppelde Twittergebruiker" + +msgid "Disconnect my account from Twitter" +msgstr "Mijn gebruiker loskoppelen van Twitter" + +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" +"Loskoppelen van uw Twittergebruiker zou ervoor zorgen dat u niet langer kunt " +"aanmelden. U moet eerst " + +msgid "set a password" +msgstr "een wachtwoord instellen" + +msgid " first." +msgstr " voordat u verder kunt met deze handeling." + +#. TRANS: %1$s is the current website name. +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" +"Uw gebruiker bij %1$s behouden maar deze loskoppelen van Twitter. U kunt uw " +"wachtwoord van %1$s gebruiken om aan te melden." + +msgid "Disconnect" +msgstr "Loskoppelen" + +msgid "Preferences" +msgstr "Voorkeuren" + +msgid "Automatically send my notices to Twitter." +msgstr "Mijn berichten automatisch naar Twitter verzenden" + +msgid "Send local \"@\" replies to Twitter." +msgstr "Lokale antwoorden met \"2\" naar Twitter verzenden." + +msgid "Subscribe to my Twitter friends here." +msgstr "Hier op mijn Twittervrienden abonneren." + +msgid "Import my friends timeline." +msgstr "Tijdlijn van mijn vrienden importeren." + +msgid "Save" +msgstr "Opslaan" + +msgid "Add" +msgstr "Toevoegen" + +msgid "There was a problem with your session token. Try again, please." +msgstr "" +"Er is een probleem ontstaan met uw sessie. Probeer het nog een keer, " +"alstublieft." + +msgid "Unexpected form submission." +msgstr "Het formulier is onverwacht ingezonden." + +msgid "No Twitter connection to remove." +msgstr "Er is geen Twitterkoppeling om te verwijderen." + +msgid "Couldn't remove Twitter user." +msgstr "Het was niet mogelijk de Twittergebruiker te verwijderen." + +msgid "Twitter account disconnected." +msgstr "De Twittergebruiker is ontkoppeld." + +msgid "Couldn't save Twitter preferences." +msgstr "Het was niet mogelijk de Twittervoorkeuren op te slaan." + +msgid "Twitter preferences saved." +msgstr "De Twitterinstellingen zijn opgeslagen." + +msgid "You can't register if you don't agree to the license." +msgstr "U kunt zich niet registreren als u niet met de licentie akkoord gaat." + +msgid "Something weird happened." +msgstr "Er is iets vreemds gebeurd." + +msgid "Couldn't link your Twitter account." +msgstr "Het was niet mogelijk uw Twittergebruiker te koppelen." + +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" +"Het was niet mogelijk uw Twittergebruiker te koppelen: het oauth_token kwam " +"niet overeen." + +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Dit is de eerste keer dat u aanmeldt bij %s en dan moeten we uw " +"Twittergebruiker koppelen met uw lokale gebruiker. U kunt een nieuwe " +"gebruiker aanmaken of koppelen met een bestaande gebruiker als u die al hebt." + +msgid "Twitter Account Setup" +msgstr "Instellingen Twittergebruiker" + +msgid "Connection options" +msgstr "Koppelingsinstellingen" + +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Mijn teksten en bestanden zijn beschikbaar onder %s, behalve de volgende " +"privégegevens: wachtwoord, e-mailadres, IM-adres, telefoonnummer." + +msgid "Create new account" +msgstr "Nieuwe gebruiker aanmaken" + +msgid "Create a new user with this nickname." +msgstr "Nieuwe gebruiker aanmaken met deze gebruikersnaam." + +msgid "New nickname" +msgstr "Nieuwe gebruikersnaam" + +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1-64 kleine letters of cijfers, geen leestekens of spaties" + +msgid "Create" +msgstr "Aanmaken" + +msgid "Connect existing account" +msgstr "Verbinden met een bestaande gebruiker" + +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Als u al een gebruiker hebt, meld dan aan met uw gebruikersnaam en " +"wachtwoord om deze daarna te koppelen met uw Twittergebruiker." + +msgid "Existing nickname" +msgstr "Bestaande gebruikersnaam" + +msgid "Password" +msgstr "Wachtwoord" + +msgid "Connect" +msgstr "Koppelen" + +msgid "Registration not allowed." +msgstr "Registratie is niet toegestaan." + +msgid "Not a valid invitation code." +msgstr "De uitnodigingscode is ongeldig." + +msgid "Nickname not allowed." +msgstr "Gebruikersnaam niet toegestaan." + +msgid "Nickname already in use. Try another one." +msgstr "" +"De opgegeven gebruikersnaam is al in gebruik. Kies een andere gebruikersnaam." + +msgid "Error registering user." +msgstr "Fout bij het registreren van de gebruiker." + +msgid "Error connecting user to Twitter." +msgstr "Fout bij het verbinden van de gebruiker met Twitter." + +msgid "Invalid username or password." +msgstr "Ongeldige gebruikersnaam of wachtwoord." + +msgid "Twitter" +msgstr "Twitter" + +msgid "Twitter bridge settings" +msgstr "Instellingen Twitterkoppeling" + +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "Ongeldige gebruikerssleutel. De maximale lengte is 255 tekens." + +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "Ongeldig gebruikersgeheim. De maximale lengte is 255 tekens." + +msgid "Twitter application settings" +msgstr "Instellingen Twitterapplicatie" + +msgid "Consumer key" +msgstr "Gebruikerssleutel" + +msgid "Consumer key assigned by Twitter" +msgstr "Gebruikerssleutel uitgegeven door Twitter" + +msgid "Consumer secret" +msgstr "Gebruikersgeheim" + +msgid "Consumer secret assigned by Twitter" +msgstr "Gebruikersgeheim uitgegeven door Twitter" + +msgid "Note: a global consumer key and secret are set." +msgstr "Let op: er zijn een gebruikerssleutel en gebruikersgeheim ingesteld." + +msgid "Integration source" +msgstr "Integratiebron" + +msgid "Name of your Twitter application" +msgstr "Naam van uw Twitterapplicatie" + +msgid "Options" +msgstr "Opties" + +msgid "Enable \"Sign-in with Twitter\"" +msgstr "\"Aanmelden via Twitter\" inschakelen" + +msgid "Allow users to login with their Twitter credentials" +msgstr "" +"Gebruikers toestaan aan te melden met hun gebruikersnaam en wachtwoord van " +"Twitter" + +msgid "Enable Twitter import" +msgstr "Twitterimport inschakelen" + +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" +"Gebruikers toestaan de tijdlijnen van hun Twittervrienden te importeren. " +"Vereist handmatig te configureren daemons." + +msgid "Save Twitter settings" +msgstr "Twitterinstellingen opslaan" + +msgid "Login or register using Twitter" +msgstr "Aanmelden of registreren via Twitter" + +msgid "Twitter integration options" +msgstr "Opties voor Twitterintegratie" + +msgid "Twitter bridge configuration" +msgstr "Instellingen voor Twitterkoppeling" + +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with Twitter." +msgstr "" +"De plugin Twitter Brigde maakt het mogelijk en StatusNetinstallatie te " +"integreren met Twitter." + +msgid "Already logged in." +msgstr "U bent al aangemeld." + +msgid "Twitter Login" +msgstr "Aanmelden via Twitter" + +msgid "Login with your Twitter account" +msgstr "Aanmelden met uw Twittergebruiker" + +msgid "Sign in with Twitter" +msgstr "Aanmelden met Twitter" -#: twitter.php:409 msgid "Your Twitter bridge has been disabled." msgstr "Uw koppeling naar Twitter is uitgeschakeld." -#: twitter.php:413 #, php-format msgid "" "Hi, %1$s. We're sorry to inform you that your link to Twitter has been " @@ -61,348 +320,8 @@ msgstr "" "Met vriendelijke groet,\n" "%3$s" -#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 -#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 -msgid "Twitter" -msgstr "Twitter" - -#: TwitterBridgePlugin.php:152 -msgid "Login or register using Twitter" -msgstr "Aanmelden of registreren via Twitter" - -#: TwitterBridgePlugin.php:175 -msgid "Twitter integration options" -msgstr "Opties voor Twitterintegratie" - -#: TwitterBridgePlugin.php:303 -msgid "Twitter bridge configuration" -msgstr "Instellingen voor Twitterkoppeling" - -#: TwitterBridgePlugin.php:327 -msgid "" -"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " -"with Twitter." -msgstr "" -"De plugin Twitter Brigde maakt het mogelijk en StatusNetinstallatie te " -"integreren met Twitter." - -#: twitteradminpanel.php:62 -msgid "Twitter bridge settings" -msgstr "Instellingen Twitterkoppeling" - -#: twitteradminpanel.php:150 -msgid "Invalid consumer key. Max length is 255 characters." -msgstr "Ongeldige gebruikerssleutel. De maximale lengte is 255 tekens." - -#: twitteradminpanel.php:156 -msgid "Invalid consumer secret. Max length is 255 characters." -msgstr "Ongeldig gebruikersgeheim. De maximale lengte is 255 tekens." - -#: twitteradminpanel.php:212 -msgid "Twitter application settings" -msgstr "Instellingen Twitterapplicatie" - -#: twitteradminpanel.php:218 -msgid "Consumer key" -msgstr "Gebruikerssleutel" - -#: twitteradminpanel.php:219 -msgid "Consumer key assigned by Twitter" -msgstr "Gebruikerssleutel uitgegeven door Twitter" - -#: twitteradminpanel.php:227 -msgid "Consumer secret" -msgstr "Gebruikersgeheim" - -#: twitteradminpanel.php:228 -msgid "Consumer secret assigned by Twitter" -msgstr "Gebruikersgeheim uitgegeven door Twitter" - -#: twitteradminpanel.php:238 -msgid "Note: a global consumer key and secret are set." -msgstr "Let op: er zijn een gebruikerssleutel en gebruikersgeheim ingesteld." - -#: twitteradminpanel.php:245 -msgid "Integration source" -msgstr "Integratiebron" - -#: twitteradminpanel.php:246 -msgid "Name of your Twitter application" -msgstr "Naam van uw Twitterapplicatie" - -#: twitteradminpanel.php:258 -msgid "Options" -msgstr "Opties" - -#: twitteradminpanel.php:265 -msgid "Enable \"Sign-in with Twitter\"" -msgstr "\"Aanmelden via Twitter\" inschakelen" - -#: twitteradminpanel.php:267 -msgid "Allow users to login with their Twitter credentials" -msgstr "" -"Gebruikers toestaan aan te melden met hun gebruikersnaam en wachtwoord van " -"Twitter" - -#: twitteradminpanel.php:274 -msgid "Enable Twitter import" -msgstr "Twitterimport inschakelen" - -#: twitteradminpanel.php:276 -msgid "" -"Allow users to import their Twitter friends' timelines. Requires daemons to " -"be manually configured." -msgstr "" -"Gebruikers toestaan de tijdlijnen van hun Twittervrienden te importeren. " -"Vereist handmatig te configureren daemons." - -#: twitteradminpanel.php:293 twittersettings.php:199 -msgid "Save" -msgstr "Opslaan" - -#: twitteradminpanel.php:293 -msgid "Save Twitter settings" -msgstr "Twitterinstellingen opslaan" - -#: twitterlogin.php:56 -msgid "Already logged in." -msgstr "U bent al aangemeld." - -#: twitterlogin.php:64 -msgid "Twitter Login" -msgstr "Aanmelden via Twitter" - -#: twitterlogin.php:69 -msgid "Login with your Twitter account" -msgstr "Aanmelden met uw Twittergebruiker" - -#: twitterlogin.php:87 -msgid "Sign in with Twitter" -msgstr "Aanmelden met Twitter" - -#: twitterauthorization.php:120 twittersettings.php:225 -msgid "There was a problem with your session token. Try again, please." -msgstr "" -"Er is een probleem ontstaan met uw sessie. Probeer het nog een keer, " -"alstublieft." - -#: twitterauthorization.php:126 -msgid "You can't register if you don't agree to the license." -msgstr "U kunt zich niet registreren als u niet met de licentie akkoord gaat." - -#: twitterauthorization.php:135 -msgid "Something weird happened." -msgstr "Er is iets vreemds gebeurd." - -#: twitterauthorization.php:181 twitterauthorization.php:229 -#: twitterauthorization.php:300 -msgid "Couldn't link your Twitter account." -msgstr "Het was niet mogelijk uw Twittergebruiker te koppelen." - -#: twitterauthorization.php:201 -msgid "Couldn't link your Twitter account: oauth_token mismatch." -msgstr "" -"Het was niet mogelijk uw Twittergebruiker te koppelen: het oauth_token kwam " -"niet overeen." - -#: twitterauthorization.php:312 +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. #, php-format -msgid "" -"This is the first time you've logged into %s so we must connect your Twitter " -"account to a local account. You can either create a new account, or connect " -"with your existing account, if you have one." -msgstr "" -"Dit is de eerste keer dat u aanmeldt bij %s en dan moeten we uw " -"Twittergebruiker koppelen met uw lokale gebruiker. U kunt een nieuwe " -"gebruiker aanmaken of koppelen met een bestaande gebruiker als u die al hebt." - -#: twitterauthorization.php:318 -msgid "Twitter Account Setup" -msgstr "Instellingen Twittergebruiker" - -#: twitterauthorization.php:351 -msgid "Connection options" -msgstr "Koppelingsinstellingen" - -#: twitterauthorization.php:360 -#, php-format -msgid "" -"My text and files are available under %s except this private data: password, " -"email address, IM address, and phone number." -msgstr "" -"Mijn teksten en bestanden zijn beschikbaar onder %s, behalve de volgende " -"privégegevens: wachtwoord, e-mailadres, IM-adres, telefoonnummer." - -#: twitterauthorization.php:381 -msgid "Create new account" -msgstr "Nieuwe gebruiker aanmaken" - -#: twitterauthorization.php:383 -msgid "Create a new user with this nickname." -msgstr "Nieuwe gebruiker aanmaken met deze gebruikersnaam." - -#: twitterauthorization.php:390 -msgid "New nickname" -msgstr "Nieuwe gebruikersnaam" - -#: twitterauthorization.php:392 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1-64 kleine letters of cijfers, geen leestekens of spaties" - -#: twitterauthorization.php:404 -msgid "Create" -msgstr "Aanmaken" - -#: twitterauthorization.php:409 -msgid "Connect existing account" -msgstr "Verbinden met een bestaande gebruiker" - -#: twitterauthorization.php:411 -msgid "" -"If you already have an account, login with your username and password to " -"connect it to your Twitter account." -msgstr "" -"Als u al een gebruiker hebt, meld dan aan met uw gebruikersnaam en " -"wachtwoord om deze daarna te koppelen met uw Twittergebruiker." - -#: twitterauthorization.php:414 -msgid "Existing nickname" -msgstr "Bestaande gebruikersnaam" - -#: twitterauthorization.php:417 -msgid "Password" -msgstr "Wachtwoord" - -#: twitterauthorization.php:420 -msgid "Connect" -msgstr "Koppelen" - -#: twitterauthorization.php:466 twitterauthorization.php:475 -msgid "Registration not allowed." -msgstr "Registratie is niet toegestaan." - -#: twitterauthorization.php:482 -msgid "Not a valid invitation code." -msgstr "De uitnodigingscode is ongeldig." - -#: twitterauthorization.php:495 -msgid "Nickname not allowed." -msgstr "Gebruikersnaam niet toegestaan." - -#: twitterauthorization.php:500 -msgid "Nickname already in use. Try another one." -msgstr "" -"De opgegeven gebruikersnaam is al in gebruik. Kies een andere gebruikersnaam." - -#: twitterauthorization.php:520 -msgid "Error registering user." -msgstr "Fout bij het registreren van de gebruiker." - -#: twitterauthorization.php:531 twitterauthorization.php:571 -#: twitterauthorization.php:591 -msgid "Error connecting user to Twitter." -msgstr "Fout bij het verbinden van de gebruiker met Twitter." - -#: twitterauthorization.php:553 -msgid "Invalid username or password." -msgstr "Ongeldige gebruikersnaam of wachtwoord." - -#: twittersettings.php:57 -msgid "Twitter settings" -msgstr "Twitterinstellingen" - -#: twittersettings.php:68 -msgid "" -"Connect your Twitter account to share your updates with your Twitter friends " -"and vice-versa." -msgstr "" -"Koppel uw Twittergebruiker om uw berichten te delen met uw Twittervrienden " -"en vice versa." - -#: twittersettings.php:115 -msgid "Twitter account" -msgstr "Twittergebruiker" - -#: twittersettings.php:120 -msgid "Connected Twitter account" -msgstr "Gekoppelde Twittergebruiker" - -#: twittersettings.php:125 -msgid "Disconnect my account from Twitter" -msgstr "Mijn gebruiker loskoppelen van Twitter" - -#: twittersettings.php:131 -msgid "Disconnecting your Twitter could make it impossible to log in! Please " -msgstr "" -"Loskoppelen van uw Twittergebruiker zou ervoor zorgen dat u niet langer kunt " -"aanmelden. U moet eerst " - -#: twittersettings.php:135 -msgid "set a password" -msgstr "een wachtwoord instellen" - -#: twittersettings.php:137 -msgid " first." -msgstr " voordat u verder kunt met deze handeling." - -#. TRANS: %1$s is the current website name. -#: twittersettings.php:141 -#, php-format -msgid "" -"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " -"password to log in." -msgstr "" -"Uw gebruiker bij %1$s behouden maar deze loskoppelen van Twitter. U kunt uw " -"wachtwoord van %1$s gebruiken om aan te melden." - -#: twittersettings.php:149 -msgid "Disconnect" -msgstr "Loskoppelen" - -#: twittersettings.php:156 -msgid "Preferences" -msgstr "Voorkeuren" - -#: twittersettings.php:160 -msgid "Automatically send my notices to Twitter." -msgstr "Mijn berichten automatisch naar Twitter verzenden" - -#: twittersettings.php:167 -msgid "Send local \"@\" replies to Twitter." -msgstr "Lokale antwoorden met \"2\" naar Twitter verzenden." - -#: twittersettings.php:174 -msgid "Subscribe to my Twitter friends here." -msgstr "Hier op mijn Twittervrienden abonneren." - -#: twittersettings.php:183 -msgid "Import my friends timeline." -msgstr "Tijdlijn van mijn vrienden importeren." - -#: twittersettings.php:201 -msgid "Add" -msgstr "Toevoegen" - -#: twittersettings.php:235 -msgid "Unexpected form submission." -msgstr "Het formulier is onverwacht ingezonden." - -#: twittersettings.php:250 -msgid "No Twitter connection to remove." -msgstr "Er is geen Twitterkoppeling om te verwijderen." - -#: twittersettings.php:258 -msgid "Couldn't remove Twitter user." -msgstr "Het was niet mogelijk de Twittergebruiker te verwijderen." - -#: twittersettings.php:262 -msgid "Twitter account disconnected." -msgstr "De Twittergebruiker is ontkoppeld." - -#: twittersettings.php:282 twittersettings.php:293 -msgid "Couldn't save Twitter preferences." -msgstr "Het was niet mogelijk de Twittervoorkeuren op te slaan." - -#: twittersettings.php:301 -msgid "Twitter preferences saved." -msgstr "De Twitterinstellingen zijn opgeslagen." +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" diff --git a/plugins/TwitterBridge/locale/tr/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/tr/LC_MESSAGES/TwitterBridge.po index 7b23e06920..06fa718790 100644 --- a/plugins/TwitterBridge/locale/tr/LC_MESSAGES/TwitterBridge.po +++ b/plugins/TwitterBridge/locale/tr/LC_MESSAGES/TwitterBridge.po @@ -9,30 +9,276 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TwitterBridge\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:13+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:01+0000\n" "Language-Team: Turkish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:14+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: #out-statusnet-plugin-twitterbridge\n" "Plural-Forms: nplurals=1; plural=0;\n" -#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. -#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: twitterimport.php:114 -#, php-format -msgid "RT @%1$s %2$s" +msgid "Twitter settings" +msgstr "Twitter ayarları" + +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Güncellemelerinizi Twitter arkadaşlarınızla paylaşmak ve onların sizi takip " +"edebilmesi için Twitter hesabınızla bağlantı kurun." + +msgid "Twitter account" +msgstr "Twitter hesabı" + +msgid "Connected Twitter account" +msgstr "Bağlı Twitter hesabı" + +msgid "Disconnect my account from Twitter" +msgstr "Hesabımın Twitter bağlantısını kes." + +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" + +msgid "set a password" +msgstr "bir parola ayarla" + +msgid " first." +msgstr " ilk." + +#. TRANS: %1$s is the current website name. +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" + +msgid "Disconnect" +msgstr "Bağlantıyı Kes" + +msgid "Preferences" +msgstr "Tercihler" + +msgid "Automatically send my notices to Twitter." +msgstr "Durum mesajlarımı otomatik olarak Twitter'a gönder." + +msgid "Send local \"@\" replies to Twitter." +msgstr "" + +msgid "Subscribe to my Twitter friends here." +msgstr "" + +msgid "Import my friends timeline." +msgstr "Arkadaşlarımın zaman çizelgesini içeri aktar." + +msgid "Save" +msgstr "Kaydet" + +msgid "Add" +msgstr "Ekle" + +msgid "There was a problem with your session token. Try again, please." +msgstr "" + +msgid "Unexpected form submission." +msgstr "Beklenmedik form gönderimi." + +msgid "No Twitter connection to remove." +msgstr "" + +msgid "Couldn't remove Twitter user." +msgstr "Twitter kullanıcısı silinemedi." + +msgid "Twitter account disconnected." +msgstr "Twitter hesabı bağlantısı kesildi." + +msgid "Couldn't save Twitter preferences." +msgstr "Twitter tercihleri kaydedilemedi." + +msgid "Twitter preferences saved." +msgstr "Twitter tercihleriniz kaydedildi." + +msgid "You can't register if you don't agree to the license." +msgstr "Eğer lisansı kabul etmezseniz kayıt olamazsınız." + +msgid "Something weird happened." +msgstr "Garip bir şeyler oldu." + +msgid "Couldn't link your Twitter account." +msgstr "" + +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" + +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"İlk defa %s'ye giriş yaptınız, Twitter hesabınızı yerel bir hesapla " +"bağlamamız gerekiyor. Yeni bir hesap oluşturabilir ya da varolan bir " +"hesabınızı kullanabilirsiniz." + +msgid "Twitter Account Setup" +msgstr "Twitter Hesap Kurulumu" + +msgid "Connection options" +msgstr "Bağlantı seçenekleri" + +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Parola, e-posta adresi, anlık mesajlaşma adresi ve telefon numarası gibi " +"özel verilerim dışındaki tüm yazı ve dosyalarım %s dahilinde kullanılabilir." + +msgid "Create new account" +msgstr "Yeni hesap oluştur" + +msgid "Create a new user with this nickname." +msgstr "Bu kullanıcı adıyla yeni bir kullanıcı oluştur." + +msgid "New nickname" +msgstr "Yeni kullanıcı adı" + +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 tane küçük harf veya rakam, noktalama işaretlerine ve boşluklara izin " +"verilmez" + +msgid "Create" +msgstr "Oluştur" + +msgid "Connect existing account" +msgstr "Varolan hesaba bağlan" + +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Halihazırda bir hesabınız varsa, Twitter hesabınızla bağlantı kurmak için " +"kullanıcı adı ve parolanızla giriş yapın." + +msgid "Existing nickname" +msgstr "Varolan kullanıcı adı" + +msgid "Password" +msgstr "Parola" + +msgid "Connect" +msgstr "Bağlan" + +msgid "Registration not allowed." +msgstr "Kayıt yapılmasına izin verilmiyor." + +msgid "Not a valid invitation code." +msgstr "Geçerli bir davet kodu değil." + +msgid "Nickname not allowed." +msgstr "Bu kullanıcı adına izin verilmiyor." + +msgid "Nickname already in use. Try another one." +msgstr "Kullanıcı adı halihazırda kullanılıyor. Başka bir tane deneyin." + +msgid "Error registering user." +msgstr "Kullanıcı kayıt hatası." + +msgid "Error connecting user to Twitter." +msgstr "Twitter'a kullanıcı bağlama hatası." + +msgid "Invalid username or password." +msgstr "Geçersiz kullanıcı adı veya parola." + +msgid "Twitter" +msgstr "Twitter" + +msgid "Twitter bridge settings" +msgstr "Twitter köprü ayarları" + +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "" + +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "" + +msgid "Twitter application settings" +msgstr "" + +msgid "Consumer key" +msgstr "Kullanıcı anahtarı" + +msgid "Consumer key assigned by Twitter" +msgstr "Twitter tarafından atanan kullanıcı anahtarı" + +msgid "Consumer secret" +msgstr "" + +msgid "Consumer secret assigned by Twitter" +msgstr "" + +msgid "Note: a global consumer key and secret are set." +msgstr "" + +msgid "Integration source" +msgstr "Entegrasyon kaynağı" + +msgid "Name of your Twitter application" +msgstr "Twitter uygulamanızın ismi" + +msgid "Options" +msgstr "Seçenekler" + +msgid "Enable \"Sign-in with Twitter\"" +msgstr "" + +msgid "Allow users to login with their Twitter credentials" +msgstr "" + +msgid "Enable Twitter import" +msgstr "" + +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" + +msgid "Save Twitter settings" +msgstr "Twitter ayarlarını kaydet" + +msgid "Login or register using Twitter" +msgstr "" + +msgid "Twitter integration options" +msgstr "Twitter entegrasyon seçenekleri" + +msgid "Twitter bridge configuration" +msgstr "Twitter köprü yapılandırması" + +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with Twitter." +msgstr "" + +msgid "Already logged in." +msgstr "Zaten giriş yapılmış." + +msgid "Twitter Login" +msgstr "Twitter Giriş" + +msgid "Login with your Twitter account" +msgstr "Twitter hesabınızla giriş yapın" + +msgid "Sign in with Twitter" msgstr "" -#: twitter.php:409 msgid "Your Twitter bridge has been disabled." msgstr "" -#: twitter.php:413 #, php-format msgid "" "Hi, %1$s. We're sorry to inform you that your link to Twitter has been " @@ -48,335 +294,8 @@ msgid "" "%3$s" msgstr "" -#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 -#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 -msgid "Twitter" -msgstr "Twitter" - -#: TwitterBridgePlugin.php:152 -msgid "Login or register using Twitter" -msgstr "" - -#: TwitterBridgePlugin.php:175 -msgid "Twitter integration options" -msgstr "Twitter entegrasyon seçenekleri" - -#: TwitterBridgePlugin.php:303 -msgid "Twitter bridge configuration" -msgstr "Twitter köprü yapılandırması" - -#: TwitterBridgePlugin.php:327 -msgid "" -"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " -"with Twitter." -msgstr "" - -#: twitteradminpanel.php:62 -msgid "Twitter bridge settings" -msgstr "Twitter köprü ayarları" - -#: twitteradminpanel.php:150 -msgid "Invalid consumer key. Max length is 255 characters." -msgstr "" - -#: twitteradminpanel.php:156 -msgid "Invalid consumer secret. Max length is 255 characters." -msgstr "" - -#: twitteradminpanel.php:212 -msgid "Twitter application settings" -msgstr "" - -#: twitteradminpanel.php:218 -msgid "Consumer key" -msgstr "Kullanıcı anahtarı" - -#: twitteradminpanel.php:219 -msgid "Consumer key assigned by Twitter" -msgstr "Twitter tarafından atanan kullanıcı anahtarı" - -#: twitteradminpanel.php:227 -msgid "Consumer secret" -msgstr "" - -#: twitteradminpanel.php:228 -msgid "Consumer secret assigned by Twitter" -msgstr "" - -#: twitteradminpanel.php:238 -msgid "Note: a global consumer key and secret are set." -msgstr "" - -#: twitteradminpanel.php:245 -msgid "Integration source" -msgstr "Entegrasyon kaynağı" - -#: twitteradminpanel.php:246 -msgid "Name of your Twitter application" -msgstr "Twitter uygulamanızın ismi" - -#: twitteradminpanel.php:258 -msgid "Options" -msgstr "Seçenekler" - -#: twitteradminpanel.php:265 -msgid "Enable \"Sign-in with Twitter\"" -msgstr "" - -#: twitteradminpanel.php:267 -msgid "Allow users to login with their Twitter credentials" -msgstr "" - -#: twitteradminpanel.php:274 -msgid "Enable Twitter import" -msgstr "" - -#: twitteradminpanel.php:276 -msgid "" -"Allow users to import their Twitter friends' timelines. Requires daemons to " -"be manually configured." -msgstr "" - -#: twitteradminpanel.php:293 twittersettings.php:199 -msgid "Save" -msgstr "Kaydet" - -#: twitteradminpanel.php:293 -msgid "Save Twitter settings" -msgstr "Twitter ayarlarını kaydet" - -#: twitterlogin.php:56 -msgid "Already logged in." -msgstr "Zaten giriş yapılmış." - -#: twitterlogin.php:64 -msgid "Twitter Login" -msgstr "Twitter Giriş" - -#: twitterlogin.php:69 -msgid "Login with your Twitter account" -msgstr "Twitter hesabınızla giriş yapın" - -#: twitterlogin.php:87 -msgid "Sign in with Twitter" -msgstr "" - -#: twitterauthorization.php:120 twittersettings.php:225 -msgid "There was a problem with your session token. Try again, please." -msgstr "" - -#: twitterauthorization.php:126 -msgid "You can't register if you don't agree to the license." -msgstr "Eğer lisansı kabul etmezseniz kayıt olamazsınız." - -#: twitterauthorization.php:135 -msgid "Something weird happened." -msgstr "Garip bir şeyler oldu." - -#: twitterauthorization.php:181 twitterauthorization.php:229 -#: twitterauthorization.php:300 -msgid "Couldn't link your Twitter account." -msgstr "" - -#: twitterauthorization.php:201 -msgid "Couldn't link your Twitter account: oauth_token mismatch." -msgstr "" - -#: twitterauthorization.php:312 +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. #, php-format -msgid "" -"This is the first time you've logged into %s so we must connect your Twitter " -"account to a local account. You can either create a new account, or connect " -"with your existing account, if you have one." +msgid "RT @%1$s %2$s" msgstr "" -"İlk defa %s'ye giriş yaptınız, Twitter hesabınızı yerel bir hesapla " -"bağlamamız gerekiyor. Yeni bir hesap oluşturabilir ya da varolan bir " -"hesabınızı kullanabilirsiniz." - -#: twitterauthorization.php:318 -msgid "Twitter Account Setup" -msgstr "Twitter Hesap Kurulumu" - -#: twitterauthorization.php:351 -msgid "Connection options" -msgstr "Bağlantı seçenekleri" - -#: twitterauthorization.php:360 -#, php-format -msgid "" -"My text and files are available under %s except this private data: password, " -"email address, IM address, and phone number." -msgstr "" -"Parola, e-posta adresi, anlık mesajlaşma adresi ve telefon numarası gibi " -"özel verilerim dışındaki tüm yazı ve dosyalarım %s dahilinde kullanılabilir." - -#: twitterauthorization.php:381 -msgid "Create new account" -msgstr "Yeni hesap oluştur" - -#: twitterauthorization.php:383 -msgid "Create a new user with this nickname." -msgstr "Bu kullanıcı adıyla yeni bir kullanıcı oluştur." - -#: twitterauthorization.php:390 -msgid "New nickname" -msgstr "Yeni kullanıcı adı" - -#: twitterauthorization.php:392 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "" -"1-64 tane küçük harf veya rakam, noktalama işaretlerine ve boşluklara izin " -"verilmez" - -#: twitterauthorization.php:404 -msgid "Create" -msgstr "Oluştur" - -#: twitterauthorization.php:409 -msgid "Connect existing account" -msgstr "Varolan hesaba bağlan" - -#: twitterauthorization.php:411 -msgid "" -"If you already have an account, login with your username and password to " -"connect it to your Twitter account." -msgstr "" -"Halihazırda bir hesabınız varsa, Twitter hesabınızla bağlantı kurmak için " -"kullanıcı adı ve parolanızla giriş yapın." - -#: twitterauthorization.php:414 -msgid "Existing nickname" -msgstr "Varolan kullanıcı adı" - -#: twitterauthorization.php:417 -msgid "Password" -msgstr "Parola" - -#: twitterauthorization.php:420 -msgid "Connect" -msgstr "Bağlan" - -#: twitterauthorization.php:466 twitterauthorization.php:475 -msgid "Registration not allowed." -msgstr "Kayıt yapılmasına izin verilmiyor." - -#: twitterauthorization.php:482 -msgid "Not a valid invitation code." -msgstr "Geçerli bir davet kodu değil." - -#: twitterauthorization.php:495 -msgid "Nickname not allowed." -msgstr "Bu kullanıcı adına izin verilmiyor." - -#: twitterauthorization.php:500 -msgid "Nickname already in use. Try another one." -msgstr "Kullanıcı adı halihazırda kullanılıyor. Başka bir tane deneyin." - -#: twitterauthorization.php:520 -msgid "Error registering user." -msgstr "Kullanıcı kayıt hatası." - -#: twitterauthorization.php:531 twitterauthorization.php:571 -#: twitterauthorization.php:591 -msgid "Error connecting user to Twitter." -msgstr "Twitter'a kullanıcı bağlama hatası." - -#: twitterauthorization.php:553 -msgid "Invalid username or password." -msgstr "Geçersiz kullanıcı adı veya parola." - -#: twittersettings.php:57 -msgid "Twitter settings" -msgstr "Twitter ayarları" - -#: twittersettings.php:68 -msgid "" -"Connect your Twitter account to share your updates with your Twitter friends " -"and vice-versa." -msgstr "" -"Güncellemelerinizi Twitter arkadaşlarınızla paylaşmak ve onların sizi takip " -"edebilmesi için Twitter hesabınızla bağlantı kurun." - -#: twittersettings.php:115 -msgid "Twitter account" -msgstr "Twitter hesabı" - -#: twittersettings.php:120 -msgid "Connected Twitter account" -msgstr "Bağlı Twitter hesabı" - -#: twittersettings.php:125 -msgid "Disconnect my account from Twitter" -msgstr "Hesabımın Twitter bağlantısını kes." - -#: twittersettings.php:131 -msgid "Disconnecting your Twitter could make it impossible to log in! Please " -msgstr "" - -#: twittersettings.php:135 -msgid "set a password" -msgstr "bir parola ayarla" - -#: twittersettings.php:137 -msgid " first." -msgstr " ilk." - -#. TRANS: %1$s is the current website name. -#: twittersettings.php:141 -#, php-format -msgid "" -"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " -"password to log in." -msgstr "" - -#: twittersettings.php:149 -msgid "Disconnect" -msgstr "Bağlantıyı Kes" - -#: twittersettings.php:156 -msgid "Preferences" -msgstr "Tercihler" - -#: twittersettings.php:160 -msgid "Automatically send my notices to Twitter." -msgstr "Durum mesajlarımı otomatik olarak Twitter'a gönder." - -#: twittersettings.php:167 -msgid "Send local \"@\" replies to Twitter." -msgstr "" - -#: twittersettings.php:174 -msgid "Subscribe to my Twitter friends here." -msgstr "" - -#: twittersettings.php:183 -msgid "Import my friends timeline." -msgstr "Arkadaşlarımın zaman çizelgesini içeri aktar." - -#: twittersettings.php:201 -msgid "Add" -msgstr "Ekle" - -#: twittersettings.php:235 -msgid "Unexpected form submission." -msgstr "Beklenmedik form gönderimi." - -#: twittersettings.php:250 -msgid "No Twitter connection to remove." -msgstr "" - -#: twittersettings.php:258 -msgid "Couldn't remove Twitter user." -msgstr "Twitter kullanıcısı silinemedi." - -#: twittersettings.php:262 -msgid "Twitter account disconnected." -msgstr "Twitter hesabı bağlantısı kesildi." - -#: twittersettings.php:282 twittersettings.php:293 -msgid "Couldn't save Twitter preferences." -msgstr "Twitter tercihleri kaydedilemedi." - -#: twittersettings.php:301 -msgid "Twitter preferences saved." -msgstr "Twitter tercihleriniz kaydedildi." diff --git a/plugins/TwitterBridge/locale/uk/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/uk/LC_MESSAGES/TwitterBridge.po index 68945904f0..a675c65be9 100644 --- a/plugins/TwitterBridge/locale/uk/LC_MESSAGES/TwitterBridge.po +++ b/plugins/TwitterBridge/locale/uk/LC_MESSAGES/TwitterBridge.po @@ -9,31 +9,286 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TwitterBridge\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:13+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:01+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:14+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-twitterbridge\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. -#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: twitterimport.php:114 -#, php-format -msgid "RT @%1$s %2$s" -msgstr "RT @%1$s %2$s" +msgid "Twitter settings" +msgstr "Налаштування Twitter" + +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"Підключіть ваш акаунт Twitter, щоб ділитися новими дописами з друзями в " +"Twitter і навпаки." + +msgid "Twitter account" +msgstr "Акаунт Twitter" + +msgid "Connected Twitter account" +msgstr "Під’єднаний акаунт Twitter" + +msgid "Disconnect my account from Twitter" +msgstr "Від’єднати мій акаунт від Twitter" + +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "" +"Якщо ви від’єднаєте свій Twitter, то це унеможливить вхід до системи у " +"майбутньому! Будь ласка, " + +msgid "set a password" +msgstr "встановіть пароль" + +msgid " first." +msgstr " спочатку." + +#. TRANS: %1$s is the current website name. +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "" +"Зберегти ваш акаунт %1$s, але від’єднати його від Twitter. Ви можете " +"використовувати пароль від %1$s для входу на сайт." + +msgid "Disconnect" +msgstr "Від’єднати" + +msgid "Preferences" +msgstr "Налаштування" + +msgid "Automatically send my notices to Twitter." +msgstr "Автоматично пересилати мої дописи на Twitter." + +msgid "Send local \"@\" replies to Twitter." +msgstr "Надіслати локальні «@» відповіді на Twitter." + +msgid "Subscribe to my Twitter friends here." +msgstr "Підписатись до моїх друзів з Twitter тут." + +msgid "Import my friends timeline." +msgstr "Імпортувати стрічку дописів моїх друзів." + +msgid "Save" +msgstr "Зберегти" + +msgid "Add" +msgstr "Додати" + +msgid "There was a problem with your session token. Try again, please." +msgstr "Виникли певні проблеми з токеном сесії. Спробуйте знов, будь ласка." + +msgid "Unexpected form submission." +msgstr "Несподіване представлення форми." + +msgid "No Twitter connection to remove." +msgstr "Не виявлено з’єднань з Twitter для видалення." + +msgid "Couldn't remove Twitter user." +msgstr "Не вдається видалити користувача Twitter." + +msgid "Twitter account disconnected." +msgstr "Акаунт Twitter від’єднано." + +msgid "Couldn't save Twitter preferences." +msgstr "Не можу зберегти налаштування Twitter." + +msgid "Twitter preferences saved." +msgstr "Налаштування Twitter збережено." + +msgid "You can't register if you don't agree to the license." +msgstr "Ви не зможете зареєструватись, якщо не погодитесь з умовами ліцензії." + +msgid "Something weird happened." +msgstr "Сталося щось незрозуміле." + +msgid "Couldn't link your Twitter account." +msgstr "Не вдається підключити ваш акаунт Twitter." + +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "" +"Не вдається підключити ваш акаунт Twitter: невідповідність oauth_token." + +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"Ви вперше увійшли до сайту %s, отже ми мусимо приєднати ваш акаунт Twitter " +"до акаунту на даному сайті. Ви маєте можливість створити новий акаунт або " +"використати такий, що вже існує, якщо він у вас є." + +msgid "Twitter Account Setup" +msgstr "Створення акаунту за допомогою Twitter" + +msgid "Connection options" +msgstr "Опції з’єднання" + +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"Мої дописи і файли доступні на умовах %s, окрім цих приватних даних: пароль, " +"електронна адреса, адреса IM, телефонний номер." + +msgid "Create new account" +msgstr "Створити новий акаунт" + +msgid "Create a new user with this nickname." +msgstr "Створити нового користувача з цим нікнеймом." + +msgid "New nickname" +msgstr "Новий нікнейм" + +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "" +"1-64 літери нижнього регістру і цифри, ніякої пунктуації або інтервалів" + +msgid "Create" +msgstr "Створити" + +msgid "Connect existing account" +msgstr "Приєднати акаунт, який вже існує" + +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "" +"Якщо ви вже маєте акаунт, увійдіть з вашим ім’ям користувача та паролем, аби " +"приєднати їх до Twitter." + +msgid "Existing nickname" +msgstr "Нікнейм, який вже існує" + +msgid "Password" +msgstr "Пароль" + +msgid "Connect" +msgstr "Під’єднати" + +msgid "Registration not allowed." +msgstr "Реєстрацію не дозволено." + +msgid "Not a valid invitation code." +msgstr "Це не дійсний код запрошення." + +msgid "Nickname not allowed." +msgstr "Нікнейм не допускається." + +msgid "Nickname already in use. Try another one." +msgstr "Цей нікнейм вже використовується. Спробуйте інший." + +msgid "Error registering user." +msgstr "Помилка при реєстрації користувача." + +msgid "Error connecting user to Twitter." +msgstr "Помилка при підключенні користувача до Twitter." + +msgid "Invalid username or password." +msgstr "Недійсне ім’я або пароль." + +msgid "Twitter" +msgstr "Twitter" + +msgid "Twitter bridge settings" +msgstr "Налаштування містка з Twitter" + +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "Невірний ключ споживача. Максимальна довжина — 255 символів." + +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "Невірний секретний код споживача. Максимальна довжина — 255 символів." + +msgid "Twitter application settings" +msgstr "Налаштування додатку для Twitter" + +msgid "Consumer key" +msgstr "Ключ споживача" + +msgid "Consumer key assigned by Twitter" +msgstr "Ключ споживача, що він був наданий сервісом Twitter" + +msgid "Consumer secret" +msgstr "Секретний код споживача" + +msgid "Consumer secret assigned by Twitter" +msgstr "Секретний код споживача, що він був наданий сервісом Twitter" + +msgid "Note: a global consumer key and secret are set." +msgstr "Примітка: глобальний ключ споживача та секретний код встановлено." + +msgid "Integration source" +msgstr "Джерело об’єднання" + +msgid "Name of your Twitter application" +msgstr "Назва вашого додатку для Twitter" + +msgid "Options" +msgstr "Параметри" + +msgid "Enable \"Sign-in with Twitter\"" +msgstr "Увімкнути «Увійти з допомогою Twitter»" + +msgid "Allow users to login with their Twitter credentials" +msgstr "" +"Дозволити користувачам входити на сайт, використовуючи повноваження Twitter" + +msgid "Enable Twitter import" +msgstr "Увімкнути імпорт з Twitter" + +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "" +"Дозволити користувачам імпортувати їхні стрічки дописів з Twitter. Це " +"вимагає ручної настройки процесів типу «daemon»." + +msgid "Save Twitter settings" +msgstr "Зберегти налаштування Twitter" + +msgid "Login or register using Twitter" +msgstr "Увійти або зареєструватись з Twitter" + +msgid "Twitter integration options" +msgstr "Параметри інтеграції з Twitter" + +msgid "Twitter bridge configuration" +msgstr "Налаштування містка з Twitter" + +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with Twitter." +msgstr "" +"Додаток TwitterBridge дозволяє інтегрувати StatusNet-сумісний сайт з Twitter, встановлюючи так званий «місток»." + +msgid "Already logged in." +msgstr "Тепер ви увійшли." + +msgid "Twitter Login" +msgstr "Вхід Twitter" + +msgid "Login with your Twitter account" +msgstr "Увійти за допомогою акаунту Twitter" + +msgid "Sign in with Twitter" +msgstr "Увійти з акаунтом Twitter" -#: twitter.php:409 msgid "Your Twitter bridge has been disabled." msgstr "Ваш місток до Twitter було відключено." -#: twitter.php:413 #, php-format msgid "" "Hi, %1$s. We're sorry to inform you that your link to Twitter has been " @@ -61,344 +316,8 @@ msgstr "" "З повагою,\n" "%3$s" -#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 -#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 -msgid "Twitter" -msgstr "Twitter" - -#: TwitterBridgePlugin.php:152 -msgid "Login or register using Twitter" -msgstr "Увійти або зареєструватись з Twitter" - -#: TwitterBridgePlugin.php:175 -msgid "Twitter integration options" -msgstr "Параметри інтеграції з Twitter" - -#: TwitterBridgePlugin.php:303 -msgid "Twitter bridge configuration" -msgstr "Налаштування містка з Twitter" - -#: TwitterBridgePlugin.php:327 -msgid "" -"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " -"with Twitter." -msgstr "" -"Додаток TwitterBridge дозволяє інтегрувати StatusNet-сумісний сайт з Twitter, встановлюючи так званий «місток»." - -#: twitteradminpanel.php:62 -msgid "Twitter bridge settings" -msgstr "Налаштування містка з Twitter" - -#: twitteradminpanel.php:150 -msgid "Invalid consumer key. Max length is 255 characters." -msgstr "Невірний ключ споживача. Максимальна довжина — 255 символів." - -#: twitteradminpanel.php:156 -msgid "Invalid consumer secret. Max length is 255 characters." -msgstr "Невірний секретний код споживача. Максимальна довжина — 255 символів." - -#: twitteradminpanel.php:212 -msgid "Twitter application settings" -msgstr "Налаштування додатку для Twitter" - -#: twitteradminpanel.php:218 -msgid "Consumer key" -msgstr "Ключ споживача" - -#: twitteradminpanel.php:219 -msgid "Consumer key assigned by Twitter" -msgstr "Ключ споживача, що він був наданий сервісом Twitter" - -#: twitteradminpanel.php:227 -msgid "Consumer secret" -msgstr "Секретний код споживача" - -#: twitteradminpanel.php:228 -msgid "Consumer secret assigned by Twitter" -msgstr "Секретний код споживача, що він був наданий сервісом Twitter" - -#: twitteradminpanel.php:238 -msgid "Note: a global consumer key and secret are set." -msgstr "Примітка: глобальний ключ споживача та секретний код встановлено." - -#: twitteradminpanel.php:245 -msgid "Integration source" -msgstr "Джерело об’єднання" - -#: twitteradminpanel.php:246 -msgid "Name of your Twitter application" -msgstr "Назва вашого додатку для Twitter" - -#: twitteradminpanel.php:258 -msgid "Options" -msgstr "Параметри" - -#: twitteradminpanel.php:265 -msgid "Enable \"Sign-in with Twitter\"" -msgstr "Увімкнути «Увійти з допомогою Twitter»" - -#: twitteradminpanel.php:267 -msgid "Allow users to login with their Twitter credentials" -msgstr "" -"Дозволити користувачам входити на сайт, використовуючи повноваження Twitter" - -#: twitteradminpanel.php:274 -msgid "Enable Twitter import" -msgstr "Увімкнути імпорт з Twitter" - -#: twitteradminpanel.php:276 -msgid "" -"Allow users to import their Twitter friends' timelines. Requires daemons to " -"be manually configured." -msgstr "" -"Дозволити користувачам імпортувати їхні стрічки дописів з Twitter. Це " -"вимагає ручної настройки процесів типу «daemon»." - -#: twitteradminpanel.php:293 twittersettings.php:199 -msgid "Save" -msgstr "Зберегти" - -#: twitteradminpanel.php:293 -msgid "Save Twitter settings" -msgstr "Зберегти налаштування Twitter" - -#: twitterlogin.php:56 -msgid "Already logged in." -msgstr "Тепер ви увійшли." - -#: twitterlogin.php:64 -msgid "Twitter Login" -msgstr "Вхід Twitter" - -#: twitterlogin.php:69 -msgid "Login with your Twitter account" -msgstr "Увійти за допомогою акаунту Twitter" - -#: twitterlogin.php:87 -msgid "Sign in with Twitter" -msgstr "Увійти з акаунтом Twitter" - -#: twitterauthorization.php:120 twittersettings.php:225 -msgid "There was a problem with your session token. Try again, please." -msgstr "Виникли певні проблеми з токеном сесії. Спробуйте знов, будь ласка." - -#: twitterauthorization.php:126 -msgid "You can't register if you don't agree to the license." -msgstr "Ви не зможете зареєструватись, якщо не погодитесь з умовами ліцензії." - -#: twitterauthorization.php:135 -msgid "Something weird happened." -msgstr "Сталося щось незрозуміле." - -#: twitterauthorization.php:181 twitterauthorization.php:229 -#: twitterauthorization.php:300 -msgid "Couldn't link your Twitter account." -msgstr "Не вдається підключити ваш акаунт Twitter." - -#: twitterauthorization.php:201 -msgid "Couldn't link your Twitter account: oauth_token mismatch." -msgstr "" -"Не вдається підключити ваш акаунт Twitter: невідповідність oauth_token." - -#: twitterauthorization.php:312 +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. #, php-format -msgid "" -"This is the first time you've logged into %s so we must connect your Twitter " -"account to a local account. You can either create a new account, or connect " -"with your existing account, if you have one." -msgstr "" -"Ви вперше увійшли до сайту %s, отже ми мусимо приєднати ваш акаунт Twitter " -"до акаунту на даному сайті. Ви маєте можливість створити новий акаунт або " -"використати такий, що вже існує, якщо він у вас є." - -#: twitterauthorization.php:318 -msgid "Twitter Account Setup" -msgstr "Створення акаунту за допомогою Twitter" - -#: twitterauthorization.php:351 -msgid "Connection options" -msgstr "Опції з’єднання" - -#: twitterauthorization.php:360 -#, php-format -msgid "" -"My text and files are available under %s except this private data: password, " -"email address, IM address, and phone number." -msgstr "" -"Мої дописи і файли доступні на умовах %s, окрім цих приватних даних: пароль, " -"електронна адреса, адреса IM, телефонний номер." - -#: twitterauthorization.php:381 -msgid "Create new account" -msgstr "Створити новий акаунт" - -#: twitterauthorization.php:383 -msgid "Create a new user with this nickname." -msgstr "Створити нового користувача з цим нікнеймом." - -#: twitterauthorization.php:390 -msgid "New nickname" -msgstr "Новий нікнейм" - -#: twitterauthorization.php:392 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "" -"1-64 літери нижнього регістру і цифри, ніякої пунктуації або інтервалів" - -#: twitterauthorization.php:404 -msgid "Create" -msgstr "Створити" - -#: twitterauthorization.php:409 -msgid "Connect existing account" -msgstr "Приєднати акаунт, який вже існує" - -#: twitterauthorization.php:411 -msgid "" -"If you already have an account, login with your username and password to " -"connect it to your Twitter account." -msgstr "" -"Якщо ви вже маєте акаунт, увійдіть з вашим ім’ям користувача та паролем, аби " -"приєднати їх до Twitter." - -#: twitterauthorization.php:414 -msgid "Existing nickname" -msgstr "Нікнейм, який вже існує" - -#: twitterauthorization.php:417 -msgid "Password" -msgstr "Пароль" - -#: twitterauthorization.php:420 -msgid "Connect" -msgstr "Під’єднати" - -#: twitterauthorization.php:466 twitterauthorization.php:475 -msgid "Registration not allowed." -msgstr "Реєстрацію не дозволено." - -#: twitterauthorization.php:482 -msgid "Not a valid invitation code." -msgstr "Це не дійсний код запрошення." - -#: twitterauthorization.php:495 -msgid "Nickname not allowed." -msgstr "Нікнейм не допускається." - -#: twitterauthorization.php:500 -msgid "Nickname already in use. Try another one." -msgstr "Цей нікнейм вже використовується. Спробуйте інший." - -#: twitterauthorization.php:520 -msgid "Error registering user." -msgstr "Помилка при реєстрації користувача." - -#: twitterauthorization.php:531 twitterauthorization.php:571 -#: twitterauthorization.php:591 -msgid "Error connecting user to Twitter." -msgstr "Помилка при підключенні користувача до Twitter." - -#: twitterauthorization.php:553 -msgid "Invalid username or password." -msgstr "Недійсне ім’я або пароль." - -#: twittersettings.php:57 -msgid "Twitter settings" -msgstr "Налаштування Twitter" - -#: twittersettings.php:68 -msgid "" -"Connect your Twitter account to share your updates with your Twitter friends " -"and vice-versa." -msgstr "" -"Підключіть ваш акаунт Twitter, щоб ділитися новими дописами з друзями в " -"Twitter і навпаки." - -#: twittersettings.php:115 -msgid "Twitter account" -msgstr "Акаунт Twitter" - -#: twittersettings.php:120 -msgid "Connected Twitter account" -msgstr "Під’єднаний акаунт Twitter" - -#: twittersettings.php:125 -msgid "Disconnect my account from Twitter" -msgstr "Від’єднати мій акаунт від Twitter" - -#: twittersettings.php:131 -msgid "Disconnecting your Twitter could make it impossible to log in! Please " -msgstr "" -"Якщо ви від’єднаєте свій Twitter, то це унеможливить вхід до системи у " -"майбутньому! Будь ласка, " - -#: twittersettings.php:135 -msgid "set a password" -msgstr "встановіть пароль" - -#: twittersettings.php:137 -msgid " first." -msgstr " спочатку." - -#. TRANS: %1$s is the current website name. -#: twittersettings.php:141 -#, php-format -msgid "" -"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " -"password to log in." -msgstr "" -"Зберегти ваш акаунт %1$s, але від’єднати його від Twitter. Ви можете " -"використовувати пароль від %1$s для входу на сайт." - -#: twittersettings.php:149 -msgid "Disconnect" -msgstr "Від’єднати" - -#: twittersettings.php:156 -msgid "Preferences" -msgstr "Налаштування" - -#: twittersettings.php:160 -msgid "Automatically send my notices to Twitter." -msgstr "Автоматично пересилати мої дописи на Twitter." - -#: twittersettings.php:167 -msgid "Send local \"@\" replies to Twitter." -msgstr "Надіслати локальні «@» відповіді на Twitter." - -#: twittersettings.php:174 -msgid "Subscribe to my Twitter friends here." -msgstr "Підписатись до моїх друзів з Twitter тут." - -#: twittersettings.php:183 -msgid "Import my friends timeline." -msgstr "Імпортувати стрічку дописів моїх друзів." - -#: twittersettings.php:201 -msgid "Add" -msgstr "Додати" - -#: twittersettings.php:235 -msgid "Unexpected form submission." -msgstr "Несподіване представлення форми." - -#: twittersettings.php:250 -msgid "No Twitter connection to remove." -msgstr "Не виявлено з’єднань з Twitter для видалення." - -#: twittersettings.php:258 -msgid "Couldn't remove Twitter user." -msgstr "Не вдається видалити користувача Twitter." - -#: twittersettings.php:262 -msgid "Twitter account disconnected." -msgstr "Акаунт Twitter від’єднано." - -#: twittersettings.php:282 twittersettings.php:293 -msgid "Couldn't save Twitter preferences." -msgstr "Не можу зберегти налаштування Twitter." - -#: twittersettings.php:301 -msgid "Twitter preferences saved." -msgstr "Налаштування Twitter збережено." +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" diff --git a/plugins/TwitterBridge/locale/zh_CN/LC_MESSAGES/TwitterBridge.po b/plugins/TwitterBridge/locale/zh_CN/LC_MESSAGES/TwitterBridge.po index 5d1a69d7b7..a509129ea1 100644 --- a/plugins/TwitterBridge/locale/zh_CN/LC_MESSAGES/TwitterBridge.po +++ b/plugins/TwitterBridge/locale/zh_CN/LC_MESSAGES/TwitterBridge.po @@ -10,31 +10,273 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - TwitterBridge\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:13+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:01+0000\n" "Language-Team: Simplified Chinese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-02-14 17:22:14+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:37+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: zh-hans\n" "X-Message-Group: #out-statusnet-plugin-twitterbridge\n" "Plural-Forms: nplurals=1; plural=0;\n" -#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. -#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. -#: twitterimport.php:114 -#, php-format -msgid "RT @%1$s %2$s" -msgstr "RT @%1$s %2$s" +msgid "Twitter settings" +msgstr "Twitter 设置" + +msgid "" +"Connect your Twitter account to share your updates with your Twitter friends " +"and vice-versa." +msgstr "" +"关联你的 Twitter 帐号并与你的 Twitter 好友分享你的更新和查看好友的更新。" + +msgid "Twitter account" +msgstr "Twitter 帐号" + +msgid "Connected Twitter account" +msgstr "已关联的 Twitter 帐号" + +msgid "Disconnect my account from Twitter" +msgstr "取消我的帐号与 Twitter 的关联" + +msgid "Disconnecting your Twitter could make it impossible to log in! Please " +msgstr "取消关联你的 Twitter 帐号和能会导致无法登录!请" + +msgid "set a password" +msgstr "设置一个密码" + +msgid " first." +msgstr "先。" + +#. TRANS: %1$s is the current website name. +#, php-format +msgid "" +"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " +"password to log in." +msgstr "保留你的 %1$s 帐号并取消关联 Twitter。你可以使用你的 %1$s 密码来登录。" + +msgid "Disconnect" +msgstr "取消关联" + +msgid "Preferences" +msgstr "参数设置" + +msgid "Automatically send my notices to Twitter." +msgstr "自动将我的消息发送到 Twitter。" + +msgid "Send local \"@\" replies to Twitter." +msgstr "将本地的“@”回复发送到 Twitter。" + +msgid "Subscribe to my Twitter friends here." +msgstr "关注我在这里的 Twitter 好友。" + +msgid "Import my friends timeline." +msgstr "导入我好友的时间线。" + +msgid "Save" +msgstr "保存" + +msgid "Add" +msgstr "添加" + +msgid "There was a problem with your session token. Try again, please." +msgstr "你的 session token 出现了一个问题,请重试。" + +msgid "Unexpected form submission." +msgstr "未预料的表单提交。" + +msgid "No Twitter connection to remove." +msgstr "没有可以移除的Twitter连接。" + +msgid "Couldn't remove Twitter user." +msgstr "无法删除 Twitter 用户。" + +msgid "Twitter account disconnected." +msgstr "已取消 Twitter 帐号关联。" + +msgid "Couldn't save Twitter preferences." +msgstr "无法保存 Twitter 参数设置。" + +msgid "Twitter preferences saved." +msgstr "已保存 Twitter 参数设置。" + +msgid "You can't register if you don't agree to the license." +msgstr "你必须同意许可协议才能注册。" + +msgid "Something weird happened." +msgstr "发生了很诡异的事情。" + +msgid "Couldn't link your Twitter account." +msgstr "无法连接你的 Twitter 帐号。" + +msgid "Couldn't link your Twitter account: oauth_token mismatch." +msgstr "无法连接你的 Twitter 帐号:oauth_token 不符。" + +#, php-format +msgid "" +"This is the first time you've logged into %s so we must connect your Twitter " +"account to a local account. You can either create a new account, or connect " +"with your existing account, if you have one." +msgstr "" +"这是你第一次登录到 %s,我们需要将你的 Twitter 帐号与一个本地的帐号关联。你可" +"以新建一个帐号,或者使用你在本站已有的帐号。" + +msgid "Twitter Account Setup" +msgstr "Twitter 帐号设置" + +msgid "Connection options" +msgstr "连接选项" + +#, php-format +msgid "" +"My text and files are available under %s except this private data: password, " +"email address, IM address, and phone number." +msgstr "" +"我的文字和文件在%s下提供,除了如下隐私内容:密码、电子邮件地址、IM 地址和电话" +"号码。" + +msgid "Create new account" +msgstr "创建新帐户" + +msgid "Create a new user with this nickname." +msgstr "以此昵称创建新帐户" + +msgid "New nickname" +msgstr "新昵称" + +msgid "1-64 lowercase letters or numbers, no punctuation or spaces" +msgstr "1 到 64 个小写字母或数字,不包含标点或空格" + +msgid "Create" +msgstr "创建" + +msgid "Connect existing account" +msgstr "关联现有账号" + +msgid "" +"If you already have an account, login with your username and password to " +"connect it to your Twitter account." +msgstr "如果你已有帐号,请输入用户名和密码登录并将其与你的 Twitter 账号关联。" + +msgid "Existing nickname" +msgstr "已存在的昵称" + +msgid "Password" +msgstr "密码" + +msgid "Connect" +msgstr "关联" + +msgid "Registration not allowed." +msgstr "不允许注册。" + +msgid "Not a valid invitation code." +msgstr "无效的邀请码。" + +msgid "Nickname not allowed." +msgstr "昵称不被允许。" + +msgid "Nickname already in use. Try another one." +msgstr "昵称已被使用,换一个吧。" + +msgid "Error registering user." +msgstr "注册用户出错。" + +msgid "Error connecting user to Twitter." +msgstr "关联用户到 Twitter 出错。" + +msgid "Invalid username or password." +msgstr "用户名或密码不正确。" + +msgid "Twitter" +msgstr "Twitter" + +msgid "Twitter bridge settings" +msgstr "Twitter bridge 设置" + +msgid "Invalid consumer key. Max length is 255 characters." +msgstr "无效的 consumer key。最大长度为 255 字符。" + +msgid "Invalid consumer secret. Max length is 255 characters." +msgstr "无效的 consumer secret。最大长度为 255 字符。" + +msgid "Twitter application settings" +msgstr "Twitter 应用设置" + +msgid "Consumer key" +msgstr "Consumer key" + +msgid "Consumer key assigned by Twitter" +msgstr "Twitter 分配的 consumer key" + +msgid "Consumer secret" +msgstr "Consumer secret" + +msgid "Consumer secret assigned by Twitter" +msgstr "Twitter 分配的 consumer secret" + +msgid "Note: a global consumer key and secret are set." +msgstr "注意:已设置了一个全局的 consumer key 和 secret。" + +msgid "Integration source" +msgstr "整合来源" + +msgid "Name of your Twitter application" +msgstr "你的 Twitter 应用名称" + +msgid "Options" +msgstr "选项" + +msgid "Enable \"Sign-in with Twitter\"" +msgstr "启用 “使用 Twitter 登录”" + +msgid "Allow users to login with their Twitter credentials" +msgstr "允许用户使用他们的 Twitter 帐号登录。" + +msgid "Enable Twitter import" +msgstr "启用 Twitter 导入" + +msgid "" +"Allow users to import their Twitter friends' timelines. Requires daemons to " +"be manually configured." +msgstr "允许用户导入他们 Twitter 好友的时间线。需要手动设置后台进程。" + +msgid "Save Twitter settings" +msgstr "保存 Twitter 设置" + +msgid "Login or register using Twitter" +msgstr "使用 Twitter 登录或注册" + +msgid "Twitter integration options" +msgstr "Twitter 整合选项" + +msgid "Twitter bridge configuration" +msgstr "Twitter bridge 设置" + +msgid "" +"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " +"with Twitter." +msgstr "" +"Twitter \"bridge\" 是个可以让 StatusNet 账户与 Twitter 整合的插件。" + +msgid "Already logged in." +msgstr "已登录。" + +msgid "Twitter Login" +msgstr "Twitter 登录" + +msgid "Login with your Twitter account" +msgstr "使用你的 Twitter 帐号登录" + +msgid "Sign in with Twitter" +msgstr "使用 Twitter 登录" -#: twitter.php:409 msgid "Your Twitter bridge has been disabled." msgstr "你的 Twitter bridge 已被禁用。" -#: twitter.php:413 #, php-format msgid "" "Hi, %1$s. We're sorry to inform you that your link to Twitter has been " @@ -59,331 +301,8 @@ msgstr "" "祝好,\n" "%3$s" -#: TwitterBridgePlugin.php:151 TwitterBridgePlugin.php:174 -#: TwitterBridgePlugin.php:302 twitteradminpanel.php:52 -msgid "Twitter" -msgstr "Twitter" - -#: TwitterBridgePlugin.php:152 -msgid "Login or register using Twitter" -msgstr "使用 Twitter 登录或注册" - -#: TwitterBridgePlugin.php:175 -msgid "Twitter integration options" -msgstr "Twitter 整合选项" - -#: TwitterBridgePlugin.php:303 -msgid "Twitter bridge configuration" -msgstr "Twitter bridge 设置" - -#: TwitterBridgePlugin.php:327 -msgid "" -"The Twitter \"bridge\" plugin allows integration of a StatusNet instance " -"with Twitter." -msgstr "" -"Twitter \"bridge\" 是个可以让 StatusNet 账户与 Twitter 整合的插件。" - -#: twitteradminpanel.php:62 -msgid "Twitter bridge settings" -msgstr "Twitter bridge 设置" - -#: twitteradminpanel.php:150 -msgid "Invalid consumer key. Max length is 255 characters." -msgstr "无效的 consumer key。最大长度为 255 字符。" - -#: twitteradminpanel.php:156 -msgid "Invalid consumer secret. Max length is 255 characters." -msgstr "无效的 consumer secret。最大长度为 255 字符。" - -#: twitteradminpanel.php:212 -msgid "Twitter application settings" -msgstr "Twitter 应用设置" - -#: twitteradminpanel.php:218 -msgid "Consumer key" -msgstr "Consumer key" - -#: twitteradminpanel.php:219 -msgid "Consumer key assigned by Twitter" -msgstr "Twitter 分配的 consumer key" - -#: twitteradminpanel.php:227 -msgid "Consumer secret" -msgstr "Consumer secret" - -#: twitteradminpanel.php:228 -msgid "Consumer secret assigned by Twitter" -msgstr "Twitter 分配的 consumer secret" - -#: twitteradminpanel.php:238 -msgid "Note: a global consumer key and secret are set." -msgstr "注意:已设置了一个全局的 consumer key 和 secret。" - -#: twitteradminpanel.php:245 -msgid "Integration source" -msgstr "整合来源" - -#: twitteradminpanel.php:246 -msgid "Name of your Twitter application" -msgstr "你的 Twitter 应用名称" - -#: twitteradminpanel.php:258 -msgid "Options" -msgstr "选项" - -#: twitteradminpanel.php:265 -msgid "Enable \"Sign-in with Twitter\"" -msgstr "启用 “使用 Twitter 登录”" - -#: twitteradminpanel.php:267 -msgid "Allow users to login with their Twitter credentials" -msgstr "允许用户使用他们的 Twitter 帐号登录。" - -#: twitteradminpanel.php:274 -msgid "Enable Twitter import" -msgstr "启用 Twitter 导入" - -#: twitteradminpanel.php:276 -msgid "" -"Allow users to import their Twitter friends' timelines. Requires daemons to " -"be manually configured." -msgstr "允许用户导入他们 Twitter 好友的时间线。需要手动设置后台进程。" - -#: twitteradminpanel.php:293 twittersettings.php:199 -msgid "Save" -msgstr "保存" - -#: twitteradminpanel.php:293 -msgid "Save Twitter settings" -msgstr "保存 Twitter 设置" - -#: twitterlogin.php:56 -msgid "Already logged in." -msgstr "已登录。" - -#: twitterlogin.php:64 -msgid "Twitter Login" -msgstr "Twitter 登录" - -#: twitterlogin.php:69 -msgid "Login with your Twitter account" -msgstr "使用你的 Twitter 帐号登录" - -#: twitterlogin.php:87 -msgid "Sign in with Twitter" -msgstr "使用 Twitter 登录" - -#: twitterauthorization.php:120 twittersettings.php:225 -msgid "There was a problem with your session token. Try again, please." -msgstr "你的 session token 出现了一个问题,请重试。" - -#: twitterauthorization.php:126 -msgid "You can't register if you don't agree to the license." -msgstr "你必须同意许可协议才能注册。" - -#: twitterauthorization.php:135 -msgid "Something weird happened." -msgstr "发生了很诡异的事情。" - -#: twitterauthorization.php:181 twitterauthorization.php:229 -#: twitterauthorization.php:300 -msgid "Couldn't link your Twitter account." -msgstr "无法连接你的 Twitter 帐号。" - -#: twitterauthorization.php:201 -msgid "Couldn't link your Twitter account: oauth_token mismatch." -msgstr "无法连接你的 Twitter 帐号:oauth_token 不符。" - -#: twitterauthorization.php:312 +#. TRANS: Message used to repeat a notice. RT is the abbreviation of 'retweet'. +#. TRANS: %1$s is the repeated user's name, %2$s is the repeated notice. #, php-format -msgid "" -"This is the first time you've logged into %s so we must connect your Twitter " -"account to a local account. You can either create a new account, or connect " -"with your existing account, if you have one." -msgstr "" -"这是你第一次登录到 %s,我们需要将你的 Twitter 帐号与一个本地的帐号关联。你可" -"以新建一个帐号,或者使用你在本站已有的帐号。" - -#: twitterauthorization.php:318 -msgid "Twitter Account Setup" -msgstr "Twitter 帐号设置" - -#: twitterauthorization.php:351 -msgid "Connection options" -msgstr "连接选项" - -#: twitterauthorization.php:360 -#, php-format -msgid "" -"My text and files are available under %s except this private data: password, " -"email address, IM address, and phone number." -msgstr "" -"我的文字和文件在%s下提供,除了如下隐私内容:密码、电子邮件地址、IM 地址和电话" -"号码。" - -#: twitterauthorization.php:381 -msgid "Create new account" -msgstr "创建新帐户" - -#: twitterauthorization.php:383 -msgid "Create a new user with this nickname." -msgstr "以此昵称创建新帐户" - -#: twitterauthorization.php:390 -msgid "New nickname" -msgstr "新昵称" - -#: twitterauthorization.php:392 -msgid "1-64 lowercase letters or numbers, no punctuation or spaces" -msgstr "1 到 64 个小写字母或数字,不包含标点或空格" - -#: twitterauthorization.php:404 -msgid "Create" -msgstr "创建" - -#: twitterauthorization.php:409 -msgid "Connect existing account" -msgstr "关联现有账号" - -#: twitterauthorization.php:411 -msgid "" -"If you already have an account, login with your username and password to " -"connect it to your Twitter account." -msgstr "如果你已有帐号,请输入用户名和密码登录并将其与你的 Twitter 账号关联。" - -#: twitterauthorization.php:414 -msgid "Existing nickname" -msgstr "已存在的昵称" - -#: twitterauthorization.php:417 -msgid "Password" -msgstr "密码" - -#: twitterauthorization.php:420 -msgid "Connect" -msgstr "关联" - -#: twitterauthorization.php:466 twitterauthorization.php:475 -msgid "Registration not allowed." -msgstr "不允许注册。" - -#: twitterauthorization.php:482 -msgid "Not a valid invitation code." -msgstr "无效的邀请码。" - -#: twitterauthorization.php:495 -msgid "Nickname not allowed." -msgstr "昵称不被允许。" - -#: twitterauthorization.php:500 -msgid "Nickname already in use. Try another one." -msgstr "昵称已被使用,换一个吧。" - -#: twitterauthorization.php:520 -msgid "Error registering user." -msgstr "注册用户出错。" - -#: twitterauthorization.php:531 twitterauthorization.php:571 -#: twitterauthorization.php:591 -msgid "Error connecting user to Twitter." -msgstr "关联用户到 Twitter 出错。" - -#: twitterauthorization.php:553 -msgid "Invalid username or password." -msgstr "用户名或密码不正确。" - -#: twittersettings.php:57 -msgid "Twitter settings" -msgstr "Twitter 设置" - -#: twittersettings.php:68 -msgid "" -"Connect your Twitter account to share your updates with your Twitter friends " -"and vice-versa." -msgstr "" -"关联你的 Twitter 帐号并与你的 Twitter 好友分享你的更新和查看好友的更新。" - -#: twittersettings.php:115 -msgid "Twitter account" -msgstr "Twitter 帐号" - -#: twittersettings.php:120 -msgid "Connected Twitter account" -msgstr "已关联的 Twitter 帐号" - -#: twittersettings.php:125 -msgid "Disconnect my account from Twitter" -msgstr "取消我的帐号与 Twitter 的关联" - -#: twittersettings.php:131 -msgid "Disconnecting your Twitter could make it impossible to log in! Please " -msgstr "取消关联你的 Twitter 帐号和能会导致无法登录!请" - -#: twittersettings.php:135 -msgid "set a password" -msgstr "设置一个密码" - -#: twittersettings.php:137 -msgid " first." -msgstr "先。" - -#. TRANS: %1$s is the current website name. -#: twittersettings.php:141 -#, php-format -msgid "" -"Keep your %1$s account but disconnect from Twitter. You can use your %1$s " -"password to log in." -msgstr "保留你的 %1$s 帐号并取消关联 Twitter。你可以使用你的 %1$s 密码来登录。" - -#: twittersettings.php:149 -msgid "Disconnect" -msgstr "取消关联" - -#: twittersettings.php:156 -msgid "Preferences" -msgstr "参数设置" - -#: twittersettings.php:160 -msgid "Automatically send my notices to Twitter." -msgstr "自动将我的消息发送到 Twitter。" - -#: twittersettings.php:167 -msgid "Send local \"@\" replies to Twitter." -msgstr "将本地的“@”回复发送到 Twitter。" - -#: twittersettings.php:174 -msgid "Subscribe to my Twitter friends here." -msgstr "关注我在这里的 Twitter 好友。" - -#: twittersettings.php:183 -msgid "Import my friends timeline." -msgstr "导入我好友的时间线。" - -#: twittersettings.php:201 -msgid "Add" -msgstr "添加" - -#: twittersettings.php:235 -msgid "Unexpected form submission." -msgstr "未预料的表单提交。" - -#: twittersettings.php:250 -msgid "No Twitter connection to remove." -msgstr "没有可以移除的Twitter连接。" - -#: twittersettings.php:258 -msgid "Couldn't remove Twitter user." -msgstr "无法删除 Twitter 用户。" - -#: twittersettings.php:262 -msgid "Twitter account disconnected." -msgstr "已取消 Twitter 帐号关联。" - -#: twittersettings.php:282 twittersettings.php:293 -msgid "Couldn't save Twitter preferences." -msgstr "无法保存 Twitter 参数设置。" - -#: twittersettings.php:301 -msgid "Twitter preferences saved." -msgstr "已保存 Twitter 参数设置。" +msgid "RT @%1$s %2$s" +msgstr "RT @%1$s %2$s" diff --git a/plugins/UserFlag/UserFlagPlugin.php b/plugins/UserFlag/UserFlagPlugin.php index 52b1fc299e..42a8948dff 100644 --- a/plugins/UserFlag/UserFlagPlugin.php +++ b/plugins/UserFlag/UserFlagPlugin.php @@ -180,21 +180,6 @@ class UserFlagPlugin extends Plugin } } - /** - * Initialize any flagging buttons on the page - * - * @param Action $action action being shown - * - * @return boolean hook result - */ - function onEndShowScripts($action) - { - $action->inlineScript('if ($(".form_entity_flag").length > 0) { '. - '$(".form_entity_flag").bind("click", function() {'. - 'SN.U.FormXHR($(this)); return false; }); }'); - return true; - } - /** * Check whether a user has one of our defined rights * diff --git a/plugins/UserFlag/flagprofileform.php b/plugins/UserFlag/flagprofileform.php index 045c9de852..acb47629e2 100644 --- a/plugins/UserFlag/flagprofileform.php +++ b/plugins/UserFlag/flagprofileform.php @@ -54,7 +54,7 @@ class FlagProfileForm extends ProfileActionForm */ function formClass() { - return 'form_entity_flag'; + return 'form_entity_flag ajax'; } /** diff --git a/plugins/UserFlag/locale/UserFlag.pot b/plugins/UserFlag/locale/UserFlag.pot index d85e58424f..a54bb27ef4 100644 --- a/plugins/UserFlag/locale/UserFlag.pot +++ b/plugins/UserFlag/locale/UserFlag.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,6 +17,43 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +#. TRANS: AJAX form title for a flagged profile. +#: flagprofile.php:125 +msgid "Flagged for review" +msgstr "" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +#: flagprofile.php:129 UserFlagPlugin.php:173 +msgid "Flagged" +msgstr "" + +#. TRANS: Plugin description. +#: UserFlagPlugin.php:279 +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" + +#. TRANS: Form title for flagging a profile for review. +#: flagprofileform.php:78 +msgid "Flag" +msgstr "" + +#. TRANS: Form description. +#: flagprofileform.php:89 +msgid "Flag profile for review." +msgstr "" + +#. TRANS: Form title for action on a profile. +#: clearflagform.php:76 +msgid "Clear" +msgstr "" + +#: clearflagform.php:88 +msgid "Clear all flags" +msgstr "" + #. TRANS: Title for page with a list of profiles that were flagged for review. #: adminprofileflag.php:125 msgid "Flagged profiles" @@ -44,24 +81,6 @@ msgstr[1] "" msgid "Flagged by %s" msgstr "" -#. TRANS: AJAX form title for a flagged profile. -#: flagprofile.php:125 -msgid "Flagged for review" -msgstr "" - -#. TRANS: Body text for AJAX form when a profile has been flagged for review. -#. TRANS: Message added to a profile if it has been flagged for review. -#: flagprofile.php:129 UserFlagPlugin.php:173 -msgid "Flagged" -msgstr "" - -#. TRANS: Plugin description. -#: UserFlagPlugin.php:294 -msgid "" -"This plugin allows flagging of profiles for review and reviewing flagged " -"profiles." -msgstr "" - #. TRANS: Server exception given when flags could not be cleared. #: clearflag.php:105 #, php-format @@ -78,27 +97,8 @@ msgstr "" msgid "Cleared" msgstr "" -#. TRANS: Form title for flagging a profile for review. -#: flagprofileform.php:78 -msgid "Flag" -msgstr "" - -#. TRANS: Form description. -#: flagprofileform.php:89 -msgid "Flag profile for review." -msgstr "" - #. TRANS: Server exception. #: User_flag_profile.php:160 #, php-format msgid "Couldn't flag profile \"%d\" for review." msgstr "" - -#. TRANS: Form title for action on a profile. -#: clearflagform.php:76 -msgid "Clear" -msgstr "" - -#: clearflagform.php:88 -msgid "Clear all flags" -msgstr "" diff --git a/plugins/UserFlag/locale/ca/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/ca/LC_MESSAGES/UserFlag.po index 31061daf79..9674e47029 100644 --- a/plugins/UserFlag/locale/ca/LC_MESSAGES/UserFlag.po +++ b/plugins/UserFlag/locale/ca/LC_MESSAGES/UserFlag.po @@ -9,32 +9,61 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserFlag\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:02+0000\n" "Language-Team: Catalan \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:15+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:48+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ca\n" "X-Message-Group: #out-statusnet-plugin-userflag\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#. TRANS: AJAX form title for a flagged profile. +msgid "Flagged for review" +msgstr "Senyalat per revisar" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +msgid "Flagged" +msgstr "Senyalat" + +#. TRANS: Plugin description. +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Aquest connector permet senyalar perfils per revisar i revisar els perfils " +"senyalats." + +#. TRANS: Form title for flagging a profile for review. +msgid "Flag" +msgstr "Senyala" + +#. TRANS: Form description. +msgid "Flag profile for review." +msgstr "Senyala el perfil per revisar." + +#. TRANS: Form title for action on a profile. +msgid "Clear" +msgstr "Esborra" + +msgid "Clear all flags" +msgstr "Esborra tots els senyals" + #. TRANS: Title for page with a list of profiles that were flagged for review. -#: adminprofileflag.php:125 msgid "Flagged profiles" msgstr "Perfils senyalats" #. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). -#: adminprofileflag.php:242 msgid "Moderate" msgstr "Modera" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. #. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. -#: adminprofileflag.php:388 #, php-format msgid "Flagged by %1$s and %2$d other" msgid_plural "Flagged by %1$s and %2$d others" @@ -43,68 +72,24 @@ msgstr[1] "Senyalat per %1$s i %2$d altres" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. -#: adminprofileflag.php:392 #, php-format msgid "Flagged by %s" msgstr "Senyalat per %s" -#. TRANS: AJAX form title for a flagged profile. -#: flagprofile.php:125 -msgid "Flagged for review" -msgstr "Senyalat per revisar" - -#. TRANS: Body text for AJAX form when a profile has been flagged for review. -#. TRANS: Message added to a profile if it has been flagged for review. -#: flagprofile.php:129 UserFlagPlugin.php:173 -msgid "Flagged" -msgstr "Senyalat" - -#. TRANS: Plugin description. -#: UserFlagPlugin.php:294 -msgid "" -"This plugin allows flagging of profiles for review and reviewing flagged " -"profiles." -msgstr "" -"Aquest connector permet senyalar perfils per revisar i revisar els perfils " -"senyalats." - #. TRANS: Server exception given when flags could not be cleared. -#: clearflag.php:105 #, php-format msgid "Couldn't clear flags for profile \"%s\"." msgstr "No s'han pogut esborrar els senyals del perfil «%s»." #. TRANS: Title for AJAX form to indicated that flags were removed. -#: clearflag.php:129 msgid "Flags cleared" msgstr "S'han esborrat els senyals" #. TRANS: Body element for "flags cleared" form. -#: clearflag.php:133 msgid "Cleared" msgstr "S'ha esborrat" -#. TRANS: Form title for flagging a profile for review. -#: flagprofileform.php:78 -msgid "Flag" -msgstr "Senyala" - -#. TRANS: Form description. -#: flagprofileform.php:89 -msgid "Flag profile for review." -msgstr "Senyala el perfil per revisar." - #. TRANS: Server exception. -#: User_flag_profile.php:160 #, php-format msgid "Couldn't flag profile \"%d\" for review." msgstr "No s'ha pogut senyalar el perfil «%d» per revisar." - -#. TRANS: Form title for action on a profile. -#: clearflagform.php:76 -msgid "Clear" -msgstr "Esborra" - -#: clearflagform.php:88 -msgid "Clear all flags" -msgstr "Esborra tots els senyals" diff --git a/plugins/UserFlag/locale/de/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/de/LC_MESSAGES/UserFlag.po new file mode 100644 index 0000000000..d7ebd18b0a --- /dev/null +++ b/plugins/UserFlag/locale/de/LC_MESSAGES/UserFlag.po @@ -0,0 +1,95 @@ +# Translation of StatusNet - UserFlag to German (Deutsch) +# Exported from translatewiki.net +# +# Author: Habi +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserFlag\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:02+0000\n" +"Language-Team: German \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-11 18:53:48+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: de\n" +"X-Message-Group: #out-statusnet-plugin-userflag\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. TRANS: AJAX form title for a flagged profile. +msgid "Flagged for review" +msgstr "Zum Überprüfen markiert" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +msgid "Flagged" +msgstr "Markiert" + +#. TRANS: Plugin description. +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Dieser Plugin ermöglicht, Profile zur Überprüfung zu markieren und diese " +"markierten Profile zu überprüfen." + +#. TRANS: Form title for flagging a profile for review. +msgid "Flag" +msgstr "Markieren" + +#. TRANS: Form description. +msgid "Flag profile for review." +msgstr "Profil zur Überprüfung markieren." + +#. TRANS: Form title for action on a profile. +msgid "Clear" +msgstr "Löschen" + +msgid "Clear all flags" +msgstr "Alle Markierungen löschen" + +#. TRANS: Title for page with a list of profiles that were flagged for review. +msgid "Flagged profiles" +msgstr "Markierte Profile" + +#. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). +msgid "Moderate" +msgstr "Moderieren" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. +#. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. +#, php-format +msgid "Flagged by %1$s and %2$d other" +msgid_plural "Flagged by %1$s and %2$d others" +msgstr[0] "Markiert durch %1$s und %2$d weitere Konten" +msgstr[1] "Markiert durch %1$s und %2$d Andere" + +#. TRANS: Message displayed on a profile if it has been flagged. +#. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. +#, php-format +msgid "Flagged by %s" +msgstr "Durch %s markiert" + +#. TRANS: Server exception given when flags could not be cleared. +#, php-format +msgid "Couldn't clear flags for profile \"%s\"." +msgstr "Konnte Markierung für Profil \"%s\" nicht entfernen." + +#. TRANS: Title for AJAX form to indicated that flags were removed. +msgid "Flags cleared" +msgstr "" + +#. TRANS: Body element for "flags cleared" form. +msgid "Cleared" +msgstr "" + +#. TRANS: Server exception. +#, php-format +msgid "Couldn't flag profile \"%d\" for review." +msgstr "" diff --git a/plugins/UserFlag/locale/fr/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/fr/LC_MESSAGES/UserFlag.po index 703364021e..8e60fa0de1 100644 --- a/plugins/UserFlag/locale/fr/LC_MESSAGES/UserFlag.po +++ b/plugins/UserFlag/locale/fr/LC_MESSAGES/UserFlag.po @@ -9,32 +9,61 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserFlag\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:03+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:15+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:48+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-userflag\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#. TRANS: AJAX form title for a flagged profile. +msgid "Flagged for review" +msgstr "Marqué pour vérification" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +msgid "Flagged" +msgstr "Marqué" + +#. TRANS: Plugin description. +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Cette extension permet de marquer des profils pour vérification et de " +"vérifier des profils marqués." + +#. TRANS: Form title for flagging a profile for review. +msgid "Flag" +msgstr "Marquer" + +#. TRANS: Form description. +msgid "Flag profile for review." +msgstr "Marquer le profil pour vérification." + +#. TRANS: Form title for action on a profile. +msgid "Clear" +msgstr "Effacer" + +msgid "Clear all flags" +msgstr "Effacer tous les marquages" + #. TRANS: Title for page with a list of profiles that were flagged for review. -#: adminprofileflag.php:125 msgid "Flagged profiles" msgstr "Profils marqués" #. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). -#: adminprofileflag.php:242 msgid "Moderate" msgstr "Modérer" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. #. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. -#: adminprofileflag.php:388 #, php-format msgid "Flagged by %1$s and %2$d other" msgid_plural "Flagged by %1$s and %2$d others" @@ -43,68 +72,24 @@ msgstr[1] "Marqué par %1$s et %2$d autres" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. -#: adminprofileflag.php:392 #, php-format msgid "Flagged by %s" msgstr "Marqué par %s" -#. TRANS: AJAX form title for a flagged profile. -#: flagprofile.php:125 -msgid "Flagged for review" -msgstr "Marqué pour vérification" - -#. TRANS: Body text for AJAX form when a profile has been flagged for review. -#. TRANS: Message added to a profile if it has been flagged for review. -#: flagprofile.php:129 UserFlagPlugin.php:173 -msgid "Flagged" -msgstr "Marqué" - -#. TRANS: Plugin description. -#: UserFlagPlugin.php:294 -msgid "" -"This plugin allows flagging of profiles for review and reviewing flagged " -"profiles." -msgstr "" -"Cette extension permet de marquer des profils pour vérification et de " -"vérifier des profils marqués." - #. TRANS: Server exception given when flags could not be cleared. -#: clearflag.php:105 #, php-format msgid "Couldn't clear flags for profile \"%s\"." msgstr "Impossible de supprimer les marquages pour le profil « %s »." #. TRANS: Title for AJAX form to indicated that flags were removed. -#: clearflag.php:129 msgid "Flags cleared" msgstr "Marquages supprimés" #. TRANS: Body element for "flags cleared" form. -#: clearflag.php:133 msgid "Cleared" msgstr "Effacé" -#. TRANS: Form title for flagging a profile for review. -#: flagprofileform.php:78 -msgid "Flag" -msgstr "Marquer" - -#. TRANS: Form description. -#: flagprofileform.php:89 -msgid "Flag profile for review." -msgstr "Marquer le profil pour vérification." - #. TRANS: Server exception. -#: User_flag_profile.php:160 #, php-format msgid "Couldn't flag profile \"%d\" for review." msgstr "Impossible de marquer le profil « %d » pour vérification." - -#. TRANS: Form title for action on a profile. -#: clearflagform.php:76 -msgid "Clear" -msgstr "Effacer" - -#: clearflagform.php:88 -msgid "Clear all flags" -msgstr "Effacer tous les marquages" diff --git a/plugins/UserFlag/locale/ia/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/ia/LC_MESSAGES/UserFlag.po index 376cf02b05..36affc0d4c 100644 --- a/plugins/UserFlag/locale/ia/LC_MESSAGES/UserFlag.po +++ b/plugins/UserFlag/locale/ia/LC_MESSAGES/UserFlag.po @@ -9,32 +9,60 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserFlag\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:03+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:15+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:48+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-userflag\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#. TRANS: AJAX form title for a flagged profile. +msgid "Flagged for review" +msgstr "Marcate pro revision" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +msgid "Flagged" +msgstr "Marcate" + +#. TRANS: Plugin description. +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Iste plugin permitte marcar profilos pro revision e revider profilos marcate." + +#. TRANS: Form title for flagging a profile for review. +msgid "Flag" +msgstr "Rader tote le marcas" + +#. TRANS: Form description. +msgid "Flag profile for review." +msgstr "Marcar profilo pro revision." + +#. TRANS: Form title for action on a profile. +msgid "Clear" +msgstr "Rader" + +msgid "Clear all flags" +msgstr "Rader tote le marcas" + #. TRANS: Title for page with a list of profiles that were flagged for review. -#: adminprofileflag.php:125 msgid "Flagged profiles" msgstr "Profilos marcate" #. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). -#: adminprofileflag.php:242 msgid "Moderate" msgstr "Moderar" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. #. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. -#: adminprofileflag.php:388 #, php-format msgid "Flagged by %1$s and %2$d other" msgid_plural "Flagged by %1$s and %2$d others" @@ -43,67 +71,24 @@ msgstr[1] "Marcate per %1$s e %2$d alteres" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. -#: adminprofileflag.php:392 #, php-format msgid "Flagged by %s" msgstr "Marcate per %s" -#. TRANS: AJAX form title for a flagged profile. -#: flagprofile.php:125 -msgid "Flagged for review" -msgstr "Marcate pro revision" - -#. TRANS: Body text for AJAX form when a profile has been flagged for review. -#. TRANS: Message added to a profile if it has been flagged for review. -#: flagprofile.php:129 UserFlagPlugin.php:173 -msgid "Flagged" -msgstr "Marcate" - -#. TRANS: Plugin description. -#: UserFlagPlugin.php:294 -msgid "" -"This plugin allows flagging of profiles for review and reviewing flagged " -"profiles." -msgstr "" -"Iste plugin permitte marcar profilos pro revision e revider profilos marcate." - #. TRANS: Server exception given when flags could not be cleared. -#: clearflag.php:105 #, php-format msgid "Couldn't clear flags for profile \"%s\"." msgstr "Non poteva rader marcas pro profilo \"%s\"." #. TRANS: Title for AJAX form to indicated that flags were removed. -#: clearflag.php:129 msgid "Flags cleared" msgstr "Marcas radite" #. TRANS: Body element for "flags cleared" form. -#: clearflag.php:133 msgid "Cleared" msgstr "Radite" -#. TRANS: Form title for flagging a profile for review. -#: flagprofileform.php:78 -msgid "Flag" -msgstr "Rader tote le marcas" - -#. TRANS: Form description. -#: flagprofileform.php:89 -msgid "Flag profile for review." -msgstr "Marcar profilo pro revision." - #. TRANS: Server exception. -#: User_flag_profile.php:160 #, php-format msgid "Couldn't flag profile \"%d\" for review." msgstr "Non poteva marcar profilo \"%d\" pro revision." - -#. TRANS: Form title for action on a profile. -#: clearflagform.php:76 -msgid "Clear" -msgstr "Rader" - -#: clearflagform.php:88 -msgid "Clear all flags" -msgstr "Rader tote le marcas" diff --git a/plugins/UserFlag/locale/mk/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/mk/LC_MESSAGES/UserFlag.po index 204b755c3b..e799e60fdc 100644 --- a/plugins/UserFlag/locale/mk/LC_MESSAGES/UserFlag.po +++ b/plugins/UserFlag/locale/mk/LC_MESSAGES/UserFlag.po @@ -9,32 +9,61 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserFlag\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:03+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:15+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:48+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-userflag\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" +#. TRANS: AJAX form title for a flagged profile. +msgid "Flagged for review" +msgstr "Означено за преглед" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +msgid "Flagged" +msgstr "Означено" + +#. TRANS: Plugin description. +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Овој приклучок овозможува означување на профили за преглед и прегледување на " +"означени профили." + +#. TRANS: Form title for flagging a profile for review. +msgid "Flag" +msgstr "Означи" + +#. TRANS: Form description. +msgid "Flag profile for review." +msgstr "Означи профил за преглед." + +#. TRANS: Form title for action on a profile. +msgid "Clear" +msgstr "Отстрани" + +msgid "Clear all flags" +msgstr "Отстрани ги сите ознаки" + #. TRANS: Title for page with a list of profiles that were flagged for review. -#: adminprofileflag.php:125 msgid "Flagged profiles" msgstr "Означени профили" #. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). -#: adminprofileflag.php:242 msgid "Moderate" msgstr "Модерирај" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. #. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. -#: adminprofileflag.php:388 #, php-format msgid "Flagged by %1$s and %2$d other" msgid_plural "Flagged by %1$s and %2$d others" @@ -43,68 +72,24 @@ msgstr[1] "Означено од %1$s и уште %2$d други" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. -#: adminprofileflag.php:392 #, php-format msgid "Flagged by %s" msgstr "Означено од %s" -#. TRANS: AJAX form title for a flagged profile. -#: flagprofile.php:125 -msgid "Flagged for review" -msgstr "Означено за преглед" - -#. TRANS: Body text for AJAX form when a profile has been flagged for review. -#. TRANS: Message added to a profile if it has been flagged for review. -#: flagprofile.php:129 UserFlagPlugin.php:173 -msgid "Flagged" -msgstr "Означено" - -#. TRANS: Plugin description. -#: UserFlagPlugin.php:294 -msgid "" -"This plugin allows flagging of profiles for review and reviewing flagged " -"profiles." -msgstr "" -"Овој приклучок овозможува означување на профили за преглед и прегледување на " -"означени профили." - #. TRANS: Server exception given when flags could not be cleared. -#: clearflag.php:105 #, php-format msgid "Couldn't clear flags for profile \"%s\"." msgstr "Не можев да ги отстранам ознаките за профилот „%s“." #. TRANS: Title for AJAX form to indicated that flags were removed. -#: clearflag.php:129 msgid "Flags cleared" msgstr "Ознаките се отстранети" #. TRANS: Body element for "flags cleared" form. -#: clearflag.php:133 msgid "Cleared" msgstr "Отстрането" -#. TRANS: Form title for flagging a profile for review. -#: flagprofileform.php:78 -msgid "Flag" -msgstr "Означи" - -#. TRANS: Form description. -#: flagprofileform.php:89 -msgid "Flag profile for review." -msgstr "Означи профил за преглед." - #. TRANS: Server exception. -#: User_flag_profile.php:160 #, php-format msgid "Couldn't flag profile \"%d\" for review." msgstr "Не можев да го означам профилот „%d“ за преглед." - -#. TRANS: Form title for action on a profile. -#: clearflagform.php:76 -msgid "Clear" -msgstr "Отстрани" - -#: clearflagform.php:88 -msgid "Clear all flags" -msgstr "Отстрани ги сите ознаки" diff --git a/plugins/UserFlag/locale/nl/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/nl/LC_MESSAGES/UserFlag.po index 0e791fc2b2..9c1d2ac123 100644 --- a/plugins/UserFlag/locale/nl/LC_MESSAGES/UserFlag.po +++ b/plugins/UserFlag/locale/nl/LC_MESSAGES/UserFlag.po @@ -9,32 +9,61 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserFlag\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:03+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:15+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:48+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-userflag\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#. TRANS: AJAX form title for a flagged profile. +msgid "Flagged for review" +msgstr "Gemarkeerd voor controle" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +msgid "Flagged" +msgstr "Gemarkeerd" + +#. TRANS: Plugin description. +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Deze plugin maakt het markeren van profielen voor controle mogelijk en de " +"controle van gemarkeerde profielen." + +#. TRANS: Form title for flagging a profile for review. +msgid "Flag" +msgstr "Markeren" + +#. TRANS: Form description. +msgid "Flag profile for review." +msgstr "Profiel voor controle markeren" + +#. TRANS: Form title for action on a profile. +msgid "Clear" +msgstr "Wissen" + +msgid "Clear all flags" +msgstr "Alle markeringen wissen" + #. TRANS: Title for page with a list of profiles that were flagged for review. -#: adminprofileflag.php:125 msgid "Flagged profiles" msgstr "Gemarkeerde profielen" #. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). -#: adminprofileflag.php:242 msgid "Moderate" msgstr "Modereren" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. #. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. -#: adminprofileflag.php:388 #, php-format msgid "Flagged by %1$s and %2$d other" msgid_plural "Flagged by %1$s and %2$d others" @@ -43,69 +72,25 @@ msgstr[1] "Gemarkeerd door %1$s en %2$d anderen" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. -#: adminprofileflag.php:392 #, php-format msgid "Flagged by %s" msgstr "Gemarkeerd door %s" -#. TRANS: AJAX form title for a flagged profile. -#: flagprofile.php:125 -msgid "Flagged for review" -msgstr "Gemarkeerd voor controle" - -#. TRANS: Body text for AJAX form when a profile has been flagged for review. -#. TRANS: Message added to a profile if it has been flagged for review. -#: flagprofile.php:129 UserFlagPlugin.php:173 -msgid "Flagged" -msgstr "Gemarkeerd" - -#. TRANS: Plugin description. -#: UserFlagPlugin.php:294 -msgid "" -"This plugin allows flagging of profiles for review and reviewing flagged " -"profiles." -msgstr "" -"Deze plugin maakt het markeren van profielen voor controle mogelijk en de " -"controle van gemarkeerde profielen." - #. TRANS: Server exception given when flags could not be cleared. -#: clearflag.php:105 #, php-format msgid "Couldn't clear flags for profile \"%s\"." msgstr "" "Het was niet mogelijk de markeringen van het profiel \"%s\" te verwijderen." #. TRANS: Title for AJAX form to indicated that flags were removed. -#: clearflag.php:129 msgid "Flags cleared" msgstr "Markeringen verwijderd" #. TRANS: Body element for "flags cleared" form. -#: clearflag.php:133 msgid "Cleared" msgstr "Verwijderd" -#. TRANS: Form title for flagging a profile for review. -#: flagprofileform.php:78 -msgid "Flag" -msgstr "Markeren" - -#. TRANS: Form description. -#: flagprofileform.php:89 -msgid "Flag profile for review." -msgstr "Profiel voor controle markeren" - #. TRANS: Server exception. -#: User_flag_profile.php:160 #, php-format msgid "Couldn't flag profile \"%d\" for review." msgstr "Het was niet mogelijk het profiel \"%d\" voor controle te markeren." - -#. TRANS: Form title for action on a profile. -#: clearflagform.php:76 -msgid "Clear" -msgstr "Wissen" - -#: clearflagform.php:88 -msgid "Clear all flags" -msgstr "Alle markeringen wissen" diff --git a/plugins/UserFlag/locale/pt/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/pt/LC_MESSAGES/UserFlag.po index b85c2aefd1..077447bb27 100644 --- a/plugins/UserFlag/locale/pt/LC_MESSAGES/UserFlag.po +++ b/plugins/UserFlag/locale/pt/LC_MESSAGES/UserFlag.po @@ -9,32 +9,61 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserFlag\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:03+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:15+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:48+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-userflag\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#. TRANS: AJAX form title for a flagged profile. +msgid "Flagged for review" +msgstr "Sinalizado para análise" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +msgid "Flagged" +msgstr "Sinalizado" + +#. TRANS: Plugin description. +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Este plugin permite sinalizar perfis para análise e analisar perfis " +"sinalizados." + +#. TRANS: Form title for flagging a profile for review. +msgid "Flag" +msgstr "Sinalização" + +#. TRANS: Form description. +msgid "Flag profile for review." +msgstr "Sinalizar perfil para análise." + +#. TRANS: Form title for action on a profile. +msgid "Clear" +msgstr "Limpar" + +msgid "Clear all flags" +msgstr "Limpar todas as sinalizações" + #. TRANS: Title for page with a list of profiles that were flagged for review. -#: adminprofileflag.php:125 msgid "Flagged profiles" msgstr "Perfis sinalizados" #. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). -#: adminprofileflag.php:242 msgid "Moderate" msgstr "Moderar" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. #. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. -#: adminprofileflag.php:388 #, php-format msgid "Flagged by %1$s and %2$d other" msgid_plural "Flagged by %1$s and %2$d others" @@ -43,68 +72,24 @@ msgstr[1] "Sinalizado por %1$s e mais %2$d pessoas" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. -#: adminprofileflag.php:392 #, php-format msgid "Flagged by %s" msgstr "Sinalizado por %s" -#. TRANS: AJAX form title for a flagged profile. -#: flagprofile.php:125 -msgid "Flagged for review" -msgstr "Sinalizado para análise" - -#. TRANS: Body text for AJAX form when a profile has been flagged for review. -#. TRANS: Message added to a profile if it has been flagged for review. -#: flagprofile.php:129 UserFlagPlugin.php:173 -msgid "Flagged" -msgstr "Sinalizado" - -#. TRANS: Plugin description. -#: UserFlagPlugin.php:294 -msgid "" -"This plugin allows flagging of profiles for review and reviewing flagged " -"profiles." -msgstr "" -"Este plugin permite sinalizar perfis para análise e analisar perfis " -"sinalizados." - #. TRANS: Server exception given when flags could not be cleared. -#: clearflag.php:105 #, php-format msgid "Couldn't clear flags for profile \"%s\"." msgstr "Não foi possível limpar as sinalizações do perfil \"%s\"." #. TRANS: Title for AJAX form to indicated that flags were removed. -#: clearflag.php:129 msgid "Flags cleared" msgstr "Sinalizações limpas" #. TRANS: Body element for "flags cleared" form. -#: clearflag.php:133 msgid "Cleared" msgstr "Limpas" -#. TRANS: Form title for flagging a profile for review. -#: flagprofileform.php:78 -msgid "Flag" -msgstr "Sinalização" - -#. TRANS: Form description. -#: flagprofileform.php:89 -msgid "Flag profile for review." -msgstr "Sinalizar perfil para análise." - #. TRANS: Server exception. -#: User_flag_profile.php:160 #, php-format msgid "Couldn't flag profile \"%d\" for review." msgstr "Não foi possível sinalizar o perfil \"%d\" para análise." - -#. TRANS: Form title for action on a profile. -#: clearflagform.php:76 -msgid "Clear" -msgstr "Limpar" - -#: clearflagform.php:88 -msgid "Clear all flags" -msgstr "Limpar todas as sinalizações" diff --git a/plugins/UserFlag/locale/ru/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/ru/LC_MESSAGES/UserFlag.po index 299d3b6d81..a37f7add66 100644 --- a/plugins/UserFlag/locale/ru/LC_MESSAGES/UserFlag.po +++ b/plugins/UserFlag/locale/ru/LC_MESSAGES/UserFlag.po @@ -9,33 +9,62 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserFlag\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:03+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:15+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:48+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-userflag\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" +#. TRANS: AJAX form title for a flagged profile. +msgid "Flagged for review" +msgstr "Помечен для просмотра" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +msgid "Flagged" +msgstr "Отмеченные" + +#. TRANS: Plugin description. +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Этот плагин позволяет отмечать профили для осмотра и просматривать " +"отмеченные профили." + +#. TRANS: Form title for flagging a profile for review. +msgid "Flag" +msgstr "Отметить" + +#. TRANS: Form description. +msgid "Flag profile for review." +msgstr "Профиль помечен для просмотра" + +#. TRANS: Form title for action on a profile. +msgid "Clear" +msgstr "Очистить" + +msgid "Clear all flags" +msgstr "Очистить все флаги" + #. TRANS: Title for page with a list of profiles that were flagged for review. -#: adminprofileflag.php:125 msgid "Flagged profiles" msgstr "Отмеченные профили" #. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). -#: adminprofileflag.php:242 msgid "Moderate" msgstr "Модерировать" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. #. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. -#: adminprofileflag.php:388 #, php-format msgid "Flagged by %1$s and %2$d other" msgid_plural "Flagged by %1$s and %2$d others" @@ -45,68 +74,24 @@ msgstr[2] "" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. -#: adminprofileflag.php:392 #, php-format msgid "Flagged by %s" msgstr "Отмечено %s" -#. TRANS: AJAX form title for a flagged profile. -#: flagprofile.php:125 -msgid "Flagged for review" -msgstr "Помечен для просмотра" - -#. TRANS: Body text for AJAX form when a profile has been flagged for review. -#. TRANS: Message added to a profile if it has been flagged for review. -#: flagprofile.php:129 UserFlagPlugin.php:173 -msgid "Flagged" -msgstr "Отмеченные" - -#. TRANS: Plugin description. -#: UserFlagPlugin.php:294 -msgid "" -"This plugin allows flagging of profiles for review and reviewing flagged " -"profiles." -msgstr "" -"Этот плагин позволяет отмечать профили для осмотра и просматривать " -"отмеченные профили." - #. TRANS: Server exception given when flags could not be cleared. -#: clearflag.php:105 #, php-format msgid "Couldn't clear flags for profile \"%s\"." msgstr "Не снимать отметки для профиля %s" #. TRANS: Title for AJAX form to indicated that flags were removed. -#: clearflag.php:129 msgid "Flags cleared" msgstr "Отметки сняты" #. TRANS: Body element for "flags cleared" form. -#: clearflag.php:133 msgid "Cleared" msgstr "Снято" -#. TRANS: Form title for flagging a profile for review. -#: flagprofileform.php:78 -msgid "Flag" -msgstr "Отметить" - -#. TRANS: Form description. -#: flagprofileform.php:89 -msgid "Flag profile for review." -msgstr "Профиль помечен для просмотра" - #. TRANS: Server exception. -#: User_flag_profile.php:160 #, php-format msgid "Couldn't flag profile \"%d\" for review." msgstr "Невозможно отметить профиль %d для просмотра." - -#. TRANS: Form title for action on a profile. -#: clearflagform.php:76 -msgid "Clear" -msgstr "Очистить" - -#: clearflagform.php:88 -msgid "Clear all flags" -msgstr "Очистить все флаги" diff --git a/plugins/UserFlag/locale/uk/LC_MESSAGES/UserFlag.po b/plugins/UserFlag/locale/uk/LC_MESSAGES/UserFlag.po index d17c6ff308..d746fcf9c8 100644 --- a/plugins/UserFlag/locale/uk/LC_MESSAGES/UserFlag.po +++ b/plugins/UserFlag/locale/uk/LC_MESSAGES/UserFlag.po @@ -9,33 +9,62 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserFlag\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:03+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:15+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-11 18:53:48+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-userflag\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" +#. TRANS: AJAX form title for a flagged profile. +msgid "Flagged for review" +msgstr "Відмічені для розгляду" + +#. TRANS: Body text for AJAX form when a profile has been flagged for review. +#. TRANS: Message added to a profile if it has been flagged for review. +msgid "Flagged" +msgstr "Відмічені" + +#. TRANS: Plugin description. +msgid "" +"This plugin allows flagging of profiles for review and reviewing flagged " +"profiles." +msgstr "" +"Цей додаток дозволяє відмічати профілі користувачів для подальшого розгляду " +"та аналізу відмічених профілів." + +#. TRANS: Form title for flagging a profile for review. +msgid "Flag" +msgstr "Відмітити" + +#. TRANS: Form description. +msgid "Flag profile for review." +msgstr "Відмітити профіль для розгляду." + +#. TRANS: Form title for action on a profile. +msgid "Clear" +msgstr "Зняти" + +msgid "Clear all flags" +msgstr "Зняти всі позначки" + #. TRANS: Title for page with a list of profiles that were flagged for review. -#: adminprofileflag.php:125 msgid "Flagged profiles" msgstr "Відмічені профілі" #. TRANS: Header for moderation menu with action buttons for flagged profiles (like 'sandbox', 'silence', ...). -#: adminprofileflag.php:242 msgid "Moderate" msgstr "Модерувати" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %1$s is a comma separated list of at most 5 user nicknames that flagged. #. TRANS: %2$d is a positive integer of additional flagging users. Also used for the plural. -#: adminprofileflag.php:388 #, php-format msgid "Flagged by %1$s and %2$d other" msgid_plural "Flagged by %1$s and %2$d others" @@ -45,68 +74,24 @@ msgstr[2] "Відмічено %1$s та ще %2$d користувачами" #. TRANS: Message displayed on a profile if it has been flagged. #. TRANS: %s is a comma separated list of at most 5 user nicknames that flagged. -#: adminprofileflag.php:392 #, php-format msgid "Flagged by %s" msgstr "Відмічено %s" -#. TRANS: AJAX form title for a flagged profile. -#: flagprofile.php:125 -msgid "Flagged for review" -msgstr "Відмічені для розгляду" - -#. TRANS: Body text for AJAX form when a profile has been flagged for review. -#. TRANS: Message added to a profile if it has been flagged for review. -#: flagprofile.php:129 UserFlagPlugin.php:173 -msgid "Flagged" -msgstr "Відмічені" - -#. TRANS: Plugin description. -#: UserFlagPlugin.php:294 -msgid "" -"This plugin allows flagging of profiles for review and reviewing flagged " -"profiles." -msgstr "" -"Цей додаток дозволяє відмічати профілі користувачів для подальшого розгляду " -"та аналізу відмічених профілів." - #. TRANS: Server exception given when flags could not be cleared. -#: clearflag.php:105 #, php-format msgid "Couldn't clear flags for profile \"%s\"." msgstr "Не можу зняти позначки для профілю «%s»." #. TRANS: Title for AJAX form to indicated that flags were removed. -#: clearflag.php:129 msgid "Flags cleared" msgstr "Позначки знято" #. TRANS: Body element for "flags cleared" form. -#: clearflag.php:133 msgid "Cleared" msgstr "Знято" -#. TRANS: Form title for flagging a profile for review. -#: flagprofileform.php:78 -msgid "Flag" -msgstr "Відмітити" - -#. TRANS: Form description. -#: flagprofileform.php:89 -msgid "Flag profile for review." -msgstr "Відмітити профіль для розгляду." - #. TRANS: Server exception. -#: User_flag_profile.php:160 #, php-format msgid "Couldn't flag profile \"%d\" for review." msgstr "Не вдалося відмітити профіль «%d» для розгляду." - -#. TRANS: Form title for action on a profile. -#: clearflagform.php:76 -msgid "Clear" -msgstr "Зняти" - -#: clearflagform.php:88 -msgid "Clear all flags" -msgstr "Зняти всі позначки" diff --git a/plugins/UserLimit/locale/UserLimit.pot b/plugins/UserLimit/locale/UserLimit.pot index e716e93ba9..a65352f7e2 100644 --- a/plugins/UserLimit/locale/UserLimit.pot +++ b/plugins/UserLimit/locale/UserLimit.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/UserLimit/locale/br/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/br/LC_MESSAGES/UserLimit.po index 658dbf4b8f..bf9621b9e5 100644 --- a/plugins/UserLimit/locale/br/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/br/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:03+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Bevenniñ an niver a implijerien a c'hall en em enskrivañ" diff --git a/plugins/UserLimit/locale/de/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/de/LC_MESSAGES/UserLimit.po index cbc3cc0baf..f2b01a39c3 100644 --- a/plugins/UserLimit/locale/de/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/de/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:03+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Beschränkung der Anzahl von Benutzern, die sich registrieren können." diff --git a/plugins/UserLimit/locale/es/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/es/LC_MESSAGES/UserLimit.po index 1cf72b60c9..cadf0b8fdb 100644 --- a/plugins/UserLimit/locale/es/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/es/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:03+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Limitarla cantidad de usuarios que pueden registrarse." diff --git a/plugins/UserLimit/locale/fa/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/fa/LC_MESSAGES/UserLimit.po new file mode 100644 index 0000000000..eff579461c --- /dev/null +++ b/plugins/UserLimit/locale/fa/LC_MESSAGES/UserLimit.po @@ -0,0 +1,25 @@ +# Translation of StatusNet - UserLimit to Persian (فارسی) +# Exported from translatewiki.net +# +# Author: Ebraminio +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - UserLimit\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:03+0000\n" +"Language-Team: Persian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: fa\n" +"X-Message-Group: #out-statusnet-plugin-userlimit\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "Limit the number of users who can register." +msgstr "محدودکردن تعداد کاربرانی که می‌توانید ثبت نام کنند." diff --git a/plugins/UserLimit/locale/fi/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/fi/LC_MESSAGES/UserLimit.po index d8eabfc7ce..6e2d04dd5a 100644 --- a/plugins/UserLimit/locale/fi/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/fi/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:03+0000\n" "Language-Team: Finnish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Rajoita niiden käyttäjien lukumäärää, jotka voivat rekisteröityä." diff --git a/plugins/UserLimit/locale/fr/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/fr/LC_MESSAGES/UserLimit.po index a7b4eb8d1c..efae2d2349 100644 --- a/plugins/UserLimit/locale/fr/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/fr/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Limiter le nombre d’utilisateurs qui peuvent s’inscrire." diff --git a/plugins/UserLimit/locale/gl/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/gl/LC_MESSAGES/UserLimit.po index e36479a1e1..bea5efe44c 100644 --- a/plugins/UserLimit/locale/gl/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/gl/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Galician \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: gl\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Limitar o número de usuarios que se poden rexistrar." diff --git a/plugins/UserLimit/locale/he/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/he/LC_MESSAGES/UserLimit.po index d14e614e16..67f494e720 100644 --- a/plugins/UserLimit/locale/he/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/he/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "הגבלת מספר המשתמשים שיכולים להירשם." diff --git a/plugins/UserLimit/locale/ia/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/ia/LC_MESSAGES/UserLimit.po index e6eebc8d39..55e24018e3 100644 --- a/plugins/UserLimit/locale/ia/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/ia/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Limitar le numero de usatores que pote registrar se." diff --git a/plugins/UserLimit/locale/id/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/id/LC_MESSAGES/UserLimit.po index 269f7edfd6..f5e46225f1 100644 --- a/plugins/UserLimit/locale/id/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/id/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Batasi jumlah pengguna yang boleh mendaftar." diff --git a/plugins/UserLimit/locale/lb/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/lb/LC_MESSAGES/UserLimit.po index f89c8932ae..54ebadc0ec 100644 --- a/plugins/UserLimit/locale/lb/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/lb/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Luxembourgish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: lb\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "D'Zuel vun de Benotzer, déi sech registréiere kënnen, limitéieren." diff --git a/plugins/UserLimit/locale/lv/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/lv/LC_MESSAGES/UserLimit.po index 859475792b..5bd6b2f82a 100644 --- a/plugins/UserLimit/locale/lv/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/lv/LC_MESSAGES/UserLimit.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Latvian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: lv\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n != " "0) ? 1 : 2 );\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Ierobežotais lietotāju skaits, kuri var reģistrēties." diff --git a/plugins/UserLimit/locale/mk/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/mk/LC_MESSAGES/UserLimit.po index 5dfe980f0c..26a8ca5a78 100644 --- a/plugins/UserLimit/locale/mk/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/mk/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Ограничување на бројот на корисници што можат да се регистрираат." diff --git a/plugins/UserLimit/locale/nb/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/nb/LC_MESSAGES/UserLimit.po index 3799089e61..32b4b94f52 100644 --- a/plugins/UserLimit/locale/nb/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/nb/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Begrens antallet brukere som kan registrere seg." diff --git a/plugins/UserLimit/locale/nl/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/nl/LC_MESSAGES/UserLimit.po index 961c1f6732..3b589d265c 100644 --- a/plugins/UserLimit/locale/nl/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/nl/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Limiteert het aantal gebruikers dat kan registreren." diff --git a/plugins/UserLimit/locale/pt/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/pt/LC_MESSAGES/UserLimit.po index ce10755874..22fac03dc0 100644 --- a/plugins/UserLimit/locale/pt/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/pt/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Limitar o número de utilizadores que se podem registar." diff --git a/plugins/UserLimit/locale/pt_BR/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/pt_BR/LC_MESSAGES/UserLimit.po index e2a4f7dc4c..0fc39b94ed 100644 --- a/plugins/UserLimit/locale/pt_BR/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/pt_BR/LC_MESSAGES/UserLimit.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Brazilian Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Limitar o número de usuários que podem se registrar." diff --git a/plugins/UserLimit/locale/ru/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/ru/LC_MESSAGES/UserLimit.po index c72e38d998..1f0488d4d3 100644 --- a/plugins/UserLimit/locale/ru/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/ru/LC_MESSAGES/UserLimit.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "" "Ограничение количества пользователей, которые могут зарегистрироваться." diff --git a/plugins/UserLimit/locale/tl/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/tl/LC_MESSAGES/UserLimit.po index 157ae59a6d..8e9d17b22d 100644 --- a/plugins/UserLimit/locale/tl/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/tl/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Hangganan ng bilang ng mga tagagamit na makakapagpatala." diff --git a/plugins/UserLimit/locale/tr/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/tr/LC_MESSAGES/UserLimit.po index 372b32a10b..b86308f64b 100644 --- a/plugins/UserLimit/locale/tr/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/tr/LC_MESSAGES/UserLimit.po @@ -9,18 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Turkish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Kayıt olabilecek kullanıcı sayısını sınırla." diff --git a/plugins/UserLimit/locale/uk/LC_MESSAGES/UserLimit.po b/plugins/UserLimit/locale/uk/LC_MESSAGES/UserLimit.po index cf15ec04a4..d257cdabef 100644 --- a/plugins/UserLimit/locale/uk/LC_MESSAGES/UserLimit.po +++ b/plugins/UserLimit/locale/uk/LC_MESSAGES/UserLimit.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - UserLimit\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:15+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:04+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:16+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:38+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-userlimit\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: UserLimitPlugin.php:89 msgid "Limit the number of users who can register." msgstr "Обмеження кількості користувачів, котрі можуть зареєструватися." diff --git a/plugins/WikiHashtags/locale/WikiHashtags.pot b/plugins/WikiHashtags/locale/WikiHashtags.pot index 02e425fb2e..64b1377389 100644 --- a/plugins/WikiHashtags/locale/WikiHashtags.pot +++ b/plugins/WikiHashtags/locale/WikiHashtags.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/WikiHashtags/locale/br/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/br/LC_MESSAGES/WikiHashtags.po index a26b1467e3..d51211b672 100644 --- a/plugins/WikiHashtags/locale/br/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/br/LC_MESSAGES/WikiHashtags.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/de/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/de/LC_MESSAGES/WikiHashtags.po index 0c7761c44f..dd89dccc7f 100644 --- a/plugins/WikiHashtags/locale/de/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/de/LC_MESSAGES/WikiHashtags.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: German \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: de\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/fr/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/fr/LC_MESSAGES/WikiHashtags.po index 0987b8c6d9..903b4528db 100644 --- a/plugins/WikiHashtags/locale/fr/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/fr/LC_MESSAGES/WikiHashtags.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/he/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/he/LC_MESSAGES/WikiHashtags.po index 72d6e19063..eaa19419ef 100644 --- a/plugins/WikiHashtags/locale/he/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/he/LC_MESSAGES/WikiHashtags.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/ia/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/ia/LC_MESSAGES/WikiHashtags.po index 8a1b620a95..9c15a7a537 100644 --- a/plugins/WikiHashtags/locale/ia/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/ia/LC_MESSAGES/WikiHashtags.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/id/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/id/LC_MESSAGES/WikiHashtags.po index 03c98b1444..2c866734cc 100644 --- a/plugins/WikiHashtags/locale/id/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/id/LC_MESSAGES/WikiHashtags.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/mk/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/mk/LC_MESSAGES/WikiHashtags.po index 3ab4e2653b..3ab01a098f 100644 --- a/plugins/WikiHashtags/locale/mk/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/mk/LC_MESSAGES/WikiHashtags.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/nb/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/nb/LC_MESSAGES/WikiHashtags.po index 3d299035e7..daa2b42123 100644 --- a/plugins/WikiHashtags/locale/nb/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/nb/LC_MESSAGES/WikiHashtags.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/nl/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/nl/LC_MESSAGES/WikiHashtags.po index e95286c818..97b66314db 100644 --- a/plugins/WikiHashtags/locale/nl/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/nl/LC_MESSAGES/WikiHashtags.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/pt/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/pt/LC_MESSAGES/WikiHashtags.po index 433ad79941..e03d173a18 100644 --- a/plugins/WikiHashtags/locale/pt/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/pt/LC_MESSAGES/WikiHashtags.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/pt_BR/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/pt_BR/LC_MESSAGES/WikiHashtags.po index f5f30bcae5..7cb080a737 100644 --- a/plugins/WikiHashtags/locale/pt_BR/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/pt_BR/LC_MESSAGES/WikiHashtags.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: Brazilian Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/ru/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/ru/LC_MESSAGES/WikiHashtags.po index 7d8b0c948f..5558035717 100644 --- a/plugins/WikiHashtags/locale/ru/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/ru/LC_MESSAGES/WikiHashtags.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/tl/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/tl/LC_MESSAGES/WikiHashtags.po index 5dfc2f834a..8de78b0943 100644 --- a/plugins/WikiHashtags/locale/tl/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/tl/LC_MESSAGES/WikiHashtags.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/tr/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/tr/LC_MESSAGES/WikiHashtags.po index 19a3f06f4a..55f04432ed 100644 --- a/plugins/WikiHashtags/locale/tr/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/tr/LC_MESSAGES/WikiHashtags.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: Turkish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHashtags/locale/uk/LC_MESSAGES/WikiHashtags.po b/plugins/WikiHashtags/locale/uk/LC_MESSAGES/WikiHashtags.po index 3802b6ad5c..e946066239 100644 --- a/plugins/WikiHashtags/locale/uk/LC_MESSAGES/WikiHashtags.po +++ b/plugins/WikiHashtags/locale/uk/LC_MESSAGES/WikiHashtags.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHashtags\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:05+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:51+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-wikihashtags\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: WikiHashtagsPlugin.php:110 msgid "" "Gets hashtag descriptions from WikiHashtags." diff --git a/plugins/WikiHowProfile/locale/WikiHowProfile.pot b/plugins/WikiHowProfile/locale/WikiHowProfile.pot index 7e5f5030a5..98b80812c5 100644 --- a/plugins/WikiHowProfile/locale/WikiHowProfile.pot +++ b/plugins/WikiHowProfile/locale/WikiHowProfile.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/WikiHowProfile/locale/fr/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/fr/LC_MESSAGES/WikiHowProfile.po index 1aac2b4d7e..024d30bbde 100644 --- a/plugins/WikiHowProfile/locale/fr/LC_MESSAGES/WikiHowProfile.po +++ b/plugins/WikiHowProfile/locale/fr/LC_MESSAGES/WikiHowProfile.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHowProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:06+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:52+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: WikiHowProfilePlugin.php:59 msgid "" "Fetches avatar and other profile information for WikiHow users when setting " "up an account via OpenID." @@ -29,12 +28,10 @@ msgstr "" "Récupère l’avatar et les autres informations de profil des utilisateurs " "WikiHow lorsqu’ils créent un compte via OpenID." -#: WikiHowProfilePlugin.php:171 #, php-format msgid "Invalid avatar URL %s." msgstr "Adresse URL d’avatar « %s » invalide." -#: WikiHowProfilePlugin.php:179 #, php-format msgid "Unable to fetch avatar from %s." msgstr "Impossible de récupérer l’avatar depuis « %s »." diff --git a/plugins/WikiHowProfile/locale/ia/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/ia/LC_MESSAGES/WikiHowProfile.po index 33e770d149..056672afdc 100644 --- a/plugins/WikiHowProfile/locale/ia/LC_MESSAGES/WikiHowProfile.po +++ b/plugins/WikiHowProfile/locale/ia/LC_MESSAGES/WikiHowProfile.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHowProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:06+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:52+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: WikiHowProfilePlugin.php:59 msgid "" "Fetches avatar and other profile information for WikiHow users when setting " "up an account via OpenID." @@ -29,12 +28,10 @@ msgstr "" "Obtene le avatar e altere informationes de profilo pro usatores de WikiHow " "durante le creation de un conto via OpenID." -#: WikiHowProfilePlugin.php:171 #, php-format msgid "Invalid avatar URL %s." msgstr "URL de avatar %s invalide." -#: WikiHowProfilePlugin.php:179 #, php-format msgid "Unable to fetch avatar from %s." msgstr "Incapace de obtener avatar ab %s." diff --git a/plugins/WikiHowProfile/locale/mk/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/mk/LC_MESSAGES/WikiHowProfile.po index e52aa1bb1b..9fbcf5e2c5 100644 --- a/plugins/WikiHowProfile/locale/mk/LC_MESSAGES/WikiHowProfile.po +++ b/plugins/WikiHowProfile/locale/mk/LC_MESSAGES/WikiHowProfile.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHowProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:06+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:52+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: WikiHowProfilePlugin.php:59 msgid "" "Fetches avatar and other profile information for WikiHow users when setting " "up an account via OpenID." @@ -29,12 +28,10 @@ msgstr "" "Презема аватар и други профилни податоци за корисници на WikiHow при " "создавање на сметка преку OpenID." -#: WikiHowProfilePlugin.php:171 #, php-format msgid "Invalid avatar URL %s." msgstr "Неважечка URL-адреса на аватарот: %s." -#: WikiHowProfilePlugin.php:179 #, php-format msgid "Unable to fetch avatar from %s." msgstr "Не можев да го преземам аватарот од %s." diff --git a/plugins/WikiHowProfile/locale/nl/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/nl/LC_MESSAGES/WikiHowProfile.po index 8e39d70036..ccd55bcda1 100644 --- a/plugins/WikiHowProfile/locale/nl/LC_MESSAGES/WikiHowProfile.po +++ b/plugins/WikiHowProfile/locale/nl/LC_MESSAGES/WikiHowProfile.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHowProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:16+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:06+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:52+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: WikiHowProfilePlugin.php:59 msgid "" "Fetches avatar and other profile information for WikiHow users when setting " "up an account via OpenID." @@ -29,12 +28,10 @@ msgstr "" "Haalt avatar- en andere informatie op voor WikiHow-gebruikers die een " "gebruiker aanmaken via OpenID." -#: WikiHowProfilePlugin.php:171 #, php-format msgid "Invalid avatar URL %s." msgstr "Ongeldige avatar-URL %s." -#: WikiHowProfilePlugin.php:179 #, php-format msgid "Unable to fetch avatar from %s." msgstr "Het was niet mogelijk om de avatar op te halen van %s." diff --git a/plugins/WikiHowProfile/locale/ru/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/ru/LC_MESSAGES/WikiHowProfile.po index 4d48f7ba25..9dd5ca142f 100644 --- a/plugins/WikiHowProfile/locale/ru/LC_MESSAGES/WikiHowProfile.po +++ b/plugins/WikiHowProfile/locale/ru/LC_MESSAGES/WikiHowProfile.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHowProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:06+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:52+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: WikiHowProfilePlugin.php:59 msgid "" "Fetches avatar and other profile information for WikiHow users when setting " "up an account via OpenID." @@ -30,12 +29,10 @@ msgstr "" "Запрашивает аватару и прочую информацию из профиля пользователя WikiHow при " "создании учётной записи с помощью OpenID." -#: WikiHowProfilePlugin.php:171 #, php-format msgid "Invalid avatar URL %s." msgstr "Неверный URL-адрес аватары %s" -#: WikiHowProfilePlugin.php:179 #, php-format msgid "Unable to fetch avatar from %s." msgstr "Не удаётся получить аватару из %s." diff --git a/plugins/WikiHowProfile/locale/tl/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/tl/LC_MESSAGES/WikiHowProfile.po index b5c1a39b49..899f540018 100644 --- a/plugins/WikiHowProfile/locale/tl/LC_MESSAGES/WikiHowProfile.po +++ b/plugins/WikiHowProfile/locale/tl/LC_MESSAGES/WikiHowProfile.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHowProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:06+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:52+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: WikiHowProfilePlugin.php:59 msgid "" "Fetches avatar and other profile information for WikiHow users when setting " "up an account via OpenID." @@ -29,12 +28,10 @@ msgstr "" "Dumarampot ng abatar at ibang kabatiran ng balangkas para sa mga tagagamit " "ng WikiHow kapag nagtatalaga ng isang akawnt sa pamamagitan ng OpenID." -#: WikiHowProfilePlugin.php:171 #, php-format msgid "Invalid avatar URL %s." msgstr "Hindi tanggap na URL ng abatar ang %s." -#: WikiHowProfilePlugin.php:179 #, php-format msgid "Unable to fetch avatar from %s." msgstr "Hindi nagawang damputin ang abatar mula sa %s." diff --git a/plugins/WikiHowProfile/locale/tr/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/tr/LC_MESSAGES/WikiHowProfile.po index 5b8d124aee..8e0e8cc0b9 100644 --- a/plugins/WikiHowProfile/locale/tr/LC_MESSAGES/WikiHowProfile.po +++ b/plugins/WikiHowProfile/locale/tr/LC_MESSAGES/WikiHowProfile.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHowProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:06+0000\n" "Language-Team: Turkish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:52+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: WikiHowProfilePlugin.php:59 msgid "" "Fetches avatar and other profile information for WikiHow users when setting " "up an account via OpenID." @@ -29,12 +28,10 @@ msgstr "" "OpenID aracılığıyla hesap oluşturan WikiHow kullanıcıları için kullanıcı " "resimlerini ve diğer profil bilgilerini alır." -#: WikiHowProfilePlugin.php:171 #, php-format msgid "Invalid avatar URL %s." msgstr "Geçersiz kullanıcı resmi bağlantısı %s." -#: WikiHowProfilePlugin.php:179 #, php-format msgid "Unable to fetch avatar from %s." msgstr "%s'ten kullanıcı resmi alınamıyor." diff --git a/plugins/WikiHowProfile/locale/uk/LC_MESSAGES/WikiHowProfile.po b/plugins/WikiHowProfile/locale/uk/LC_MESSAGES/WikiHowProfile.po index b9da782d2e..a8ab4a6c39 100644 --- a/plugins/WikiHowProfile/locale/uk/LC_MESSAGES/WikiHowProfile.po +++ b/plugins/WikiHowProfile/locale/uk/LC_MESSAGES/WikiHowProfile.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - WikiHowProfile\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:06+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:52+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:40+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-wikihowprofile\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: WikiHowProfilePlugin.php:59 msgid "" "Fetches avatar and other profile information for WikiHow users when setting " "up an account via OpenID." @@ -30,12 +29,10 @@ msgstr "" "Запитує аватар та іншу супутню інформацію з WikiHow для користувачів, котрі " "створюють акаунти через OpenID." -#: WikiHowProfilePlugin.php:171 #, php-format msgid "Invalid avatar URL %s." msgstr "Невірна URL-адреса аватари %s." -#: WikiHowProfilePlugin.php:179 #, php-format msgid "Unable to fetch avatar from %s." msgstr "Неможливо завантажити аватару з %s." diff --git a/plugins/XCache/locale/XCache.pot b/plugins/XCache/locale/XCache.pot index c27c733d22..c6226a8f78 100644 --- a/plugins/XCache/locale/XCache.pot +++ b/plugins/XCache/locale/XCache.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/plugins/XCache/locale/br/LC_MESSAGES/XCache.po b/plugins/XCache/locale/br/LC_MESSAGES/XCache.po index a9c195eafa..57fca64184 100644 --- a/plugins/XCache/locale/br/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/br/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:06+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/es/LC_MESSAGES/XCache.po b/plugins/XCache/locale/es/LC_MESSAGES/XCache.po index 85f6d26f7a..6955b53bfa 100644 --- a/plugins/XCache/locale/es/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/es/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:06+0000\n" "Language-Team: Spanish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: es\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/fi/LC_MESSAGES/XCache.po b/plugins/XCache/locale/fi/LC_MESSAGES/XCache.po index b9effc3810..dffbb164aa 100644 --- a/plugins/XCache/locale/fi/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/fi/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:06+0000\n" "Language-Team: Finnish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fi\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/fr/LC_MESSAGES/XCache.po b/plugins/XCache/locale/fr/LC_MESSAGES/XCache.po index 947f4465a7..63a35520db 100644 --- a/plugins/XCache/locale/fr/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/fr/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:06+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/gl/LC_MESSAGES/XCache.po b/plugins/XCache/locale/gl/LC_MESSAGES/XCache.po index dd4531b2e8..3fe9e6cda9 100644 --- a/plugins/XCache/locale/gl/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/gl/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:06+0000\n" "Language-Team: Galician \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: gl\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/he/LC_MESSAGES/XCache.po b/plugins/XCache/locale/he/LC_MESSAGES/XCache.po index 5e08cb4ed3..2ebb4d02d7 100644 --- a/plugins/XCache/locale/he/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/he/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:07+0000\n" "Language-Team: Hebrew \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: he\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/ia/LC_MESSAGES/XCache.po b/plugins/XCache/locale/ia/LC_MESSAGES/XCache.po index a13d1d5e90..69582bc4a8 100644 --- a/plugins/XCache/locale/ia/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/ia/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:07+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/id/LC_MESSAGES/XCache.po b/plugins/XCache/locale/id/LC_MESSAGES/XCache.po index b3a3ed22c2..3d1e611feb 100644 --- a/plugins/XCache/locale/id/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/id/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:07+0000\n" "Language-Team: Indonesian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: id\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/mk/LC_MESSAGES/XCache.po b/plugins/XCache/locale/mk/LC_MESSAGES/XCache.po index 712387545d..c08192a5ce 100644 --- a/plugins/XCache/locale/mk/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/mk/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:07+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/nb/LC_MESSAGES/XCache.po b/plugins/XCache/locale/nb/LC_MESSAGES/XCache.po index c31f913c86..1bed48bf19 100644 --- a/plugins/XCache/locale/nb/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/nb/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:07+0000\n" "Language-Team: Norwegian (bokmål)‬ \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: no\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/nl/LC_MESSAGES/XCache.po b/plugins/XCache/locale/nl/LC_MESSAGES/XCache.po index d6e80652fd..76ff253e73 100644 --- a/plugins/XCache/locale/nl/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/nl/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:07+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/pt/LC_MESSAGES/XCache.po b/plugins/XCache/locale/pt/LC_MESSAGES/XCache.po index 699453c39e..01c46e3265 100644 --- a/plugins/XCache/locale/pt/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/pt/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:07+0000\n" "Language-Team: Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/pt_BR/LC_MESSAGES/XCache.po b/plugins/XCache/locale/pt_BR/LC_MESSAGES/XCache.po index e52df8c462..b20f75b2a8 100644 --- a/plugins/XCache/locale/pt_BR/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/pt_BR/LC_MESSAGES/XCache.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:07+0000\n" "Language-Team: Brazilian Portuguese \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: pt-br\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/ru/LC_MESSAGES/XCache.po b/plugins/XCache/locale/ru/LC_MESSAGES/XCache.po index 8afccae06c..a7d68c18f3 100644 --- a/plugins/XCache/locale/ru/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/ru/LC_MESSAGES/XCache.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:07+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/tl/LC_MESSAGES/XCache.po b/plugins/XCache/locale/tl/LC_MESSAGES/XCache.po index 3ab573f9df..818cb4c2ad 100644 --- a/plugins/XCache/locale/tl/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/tl/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:07+0000\n" "Language-Team: Tagalog \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tl\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/tr/LC_MESSAGES/XCache.po b/plugins/XCache/locale/tr/LC_MESSAGES/XCache.po index b9d3cf733e..a349226e4c 100644 --- a/plugins/XCache/locale/tr/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/tr/LC_MESSAGES/XCache.po @@ -9,19 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:07+0000\n" "Language-Team: Turkish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/XCache/locale/uk/LC_MESSAGES/XCache.po b/plugins/XCache/locale/uk/LC_MESSAGES/XCache.po index 82b1336253..3d1796cdea 100644 --- a/plugins/XCache/locale/uk/LC_MESSAGES/XCache.po +++ b/plugins/XCache/locale/uk/LC_MESSAGES/XCache.po @@ -9,20 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - XCache\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:17+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:07+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:54+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-06 02:19:41+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-xcache\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: XCachePlugin.php:120 msgid "" "Use the XCache variable cache to " "cache query results." diff --git a/plugins/Xmpp/locale/Xmpp.pot b/plugins/Xmpp/locale/Xmpp.pot index d6ed6ad6fa..c88d438dfa 100644 --- a/plugins/Xmpp/locale/Xmpp.pot +++ b/plugins/Xmpp/locale/Xmpp.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,6 +16,10 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +#: xmppmanager.php:168 xmppmanager.php:207 +msgid "Send me a message to post a notice" +msgstr "" + #: XmppPlugin.php:62 msgid "XMPP/Jabber/GTalk" msgstr "" @@ -25,7 +29,3 @@ msgid "" "The XMPP plugin allows users to send and receive notices over the XMPP/" "Jabber network." msgstr "" - -#: xmppmanager.php:168 xmppmanager.php:207 -msgid "Send me a message to post a notice" -msgstr "" diff --git a/plugins/Xmpp/locale/ia/LC_MESSAGES/Xmpp.po b/plugins/Xmpp/locale/ia/LC_MESSAGES/Xmpp.po new file mode 100644 index 0000000000..f034d942a7 --- /dev/null +++ b/plugins/Xmpp/locale/ia/LC_MESSAGES/Xmpp.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - Xmpp to Interlingua (Interlingua) +# Exported from translatewiki.net +# +# Author: McDutchie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Xmpp\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:08+0000\n" +"Language-Team: Interlingua \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-11 18:53:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: ia\n" +"X-Message-Group: #out-statusnet-plugin-xmpp\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Send me a message to post a notice" +msgstr "Inviar me un message pro publicar un nota" + +msgid "XMPP/Jabber/GTalk" +msgstr "XMPP/Jabber/GTalk" + +msgid "" +"The XMPP plugin allows users to send and receive notices over the XMPP/" +"Jabber network." +msgstr "" +"Le plug-in XMPP permitte que usatores invia e recipe notas per le rete XMPP/" +"Jabber." diff --git a/plugins/Xmpp/locale/mk/LC_MESSAGES/Xmpp.po b/plugins/Xmpp/locale/mk/LC_MESSAGES/Xmpp.po new file mode 100644 index 0000000000..9ae4ae315b --- /dev/null +++ b/plugins/Xmpp/locale/mk/LC_MESSAGES/Xmpp.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - Xmpp to Macedonian (Македонски) +# Exported from translatewiki.net +# +# Author: Bjankuloski06 +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Xmpp\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:08+0000\n" +"Language-Team: Macedonian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-11 18:53:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: mk\n" +"X-Message-Group: #out-statusnet-plugin-xmpp\n" +"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" + +msgid "Send me a message to post a notice" +msgstr "Испрати ми порака за да објавам забелешка" + +msgid "XMPP/Jabber/GTalk" +msgstr "XMPP/Jabber/GTalk" + +msgid "" +"The XMPP plugin allows users to send and receive notices over the XMPP/" +"Jabber network." +msgstr "" +"Приклучокот за XMPP им овозможува на корисниците да испраќаат и примаат " +"забелешки преку мрежата на XMPP/Jabber." diff --git a/plugins/Xmpp/locale/nl/LC_MESSAGES/Xmpp.po b/plugins/Xmpp/locale/nl/LC_MESSAGES/Xmpp.po new file mode 100644 index 0000000000..ed7f195427 --- /dev/null +++ b/plugins/Xmpp/locale/nl/LC_MESSAGES/Xmpp.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - Xmpp to Dutch (Nederlands) +# Exported from translatewiki.net +# +# Author: Siebrand +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Xmpp\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:08+0000\n" +"Language-Team: Dutch \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-11 18:53:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: nl\n" +"X-Message-Group: #out-statusnet-plugin-xmpp\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Send me a message to post a notice" +msgstr "Mij een bericht sturen om een mededeling te verzenden" + +msgid "XMPP/Jabber/GTalk" +msgstr "XMPP/Jabber/Google Talk" + +msgid "" +"The XMPP plugin allows users to send and receive notices over the XMPP/" +"Jabber network." +msgstr "" +"Maakt het mogelijk om mededelingen te zenden naar en ontvangen van het XMPP/" +"Jabber-netwerk." diff --git a/plugins/Xmpp/locale/pt/LC_MESSAGES/Xmpp.po b/plugins/Xmpp/locale/pt/LC_MESSAGES/Xmpp.po new file mode 100644 index 0000000000..87e2bc20b1 --- /dev/null +++ b/plugins/Xmpp/locale/pt/LC_MESSAGES/Xmpp.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - Xmpp to Portuguese (Português) +# Exported from translatewiki.net +# +# Author: SandroHc +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Xmpp\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:08+0000\n" +"Language-Team: Portuguese \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-11 18:53:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: pt\n" +"X-Message-Group: #out-statusnet-plugin-xmpp\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Send me a message to post a notice" +msgstr "Envia-me uma mensagem para postar uma notícia" + +msgid "XMPP/Jabber/GTalk" +msgstr "XMPP/Jabber/GTalk" + +msgid "" +"The XMPP plugin allows users to send and receive notices over the XMPP/" +"Jabber network." +msgstr "" +"O plugin XMPP permite aos utilizadores enviar e receber avisos sobre a rede " +"XMPP/Jabber." diff --git a/plugins/Xmpp/locale/sv/LC_MESSAGES/Xmpp.po b/plugins/Xmpp/locale/sv/LC_MESSAGES/Xmpp.po new file mode 100644 index 0000000000..904273a981 --- /dev/null +++ b/plugins/Xmpp/locale/sv/LC_MESSAGES/Xmpp.po @@ -0,0 +1,35 @@ +# Translation of StatusNet - Xmpp to Swedish (Svenska) +# Exported from translatewiki.net +# +# Author: WikiPhoenix +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Xmpp\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:08+0000\n" +"Language-Team: Swedish \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-11 18:53:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: sv\n" +"X-Message-Group: #out-statusnet-plugin-xmpp\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +msgid "Send me a message to post a notice" +msgstr "" + +msgid "XMPP/Jabber/GTalk" +msgstr "XMPP/Jabber/GTalk" + +msgid "" +"The XMPP plugin allows users to send and receive notices over the XMPP/" +"Jabber network." +msgstr "" +"XMPP-tillägget tillåter användare skicka och ta emot meddelanden över XMPP/" +"Jabber-nätverket." diff --git a/plugins/Xmpp/locale/uk/LC_MESSAGES/Xmpp.po b/plugins/Xmpp/locale/uk/LC_MESSAGES/Xmpp.po new file mode 100644 index 0000000000..2a4af69065 --- /dev/null +++ b/plugins/Xmpp/locale/uk/LC_MESSAGES/Xmpp.po @@ -0,0 +1,36 @@ +# Translation of StatusNet - Xmpp to Ukrainian (Українська) +# Exported from translatewiki.net +# +# Author: Boogie +# -- +# This file is distributed under the same license as the StatusNet package. +# +msgid "" +msgstr "" +"Project-Id-Version: StatusNet - Xmpp\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2011-03-18 19:46+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:08+0000\n" +"Language-Team: Ukrainian \n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-POT-Import-Date: 2011-03-11 18:53:51+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" +"X-Translation-Project: translatewiki.net at http://translatewiki.net\n" +"X-Language-Code: uk\n" +"X-Message-Group: #out-statusnet-plugin-xmpp\n" +"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " +"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" + +msgid "Send me a message to post a notice" +msgstr "Надішліть мені повідомлення, щоб опублікувати допис" + +msgid "XMPP/Jabber/GTalk" +msgstr "XMPP/Jabber/GTalk" + +msgid "" +"The XMPP plugin allows users to send and receive notices over the XMPP/" +"Jabber network." +msgstr "" +"Додаток XMPP дозволяє користувачам надсилати і отримувати дописи у мережі " +"XMPP (Jabber)." diff --git a/plugins/YammerImport/locale/YammerImport.pot b/plugins/YammerImport/locale/YammerImport.pot index e78563baa0..c6203ec2c9 100644 --- a/plugins/YammerImport/locale/YammerImport.pot +++ b/plugins/YammerImport/locale/YammerImport.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,29 +17,33 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" -#: YammerImportPlugin.php:98 -msgid "Yammer" -msgstr "" - -#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 -msgid "Yammer import" -msgstr "" - -#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 -#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 +#: actions/yammerauth.php:71 lib/yammerauthinitform.php:48 +#: lib/yammerprogressform.php:68 lib/yammerauthverifyform.php:56 msgid "Connect to Yammer" msgstr "" -#: lib/yammerauthinitform.php:62 -msgid "Start authentication" +#: actions/yammeradminpanel.php:45 +msgid "Yammer Import" msgstr "" -#: lib/yammerauthinitform.php:62 -msgid "Request authorization to connect to Yammer account" +#: actions/yammeradminpanel.php:55 +msgid "" +"This Yammer import tool is still undergoing testing, and is incomplete in " +"some areas. Currently user subscriptions and group memberships are not " +"transferred; in the future this may be supported for imports done by " +"verified administrators on the Yammer side." msgstr "" -#: lib/yammerauthinitform.php:63 -msgid "Change API key" +#: actions/yammeradminpanel.php:102 +msgid "Paused from admin panel." +msgstr "" + +#: actions/yammeradminpanel.php:135 YammerImportPlugin.php:99 +msgid "Yammer import" +msgstr "" + +#: YammerImportPlugin.php:98 +msgid "Yammer" msgstr "" #: lib/yammerimporter.php:230 @@ -56,66 +60,16 @@ msgstr "" msgid "Unable to fetch avatar from %s." msgstr "" -#: lib/yammerapikeyform.php:56 -msgid "Yammer API registration" +#: lib/yammerauthinitform.php:62 +msgid "Start authentication" msgstr "" -#: lib/yammerapikeyform.php:72 -msgid "" -"Before we can connect to your Yammer network, you will need to register the " -"importer as an application authorized to pull data on your behalf. This " -"registration will work only for your own network. Follow this link to " -"register the app at Yammer; you will be prompted to log in if necessary:" +#: lib/yammerauthinitform.php:62 +msgid "Request authorization to connect to Yammer account" msgstr "" -#: lib/yammerapikeyform.php:84 -msgid "Open Yammer application registration form" -msgstr "" - -#: lib/yammerapikeyform.php:87 -msgid "Copy the consumer key and secret you are given into the form below:" -msgstr "" - -#: lib/yammerapikeyform.php:91 -msgid "Consumer key:" -msgstr "" - -#: lib/yammerapikeyform.php:94 -msgid "Consumer secret:" -msgstr "" - -#: lib/yammerapikeyform.php:98 -msgid "Save" -msgstr "" - -#: lib/yammerapikeyform.php:98 -msgid "Save these consumer keys" -msgstr "" - -#: lib/yammerauthverifyform.php:72 -msgid "" -"Follow this link to confirm authorization at Yammer; you will be prompted to " -"log in if necessary:" -msgstr "" - -#: lib/yammerauthverifyform.php:87 -msgid "Open Yammer authentication window" -msgstr "" - -#: lib/yammerauthverifyform.php:90 -msgid "Copy the verification code you are given below:" -msgstr "" - -#: lib/yammerauthverifyform.php:94 -msgid "Verification code:" -msgstr "" - -#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 -msgid "Continue" -msgstr "" - -#: lib/yammerauthverifyform.php:98 -msgid "Save code and begin import" +#: lib/yammerauthinitform.php:63 +msgid "Change API key" msgstr "" #: lib/yammerprogressform.php:63 @@ -243,22 +197,68 @@ msgstr "" msgid "Paused" msgstr "" +#: lib/yammerprogressform.php:164 lib/yammerauthverifyform.php:98 +msgid "Continue" +msgstr "" + #: lib/yammerprogressform.php:165 msgid "Abort import" msgstr "" -#: actions/yammeradminpanel.php:45 -msgid "Yammer Import" -msgstr "" - -#: actions/yammeradminpanel.php:55 +#: lib/yammerauthverifyform.php:72 msgid "" -"This Yammer import tool is still undergoing testing, and is incomplete in " -"some areas. Currently user subscriptions and group memberships are not " -"transferred; in the future this may be supported for imports done by " -"verified administrators on the Yammer side." +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" msgstr "" -#: actions/yammeradminpanel.php:102 -msgid "Paused from admin panel." +#: lib/yammerauthverifyform.php:87 +msgid "Open Yammer authentication window" +msgstr "" + +#: lib/yammerauthverifyform.php:90 +msgid "Copy the verification code you are given below:" +msgstr "" + +#: lib/yammerauthverifyform.php:94 +msgid "Verification code:" +msgstr "" + +#: lib/yammerauthverifyform.php:98 +msgid "Save code and begin import" +msgstr "" + +#: lib/yammerapikeyform.php:56 +msgid "Yammer API registration" +msgstr "" + +#: lib/yammerapikeyform.php:72 +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" + +#: lib/yammerapikeyform.php:84 +msgid "Open Yammer application registration form" +msgstr "" + +#: lib/yammerapikeyform.php:87 +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" + +#: lib/yammerapikeyform.php:91 +msgid "Consumer key:" +msgstr "" + +#: lib/yammerapikeyform.php:94 +msgid "Consumer secret:" +msgstr "" + +#: lib/yammerapikeyform.php:98 +msgid "Save" +msgstr "" + +#: lib/yammerapikeyform.php:98 +msgid "Save these consumer keys" msgstr "" diff --git a/plugins/YammerImport/locale/br/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/br/LC_MESSAGES/YammerImport.po index f29347eeeb..82f0f9c6d0 100644 --- a/plugins/YammerImport/locale/br/LC_MESSAGES/YammerImport.po +++ b/plugins/YammerImport/locale/br/LC_MESSAGES/YammerImport.po @@ -10,261 +10,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - YammerImport\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:11+0000\n" "Language-Team: Breton \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:55+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: br\n" "X-Message-Group: #out-statusnet-plugin-yammerimport\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: YammerImportPlugin.php:98 -msgid "Yammer" -msgstr "Yammer" - -#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 -msgid "Yammer import" -msgstr "Enporzh Yammer" - -#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 -#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 msgid "Connect to Yammer" msgstr "Kevreañ da Yammer" -#: lib/yammerauthinitform.php:62 -msgid "Start authentication" -msgstr "" - -#: lib/yammerauthinitform.php:62 -msgid "Request authorization to connect to Yammer account" -msgstr "" - -#: lib/yammerauthinitform.php:63 -msgid "Change API key" -msgstr "" - -#: lib/yammerimporter.php:230 -msgid "Expertise:" -msgstr "Prizacha :" - -#: lib/yammerimporter.php:433 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "Direizh eo URL an avatar %s." - -#: lib/yammerimporter.php:441 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "Dibosupl eo adtapout an avatar adalek %s." - -#: lib/yammerapikeyform.php:56 -msgid "Yammer API registration" -msgstr "Enrolladenn an API Yammer" - -#: lib/yammerapikeyform.php:72 -msgid "" -"Before we can connect to your Yammer network, you will need to register the " -"importer as an application authorized to pull data on your behalf. This " -"registration will work only for your own network. Follow this link to " -"register the app at Yammer; you will be prompted to log in if necessary:" -msgstr "" -"Kent gallout kevreañ ouzh ho rouedad Yammer e rankit enrollañ an arload " -"enporzhiañ evel un arload aotreet da zastum roadennoù en hoc'h anv. Ne " -"dalvezo an enrolladenn-se nemet evit ho rouedad deoc'h. Heuilhit al liamm-" -"mañ evit enrollañ an arload war Yammer ; mar bez ret e vo goulennet ouzhoc'h " -"kevreañ." - -#: lib/yammerapikeyform.php:84 -msgid "Open Yammer application registration form" -msgstr "Digeriñ furmskrid enrollañ Yammer" - -#: lib/yammerapikeyform.php:87 -msgid "Copy the consumer key and secret you are given into the form below:" -msgstr "" -"Eilit er furmskrid a-is an alc'hwez hag ar sekred implijer bet roet deoc'h :" - -#: lib/yammerapikeyform.php:91 -msgid "Consumer key:" -msgstr "Alc'hwez implijer :" - -#: lib/yammerapikeyform.php:94 -msgid "Consumer secret:" -msgstr "Sekred an implijer :" - -#: lib/yammerapikeyform.php:98 -msgid "Save" -msgstr "Enrollañ" - -#: lib/yammerapikeyform.php:98 -msgid "Save these consumer keys" -msgstr "Enrollañ an alc'hwezioù implijer-mañ" - -#: lib/yammerauthverifyform.php:72 -msgid "" -"Follow this link to confirm authorization at Yammer; you will be prompted to " -"log in if necessary:" -msgstr "" -"Heuliañ al liamm-mañ da gadarnaat an aotre war Yammer ; mar bez ret e vo " -"goulennet ouzhoc'h kevreañ :" - -#: lib/yammerauthverifyform.php:87 -msgid "Open Yammer authentication window" -msgstr "Digeriñ prenestr emzisklêriañ Yammer" - -#: lib/yammerauthverifyform.php:90 -msgid "Copy the verification code you are given below:" -msgstr "Eilit a-is ar c'hod gwiriañ bet roet deoc'h :" - -#: lib/yammerauthverifyform.php:94 -msgid "Verification code:" -msgstr "Kod gwiriañ :" - -#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 -msgid "Continue" -msgstr "Kenderc'hel" - -#: lib/yammerauthverifyform.php:98 -msgid "Save code and begin import" -msgstr "Enrollañ ar c'hod ha kregiñ da enporzhiañ" - -#: lib/yammerprogressform.php:63 -msgid "Initialize" -msgstr "Deraouekaat" - -#: lib/yammerprogressform.php:64 -msgid "No import running" -msgstr "Enporzhiadenn ebet o treiñ" - -#: lib/yammerprogressform.php:65 -msgid "Initiated Yammer server connection..." -msgstr "Loc'het ar gevreadenn d'ar servijer Yammer" - -#: lib/yammerprogressform.php:69 -msgid "Awaiting authorization..." -msgstr "O c'hortoz an aotre..." - -#: lib/yammerprogressform.php:70 -msgid "Connected." -msgstr "Kevreet." - -#: lib/yammerprogressform.php:73 -msgid "Import user accounts" -msgstr "Enporzhiañ ar c'hontoù implijer" - -#: lib/yammerprogressform.php:74 -#, php-format -msgid "Importing %d user..." -msgid_plural "Importing %d users..." -msgstr[0] "Oc'h enporzhiañ %d implijer..." -msgstr[1] "Oc'h enporzhiañ %d implijer..." - -#: lib/yammerprogressform.php:75 -#, php-format -msgid "Imported %d user." -msgid_plural "Imported %d users." -msgstr[0] "Enporzhiet %d implijer." -msgstr[1] "Enporzhiet %d implijer." - -#: lib/yammerprogressform.php:78 -msgid "Import user groups" -msgstr "Enporzhiañ strolladoù implijer" - -#: lib/yammerprogressform.php:79 -#, php-format -msgid "Importing %d group..." -msgid_plural "Importing %d groups..." -msgstr[0] "Oc'h enporzhiañ %d strollad..." -msgstr[1] "Oc'h enporzhiañ %d strollad..." - -#: lib/yammerprogressform.php:80 -#, php-format -msgid "Imported %d group." -msgid_plural "Imported %d groups." -msgstr[0] "Enporzhiet %d strollad..." -msgstr[1] "Enporzhiet %d strollad..." - -#: lib/yammerprogressform.php:83 -msgid "Prepare public notices for import" -msgstr "O prientiñ enporzh ar c'hemennoù foran" - -#: lib/yammerprogressform.php:84 -#, php-format -msgid "Preparing %d notice..." -msgid_plural "Preparing %d notices..." -msgstr[0] "O prientiñ %d kemenn..." -msgstr[1] "O prientiñ %d kemenn..." - -#: lib/yammerprogressform.php:85 -#, php-format -msgid "Prepared %d notice." -msgid_plural "Prepared %d notices." -msgstr[0] "Prientet %d kemenn." -msgstr[1] "Prientet %d kemenn." - -#: lib/yammerprogressform.php:88 -msgid "Import public notices" -msgstr "Enporzh kemennoù foran" - -#: lib/yammerprogressform.php:89 -#, php-format -msgid "Importing %d notice..." -msgid_plural "Importing %d notices..." -msgstr[0] "Oc'h enporzhiañ %d kemenn..." -msgstr[1] "Oc'h enporzhiañ %d kemenn..." - -#: lib/yammerprogressform.php:90 -#, php-format -msgid "Imported %d notice." -msgid_plural "Imported %d notices." -msgstr[0] "Enporzhiet %d kemenn." -msgstr[1] "Enporzhiet %d kemenn." - -#: lib/yammerprogressform.php:93 -msgid "Done" -msgstr "Graet" - -#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 -msgid "Import is complete!" -msgstr "Enporzh kaset da benn vat !" - -#: lib/yammerprogressform.php:108 -msgid "Import status" -msgstr "Stad an enporzh" - -#: lib/yammerprogressform.php:132 -msgid "Waiting..." -msgstr "O c'hortoz..." - -#: lib/yammerprogressform.php:146 -msgid "Reset import state" -msgstr "Adderaouekaat stad an enporzh" - -#: lib/yammerprogressform.php:151 -msgid "Pause import" -msgstr "Ober un tamm ehan gant an enporzh" - -#: lib/yammerprogressform.php:160 -#, php-format -msgid "Encountered error \"%s\"" -msgstr "C'hoarvezet eo ar fazi \"%s\"" - -#: lib/yammerprogressform.php:162 -msgid "Paused" -msgstr "Ehanet" - -#: lib/yammerprogressform.php:165 -msgid "Abort import" -msgstr "Nullañ an enporzh" - -#: actions/yammeradminpanel.php:45 msgid "Yammer Import" msgstr "Enporzh Yammer" -#: actions/yammeradminpanel.php:55 msgid "" "This Yammer import tool is still undergoing testing, and is incomplete in " "some areas. Currently user subscriptions and group memberships are not " @@ -277,6 +40,190 @@ msgstr "" "bezañ en amzer da zont evit an enporzhiadennoù sevenet gant ar verourien " "aotreet eus tu YAMMER." -#: actions/yammeradminpanel.php:102 msgid "Paused from admin panel." msgstr "Ehanet adalek ar banell verañ." + +msgid "Yammer import" +msgstr "Enporzh Yammer" + +msgid "Yammer" +msgstr "Yammer" + +msgid "Expertise:" +msgstr "Prizacha :" + +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Direizh eo URL an avatar %s." + +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Dibosupl eo adtapout an avatar adalek %s." + +msgid "Start authentication" +msgstr "" + +msgid "Request authorization to connect to Yammer account" +msgstr "" + +msgid "Change API key" +msgstr "" + +msgid "Initialize" +msgstr "Deraouekaat" + +msgid "No import running" +msgstr "Enporzhiadenn ebet o treiñ" + +msgid "Initiated Yammer server connection..." +msgstr "Loc'het ar gevreadenn d'ar servijer Yammer" + +msgid "Awaiting authorization..." +msgstr "O c'hortoz an aotre..." + +msgid "Connected." +msgstr "Kevreet." + +msgid "Import user accounts" +msgstr "Enporzhiañ ar c'hontoù implijer" + +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Oc'h enporzhiañ %d implijer..." +msgstr[1] "Oc'h enporzhiañ %d implijer..." + +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "Enporzhiet %d implijer." +msgstr[1] "Enporzhiet %d implijer." + +msgid "Import user groups" +msgstr "Enporzhiañ strolladoù implijer" + +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Oc'h enporzhiañ %d strollad..." +msgstr[1] "Oc'h enporzhiañ %d strollad..." + +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "Enporzhiet %d strollad..." +msgstr[1] "Enporzhiet %d strollad..." + +msgid "Prepare public notices for import" +msgstr "O prientiñ enporzh ar c'hemennoù foran" + +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "O prientiñ %d kemenn..." +msgstr[1] "O prientiñ %d kemenn..." + +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "Prientet %d kemenn." +msgstr[1] "Prientet %d kemenn." + +msgid "Import public notices" +msgstr "Enporzh kemennoù foran" + +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "Oc'h enporzhiañ %d kemenn..." +msgstr[1] "Oc'h enporzhiañ %d kemenn..." + +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "Enporzhiet %d kemenn." +msgstr[1] "Enporzhiet %d kemenn." + +msgid "Done" +msgstr "Graet" + +msgid "Import is complete!" +msgstr "Enporzh kaset da benn vat !" + +msgid "Import status" +msgstr "Stad an enporzh" + +msgid "Waiting..." +msgstr "O c'hortoz..." + +msgid "Reset import state" +msgstr "Adderaouekaat stad an enporzh" + +msgid "Pause import" +msgstr "Ober un tamm ehan gant an enporzh" + +#, php-format +msgid "Encountered error \"%s\"" +msgstr "C'hoarvezet eo ar fazi \"%s\"" + +msgid "Paused" +msgstr "Ehanet" + +msgid "Continue" +msgstr "Kenderc'hel" + +msgid "Abort import" +msgstr "Nullañ an enporzh" + +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" +"Heuliañ al liamm-mañ da gadarnaat an aotre war Yammer ; mar bez ret e vo " +"goulennet ouzhoc'h kevreañ :" + +msgid "Open Yammer authentication window" +msgstr "Digeriñ prenestr emzisklêriañ Yammer" + +msgid "Copy the verification code you are given below:" +msgstr "Eilit a-is ar c'hod gwiriañ bet roet deoc'h :" + +msgid "Verification code:" +msgstr "Kod gwiriañ :" + +msgid "Save code and begin import" +msgstr "Enrollañ ar c'hod ha kregiñ da enporzhiañ" + +msgid "Yammer API registration" +msgstr "Enrolladenn an API Yammer" + +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" +"Kent gallout kevreañ ouzh ho rouedad Yammer e rankit enrollañ an arload " +"enporzhiañ evel un arload aotreet da zastum roadennoù en hoc'h anv. Ne " +"dalvezo an enrolladenn-se nemet evit ho rouedad deoc'h. Heuilhit al liamm-" +"mañ evit enrollañ an arload war Yammer ; mar bez ret e vo goulennet ouzhoc'h " +"kevreañ." + +msgid "Open Yammer application registration form" +msgstr "Digeriñ furmskrid enrollañ Yammer" + +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" +"Eilit er furmskrid a-is an alc'hwez hag ar sekred implijer bet roet deoc'h :" + +msgid "Consumer key:" +msgstr "Alc'hwez implijer :" + +msgid "Consumer secret:" +msgstr "Sekred an implijer :" + +msgid "Save" +msgstr "Enrollañ" + +msgid "Save these consumer keys" +msgstr "Enrollañ an alc'hwezioù implijer-mañ" diff --git a/plugins/YammerImport/locale/fr/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/fr/LC_MESSAGES/YammerImport.po index 8d09f81e3a..a911dfe33c 100644 --- a/plugins/YammerImport/locale/fr/LC_MESSAGES/YammerImport.po +++ b/plugins/YammerImport/locale/fr/LC_MESSAGES/YammerImport.po @@ -9,262 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - YammerImport\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:11+0000\n" "Language-Team: French \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:55+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: fr\n" "X-Message-Group: #out-statusnet-plugin-yammerimport\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: YammerImportPlugin.php:98 -msgid "Yammer" -msgstr "Yammer" - -#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 -msgid "Yammer import" -msgstr "Import Yammer" - -#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 -#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 msgid "Connect to Yammer" msgstr "Connexion à Yammer" -#: lib/yammerauthinitform.php:62 -msgid "Start authentication" -msgstr "Démarrer l’identification" - -#: lib/yammerauthinitform.php:62 -msgid "Request authorization to connect to Yammer account" -msgstr "Demander l’autorisation de se connecter à un compte Yammer" - -#: lib/yammerauthinitform.php:63 -msgid "Change API key" -msgstr "Changer la clé de l’API" - -#: lib/yammerimporter.php:230 -msgid "Expertise:" -msgstr "Expertise :" - -#: lib/yammerimporter.php:433 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "URL d’avatar invalide : %s." - -#: lib/yammerimporter.php:441 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "Impossible de récupérer l’avatar depuis « %s »." - -#: lib/yammerapikeyform.php:56 -msgid "Yammer API registration" -msgstr "Enregistrement de l’API Yammer" - -#: lib/yammerapikeyform.php:72 -msgid "" -"Before we can connect to your Yammer network, you will need to register the " -"importer as an application authorized to pull data on your behalf. This " -"registration will work only for your own network. Follow this link to " -"register the app at Yammer; you will be prompted to log in if necessary:" -msgstr "" -"Avant de pouvoir nous connecter à votre réseau Yammer, vous devez " -"enregistrer l’application d’import comme étant autorisée à recueillir des " -"données en votre nom. Cet enregistrement ne sera valable que pour votre " -"propre réseau. Suivez ce lien pour enregistrer l’application sur Yammer ; si " -"cela est nécessaire, il vous sera demandé de vous identifier :" - -#: lib/yammerapikeyform.php:84 -msgid "Open Yammer application registration form" -msgstr "Ouvrir le formulaire d’enregistrement de l’application Yammer" - -#: lib/yammerapikeyform.php:87 -msgid "Copy the consumer key and secret you are given into the form below:" -msgstr "" -"Copiez dans le formulaire ci-dessous la clé et le secret utilisateur qui " -"vous sont donnés :" - -#: lib/yammerapikeyform.php:91 -msgid "Consumer key:" -msgstr "Clé de l'utilisateur :" - -#: lib/yammerapikeyform.php:94 -msgid "Consumer secret:" -msgstr "Secret de l'utilisateur :" - -#: lib/yammerapikeyform.php:98 -msgid "Save" -msgstr "Sauvegarder" - -#: lib/yammerapikeyform.php:98 -msgid "Save these consumer keys" -msgstr "Enregistrer ces clés utilisateur" - -#: lib/yammerauthverifyform.php:72 -msgid "" -"Follow this link to confirm authorization at Yammer; you will be prompted to " -"log in if necessary:" -msgstr "" -"Suivez ce lien pour confirmer l’autorisation sur Yammer ; il vous sera " -"demandé de vous identifier si nécessaire :" - -#: lib/yammerauthverifyform.php:87 -msgid "Open Yammer authentication window" -msgstr "Ouvrir la fenêtre d’identification Yammer" - -#: lib/yammerauthverifyform.php:90 -msgid "Copy the verification code you are given below:" -msgstr "Copiez ci-dessous le code de vérification qui vous est donné :" - -#: lib/yammerauthverifyform.php:94 -msgid "Verification code:" -msgstr "Code de vérification :" - -#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 -msgid "Continue" -msgstr "Continuer" - -#: lib/yammerauthverifyform.php:98 -msgid "Save code and begin import" -msgstr "Enregistrer le code et commencer l’import" - -#: lib/yammerprogressform.php:63 -msgid "Initialize" -msgstr "Initialiser" - -#: lib/yammerprogressform.php:64 -msgid "No import running" -msgstr "Aucun import en cours d’exécution" - -#: lib/yammerprogressform.php:65 -msgid "Initiated Yammer server connection..." -msgstr "Connexion au serveur Yammer initiée..." - -#: lib/yammerprogressform.php:69 -msgid "Awaiting authorization..." -msgstr "En attente d’autorisation..." - -#: lib/yammerprogressform.php:70 -msgid "Connected." -msgstr "Connecté." - -#: lib/yammerprogressform.php:73 -msgid "Import user accounts" -msgstr "Importer des comptes utilisateur" - -#: lib/yammerprogressform.php:74 -#, php-format -msgid "Importing %d user..." -msgid_plural "Importing %d users..." -msgstr[0] "Import de %d utilisateur..." -msgstr[1] "Import de %d utilisateurs..." - -#: lib/yammerprogressform.php:75 -#, php-format -msgid "Imported %d user." -msgid_plural "Imported %d users." -msgstr[0] "%d utilisateur importé." -msgstr[1] "%d utilisateurs importés." - -#: lib/yammerprogressform.php:78 -msgid "Import user groups" -msgstr "Importer des groupes utilisateur" - -#: lib/yammerprogressform.php:79 -#, php-format -msgid "Importing %d group..." -msgid_plural "Importing %d groups..." -msgstr[0] "Import de %d groupe..." -msgstr[1] "Import de %d groupes..." - -#: lib/yammerprogressform.php:80 -#, php-format -msgid "Imported %d group." -msgid_plural "Imported %d groups." -msgstr[0] "%d groupe importé." -msgstr[1] "%d groupes importés." - -#: lib/yammerprogressform.php:83 -msgid "Prepare public notices for import" -msgstr "Préparation de l’import d’avis publiques" - -#: lib/yammerprogressform.php:84 -#, php-format -msgid "Preparing %d notice..." -msgid_plural "Preparing %d notices..." -msgstr[0] "Préparation de %d avis..." -msgstr[1] "Préparation de %d avis..." - -#: lib/yammerprogressform.php:85 -#, php-format -msgid "Prepared %d notice." -msgid_plural "Prepared %d notices." -msgstr[0] "%d avis prépara." -msgstr[1] "%d avis préparés." - -#: lib/yammerprogressform.php:88 -msgid "Import public notices" -msgstr "Import d’avis publiques" - -#: lib/yammerprogressform.php:89 -#, php-format -msgid "Importing %d notice..." -msgid_plural "Importing %d notices..." -msgstr[0] "Import de %d avis..." -msgstr[1] "Import de %d avis..." - -#: lib/yammerprogressform.php:90 -#, php-format -msgid "Imported %d notice." -msgid_plural "Imported %d notices." -msgstr[0] "%d avis importé." -msgstr[1] "%d avis importés." - -#: lib/yammerprogressform.php:93 -msgid "Done" -msgstr "Fait" - -#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 -msgid "Import is complete!" -msgstr "L’import est terminé !" - -#: lib/yammerprogressform.php:108 -msgid "Import status" -msgstr "État de l’import" - -#: lib/yammerprogressform.php:132 -msgid "Waiting..." -msgstr "Attente..." - -#: lib/yammerprogressform.php:146 -msgid "Reset import state" -msgstr "Réinitialiser l’état de l’import" - -#: lib/yammerprogressform.php:151 -msgid "Pause import" -msgstr "Mettre l’import en pause" - -#: lib/yammerprogressform.php:160 -#, php-format -msgid "Encountered error \"%s\"" -msgstr "L’erreur « %s » est survenue" - -#: lib/yammerprogressform.php:162 -msgid "Paused" -msgstr "En pause" - -#: lib/yammerprogressform.php:165 -msgid "Abort import" -msgstr "Abandonner l’import" - -#: actions/yammeradminpanel.php:45 msgid "Yammer Import" msgstr "Import Yammer" -#: actions/yammeradminpanel.php:55 msgid "" "This Yammer import tool is still undergoing testing, and is incomplete in " "some areas. Currently user subscriptions and group memberships are not " @@ -277,6 +39,191 @@ msgstr "" "le futur pour les imports réalisés par les administrateurs autorisés du côté " "de Yammer." -#: actions/yammeradminpanel.php:102 msgid "Paused from admin panel." msgstr "Mis en pause depuis le panneau d’administration" + +msgid "Yammer import" +msgstr "Import Yammer" + +msgid "Yammer" +msgstr "Yammer" + +msgid "Expertise:" +msgstr "Expertise :" + +#, php-format +msgid "Invalid avatar URL %s." +msgstr "URL d’avatar invalide : %s." + +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Impossible de récupérer l’avatar depuis « %s »." + +msgid "Start authentication" +msgstr "Démarrer l’identification" + +msgid "Request authorization to connect to Yammer account" +msgstr "Demander l’autorisation de se connecter à un compte Yammer" + +msgid "Change API key" +msgstr "Changer la clé de l’API" + +msgid "Initialize" +msgstr "Initialiser" + +msgid "No import running" +msgstr "Aucun import en cours d’exécution" + +msgid "Initiated Yammer server connection..." +msgstr "Connexion au serveur Yammer initiée..." + +msgid "Awaiting authorization..." +msgstr "En attente d’autorisation..." + +msgid "Connected." +msgstr "Connecté." + +msgid "Import user accounts" +msgstr "Importer des comptes utilisateur" + +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Import de %d utilisateur..." +msgstr[1] "Import de %d utilisateurs..." + +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "%d utilisateur importé." +msgstr[1] "%d utilisateurs importés." + +msgid "Import user groups" +msgstr "Importer des groupes utilisateur" + +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Import de %d groupe..." +msgstr[1] "Import de %d groupes..." + +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "%d groupe importé." +msgstr[1] "%d groupes importés." + +msgid "Prepare public notices for import" +msgstr "Préparation de l’import d’avis publiques" + +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "Préparation de %d avis..." +msgstr[1] "Préparation de %d avis..." + +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "%d avis prépara." +msgstr[1] "%d avis préparés." + +msgid "Import public notices" +msgstr "Import d’avis publiques" + +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "Import de %d avis..." +msgstr[1] "Import de %d avis..." + +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "%d avis importé." +msgstr[1] "%d avis importés." + +msgid "Done" +msgstr "Fait" + +msgid "Import is complete!" +msgstr "L’import est terminé !" + +msgid "Import status" +msgstr "État de l’import" + +msgid "Waiting..." +msgstr "Attente..." + +msgid "Reset import state" +msgstr "Réinitialiser l’état de l’import" + +msgid "Pause import" +msgstr "Mettre l’import en pause" + +#, php-format +msgid "Encountered error \"%s\"" +msgstr "L’erreur « %s » est survenue" + +msgid "Paused" +msgstr "En pause" + +msgid "Continue" +msgstr "Continuer" + +msgid "Abort import" +msgstr "Abandonner l’import" + +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" +"Suivez ce lien pour confirmer l’autorisation sur Yammer ; il vous sera " +"demandé de vous identifier si nécessaire :" + +msgid "Open Yammer authentication window" +msgstr "Ouvrir la fenêtre d’identification Yammer" + +msgid "Copy the verification code you are given below:" +msgstr "Copiez ci-dessous le code de vérification qui vous est donné :" + +msgid "Verification code:" +msgstr "Code de vérification :" + +msgid "Save code and begin import" +msgstr "Enregistrer le code et commencer l’import" + +msgid "Yammer API registration" +msgstr "Enregistrement de l’API Yammer" + +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" +"Avant de pouvoir nous connecter à votre réseau Yammer, vous devez " +"enregistrer l’application d’import comme étant autorisée à recueillir des " +"données en votre nom. Cet enregistrement ne sera valable que pour votre " +"propre réseau. Suivez ce lien pour enregistrer l’application sur Yammer ; si " +"cela est nécessaire, il vous sera demandé de vous identifier :" + +msgid "Open Yammer application registration form" +msgstr "Ouvrir le formulaire d’enregistrement de l’application Yammer" + +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" +"Copiez dans le formulaire ci-dessous la clé et le secret utilisateur qui " +"vous sont donnés :" + +msgid "Consumer key:" +msgstr "Clé de l'utilisateur :" + +msgid "Consumer secret:" +msgstr "Secret de l'utilisateur :" + +msgid "Save" +msgstr "Sauvegarder" + +msgid "Save these consumer keys" +msgstr "Enregistrer ces clés utilisateur" diff --git a/plugins/YammerImport/locale/gl/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/gl/LC_MESSAGES/YammerImport.po index 543f1e22c9..1da81d50e4 100644 --- a/plugins/YammerImport/locale/gl/LC_MESSAGES/YammerImport.po +++ b/plugins/YammerImport/locale/gl/LC_MESSAGES/YammerImport.po @@ -9,253 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - YammerImport\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:11+0000\n" "Language-Team: Galician \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:55+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: gl\n" "X-Message-Group: #out-statusnet-plugin-yammerimport\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: YammerImportPlugin.php:98 -msgid "Yammer" -msgstr "" - -#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 -msgid "Yammer import" -msgstr "" - -#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 -#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 msgid "Connect to Yammer" msgstr "" -#: lib/yammerauthinitform.php:62 -msgid "Start authentication" -msgstr "" - -#: lib/yammerauthinitform.php:62 -msgid "Request authorization to connect to Yammer account" -msgstr "" - -#: lib/yammerauthinitform.php:63 -msgid "Change API key" -msgstr "" - -#: lib/yammerimporter.php:230 -msgid "Expertise:" -msgstr "" - -#: lib/yammerimporter.php:433 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "" - -#: lib/yammerimporter.php:441 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "" - -#: lib/yammerapikeyform.php:56 -msgid "Yammer API registration" -msgstr "" - -#: lib/yammerapikeyform.php:72 -msgid "" -"Before we can connect to your Yammer network, you will need to register the " -"importer as an application authorized to pull data on your behalf. This " -"registration will work only for your own network. Follow this link to " -"register the app at Yammer; you will be prompted to log in if necessary:" -msgstr "" - -#: lib/yammerapikeyform.php:84 -msgid "Open Yammer application registration form" -msgstr "" - -#: lib/yammerapikeyform.php:87 -msgid "Copy the consumer key and secret you are given into the form below:" -msgstr "" - -#: lib/yammerapikeyform.php:91 -msgid "Consumer key:" -msgstr "Clave do consumidor:" - -#: lib/yammerapikeyform.php:94 -msgid "Consumer secret:" -msgstr "Pregunta secreta do consumidor:" - -#: lib/yammerapikeyform.php:98 -msgid "Save" -msgstr "Gardar" - -#: lib/yammerapikeyform.php:98 -msgid "Save these consumer keys" -msgstr "" - -#: lib/yammerauthverifyform.php:72 -msgid "" -"Follow this link to confirm authorization at Yammer; you will be prompted to " -"log in if necessary:" -msgstr "" - -#: lib/yammerauthverifyform.php:87 -msgid "Open Yammer authentication window" -msgstr "" - -#: lib/yammerauthverifyform.php:90 -msgid "Copy the verification code you are given below:" -msgstr "" - -#: lib/yammerauthverifyform.php:94 -msgid "Verification code:" -msgstr "Código de verificación:" - -#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 -msgid "Continue" -msgstr "Continuar" - -#: lib/yammerauthverifyform.php:98 -msgid "Save code and begin import" -msgstr "" - -#: lib/yammerprogressform.php:63 -msgid "Initialize" -msgstr "Iniciar" - -#: lib/yammerprogressform.php:64 -msgid "No import running" -msgstr "" - -#: lib/yammerprogressform.php:65 -msgid "Initiated Yammer server connection..." -msgstr "" - -#: lib/yammerprogressform.php:69 -msgid "Awaiting authorization..." -msgstr "Agardando a autorización..." - -#: lib/yammerprogressform.php:70 -msgid "Connected." -msgstr "Conectado." - -#: lib/yammerprogressform.php:73 -msgid "Import user accounts" -msgstr "" - -#: lib/yammerprogressform.php:74 -#, php-format -msgid "Importing %d user..." -msgid_plural "Importing %d users..." -msgstr[0] "" -msgstr[1] "" - -#: lib/yammerprogressform.php:75 -#, php-format -msgid "Imported %d user." -msgid_plural "Imported %d users." -msgstr[0] "" -msgstr[1] "" - -#: lib/yammerprogressform.php:78 -msgid "Import user groups" -msgstr "" - -#: lib/yammerprogressform.php:79 -#, php-format -msgid "Importing %d group..." -msgid_plural "Importing %d groups..." -msgstr[0] "" -msgstr[1] "" - -#: lib/yammerprogressform.php:80 -#, php-format -msgid "Imported %d group." -msgid_plural "Imported %d groups." -msgstr[0] "" -msgstr[1] "" - -#: lib/yammerprogressform.php:83 -msgid "Prepare public notices for import" -msgstr "" - -#: lib/yammerprogressform.php:84 -#, php-format -msgid "Preparing %d notice..." -msgid_plural "Preparing %d notices..." -msgstr[0] "" -msgstr[1] "" - -#: lib/yammerprogressform.php:85 -#, php-format -msgid "Prepared %d notice." -msgid_plural "Prepared %d notices." -msgstr[0] "" -msgstr[1] "" - -#: lib/yammerprogressform.php:88 -msgid "Import public notices" -msgstr "" - -#: lib/yammerprogressform.php:89 -#, php-format -msgid "Importing %d notice..." -msgid_plural "Importing %d notices..." -msgstr[0] "" -msgstr[1] "" - -#: lib/yammerprogressform.php:90 -#, php-format -msgid "Imported %d notice." -msgid_plural "Imported %d notices." -msgstr[0] "" -msgstr[1] "" - -#: lib/yammerprogressform.php:93 -msgid "Done" -msgstr "Feito" - -#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 -msgid "Import is complete!" -msgstr "Completouse a importación!" - -#: lib/yammerprogressform.php:108 -msgid "Import status" -msgstr "Estado da importación" - -#: lib/yammerprogressform.php:132 -msgid "Waiting..." -msgstr "Agarde..." - -#: lib/yammerprogressform.php:146 -msgid "Reset import state" -msgstr "Reiniciar o estado da importación" - -#: lib/yammerprogressform.php:151 -msgid "Pause import" -msgstr "Pausar a importación" - -#: lib/yammerprogressform.php:160 -#, php-format -msgid "Encountered error \"%s\"" -msgstr "Atopouse o erro \"%s\"" - -#: lib/yammerprogressform.php:162 -msgid "Paused" -msgstr "En pausa" - -#: lib/yammerprogressform.php:165 -msgid "Abort import" -msgstr "Abortar a importación" - -#: actions/yammeradminpanel.php:45 msgid "Yammer Import" msgstr "Importación Yammer" -#: actions/yammeradminpanel.php:55 msgid "" "This Yammer import tool is still undergoing testing, and is incomplete in " "some areas. Currently user subscriptions and group memberships are not " @@ -263,6 +34,182 @@ msgid "" "verified administrators on the Yammer side." msgstr "" -#: actions/yammeradminpanel.php:102 msgid "Paused from admin panel." msgstr "En pausa desde o panel de administración." + +msgid "Yammer import" +msgstr "" + +msgid "Yammer" +msgstr "" + +msgid "Expertise:" +msgstr "" + +#, php-format +msgid "Invalid avatar URL %s." +msgstr "" + +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "" + +msgid "Start authentication" +msgstr "" + +msgid "Request authorization to connect to Yammer account" +msgstr "" + +msgid "Change API key" +msgstr "" + +msgid "Initialize" +msgstr "Iniciar" + +msgid "No import running" +msgstr "" + +msgid "Initiated Yammer server connection..." +msgstr "" + +msgid "Awaiting authorization..." +msgstr "Agardando a autorización..." + +msgid "Connected." +msgstr "Conectado." + +msgid "Import user accounts" +msgstr "" + +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "" +msgstr[1] "" + +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "" +msgstr[1] "" + +msgid "Import user groups" +msgstr "" + +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "" +msgstr[1] "" + +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "" +msgstr[1] "" + +msgid "Prepare public notices for import" +msgstr "" + +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "" +msgstr[1] "" + +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "" +msgstr[1] "" + +msgid "Import public notices" +msgstr "" + +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "" +msgstr[1] "" + +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "" +msgstr[1] "" + +msgid "Done" +msgstr "Feito" + +msgid "Import is complete!" +msgstr "Completouse a importación!" + +msgid "Import status" +msgstr "Estado da importación" + +msgid "Waiting..." +msgstr "Agarde..." + +msgid "Reset import state" +msgstr "Reiniciar o estado da importación" + +msgid "Pause import" +msgstr "Pausar a importación" + +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Atopouse o erro \"%s\"" + +msgid "Paused" +msgstr "En pausa" + +msgid "Continue" +msgstr "Continuar" + +msgid "Abort import" +msgstr "Abortar a importación" + +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" + +msgid "Open Yammer authentication window" +msgstr "" + +msgid "Copy the verification code you are given below:" +msgstr "" + +msgid "Verification code:" +msgstr "Código de verificación:" + +msgid "Save code and begin import" +msgstr "" + +msgid "Yammer API registration" +msgstr "" + +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" + +msgid "Open Yammer application registration form" +msgstr "" + +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" + +msgid "Consumer key:" +msgstr "Clave do consumidor:" + +msgid "Consumer secret:" +msgstr "Pregunta secreta do consumidor:" + +msgid "Save" +msgstr "Gardar" + +msgid "Save these consumer keys" +msgstr "" diff --git a/plugins/YammerImport/locale/ia/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/ia/LC_MESSAGES/YammerImport.po index 172dcae8d1..341a05392a 100644 --- a/plugins/YammerImport/locale/ia/LC_MESSAGES/YammerImport.po +++ b/plugins/YammerImport/locale/ia/LC_MESSAGES/YammerImport.po @@ -9,262 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - YammerImport\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:11+0000\n" "Language-Team: Interlingua \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:55+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ia\n" "X-Message-Group: #out-statusnet-plugin-yammerimport\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: YammerImportPlugin.php:98 -msgid "Yammer" -msgstr "Yammer" - -#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 -msgid "Yammer import" -msgstr "Importation de Yammer" - -#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 -#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 msgid "Connect to Yammer" msgstr "Connecter a Yammer" -#: lib/yammerauthinitform.php:62 -msgid "Start authentication" -msgstr "Comenciar authentication" - -#: lib/yammerauthinitform.php:62 -msgid "Request authorization to connect to Yammer account" -msgstr "Requestar autorisation de connecter al conto Yammer" - -#: lib/yammerauthinitform.php:63 -msgid "Change API key" -msgstr "Cambiar clave API" - -#: lib/yammerimporter.php:230 -msgid "Expertise:" -msgstr "Expertise:" - -#: lib/yammerimporter.php:433 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "URL de avatar %s invalide." - -#: lib/yammerimporter.php:441 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "Incapace de obtener avatar ab %s." - -#: lib/yammerapikeyform.php:56 -msgid "Yammer API registration" -msgstr "Registration in API de Yammer" - -#: lib/yammerapikeyform.php:72 -msgid "" -"Before we can connect to your Yammer network, you will need to register the " -"importer as an application authorized to pull data on your behalf. This " -"registration will work only for your own network. Follow this link to " -"register the app at Yammer; you will be prompted to log in if necessary:" -msgstr "" -"Ante que nos pote connecter a tu rete Yammer, tu debe registrar le " -"importator como application autorisate a colliger datos in tu nomine. Iste " -"registration functionara solmente pro tu proprie rete. Seque iste ligamine " -"pro registrar le application a Yammer; tu essera demandate de aperir session " -"si necessari:" - -#: lib/yammerapikeyform.php:84 -msgid "Open Yammer application registration form" -msgstr "Aperir formulario de registration del application Yammer" - -#: lib/yammerapikeyform.php:87 -msgid "Copy the consumer key and secret you are given into the form below:" -msgstr "" -"Copia le clave e secreto de consumitor que tu recipe in le formulario hic " -"infra:" - -#: lib/yammerapikeyform.php:91 -msgid "Consumer key:" -msgstr "Clave de consumitor:" - -#: lib/yammerapikeyform.php:94 -msgid "Consumer secret:" -msgstr "Secreto de consumitor:" - -#: lib/yammerapikeyform.php:98 -msgid "Save" -msgstr "Salveguardar" - -#: lib/yammerapikeyform.php:98 -msgid "Save these consumer keys" -msgstr "Salveguardar iste claves de consumitor" - -#: lib/yammerauthverifyform.php:72 -msgid "" -"Follow this link to confirm authorization at Yammer; you will be prompted to " -"log in if necessary:" -msgstr "" -"Seque iste ligamine pro confirmar autorisation a Yammer; tu essera demandate " -"de aperir session si necessari:" - -#: lib/yammerauthverifyform.php:87 -msgid "Open Yammer authentication window" -msgstr "Aperir fenestra de authentication a Yammer" - -#: lib/yammerauthverifyform.php:90 -msgid "Copy the verification code you are given below:" -msgstr "Copia hic infra le codice de verification que tu recipe:" - -#: lib/yammerauthverifyform.php:94 -msgid "Verification code:" -msgstr "Codice de verification:" - -#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 -msgid "Continue" -msgstr "Continuar" - -#: lib/yammerauthverifyform.php:98 -msgid "Save code and begin import" -msgstr "Salveguardar codice e comenciar importation" - -#: lib/yammerprogressform.php:63 -msgid "Initialize" -msgstr "Initialisar" - -#: lib/yammerprogressform.php:64 -msgid "No import running" -msgstr "Nulle importation in curso" - -#: lib/yammerprogressform.php:65 -msgid "Initiated Yammer server connection..." -msgstr "Connexion al servitor Yammer initiate..." - -#: lib/yammerprogressform.php:69 -msgid "Awaiting authorization..." -msgstr "Attende autorisation..." - -#: lib/yammerprogressform.php:70 -msgid "Connected." -msgstr "Connectite." - -#: lib/yammerprogressform.php:73 -msgid "Import user accounts" -msgstr "Importar contos de usator" - -#: lib/yammerprogressform.php:74 -#, php-format -msgid "Importing %d user..." -msgid_plural "Importing %d users..." -msgstr[0] "Importa %d usator..." -msgstr[1] "Importa %d usatores..." - -#: lib/yammerprogressform.php:75 -#, php-format -msgid "Imported %d user." -msgid_plural "Imported %d users." -msgstr[0] "%d usator importate." -msgstr[1] "%d usatores importate." - -#: lib/yammerprogressform.php:78 -msgid "Import user groups" -msgstr "Importar gruppos de usatores" - -#: lib/yammerprogressform.php:79 -#, php-format -msgid "Importing %d group..." -msgid_plural "Importing %d groups..." -msgstr[0] "Importa %d gruppo..." -msgstr[1] "Importa %d gruppos..." - -#: lib/yammerprogressform.php:80 -#, php-format -msgid "Imported %d group." -msgid_plural "Imported %d groups." -msgstr[0] "%d gruppo importate." -msgstr[1] "%d gruppos importate." - -#: lib/yammerprogressform.php:83 -msgid "Prepare public notices for import" -msgstr "Preparar notas public pro importation" - -#: lib/yammerprogressform.php:84 -#, php-format -msgid "Preparing %d notice..." -msgid_plural "Preparing %d notices..." -msgstr[0] "Prepara %d nota..." -msgstr[1] "Prepara %d notas..." - -#: lib/yammerprogressform.php:85 -#, php-format -msgid "Prepared %d notice." -msgid_plural "Prepared %d notices." -msgstr[0] "%d nota preparate." -msgstr[1] "%d notas preparate." - -#: lib/yammerprogressform.php:88 -msgid "Import public notices" -msgstr "Importar notas public" - -#: lib/yammerprogressform.php:89 -#, php-format -msgid "Importing %d notice..." -msgid_plural "Importing %d notices..." -msgstr[0] "Importa %d nota..." -msgstr[1] "Importa %d notas..." - -#: lib/yammerprogressform.php:90 -#, php-format -msgid "Imported %d notice." -msgid_plural "Imported %d notices." -msgstr[0] "%d nota importate." -msgstr[1] "%d notas importate." - -#: lib/yammerprogressform.php:93 -msgid "Done" -msgstr "Finite" - -#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 -msgid "Import is complete!" -msgstr "Le importation es complete!" - -#: lib/yammerprogressform.php:108 -msgid "Import status" -msgstr "Stato de importation" - -#: lib/yammerprogressform.php:132 -msgid "Waiting..." -msgstr "Attende..." - -#: lib/yammerprogressform.php:146 -msgid "Reset import state" -msgstr "Reinitialisar stato de importation" - -#: lib/yammerprogressform.php:151 -msgid "Pause import" -msgstr "Pausar importation" - -#: lib/yammerprogressform.php:160 -#, php-format -msgid "Encountered error \"%s\"" -msgstr "Incontrava error \"%s\"" - -#: lib/yammerprogressform.php:162 -msgid "Paused" -msgstr "Pausate" - -#: lib/yammerprogressform.php:165 -msgid "Abort import" -msgstr "Abortar importation" - -#: actions/yammeradminpanel.php:45 msgid "Yammer Import" msgstr "Importation de Yammer" -#: actions/yammeradminpanel.php:55 msgid "" "This Yammer import tool is still undergoing testing, and is incomplete in " "some areas. Currently user subscriptions and group memberships are not " @@ -277,6 +39,191 @@ msgstr "" "supportate pro importationes facite per administratores verificate al latere " "de Yammer." -#: actions/yammeradminpanel.php:102 msgid "Paused from admin panel." msgstr "Pausate ab le pannello admin." + +msgid "Yammer import" +msgstr "Importation de Yammer" + +msgid "Yammer" +msgstr "Yammer" + +msgid "Expertise:" +msgstr "Expertise:" + +#, php-format +msgid "Invalid avatar URL %s." +msgstr "URL de avatar %s invalide." + +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Incapace de obtener avatar ab %s." + +msgid "Start authentication" +msgstr "Comenciar authentication" + +msgid "Request authorization to connect to Yammer account" +msgstr "Requestar autorisation de connecter al conto Yammer" + +msgid "Change API key" +msgstr "Cambiar clave API" + +msgid "Initialize" +msgstr "Initialisar" + +msgid "No import running" +msgstr "Nulle importation in curso" + +msgid "Initiated Yammer server connection..." +msgstr "Connexion al servitor Yammer initiate..." + +msgid "Awaiting authorization..." +msgstr "Attende autorisation..." + +msgid "Connected." +msgstr "Connectite." + +msgid "Import user accounts" +msgstr "Importar contos de usator" + +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Importa %d usator..." +msgstr[1] "Importa %d usatores..." + +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "%d usator importate." +msgstr[1] "%d usatores importate." + +msgid "Import user groups" +msgstr "Importar gruppos de usatores" + +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Importa %d gruppo..." +msgstr[1] "Importa %d gruppos..." + +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "%d gruppo importate." +msgstr[1] "%d gruppos importate." + +msgid "Prepare public notices for import" +msgstr "Preparar notas public pro importation" + +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "Prepara %d nota..." +msgstr[1] "Prepara %d notas..." + +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "%d nota preparate." +msgstr[1] "%d notas preparate." + +msgid "Import public notices" +msgstr "Importar notas public" + +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "Importa %d nota..." +msgstr[1] "Importa %d notas..." + +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "%d nota importate." +msgstr[1] "%d notas importate." + +msgid "Done" +msgstr "Finite" + +msgid "Import is complete!" +msgstr "Le importation es complete!" + +msgid "Import status" +msgstr "Stato de importation" + +msgid "Waiting..." +msgstr "Attende..." + +msgid "Reset import state" +msgstr "Reinitialisar stato de importation" + +msgid "Pause import" +msgstr "Pausar importation" + +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Incontrava error \"%s\"" + +msgid "Paused" +msgstr "Pausate" + +msgid "Continue" +msgstr "Continuar" + +msgid "Abort import" +msgstr "Abortar importation" + +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" +"Seque iste ligamine pro confirmar autorisation a Yammer; tu essera demandate " +"de aperir session si necessari:" + +msgid "Open Yammer authentication window" +msgstr "Aperir fenestra de authentication a Yammer" + +msgid "Copy the verification code you are given below:" +msgstr "Copia hic infra le codice de verification que tu recipe:" + +msgid "Verification code:" +msgstr "Codice de verification:" + +msgid "Save code and begin import" +msgstr "Salveguardar codice e comenciar importation" + +msgid "Yammer API registration" +msgstr "Registration in API de Yammer" + +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" +"Ante que nos pote connecter a tu rete Yammer, tu debe registrar le " +"importator como application autorisate a colliger datos in tu nomine. Iste " +"registration functionara solmente pro tu proprie rete. Seque iste ligamine " +"pro registrar le application a Yammer; tu essera demandate de aperir session " +"si necessari:" + +msgid "Open Yammer application registration form" +msgstr "Aperir formulario de registration del application Yammer" + +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" +"Copia le clave e secreto de consumitor que tu recipe in le formulario hic " +"infra:" + +msgid "Consumer key:" +msgstr "Clave de consumitor:" + +msgid "Consumer secret:" +msgstr "Secreto de consumitor:" + +msgid "Save" +msgstr "Salveguardar" + +msgid "Save these consumer keys" +msgstr "Salveguardar iste claves de consumitor" diff --git a/plugins/YammerImport/locale/mk/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/mk/LC_MESSAGES/YammerImport.po index bd56dff878..2d36ba6124 100644 --- a/plugins/YammerImport/locale/mk/LC_MESSAGES/YammerImport.po +++ b/plugins/YammerImport/locale/mk/LC_MESSAGES/YammerImport.po @@ -9,62 +9,192 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - YammerImport\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:11+0000\n" "Language-Team: Macedonian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:55+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: mk\n" "X-Message-Group: #out-statusnet-plugin-yammerimport\n" "Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n" -#: YammerImportPlugin.php:98 -msgid "Yammer" -msgstr "Yammer" - -#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 -msgid "Yammer import" -msgstr "Увоз од Yammer" - -#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 -#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 msgid "Connect to Yammer" msgstr "Поврзување со Yammer" -#: lib/yammerauthinitform.php:62 -msgid "Start authentication" -msgstr "Започни проверка" +msgid "Yammer Import" +msgstr "Увоз од Yammer" -#: lib/yammerauthinitform.php:62 -msgid "Request authorization to connect to Yammer account" -msgstr "Барај овластување за поврзување со сметката на Yammer" +msgid "" +"This Yammer import tool is still undergoing testing, and is incomplete in " +"some areas. Currently user subscriptions and group memberships are not " +"transferred; in the future this may be supported for imports done by " +"verified administrators on the Yammer side." +msgstr "" +"Оваа алатка за увоз од Yammer сè уште е во фаза на испробување, а наместа е " +"недработена. Моментално не можат да се префрлаат кориснички претплати и " +"членства во групи. Ваквите префрлања може да се поддржани во иднина, и тие " +"би ги вршеле овластени администратори на Yammer." -#: lib/yammerauthinitform.php:63 -msgid "Change API key" -msgstr "Промени API-клуч" +msgid "Paused from admin panel." +msgstr "Паузирано од администраторската табла." + +msgid "Yammer import" +msgstr "Увоз од Yammer" + +msgid "Yammer" +msgstr "Yammer" -#: lib/yammerimporter.php:230 msgid "Expertise:" msgstr "Стручност:" -#: lib/yammerimporter.php:433 #, php-format msgid "Invalid avatar URL %s." msgstr "Неважечка URL-адреса на аватарот: %s." -#: lib/yammerimporter.php:441 #, php-format msgid "Unable to fetch avatar from %s." msgstr "Не можев да го преземам аватарот од %s." -#: lib/yammerapikeyform.php:56 +msgid "Start authentication" +msgstr "Започни проверка" + +msgid "Request authorization to connect to Yammer account" +msgstr "Барај овластување за поврзување со сметката на Yammer" + +msgid "Change API key" +msgstr "Промени API-клуч" + +msgid "Initialize" +msgstr "Започни" + +msgid "No import running" +msgstr "Увозот не е во тек" + +msgid "Initiated Yammer server connection..." +msgstr "Започнав со поврзувањето со опслужувачот на Yammer..." + +msgid "Awaiting authorization..." +msgstr "Чекам на овластување..." + +msgid "Connected." +msgstr "Поврзано." + +msgid "Import user accounts" +msgstr "Увези кориснички сметки" + +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Увезувам %d корисник..." +msgstr[1] "Увезувам %d корисници..." + +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "Увезов %d корисник." +msgstr[1] "Увезов %d корисници." + +msgid "Import user groups" +msgstr "Увези кориснички групи" + +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Увезувам %d група..." +msgstr[1] "Увезувам %d групи..." + +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "Увезов %d група." +msgstr[1] "Увезов %d групи." + +msgid "Prepare public notices for import" +msgstr "Подготви јавни известувања за увоз" + +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "Подготвувам %d известување..." +msgstr[1] "Подготвувам %d известувања..." + +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "Подготвив %d известување." +msgstr[1] "Подготвив %d известувања." + +msgid "Import public notices" +msgstr "Увези јавни известувања" + +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "Увезувам %d известување..." +msgstr[1] "Увезувам %d известувања..." + +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "Увезов %d известување..." +msgstr[1] "Увезов %d известувања..." + +msgid "Done" +msgstr "Готово" + +msgid "Import is complete!" +msgstr "Увозот заврши!" + +msgid "Import status" +msgstr "Увези статус" + +msgid "Waiting..." +msgstr "Чекам..." + +msgid "Reset import state" +msgstr "Врати основна состојба на увозот" + +msgid "Pause import" +msgstr "Паузирај увоз" + +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Наидов на грешка „%s“" + +msgid "Paused" +msgstr "Паузирано" + +msgid "Continue" +msgstr "Продолжи" + +msgid "Abort import" +msgstr "Прекини увоз" + +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" +"Проследете ја врскава за да го потврдите овластувањето на страницата на " +"Yammer. Ако е потребно, ќе Ви биде побарано да се најавите:" + +msgid "Open Yammer authentication window" +msgstr "Отвори прозорец за потврда на Yammer" + +msgid "Copy the verification code you are given below:" +msgstr "Ископирајте го долунаведениот потврден код:" + +msgid "Verification code:" +msgstr "Потврден код:" + +msgid "Save code and begin import" +msgstr "Зачувај код и почни со увоз" + msgid "Yammer API registration" msgstr "Регистрација на API за Yammer" -#: lib/yammerapikeyform.php:72 msgid "" "Before we can connect to your Yammer network, you will need to register the " "importer as an application authorized to pull data on your behalf. This " @@ -77,205 +207,22 @@ msgstr "" "врската за да го регистрирате програмот на Yammer. Ако е потребно, ќе Ви " "биде побарано да се најавите:" -#: lib/yammerapikeyform.php:84 msgid "Open Yammer application registration form" msgstr "Отвори образец за регистрација на програм на Yammer" -#: lib/yammerapikeyform.php:87 msgid "Copy the consumer key and secret you are given into the form below:" msgstr "" "Ископирајте ги потрошувачкиот клуч и тајната што се наведени во образецот " "подолу:" -#: lib/yammerapikeyform.php:91 msgid "Consumer key:" msgstr "Потрошувачки клуч:" -#: lib/yammerapikeyform.php:94 msgid "Consumer secret:" msgstr "Потрошувачка тајна:" -#: lib/yammerapikeyform.php:98 msgid "Save" msgstr "Зачувај" -#: lib/yammerapikeyform.php:98 msgid "Save these consumer keys" msgstr "Зачувај ги овие потрошувачки клучеви" - -#: lib/yammerauthverifyform.php:72 -msgid "" -"Follow this link to confirm authorization at Yammer; you will be prompted to " -"log in if necessary:" -msgstr "" -"Проследете ја врскава за да го потврдите овластувањето на страницата на " -"Yammer. Ако е потребно, ќе Ви биде побарано да се најавите:" - -#: lib/yammerauthverifyform.php:87 -msgid "Open Yammer authentication window" -msgstr "Отвори прозорец за потврда на Yammer" - -#: lib/yammerauthverifyform.php:90 -msgid "Copy the verification code you are given below:" -msgstr "Ископирајте го долунаведениот потврден код:" - -#: lib/yammerauthverifyform.php:94 -msgid "Verification code:" -msgstr "Потврден код:" - -#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 -msgid "Continue" -msgstr "Продолжи" - -#: lib/yammerauthverifyform.php:98 -msgid "Save code and begin import" -msgstr "Зачувај код и почни со увоз" - -#: lib/yammerprogressform.php:63 -msgid "Initialize" -msgstr "Започни" - -#: lib/yammerprogressform.php:64 -msgid "No import running" -msgstr "Увозот не е во тек" - -#: lib/yammerprogressform.php:65 -msgid "Initiated Yammer server connection..." -msgstr "Започнав со поврзувањето со опслужувачот на Yammer..." - -#: lib/yammerprogressform.php:69 -msgid "Awaiting authorization..." -msgstr "Чекам на овластување..." - -#: lib/yammerprogressform.php:70 -msgid "Connected." -msgstr "Поврзано." - -#: lib/yammerprogressform.php:73 -msgid "Import user accounts" -msgstr "Увези кориснички сметки" - -#: lib/yammerprogressform.php:74 -#, php-format -msgid "Importing %d user..." -msgid_plural "Importing %d users..." -msgstr[0] "Увезувам %d корисник..." -msgstr[1] "Увезувам %d корисници..." - -#: lib/yammerprogressform.php:75 -#, php-format -msgid "Imported %d user." -msgid_plural "Imported %d users." -msgstr[0] "Увезов %d корисник." -msgstr[1] "Увезов %d корисници." - -#: lib/yammerprogressform.php:78 -msgid "Import user groups" -msgstr "Увези кориснички групи" - -#: lib/yammerprogressform.php:79 -#, php-format -msgid "Importing %d group..." -msgid_plural "Importing %d groups..." -msgstr[0] "Увезувам %d група..." -msgstr[1] "Увезувам %d групи..." - -#: lib/yammerprogressform.php:80 -#, php-format -msgid "Imported %d group." -msgid_plural "Imported %d groups." -msgstr[0] "Увезов %d група." -msgstr[1] "Увезов %d групи." - -#: lib/yammerprogressform.php:83 -msgid "Prepare public notices for import" -msgstr "Подготви јавни известувања за увоз" - -#: lib/yammerprogressform.php:84 -#, php-format -msgid "Preparing %d notice..." -msgid_plural "Preparing %d notices..." -msgstr[0] "Подготвувам %d известување..." -msgstr[1] "Подготвувам %d известувања..." - -#: lib/yammerprogressform.php:85 -#, php-format -msgid "Prepared %d notice." -msgid_plural "Prepared %d notices." -msgstr[0] "Подготвив %d известување." -msgstr[1] "Подготвив %d известувања." - -#: lib/yammerprogressform.php:88 -msgid "Import public notices" -msgstr "Увези јавни известувања" - -#: lib/yammerprogressform.php:89 -#, php-format -msgid "Importing %d notice..." -msgid_plural "Importing %d notices..." -msgstr[0] "Увезувам %d известување..." -msgstr[1] "Увезувам %d известувања..." - -#: lib/yammerprogressform.php:90 -#, php-format -msgid "Imported %d notice." -msgid_plural "Imported %d notices." -msgstr[0] "Увезов %d известување..." -msgstr[1] "Увезов %d известувања..." - -#: lib/yammerprogressform.php:93 -msgid "Done" -msgstr "Готово" - -#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 -msgid "Import is complete!" -msgstr "Увозот заврши!" - -#: lib/yammerprogressform.php:108 -msgid "Import status" -msgstr "Увези статус" - -#: lib/yammerprogressform.php:132 -msgid "Waiting..." -msgstr "Чекам..." - -#: lib/yammerprogressform.php:146 -msgid "Reset import state" -msgstr "Врати основна состојба на увозот" - -#: lib/yammerprogressform.php:151 -msgid "Pause import" -msgstr "Паузирај увоз" - -#: lib/yammerprogressform.php:160 -#, php-format -msgid "Encountered error \"%s\"" -msgstr "Наидов на грешка „%s“" - -#: lib/yammerprogressform.php:162 -msgid "Paused" -msgstr "Паузирано" - -#: lib/yammerprogressform.php:165 -msgid "Abort import" -msgstr "Прекини увоз" - -#: actions/yammeradminpanel.php:45 -msgid "Yammer Import" -msgstr "Увоз од Yammer" - -#: actions/yammeradminpanel.php:55 -msgid "" -"This Yammer import tool is still undergoing testing, and is incomplete in " -"some areas. Currently user subscriptions and group memberships are not " -"transferred; in the future this may be supported for imports done by " -"verified administrators on the Yammer side." -msgstr "" -"Оваа алатка за увоз од Yammer сè уште е во фаза на испробување, а наместа е " -"недработена. Моментално не можат да се префрлаат кориснички претплати и " -"членства во групи. Ваквите префрлања може да се поддржани во иднина, и тие " -"би ги вршеле овластени администратори на Yammer." - -#: actions/yammeradminpanel.php:102 -msgid "Paused from admin panel." -msgstr "Паузирано од администраторската табла." diff --git a/plugins/YammerImport/locale/nl/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/nl/LC_MESSAGES/YammerImport.po index b3362acde6..4d406a145f 100644 --- a/plugins/YammerImport/locale/nl/LC_MESSAGES/YammerImport.po +++ b/plugins/YammerImport/locale/nl/LC_MESSAGES/YammerImport.po @@ -10,262 +10,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - YammerImport\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:11+0000\n" "Language-Team: Dutch \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:55+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: nl\n" "X-Message-Group: #out-statusnet-plugin-yammerimport\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: YammerImportPlugin.php:98 -msgid "Yammer" -msgstr "Yammer" - -#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 -msgid "Yammer import" -msgstr "Yammerimport" - -#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 -#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 msgid "Connect to Yammer" msgstr "Verbinden met Yammer" -#: lib/yammerauthinitform.php:62 -msgid "Start authentication" -msgstr "Authenticatie starten" - -#: lib/yammerauthinitform.php:62 -msgid "Request authorization to connect to Yammer account" -msgstr "Autorisatie verzoeken om te verbinden met Yammergebruiker" - -#: lib/yammerauthinitform.php:63 -msgid "Change API key" -msgstr "API-sleutel wijzigen" - -#: lib/yammerimporter.php:230 -msgid "Expertise:" -msgstr "Expertise:" - -#: lib/yammerimporter.php:433 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "%s is een ongeldige URL voor avatar." - -#: lib/yammerimporter.php:441 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "Het was niet mogelijk de avatar op te halen van %s." - -#: lib/yammerapikeyform.php:56 -msgid "Yammer API registration" -msgstr "API-registratie voor Yammer" - -#: lib/yammerapikeyform.php:72 -msgid "" -"Before we can connect to your Yammer network, you will need to register the " -"importer as an application authorized to pull data on your behalf. This " -"registration will work only for your own network. Follow this link to " -"register the app at Yammer; you will be prompted to log in if necessary:" -msgstr "" -"Voordat er verbinding gemaakt kan worden met uw Yammernetwerk, moet u het " -"importprogramma eerst registreren als een applicatie die namens u gegevens " -"mag ophalen. Deze registratie geldt alleen voor uw eigen netwerk. Volg de " -"onderstaande verwijzing om de applicatie bij Yammer te registreren. Als het " -"nodig is om aan te melden, wordt u dat gevraagd:" - -#: lib/yammerapikeyform.php:84 -msgid "Open Yammer application registration form" -msgstr "Applicatieregistratieformulier voor Yammer openen" - -#: lib/yammerapikeyform.php:87 -msgid "Copy the consumer key and secret you are given into the form below:" -msgstr "" -"Kopieer de gebruikerssleutel en het gebruikersgeheim dat u hebt gekregen in " -"het formulier hieronder:" - -#: lib/yammerapikeyform.php:91 -msgid "Consumer key:" -msgstr "Gebruikerssleutel:" - -#: lib/yammerapikeyform.php:94 -msgid "Consumer secret:" -msgstr "Gebruikersgeheim:" - -#: lib/yammerapikeyform.php:98 -msgid "Save" -msgstr "Opslaan" - -#: lib/yammerapikeyform.php:98 -msgid "Save these consumer keys" -msgstr "Deze gebruikerssleutels opslaan" - -#: lib/yammerauthverifyform.php:72 -msgid "" -"Follow this link to confirm authorization at Yammer; you will be prompted to " -"log in if necessary:" -msgstr "" -"Volg deze verwijzing om de autorisatie bij Yammer te bevestigen. Als u moet " -"aanmelden wordt daarom gevraagd:" - -#: lib/yammerauthverifyform.php:87 -msgid "Open Yammer authentication window" -msgstr "Authenticatievenster voor Yammer openen" - -#: lib/yammerauthverifyform.php:90 -msgid "Copy the verification code you are given below:" -msgstr "Kopieer de verificatiecode die u hebt gekregen hieronder:" - -#: lib/yammerauthverifyform.php:94 -msgid "Verification code:" -msgstr "Verificatiecode:" - -#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 -msgid "Continue" -msgstr "Doorgaan" - -#: lib/yammerauthverifyform.php:98 -msgid "Save code and begin import" -msgstr "Code opslaan en importeren" - -#: lib/yammerprogressform.php:63 -msgid "Initialize" -msgstr "Initialiseren" - -#: lib/yammerprogressform.php:64 -msgid "No import running" -msgstr "Er loopt geen import" - -#: lib/yammerprogressform.php:65 -msgid "Initiated Yammer server connection..." -msgstr "Er is verbinding gemaakt met de Yammerserver..." - -#: lib/yammerprogressform.php:69 -msgid "Awaiting authorization..." -msgstr "Wachten op autorisatie..." - -#: lib/yammerprogressform.php:70 -msgid "Connected." -msgstr "Verbonden." - -#: lib/yammerprogressform.php:73 -msgid "Import user accounts" -msgstr "Gebruikers importeren" - -#: lib/yammerprogressform.php:74 -#, php-format -msgid "Importing %d user..." -msgid_plural "Importing %d users..." -msgstr[0] "Bezig met het importeren van %d gebruiker..." -msgstr[1] "Bezig met het importeren van %d gebruikers..." - -#: lib/yammerprogressform.php:75 -#, php-format -msgid "Imported %d user." -msgid_plural "Imported %d users." -msgstr[0] "%d gebruiker geïmporteerd." -msgstr[1] "%d gebruikers geïmporteerd." - -#: lib/yammerprogressform.php:78 -msgid "Import user groups" -msgstr "Gebruikersgroepen importeren" - -#: lib/yammerprogressform.php:79 -#, php-format -msgid "Importing %d group..." -msgid_plural "Importing %d groups..." -msgstr[0] "Bezig met het importeren van %d gebruikersgroep..." -msgstr[1] "Bezig met het importeren van %d gebruikersgroepen..." - -#: lib/yammerprogressform.php:80 -#, php-format -msgid "Imported %d group." -msgid_plural "Imported %d groups." -msgstr[0] "%d gebruikersgroep geïmporteerd." -msgstr[1] "%d gebruikersgroepen geïmporteerd." - -#: lib/yammerprogressform.php:83 -msgid "Prepare public notices for import" -msgstr "Publieke mededelingen voorbereiden op import" - -#: lib/yammerprogressform.php:84 -#, php-format -msgid "Preparing %d notice..." -msgid_plural "Preparing %d notices..." -msgstr[0] "Bezig met het voorbereiden van %d mededeling..." -msgstr[1] "Bezig met het voorbereiden van %d mededelingen..." - -#: lib/yammerprogressform.php:85 -#, php-format -msgid "Prepared %d notice." -msgid_plural "Prepared %d notices." -msgstr[0] "%d mededeling voorbereid." -msgstr[1] "%d mededelingen voorbereid." - -#: lib/yammerprogressform.php:88 -msgid "Import public notices" -msgstr "Publieke mededelingen importeren" - -#: lib/yammerprogressform.php:89 -#, php-format -msgid "Importing %d notice..." -msgid_plural "Importing %d notices..." -msgstr[0] "Bezig met het importeren van %d mededeling..." -msgstr[1] "Bezig met het importeren van %d mededelingen..." - -#: lib/yammerprogressform.php:90 -#, php-format -msgid "Imported %d notice." -msgid_plural "Imported %d notices." -msgstr[0] "%d mededeling geïmporteerd." -msgstr[1] "%d mededelingen geïmporteerd." - -#: lib/yammerprogressform.php:93 -msgid "Done" -msgstr "Afgerond" - -#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 -msgid "Import is complete!" -msgstr "Het importeren is voltooid!" - -#: lib/yammerprogressform.php:108 -msgid "Import status" -msgstr "Importstatus" - -#: lib/yammerprogressform.php:132 -msgid "Waiting..." -msgstr "Even geduld alstublieft..." - -#: lib/yammerprogressform.php:146 -msgid "Reset import state" -msgstr "Importstatus herstellen" - -#: lib/yammerprogressform.php:151 -msgid "Pause import" -msgstr "Import pauzeren" - -#: lib/yammerprogressform.php:160 -#, php-format -msgid "Encountered error \"%s\"" -msgstr "Er is een fout opgetreden: \"%s\"" - -#: lib/yammerprogressform.php:162 -msgid "Paused" -msgstr "Gepauzeerd" - -#: lib/yammerprogressform.php:165 -msgid "Abort import" -msgstr "Import afbreken" - -#: actions/yammeradminpanel.php:45 msgid "Yammer Import" msgstr "Yammerimport" -#: actions/yammeradminpanel.php:55 msgid "" "This Yammer import tool is still undergoing testing, and is incomplete in " "some areas. Currently user subscriptions and group memberships are not " @@ -278,6 +40,191 @@ msgstr "" "mogelijk voor imports die door bevestigde beheerders in Yammer worden " "uitgevoerd." -#: actions/yammeradminpanel.php:102 msgid "Paused from admin panel." msgstr "Gepauzeerd vanuit het beheerpaneel." + +msgid "Yammer import" +msgstr "Yammerimport" + +msgid "Yammer" +msgstr "Yammer" + +msgid "Expertise:" +msgstr "Expertise:" + +#, php-format +msgid "Invalid avatar URL %s." +msgstr "%s is een ongeldige URL voor avatar." + +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Het was niet mogelijk de avatar op te halen van %s." + +msgid "Start authentication" +msgstr "Authenticatie starten" + +msgid "Request authorization to connect to Yammer account" +msgstr "Autorisatie verzoeken om te verbinden met Yammergebruiker" + +msgid "Change API key" +msgstr "API-sleutel wijzigen" + +msgid "Initialize" +msgstr "Initialiseren" + +msgid "No import running" +msgstr "Er loopt geen import" + +msgid "Initiated Yammer server connection..." +msgstr "Er is verbinding gemaakt met de Yammerserver..." + +msgid "Awaiting authorization..." +msgstr "Wachten op autorisatie..." + +msgid "Connected." +msgstr "Verbonden." + +msgid "Import user accounts" +msgstr "Gebruikers importeren" + +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Bezig met het importeren van %d gebruiker..." +msgstr[1] "Bezig met het importeren van %d gebruikers..." + +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "%d gebruiker geïmporteerd." +msgstr[1] "%d gebruikers geïmporteerd." + +msgid "Import user groups" +msgstr "Gebruikersgroepen importeren" + +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Bezig met het importeren van %d gebruikersgroep..." +msgstr[1] "Bezig met het importeren van %d gebruikersgroepen..." + +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "%d gebruikersgroep geïmporteerd." +msgstr[1] "%d gebruikersgroepen geïmporteerd." + +msgid "Prepare public notices for import" +msgstr "Publieke mededelingen voorbereiden op import" + +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "Bezig met het voorbereiden van %d mededeling..." +msgstr[1] "Bezig met het voorbereiden van %d mededelingen..." + +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "%d mededeling voorbereid." +msgstr[1] "%d mededelingen voorbereid." + +msgid "Import public notices" +msgstr "Publieke mededelingen importeren" + +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "Bezig met het importeren van %d mededeling..." +msgstr[1] "Bezig met het importeren van %d mededelingen..." + +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "%d mededeling geïmporteerd." +msgstr[1] "%d mededelingen geïmporteerd." + +msgid "Done" +msgstr "Afgerond" + +msgid "Import is complete!" +msgstr "Het importeren is voltooid!" + +msgid "Import status" +msgstr "Importstatus" + +msgid "Waiting..." +msgstr "Even geduld alstublieft..." + +msgid "Reset import state" +msgstr "Importstatus herstellen" + +msgid "Pause import" +msgstr "Import pauzeren" + +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Er is een fout opgetreden: \"%s\"" + +msgid "Paused" +msgstr "Gepauzeerd" + +msgid "Continue" +msgstr "Doorgaan" + +msgid "Abort import" +msgstr "Import afbreken" + +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" +"Volg deze verwijzing om de autorisatie bij Yammer te bevestigen. Als u moet " +"aanmelden wordt daarom gevraagd:" + +msgid "Open Yammer authentication window" +msgstr "Authenticatievenster voor Yammer openen" + +msgid "Copy the verification code you are given below:" +msgstr "Kopieer de verificatiecode die u hebt gekregen hieronder:" + +msgid "Verification code:" +msgstr "Verificatiecode:" + +msgid "Save code and begin import" +msgstr "Code opslaan en importeren" + +msgid "Yammer API registration" +msgstr "API-registratie voor Yammer" + +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" +"Voordat er verbinding gemaakt kan worden met uw Yammernetwerk, moet u het " +"importprogramma eerst registreren als een applicatie die namens u gegevens " +"mag ophalen. Deze registratie geldt alleen voor uw eigen netwerk. Volg de " +"onderstaande verwijzing om de applicatie bij Yammer te registreren. Als het " +"nodig is om aan te melden, wordt u dat gevraagd:" + +msgid "Open Yammer application registration form" +msgstr "Applicatieregistratieformulier voor Yammer openen" + +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" +"Kopieer de gebruikerssleutel en het gebruikersgeheim dat u hebt gekregen in " +"het formulier hieronder:" + +msgid "Consumer key:" +msgstr "Gebruikerssleutel:" + +msgid "Consumer secret:" +msgstr "Gebruikersgeheim:" + +msgid "Save" +msgstr "Opslaan" + +msgid "Save these consumer keys" +msgstr "Deze gebruikerssleutels opslaan" diff --git a/plugins/YammerImport/locale/ru/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/ru/LC_MESSAGES/YammerImport.po index 11e2b56c3c..f0dfb96960 100644 --- a/plugins/YammerImport/locale/ru/LC_MESSAGES/YammerImport.po +++ b/plugins/YammerImport/locale/ru/LC_MESSAGES/YammerImport.po @@ -10,262 +10,25 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - YammerImport\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:11+0000\n" "Language-Team: Russian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:55+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: ru\n" "X-Message-Group: #out-statusnet-plugin-yammerimport\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: YammerImportPlugin.php:98 -msgid "Yammer" -msgstr "" - -#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 -msgid "Yammer import" -msgstr "" - -#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 -#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 msgid "Connect to Yammer" msgstr "" -#: lib/yammerauthinitform.php:62 -msgid "Start authentication" -msgstr "Начало проверки подлинности" - -#: lib/yammerauthinitform.php:62 -msgid "Request authorization to connect to Yammer account" -msgstr "" - -#: lib/yammerauthinitform.php:63 -msgid "Change API key" -msgstr "" - -#: lib/yammerimporter.php:230 -msgid "Expertise:" -msgstr "" - -#: lib/yammerimporter.php:433 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "" - -#: lib/yammerimporter.php:441 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "" - -#: lib/yammerapikeyform.php:56 -msgid "Yammer API registration" -msgstr "" - -#: lib/yammerapikeyform.php:72 -msgid "" -"Before we can connect to your Yammer network, you will need to register the " -"importer as an application authorized to pull data on your behalf. This " -"registration will work only for your own network. Follow this link to " -"register the app at Yammer; you will be prompted to log in if necessary:" -msgstr "" - -#: lib/yammerapikeyform.php:84 -msgid "Open Yammer application registration form" -msgstr "" - -#: lib/yammerapikeyform.php:87 -msgid "Copy the consumer key and secret you are given into the form below:" -msgstr "" - -#: lib/yammerapikeyform.php:91 -msgid "Consumer key:" -msgstr "" - -#: lib/yammerapikeyform.php:94 -msgid "Consumer secret:" -msgstr "" - -#: lib/yammerapikeyform.php:98 -msgid "Save" -msgstr "Сохранить" - -#: lib/yammerapikeyform.php:98 -msgid "Save these consumer keys" -msgstr "" - -#: lib/yammerauthverifyform.php:72 -msgid "" -"Follow this link to confirm authorization at Yammer; you will be prompted to " -"log in if necessary:" -msgstr "" - -#: lib/yammerauthverifyform.php:87 -msgid "Open Yammer authentication window" -msgstr "" - -#: lib/yammerauthverifyform.php:90 -msgid "Copy the verification code you are given below:" -msgstr "" - -#: lib/yammerauthverifyform.php:94 -msgid "Verification code:" -msgstr "Код подтверждения:" - -#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 -msgid "Continue" -msgstr "Продолжить" - -#: lib/yammerauthverifyform.php:98 -msgid "Save code and begin import" -msgstr "Сохранить код и начать импорт" - -#: lib/yammerprogressform.php:63 -msgid "Initialize" -msgstr "Инициализация" - -#: lib/yammerprogressform.php:64 -msgid "No import running" -msgstr "Импорт не запущен" - -#: lib/yammerprogressform.php:65 -msgid "Initiated Yammer server connection..." -msgstr "" - -#: lib/yammerprogressform.php:69 -msgid "Awaiting authorization..." -msgstr "Ожидание авторизации…" - -#: lib/yammerprogressform.php:70 -msgid "Connected." -msgstr "Подсоединено." - -#: lib/yammerprogressform.php:73 -msgid "Import user accounts" -msgstr "Импорт учётных записей пользователей" - -#: lib/yammerprogressform.php:74 -#, php-format -msgid "Importing %d user..." -msgid_plural "Importing %d users..." -msgstr[0] "Импорт %d пользователя…" -msgstr[1] "Импорт %d пользователей…" -msgstr[2] "Импорт %d пользователей…" - -#: lib/yammerprogressform.php:75 -#, php-format -msgid "Imported %d user." -msgid_plural "Imported %d users." -msgstr[0] "Импортирован %d пользователь." -msgstr[1] "Импортировано %d пользователя." -msgstr[2] "Импортировано %d пользователей." - -#: lib/yammerprogressform.php:78 -msgid "Import user groups" -msgstr "Импорт групп пользователей" - -#: lib/yammerprogressform.php:79 -#, php-format -msgid "Importing %d group..." -msgid_plural "Importing %d groups..." -msgstr[0] "Импорт %d группы…" -msgstr[1] "Импорт %d группы…" -msgstr[2] "" - -#: lib/yammerprogressform.php:80 -#, php-format -msgid "Imported %d group." -msgid_plural "Imported %d groups." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: lib/yammerprogressform.php:83 -msgid "Prepare public notices for import" -msgstr "" - -#: lib/yammerprogressform.php:84 -#, php-format -msgid "Preparing %d notice..." -msgid_plural "Preparing %d notices..." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: lib/yammerprogressform.php:85 -#, php-format -msgid "Prepared %d notice." -msgid_plural "Prepared %d notices." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: lib/yammerprogressform.php:88 -msgid "Import public notices" -msgstr "" - -#: lib/yammerprogressform.php:89 -#, php-format -msgid "Importing %d notice..." -msgid_plural "Importing %d notices..." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: lib/yammerprogressform.php:90 -#, php-format -msgid "Imported %d notice." -msgid_plural "Imported %d notices." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: lib/yammerprogressform.php:93 -msgid "Done" -msgstr "Готово" - -#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 -msgid "Import is complete!" -msgstr "Импорт завершён!" - -#: lib/yammerprogressform.php:108 -msgid "Import status" -msgstr "Статус процесса импорта" - -#: lib/yammerprogressform.php:132 -msgid "Waiting..." -msgstr "Ожидание…" - -#: lib/yammerprogressform.php:146 -msgid "Reset import state" -msgstr "" - -#: lib/yammerprogressform.php:151 -msgid "Pause import" -msgstr "Приостановить импорт" - -#: lib/yammerprogressform.php:160 -#, php-format -msgid "Encountered error \"%s\"" -msgstr "Обнаружена ошибка «%s»" - -#: lib/yammerprogressform.php:162 -msgid "Paused" -msgstr "Приостановлено" - -#: lib/yammerprogressform.php:165 -msgid "Abort import" -msgstr "Прервать импорт" - -#: actions/yammeradminpanel.php:45 msgid "Yammer Import" msgstr "" -#: actions/yammeradminpanel.php:55 msgid "" "This Yammer import tool is still undergoing testing, and is incomplete in " "some areas. Currently user subscriptions and group memberships are not " @@ -273,6 +36,190 @@ msgid "" "verified administrators on the Yammer side." msgstr "" -#: actions/yammeradminpanel.php:102 msgid "Paused from admin panel." msgstr "" + +msgid "Yammer import" +msgstr "" + +msgid "Yammer" +msgstr "" + +msgid "Expertise:" +msgstr "" + +#, php-format +msgid "Invalid avatar URL %s." +msgstr "" + +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "" + +msgid "Start authentication" +msgstr "Начало проверки подлинности" + +msgid "Request authorization to connect to Yammer account" +msgstr "" + +msgid "Change API key" +msgstr "" + +msgid "Initialize" +msgstr "Инициализация" + +msgid "No import running" +msgstr "Импорт не запущен" + +msgid "Initiated Yammer server connection..." +msgstr "" + +msgid "Awaiting authorization..." +msgstr "Ожидание авторизации…" + +msgid "Connected." +msgstr "Подсоединено." + +msgid "Import user accounts" +msgstr "Импорт учётных записей пользователей" + +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Импорт %d пользователя…" +msgstr[1] "Импорт %d пользователей…" +msgstr[2] "Импорт %d пользователей…" + +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "Импортирован %d пользователь." +msgstr[1] "Импортировано %d пользователя." +msgstr[2] "Импортировано %d пользователей." + +msgid "Import user groups" +msgstr "Импорт групп пользователей" + +#, fuzzy, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Импорт %d группы…" +msgstr[1] "Импорт %d группы…" +msgstr[2] "Импорт %d группы…" + +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "Prepare public notices for import" +msgstr "" + +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "Import public notices" +msgstr "" + +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +msgid "Done" +msgstr "Готово" + +msgid "Import is complete!" +msgstr "Импорт завершён!" + +msgid "Import status" +msgstr "Статус процесса импорта" + +msgid "Waiting..." +msgstr "Ожидание…" + +msgid "Reset import state" +msgstr "" + +msgid "Pause import" +msgstr "Приостановить импорт" + +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Обнаружена ошибка «%s»" + +msgid "Paused" +msgstr "Приостановлено" + +msgid "Continue" +msgstr "Продолжить" + +msgid "Abort import" +msgstr "Прервать импорт" + +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" + +msgid "Open Yammer authentication window" +msgstr "" + +msgid "Copy the verification code you are given below:" +msgstr "" + +msgid "Verification code:" +msgstr "Код подтверждения:" + +msgid "Save code and begin import" +msgstr "Сохранить код и начать импорт" + +msgid "Yammer API registration" +msgstr "" + +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" + +msgid "Open Yammer application registration form" +msgstr "" + +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" + +msgid "Consumer key:" +msgstr "" + +msgid "Consumer secret:" +msgstr "" + +msgid "Save" +msgstr "Сохранить" + +msgid "Save these consumer keys" +msgstr "" diff --git a/plugins/YammerImport/locale/tr/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/tr/LC_MESSAGES/YammerImport.po index 05b5ecfe45..3aee9757e4 100644 --- a/plugins/YammerImport/locale/tr/LC_MESSAGES/YammerImport.po +++ b/plugins/YammerImport/locale/tr/LC_MESSAGES/YammerImport.po @@ -9,245 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - YammerImport\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:12+0000\n" "Language-Team: Turkish \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:55+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: tr\n" "X-Message-Group: #out-statusnet-plugin-yammerimport\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: YammerImportPlugin.php:98 -msgid "Yammer" -msgstr "Yammer" - -#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 -msgid "Yammer import" -msgstr "Yammer içeri aktarma" - -#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 -#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 msgid "Connect to Yammer" msgstr "Yammer'a Bağlan" -#: lib/yammerauthinitform.php:62 -msgid "Start authentication" -msgstr "Kimlik doğrulamaya başla" - -#: lib/yammerauthinitform.php:62 -msgid "Request authorization to connect to Yammer account" -msgstr "" - -#: lib/yammerauthinitform.php:63 -msgid "Change API key" -msgstr "" - -#: lib/yammerimporter.php:230 -msgid "Expertise:" -msgstr "" - -#: lib/yammerimporter.php:433 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "Geçersiz kullanıcı resmi bağlantısı %s." - -#: lib/yammerimporter.php:441 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "" - -#: lib/yammerapikeyform.php:56 -msgid "Yammer API registration" -msgstr "" - -#: lib/yammerapikeyform.php:72 -msgid "" -"Before we can connect to your Yammer network, you will need to register the " -"importer as an application authorized to pull data on your behalf. This " -"registration will work only for your own network. Follow this link to " -"register the app at Yammer; you will be prompted to log in if necessary:" -msgstr "" - -#: lib/yammerapikeyform.php:84 -msgid "Open Yammer application registration form" -msgstr "" - -#: lib/yammerapikeyform.php:87 -msgid "Copy the consumer key and secret you are given into the form below:" -msgstr "" - -#: lib/yammerapikeyform.php:91 -msgid "Consumer key:" -msgstr "" - -#: lib/yammerapikeyform.php:94 -msgid "Consumer secret:" -msgstr "" - -#: lib/yammerapikeyform.php:98 -msgid "Save" -msgstr "Kaydet" - -#: lib/yammerapikeyform.php:98 -msgid "Save these consumer keys" -msgstr "" - -#: lib/yammerauthverifyform.php:72 -msgid "" -"Follow this link to confirm authorization at Yammer; you will be prompted to " -"log in if necessary:" -msgstr "" - -#: lib/yammerauthverifyform.php:87 -msgid "Open Yammer authentication window" -msgstr "Open Yammer kimlik doğrulama penceresi" - -#: lib/yammerauthverifyform.php:90 -msgid "Copy the verification code you are given below:" -msgstr "Aşağıda verilen doğrulama kodunu kopyalayın:" - -#: lib/yammerauthverifyform.php:94 -msgid "Verification code:" -msgstr "Doğrulama kodu:" - -#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 -msgid "Continue" -msgstr "Devam et" - -#: lib/yammerauthverifyform.php:98 -msgid "Save code and begin import" -msgstr "Kodu kaydet ve içeri aktarmaya başla" - -#: lib/yammerprogressform.php:63 -msgid "Initialize" -msgstr "İlk kullanıma hazırla" - -#: lib/yammerprogressform.php:64 -msgid "No import running" -msgstr "Çalışan içeri aktarma yok" - -#: lib/yammerprogressform.php:65 -msgid "Initiated Yammer server connection..." -msgstr "Başlatılan Yammer sunucu bağlantısı..." - -#: lib/yammerprogressform.php:69 -msgid "Awaiting authorization..." -msgstr "Yetkilendirme bekleniyor..." - -#: lib/yammerprogressform.php:70 -msgid "Connected." -msgstr "Bağlandı." - -#: lib/yammerprogressform.php:73 -msgid "Import user accounts" -msgstr "Kullanıcı hesaplarını içeri aktar" - -#: lib/yammerprogressform.php:74 -#, php-format -msgid "Importing %d user..." -msgid_plural "Importing %d users..." -msgstr[0] "" - -#: lib/yammerprogressform.php:75 -#, php-format -msgid "Imported %d user." -msgid_plural "Imported %d users." -msgstr[0] "" - -#: lib/yammerprogressform.php:78 -msgid "Import user groups" -msgstr "Kullanıcı gruplarını içeri aktar" - -#: lib/yammerprogressform.php:79 -#, php-format -msgid "Importing %d group..." -msgid_plural "Importing %d groups..." -msgstr[0] "" - -#: lib/yammerprogressform.php:80 -#, php-format -msgid "Imported %d group." -msgid_plural "Imported %d groups." -msgstr[0] "" - -#: lib/yammerprogressform.php:83 -msgid "Prepare public notices for import" -msgstr "Genel durum mesajlarını içeri aktarmak için hazırla" - -#: lib/yammerprogressform.php:84 -#, php-format -msgid "Preparing %d notice..." -msgid_plural "Preparing %d notices..." -msgstr[0] "" - -#: lib/yammerprogressform.php:85 -#, php-format -msgid "Prepared %d notice." -msgid_plural "Prepared %d notices." -msgstr[0] "" - -#: lib/yammerprogressform.php:88 -msgid "Import public notices" -msgstr "Genel durum mesajlarını içeri aktar" - -#: lib/yammerprogressform.php:89 -#, php-format -msgid "Importing %d notice..." -msgid_plural "Importing %d notices..." -msgstr[0] "" - -#: lib/yammerprogressform.php:90 -#, php-format -msgid "Imported %d notice." -msgid_plural "Imported %d notices." -msgstr[0] "" - -#: lib/yammerprogressform.php:93 -msgid "Done" -msgstr "Tamamlandı" - -#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 -msgid "Import is complete!" -msgstr "İçeri aktarma tamamlandı!" - -#: lib/yammerprogressform.php:108 -msgid "Import status" -msgstr "İçeri aktarma durumu" - -#: lib/yammerprogressform.php:132 -msgid "Waiting..." -msgstr "Bekleniyor..." - -#: lib/yammerprogressform.php:146 -msgid "Reset import state" -msgstr "İçeri aktarma durumunu sıfırla" - -#: lib/yammerprogressform.php:151 -msgid "Pause import" -msgstr "İçeri aktarmayı duraklat" - -#: lib/yammerprogressform.php:160 -#, php-format -msgid "Encountered error \"%s\"" -msgstr "Karşılaşılan hata \"%s\"" - -#: lib/yammerprogressform.php:162 -msgid "Paused" -msgstr "Duraklatıldı" - -#: lib/yammerprogressform.php:165 -msgid "Abort import" -msgstr "İçeri aktarmayı iptal et" - -#: actions/yammeradminpanel.php:45 msgid "Yammer Import" msgstr "Yammer İçeri Aktar" -#: actions/yammeradminpanel.php:55 msgid "" "This Yammer import tool is still undergoing testing, and is incomplete in " "some areas. Currently user subscriptions and group memberships are not " @@ -255,6 +34,174 @@ msgid "" "verified administrators on the Yammer side." msgstr "" -#: actions/yammeradminpanel.php:102 msgid "Paused from admin panel." msgstr "Yönetim panelinden durduruldu." + +msgid "Yammer import" +msgstr "Yammer içeri aktarma" + +msgid "Yammer" +msgstr "Yammer" + +msgid "Expertise:" +msgstr "" + +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Geçersiz kullanıcı resmi bağlantısı %s." + +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "" + +msgid "Start authentication" +msgstr "Kimlik doğrulamaya başla" + +msgid "Request authorization to connect to Yammer account" +msgstr "" + +msgid "Change API key" +msgstr "" + +msgid "Initialize" +msgstr "İlk kullanıma hazırla" + +msgid "No import running" +msgstr "Çalışan içeri aktarma yok" + +msgid "Initiated Yammer server connection..." +msgstr "Başlatılan Yammer sunucu bağlantısı..." + +msgid "Awaiting authorization..." +msgstr "Yetkilendirme bekleniyor..." + +msgid "Connected." +msgstr "Bağlandı." + +msgid "Import user accounts" +msgstr "Kullanıcı hesaplarını içeri aktar" + +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "" + +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "" + +msgid "Import user groups" +msgstr "Kullanıcı gruplarını içeri aktar" + +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "" + +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "" + +msgid "Prepare public notices for import" +msgstr "Genel durum mesajlarını içeri aktarmak için hazırla" + +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "" + +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "" + +msgid "Import public notices" +msgstr "Genel durum mesajlarını içeri aktar" + +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "" + +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "" + +msgid "Done" +msgstr "Tamamlandı" + +msgid "Import is complete!" +msgstr "İçeri aktarma tamamlandı!" + +msgid "Import status" +msgstr "İçeri aktarma durumu" + +msgid "Waiting..." +msgstr "Bekleniyor..." + +msgid "Reset import state" +msgstr "İçeri aktarma durumunu sıfırla" + +msgid "Pause import" +msgstr "İçeri aktarmayı duraklat" + +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Karşılaşılan hata \"%s\"" + +msgid "Paused" +msgstr "Duraklatıldı" + +msgid "Continue" +msgstr "Devam et" + +msgid "Abort import" +msgstr "İçeri aktarmayı iptal et" + +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" + +msgid "Open Yammer authentication window" +msgstr "Open Yammer kimlik doğrulama penceresi" + +msgid "Copy the verification code you are given below:" +msgstr "Aşağıda verilen doğrulama kodunu kopyalayın:" + +msgid "Verification code:" +msgstr "Doğrulama kodu:" + +msgid "Save code and begin import" +msgstr "Kodu kaydet ve içeri aktarmaya başla" + +msgid "Yammer API registration" +msgstr "" + +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" + +msgid "Open Yammer application registration form" +msgstr "" + +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" + +msgid "Consumer key:" +msgstr "" + +msgid "Consumer secret:" +msgstr "" + +msgid "Save" +msgstr "Kaydet" + +msgid "Save these consumer keys" +msgstr "" diff --git a/plugins/YammerImport/locale/uk/LC_MESSAGES/YammerImport.po b/plugins/YammerImport/locale/uk/LC_MESSAGES/YammerImport.po index 8577621835..982672b4d2 100644 --- a/plugins/YammerImport/locale/uk/LC_MESSAGES/YammerImport.po +++ b/plugins/YammerImport/locale/uk/LC_MESSAGES/YammerImport.po @@ -9,271 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: StatusNet - YammerImport\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-03-03 17:24+0000\n" -"PO-Revision-Date: 2011-03-03 17:28:21+0000\n" +"POT-Creation-Date: 2011-03-18 19:45+0000\n" +"PO-Revision-Date: 2011-03-18 19:50:12+0000\n" "Language-Team: Ukrainian \n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-POT-Import-Date: 2011-01-29 22:29:55+0000\n" -"X-Generator: MediaWiki 1.18alpha (r83149); Translate extension (2011-02-01)\n" +"X-POT-Import-Date: 2011-03-17 10:24:39+0000\n" +"X-Generator: MediaWiki 1.18alpha (r84232); Translate extension (2011-03-11)\n" "X-Translation-Project: translatewiki.net at http://translatewiki.net\n" "X-Language-Code: uk\n" "X-Message-Group: #out-statusnet-plugin-yammerimport\n" "Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= " "2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n" -#: YammerImportPlugin.php:98 -msgid "Yammer" -msgstr "Yammer" - -#: YammerImportPlugin.php:99 actions/yammeradminpanel.php:135 -msgid "Yammer import" -msgstr "Імпорт з Yammer" - -#: lib/yammerauthinitform.php:48 lib/yammerauthverifyform.php:56 -#: lib/yammerprogressform.php:68 actions/yammerauth.php:71 msgid "Connect to Yammer" msgstr "З’єднання з Yammer" -#: lib/yammerauthinitform.php:62 -msgid "Start authentication" -msgstr "Початок автентифікації" - -#: lib/yammerauthinitform.php:62 -msgid "Request authorization to connect to Yammer account" -msgstr "Запит дозволу на підключення до Yammer" - -#: lib/yammerauthinitform.php:63 -msgid "Change API key" -msgstr "Змінити API-ключ" - -#: lib/yammerimporter.php:230 -msgid "Expertise:" -msgstr "Експертиза:" - -#: lib/yammerimporter.php:433 -#, php-format -msgid "Invalid avatar URL %s." -msgstr "Невірна URL-адреса аватари %s." - -#: lib/yammerimporter.php:441 -#, php-format -msgid "Unable to fetch avatar from %s." -msgstr "Неможливо завантажити аватару з %s." - -#: lib/yammerapikeyform.php:56 -msgid "Yammer API registration" -msgstr "Реєстрація API Yammer" - -#: lib/yammerapikeyform.php:72 -msgid "" -"Before we can connect to your Yammer network, you will need to register the " -"importer as an application authorized to pull data on your behalf. This " -"registration will work only for your own network. Follow this link to " -"register the app at Yammer; you will be prompted to log in if necessary:" -msgstr "" -"Перш ніж ми зможемо підключитися до вашого акаунту Yammer, вам необхідно " -"зареєструвати у якості імпортера цей авторизований додаток, аби той забирав " -"дані від вашого імені. Ця реєстрація буде працювати тільки для вашої власної " -"мережі. Перейдіть за цим посиланням, щоб зареєструвати додаток на Yammer; " -"вам буде запропоновано увійти до системи, якщо це необхідно:" - -#: lib/yammerapikeyform.php:84 -msgid "Open Yammer application registration form" -msgstr "Відкрити реєстраційну форму додатку для Yammer" - -#: lib/yammerapikeyform.php:87 -msgid "Copy the consumer key and secret you are given into the form below:" -msgstr "" -"Скопіюйте ключ споживача та секретний код, котрі вам було надано, до віконця " -"нижче:" - -#: lib/yammerapikeyform.php:91 -msgid "Consumer key:" -msgstr "Ключ споживача:" - -#: lib/yammerapikeyform.php:94 -msgid "Consumer secret:" -msgstr "Секретний код:" - -#: lib/yammerapikeyform.php:98 -msgid "Save" -msgstr "Зберегти" - -#: lib/yammerapikeyform.php:98 -msgid "Save these consumer keys" -msgstr "Зберегти ключі споживача" - -#: lib/yammerauthverifyform.php:72 -msgid "" -"Follow this link to confirm authorization at Yammer; you will be prompted to " -"log in if necessary:" -msgstr "" -"Перейдіть за цим посиланням для підтвердження дозволу від Yammer; вам буде " -"запропоновано увійти до системи, якщо це необхідно:" - -#: lib/yammerauthverifyform.php:87 -msgid "Open Yammer authentication window" -msgstr "Відкрити вікно автентифікації Yammer" - -#: lib/yammerauthverifyform.php:90 -msgid "Copy the verification code you are given below:" -msgstr "Скопіюйте наданий вам код підтвердження до віконця нижче:" - -#: lib/yammerauthverifyform.php:94 -msgid "Verification code:" -msgstr "Код підтвердження:" - -#: lib/yammerauthverifyform.php:98 lib/yammerprogressform.php:164 -msgid "Continue" -msgstr "Продовжити" - -#: lib/yammerauthverifyform.php:98 -msgid "Save code and begin import" -msgstr "Зберегти код і почати імпорт" - -#: lib/yammerprogressform.php:63 -msgid "Initialize" -msgstr "Ініціалізація" - -#: lib/yammerprogressform.php:64 -msgid "No import running" -msgstr "Імпорт не працює" - -#: lib/yammerprogressform.php:65 -msgid "Initiated Yammer server connection..." -msgstr "Розпочато з’єднання з сервером Yammer..." - -#: lib/yammerprogressform.php:69 -msgid "Awaiting authorization..." -msgstr "Чекаємо дозволу..." - -#: lib/yammerprogressform.php:70 -msgid "Connected." -msgstr "Під’єднано." - -#: lib/yammerprogressform.php:73 -msgid "Import user accounts" -msgstr "Імпорт облікових записів користувачів" - -#: lib/yammerprogressform.php:74 -#, php-format -msgid "Importing %d user..." -msgid_plural "Importing %d users..." -msgstr[0] "Імпорт %d користувача..." -msgstr[1] "Імпорт %d користувачів..." -msgstr[2] "Імпорт %d користувачів..." - -#: lib/yammerprogressform.php:75 -#, php-format -msgid "Imported %d user." -msgid_plural "Imported %d users." -msgstr[0] "Імпортовано %d користувача." -msgstr[1] "Імпортовано %d користувачів." -msgstr[2] "Імпортовано %d користувачів." - -#: lib/yammerprogressform.php:78 -msgid "Import user groups" -msgstr "Імпорт спільнот" - -#: lib/yammerprogressform.php:79 -#, php-format -msgid "Importing %d group..." -msgid_plural "Importing %d groups..." -msgstr[0] "Імпорт %d спільноти..." -msgstr[1] "Імпорт %d спільнот..." -msgstr[2] "Імпорт %d спільнот..." - -#: lib/yammerprogressform.php:80 -#, php-format -msgid "Imported %d group." -msgid_plural "Imported %d groups." -msgstr[0] "Імпортовано %d спільноту." -msgstr[1] "Імпортовано %d спільнот." -msgstr[2] "Імпортовано %d спільнот." - -#: lib/yammerprogressform.php:83 -msgid "Prepare public notices for import" -msgstr "Підготовка до імпорту стрічки дописів" - -#: lib/yammerprogressform.php:84 -#, php-format -msgid "Preparing %d notice..." -msgid_plural "Preparing %d notices..." -msgstr[0] "Підготовка %d допису..." -msgstr[1] "Підготовка %d дописів..." -msgstr[2] "Підготовка %d дописів..." - -#: lib/yammerprogressform.php:85 -#, php-format -msgid "Prepared %d notice." -msgid_plural "Prepared %d notices." -msgstr[0] "Готовий %d допис." -msgstr[1] "Готово %d дописів." -msgstr[2] "Готово %d дописів." - -#: lib/yammerprogressform.php:88 -msgid "Import public notices" -msgstr "Імпорт стрічки дописів" - -#: lib/yammerprogressform.php:89 -#, php-format -msgid "Importing %d notice..." -msgid_plural "Importing %d notices..." -msgstr[0] "Імпорт %d допису..." -msgstr[1] "Імпорт %d дописів..." -msgstr[2] "Імпорт %d дописів..." - -#: lib/yammerprogressform.php:90 -#, php-format -msgid "Imported %d notice." -msgid_plural "Imported %d notices." -msgstr[0] "Імпортовано %d допис." -msgstr[1] "Імпортовано %d дописів." -msgstr[2] "Імпортовано %d дописів." - -#: lib/yammerprogressform.php:93 -msgid "Done" -msgstr "Виконано" - -#: lib/yammerprogressform.php:94 lib/yammerprogressform.php:95 -msgid "Import is complete!" -msgstr "Імпорт завершено!" - -#: lib/yammerprogressform.php:108 -msgid "Import status" -msgstr "Статус процесу імпорту" - -#: lib/yammerprogressform.php:132 -msgid "Waiting..." -msgstr "Очікування..." - -#: lib/yammerprogressform.php:146 -msgid "Reset import state" -msgstr "Перезапустити імпорт" - -#: lib/yammerprogressform.php:151 -msgid "Pause import" -msgstr "Призупинити імпорт" - -#: lib/yammerprogressform.php:160 -#, php-format -msgid "Encountered error \"%s\"" -msgstr "Виявлено помилку «%s»" - -#: lib/yammerprogressform.php:162 -msgid "Paused" -msgstr "Призупинено" - -#: lib/yammerprogressform.php:165 -msgid "Abort import" -msgstr "Перервати імпорт" - -#: actions/yammeradminpanel.php:45 msgid "Yammer Import" msgstr "Імпорт з Yammer" -#: actions/yammeradminpanel.php:55 msgid "" "This Yammer import tool is still undergoing testing, and is incomplete in " "some areas. Currently user subscriptions and group memberships are not " @@ -286,6 +40,199 @@ msgstr "" "сайту Yammer піде нам на зустріч і тоді роботу над цим додатком буде " "завершено." -#: actions/yammeradminpanel.php:102 msgid "Paused from admin panel." msgstr "Призупинено з адміністраторської панелі." + +msgid "Yammer import" +msgstr "Імпорт з Yammer" + +msgid "Yammer" +msgstr "Yammer" + +msgid "Expertise:" +msgstr "Експертиза:" + +#, php-format +msgid "Invalid avatar URL %s." +msgstr "Невірна URL-адреса аватари %s." + +#, php-format +msgid "Unable to fetch avatar from %s." +msgstr "Неможливо завантажити аватару з %s." + +msgid "Start authentication" +msgstr "Початок автентифікації" + +msgid "Request authorization to connect to Yammer account" +msgstr "Запит дозволу на підключення до Yammer" + +msgid "Change API key" +msgstr "Змінити API-ключ" + +msgid "Initialize" +msgstr "Ініціалізація" + +msgid "No import running" +msgstr "Імпорт не працює" + +msgid "Initiated Yammer server connection..." +msgstr "Розпочато з’єднання з сервером Yammer..." + +msgid "Awaiting authorization..." +msgstr "Чекаємо дозволу..." + +msgid "Connected." +msgstr "Під’єднано." + +msgid "Import user accounts" +msgstr "Імпорт облікових записів користувачів" + +#, php-format +msgid "Importing %d user..." +msgid_plural "Importing %d users..." +msgstr[0] "Імпорт %d користувача..." +msgstr[1] "Імпорт %d користувачів..." +msgstr[2] "Імпорт %d користувачів..." + +#, php-format +msgid "Imported %d user." +msgid_plural "Imported %d users." +msgstr[0] "Імпортовано %d користувача." +msgstr[1] "Імпортовано %d користувачів." +msgstr[2] "Імпортовано %d користувачів." + +msgid "Import user groups" +msgstr "Імпорт спільнот" + +#, php-format +msgid "Importing %d group..." +msgid_plural "Importing %d groups..." +msgstr[0] "Імпорт %d спільноти..." +msgstr[1] "Імпорт %d спільнот..." +msgstr[2] "Імпорт %d спільнот..." + +#, php-format +msgid "Imported %d group." +msgid_plural "Imported %d groups." +msgstr[0] "Імпортовано %d спільноту." +msgstr[1] "Імпортовано %d спільнот." +msgstr[2] "Імпортовано %d спільнот." + +msgid "Prepare public notices for import" +msgstr "Підготовка до імпорту стрічки дописів" + +#, php-format +msgid "Preparing %d notice..." +msgid_plural "Preparing %d notices..." +msgstr[0] "Підготовка %d допису..." +msgstr[1] "Підготовка %d дописів..." +msgstr[2] "Підготовка %d дописів..." + +#, php-format +msgid "Prepared %d notice." +msgid_plural "Prepared %d notices." +msgstr[0] "Готовий %d допис." +msgstr[1] "Готово %d дописів." +msgstr[2] "Готово %d дописів." + +msgid "Import public notices" +msgstr "Імпорт стрічки дописів" + +#, php-format +msgid "Importing %d notice..." +msgid_plural "Importing %d notices..." +msgstr[0] "Імпорт %d допису..." +msgstr[1] "Імпорт %d дописів..." +msgstr[2] "Імпорт %d дописів..." + +#, php-format +msgid "Imported %d notice." +msgid_plural "Imported %d notices." +msgstr[0] "Імпортовано %d допис." +msgstr[1] "Імпортовано %d дописів." +msgstr[2] "Імпортовано %d дописів." + +msgid "Done" +msgstr "Виконано" + +msgid "Import is complete!" +msgstr "Імпорт завершено!" + +msgid "Import status" +msgstr "Статус процесу імпорту" + +msgid "Waiting..." +msgstr "Очікування..." + +msgid "Reset import state" +msgstr "Перезапустити імпорт" + +msgid "Pause import" +msgstr "Призупинити імпорт" + +#, php-format +msgid "Encountered error \"%s\"" +msgstr "Виявлено помилку «%s»" + +msgid "Paused" +msgstr "Призупинено" + +msgid "Continue" +msgstr "Продовжити" + +msgid "Abort import" +msgstr "Перервати імпорт" + +msgid "" +"Follow this link to confirm authorization at Yammer; you will be prompted to " +"log in if necessary:" +msgstr "" +"Перейдіть за цим посиланням для підтвердження дозволу від Yammer; вам буде " +"запропоновано увійти до системи, якщо це необхідно:" + +msgid "Open Yammer authentication window" +msgstr "Відкрити вікно автентифікації Yammer" + +msgid "Copy the verification code you are given below:" +msgstr "Скопіюйте наданий вам код підтвердження до віконця нижче:" + +msgid "Verification code:" +msgstr "Код підтвердження:" + +msgid "Save code and begin import" +msgstr "Зберегти код і почати імпорт" + +msgid "Yammer API registration" +msgstr "Реєстрація API Yammer" + +msgid "" +"Before we can connect to your Yammer network, you will need to register the " +"importer as an application authorized to pull data on your behalf. This " +"registration will work only for your own network. Follow this link to " +"register the app at Yammer; you will be prompted to log in if necessary:" +msgstr "" +"Перш ніж ми зможемо підключитися до вашого акаунту Yammer, вам необхідно " +"зареєструвати у якості імпортера цей авторизований додаток, аби той забирав " +"дані від вашого імені. Ця реєстрація буде працювати тільки для вашої власної " +"мережі. Перейдіть за цим посиланням, щоб зареєструвати додаток на Yammer; " +"вам буде запропоновано увійти до системи, якщо це необхідно:" + +msgid "Open Yammer application registration form" +msgstr "Відкрити реєстраційну форму додатку для Yammer" + +msgid "Copy the consumer key and secret you are given into the form below:" +msgstr "" +"Скопіюйте ключ споживача та секретний код, котрі вам було надано, до віконця " +"нижче:" + +msgid "Consumer key:" +msgstr "Ключ споживача:" + +msgid "Consumer secret:" +msgstr "Секретний код:" + +msgid "Save" +msgstr "Зберегти" + +msgid "Save these consumer keys" +msgstr "Зберегти ключі споживача" diff --git a/scripts/flushrouter.php b/scripts/flushrouter.php index 79493eae49..51178a725c 100644 --- a/scripts/flushrouter.php +++ b/scripts/flushrouter.php @@ -28,6 +28,7 @@ END_OF_FLUSHROUTER_HELP; require_once INSTALLDIR.'/scripts/commandline.inc'; -Cache::delete(Router::cacheKey()); +$cache = Cache::instance(); +$cache->delete(Router::cacheKey()); print "OK.\n"; \ No newline at end of file diff --git a/theme/base/css/display.css b/theme/base/css/display.css index 177b92e692..325820a0d9 100644 --- a/theme/base/css/display.css +++ b/theme/base/css/display.css @@ -609,19 +609,19 @@ float:left; font-size:1.3em; margin-bottom:7px; } -.form_notice label[for=notice_data-attach], -.form_notice #notice_data-attach { +.form_notice label.notice_data-attach, +.form_notice input.notice_data-attach { position:absolute; top:25px; right:10.5%; cursor:pointer; } -.form_notice label[for=notice_data-attach] { +.form_notice label.notice_data-attach { text-indent:-9999px; width:16px; height:16px; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { padding:0; height:16px; } @@ -658,7 +658,8 @@ float:left; max-width:322px; } .form_notice .error, -.form_notice .success { +.form_notice .success, +.form_notice .notice-status { float:left; clear:both; width:81.5%; @@ -673,7 +674,8 @@ overflow:auto; margin-right:2.5%; font-size:1.1em; } -.form_notice .attach-status button.close { +.form_notice .attach-status button.close, +.form_notice .notice-status button.close,{ float:right; font-size:0.8em; } diff --git a/theme/biz/css/base.css b/theme/biz/css/base.css index 53aca59009..3a20871de9 100644 --- a/theme/biz/css/base.css +++ b/theme/biz/css/base.css @@ -462,11 +462,11 @@ float:left; font-size:1.3em; margin-bottom:7px; } -#form_notice label[for=notice_data-attach] { +#form_notice label.notice_data-attach { text-indent:-9999px; } -#form_notice label[for=notice_data-attach], -#form_notice #notice_data-attach { +#form_notice label.notice_data-attach, +#form_notice input.notice_data-attach { position:absolute; top:25px; right:49px; @@ -474,7 +474,7 @@ width:16px; height:16px; cursor:pointer; } -#form_notice #notice_data-attach { +#form_notice input.notice_data-attach { text-indent:-279px; } #form_notice #notice_submit label { diff --git a/theme/biz/css/display.css b/theme/biz/css/display.css index 0bb53f74a8..2e96d99d1a 100644 --- a/theme/biz/css/display.css +++ b/theme/biz/css/display.css @@ -172,14 +172,14 @@ color:#333333; #form_notice.warning .count { color:#000000; } -.form_notice label[for=notice_data-attach] { +.form_notice label.notice_data-attach { background-position:0 -328px; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { opacity:0; } -.form_notice label[for=notice_data-attach], +.form_notice label.notice_data-attach, #export_data li a.rss, #export_data li a.atom, #export_data li a.foaf, diff --git a/theme/clean/css/display.css b/theme/clean/css/display.css index 96a5c02a56..ea2d62020e 100644 --- a/theme/clean/css/display.css +++ b/theme/clean/css/display.css @@ -114,8 +114,8 @@ address { height: 54px; } -.form_notice label[for=notice_data-attach], -.form_notice #notice_data-attach { +.form_notice label.notice_data-attach, +.form_notice input.notice_data-attach { top: 27px; } diff --git a/theme/clean/css/ie.css b/theme/clean/css/ie.css index 994c1297d3..272a5bbcae 100644 --- a/theme/clean/css/ie.css +++ b/theme/clean/css/ie.css @@ -61,7 +61,7 @@ line-height:auto; color:#FFFFFF; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { filter: alpha(opacity=0); } diff --git a/theme/clean/css/mp-screen.css b/theme/clean/css/mp-screen.css index 35d8326a41..8d9489b0b1 100644 --- a/theme/clean/css/mp-screen.css +++ b/theme/clean/css/mp-screen.css @@ -94,7 +94,7 @@ iPhone/iPod Touch, Android, Opera Mini Simulator .form_notice label[for="notice_data-attach"] { display:none; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { position:static; clear:both; width:65%; diff --git a/theme/cleaner/css/display.css b/theme/cleaner/css/display.css index 214c821e59..98d4560d2a 100644 --- a/theme/cleaner/css/display.css +++ b/theme/cleaner/css/display.css @@ -161,8 +161,8 @@ address { border-radius: 6px; } -.form_notice label[for=notice_data-attach], -.form_notice #notice_data-attach { +.form_notice label.notice_data-attach, +.form_notice input.notice_data-attach { top: 27px; right: 86px; } @@ -594,7 +594,7 @@ padding-right:0; right: 6px !important; } -.realtime-popup .form_notice label[for=notice_data-attach], .realtime-popup .form_notice #notice_data-attach { +.realtime-popup .form_notice label.notice_data-attach, .realtime-popup .form_notice input.notice_data-attach { right: 74px; top: 3px !important; } diff --git a/theme/cleaner/css/ie.css b/theme/cleaner/css/ie.css index dbc72b1c22..7bd48790bf 100644 --- a/theme/cleaner/css/ie.css +++ b/theme/cleaner/css/ie.css @@ -65,7 +65,7 @@ line-height:auto; color:#FFFFFF; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { filter: alpha(opacity=0); } diff --git a/theme/cleaner/css/mp-screen.css b/theme/cleaner/css/mp-screen.css index 8b55e596fe..cb3c6d06b6 100644 --- a/theme/cleaner/css/mp-screen.css +++ b/theme/cleaner/css/mp-screen.css @@ -99,7 +99,7 @@ iPhone/iPod Touch, Android, Opera Mini Simulator .form_notice label[for="notice_data-attach"] { display:none; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { position:static; clear:both; width:65%; diff --git a/theme/cloudy/css/display.css b/theme/cloudy/css/display.css index a5eabac4ad..5bc8ab0c1e 100644 --- a/theme/cloudy/css/display.css +++ b/theme/cloudy/css/display.css @@ -493,19 +493,19 @@ float:left; font-size:1.3em; margin-bottom:7px; } -.form_notice label[for=notice_data-attach], -.form_notice #notice_data-attach { +.form_notice label.notice_data-attach, +.form_notice input.notice_data-attach { position:absolute; top:25px; right:10.5%; cursor:pointer; } -.form_notice label[for=notice_data-attach] { +.form_notice label.notice_data-attach { text-indent:-9999px; width:16px; height:16px; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { padding:0; height:16px; } @@ -1602,7 +1602,7 @@ background:none; } -.form_notice label[for=notice_data-attach], +.form_notice label.notice_data-attach, #export_data li a.rss, #export_data li a.atom, #export_data li a.foaf, @@ -1787,10 +1787,10 @@ color:#000000; #form_notice.warning .count { color:#000000; } -#form_notice label[for=notice_data-attach] { +#form_notice label.notice_data-attach { background:transparent url(../../base/images/icons/twotone/green/clip-01.gif) no-repeat 0 45%; } -#form_notice #notice_data-attach { +#form_notice input.notice_data-attach { opacity:0; } diff --git a/theme/cloudy/css/ie.css b/theme/cloudy/css/ie.css index edddc16d88..013bdf9d16 100644 --- a/theme/cloudy/css/ie.css +++ b/theme/cloudy/css/ie.css @@ -34,7 +34,7 @@ height:16px; width:16px; display:block; } -#form_notice #notice_data-attach { +#form_notice input.notice_data-attach { filter: alpha(opacity = 0); left:33.5%; } diff --git a/theme/default/css/display.css b/theme/default/css/display.css index 6665297439..8f92c2d820 100644 --- a/theme/default/css/display.css +++ b/theme/default/css/display.css @@ -153,14 +153,14 @@ color:#333333; .entity_actions .dialogbox input { color:#000000; } -.form_notice label[for=notice_data-attach] { +.form_notice label.notice_data-attach { background-position:0 -328px; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { opacity:0; } -.form_notice label[for=notice_data-attach], +.form_notice label.notice_data-attach, #export_data li a.rss, #export_data li a.atom, #export_data li a.foaf, diff --git a/theme/default/css/ie.css b/theme/default/css/ie.css index 2bbeb7ffa4..3100821688 100644 --- a/theme/default/css/ie.css +++ b/theme/default/css/ie.css @@ -16,7 +16,7 @@ background-color:#C8D1D5; .form_notice .count + label { background:transparent url(../../base/images/icons/icons-01.gif) no-repeat 0 -328px; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { filter: alpha(opacity=0); } .notice-options form.form_favor input.submit { diff --git a/theme/identica/css/display.css b/theme/identica/css/display.css index fba72a09d6..fe7ffa9f7d 100644 --- a/theme/identica/css/display.css +++ b/theme/identica/css/display.css @@ -153,14 +153,14 @@ color:#333333; .entity_actions .dialogbox input { color:#000000; } -.form_notice label[for=notice_data-attach] { +.form_notice label.notice_data-attach { background-position:0 -328px; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { opacity:0; } -.form_notice label[for=notice_data-attach], +.form_notice label.notice_data-attach, #export_data li a.rss, #export_data li a.atom, #export_data li a.foaf, diff --git a/theme/identica/css/ie.css b/theme/identica/css/ie.css index 888c486f40..858cf3e181 100644 --- a/theme/identica/css/ie.css +++ b/theme/identica/css/ie.css @@ -16,7 +16,7 @@ background-color:#D9DADB; .form_notice .count + label { background:transparent url(../../base/images/icons/icons-01.gif) no-repeat 0 -328px; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { filter: alpha(opacity=0); } .notice-options form.form_favor input.submit { diff --git a/theme/mnml/css/display.css b/theme/mnml/css/display.css index 57ad426c55..e7bce84439 100644 --- a/theme/mnml/css/display.css +++ b/theme/mnml/css/display.css @@ -234,7 +234,7 @@ p.instructions { /*-- FORMS --*/ -.form_notice label[for=notice_data-attach], +.form_notice label.notice_data-attach, #export_data li a.rss, #export_data li a.atom, #export_data li a.foaf, @@ -292,7 +292,7 @@ button.minimize, .form_notice label.notice_data-geo.checked { background-position:0 -1846px; } -.form_notice label[for=notice_data-attach] { +.form_notice label.notice_data-attach { background-position:0 -328px; } button.close { @@ -937,19 +937,19 @@ z-index:2; .form_notice label { float:left; } -.form_notice label[for=notice_data-attach], -.form_notice #notice_data-attach { +.form_notice label.notice_data-attach, +.form_notice input.notice_data-attach { position:absolute; top:2em; right: 3em; cursor:pointer; } -.form_notice label[for=notice_data-attach] { +.form_notice label.notice_data-attach { text-indent:-9999px; width:16px; height:16px; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { opacity: 0; padding:0; height:1.6em; diff --git a/theme/mnml/css/ie.css b/theme/mnml/css/ie.css index fed65f8b9a..839855aa6f 100644 --- a/theme/mnml/css/ie.css +++ b/theme/mnml/css/ie.css @@ -45,7 +45,7 @@ padding:0 4px; background:transparent url(../images/icons/icons-01.png) no-repeat 0 -328px; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { filter: alpha(opacity=0); } .form_notice .notice_data-geo_wrap label { diff --git a/theme/mnml/css/mp-screen.css b/theme/mnml/css/mp-screen.css index fdee4cdef3..47fdbf5e3b 100644 --- a/theme/mnml/css/mp-screen.css +++ b/theme/mnml/css/mp-screen.css @@ -114,7 +114,7 @@ iPhone/iPod Touch, Android, Opera Mini Simulator #form_notice label[for="notice_data-attach"] { display:none; } -#form_notice #notice_data-attach { +#form_notice input.notice_data-attach { position:static; clear:both; width:65%; diff --git a/theme/neo/README b/theme/neo/README new file mode 100644 index 0000000000..39d9e0f060 --- /dev/null +++ b/theme/neo/README @@ -0,0 +1,2 @@ +Default avatars are modified from an image by Francesco 'Architetto' Rollandin. +http://www.openclipart.org/detail/34957 diff --git a/theme/neo/css/display.css b/theme/neo/css/display.css new file mode 100644 index 0000000000..5128ed8bc5 --- /dev/null +++ b/theme/neo/css/display.css @@ -0,0 +1,1249 @@ +/** theme: neo + * + * @package StatusNet + * @author Samantha Doherty + * @copyright 2011 StatusNet, Inc. + * @license http://creativecommons.org/licenses/by/3.0/ Creative Commons Attribution 3.0 Unported + * @link http://status.net/ + */ + + +@media screen, projection, tv { + +body { + background-color: #C6C8CC; + background-image: url(../images/bg.png); + font-family: 'Lato', "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + line-height: 1.6; + color: #222; +} + +input, textarea, select, option { + font-family: 'Lato', "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 1em; +} + +a {color: #3e3e8c;} +a:hover {color: blue;} + +abbr {border-bottom: none;} + +h1 {font-size: 1.6em;} +h2 {font-size: 1.6em;} +h3 {font-size: 1.4em;} +h4 {font-size: 1.4em;} +h5 {font-size: 1.2em;} +h6 {font-size: 1em;} + +#wrap { + width: 960px; + margin: 0px auto; + background: #fff url('../images/brdr_black_dot.png') repeat-x 0px 10px; + border-left: 10px solid #fff; + border-right: 10px solid #fff; + padding-top: 10px; +} + +#header { + width: 960px; + padding: 0px; + padding-top: 12px; +} + +address { + float: left; + position: relative; + top: 1px; + left: 2px; + margin: 0px; + padding: 0px; + height: 24px; + width: 148px; + z-index: 99; +} + +#site_nav_global_primary { + display: block; + position: absolute; + top: 10px; + right: 0; + width: 800px; + margin: 0px; + height: 24px; + line-height: 20px; + -webkit-border-top-right-radius: 6px; + -moz-border-radius-topright: 6px; + border-top-right-radius: 6px; + background: #364A84; + background: -moz-linear-gradient(top, #516499 , #364a84); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#516499), color-stop(100%,#364a84)); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#516499', endColorstr='#364a84',GradientType=0 ); /* XXX move all to ie.css */ +} + +#site_nav_global_primary ul { + float: right; +} + +#site_nav_global_primary li { + margin-right: 0px; +} + +#site_nav_global_primary li:last-child { + margin-right: 10px; +} + +#site_nav_global_primary a { + color: #fff !important; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5); + padding: 2px 10px 2px 10px; + height: 20px; + display: block; + float: left; +} + +#site_nav_global_primary a:hover { + color: #fff !important; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5); + background: #4c619c; + text-decoration: none; +} + +#site_notice { + color: #000; + float: right; + width: 280px; + padding: 10px; + margin-left: 40px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +#site_notice a { + color: #3e3e8c; +} + +#anon_notice { + color: #000; + clear: both; + background: none; + padding: 0px; + margin-bottom: 10px; +} + +#anon_notice a { + color: #3e3e8c; +} + +#core { + clear: both; + margin: 0px; + width: 958px; + border-top: 5px solid #FB6104; + border-left: 1px solid #d8dae6; + border-right: 1px solid #d8dae6; +} + +#aside_primary_wrapper { + width: 100%; + float: left; + overflow: hidden; + position: relative; + background-color: #ececf2; +} + +#content_wrapper { + width: 100%; + float: left; + position: relative; + right: 239px; + background-color: #fff; + border-right: 1px solid #d8dae6; +} + +#site_nav_local_views_wrapper { + width: 100%; + float: left; + position: relative; + right: 561px; + background-color: #ececf2; + border-right: 1px solid #d8dae6; +} + +#site_nav_local_views { + width: 138px; + float: left; + overflow: hidden; + position: relative; + left: 800px; + margin-top: 0px; + padding: 22px 10px 40px 10px; +} + +#site_nav_local_views H3 { + margin-bottom: 10px; + padding-bottom: 6px; + background: url('../images/brdr_black_dot.png') repeat-x bottom left; + color: #7a7c87; + font-size: 1.1em; + letter-spacing: 2px; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +#site_nav_local_views li { + display: block; + margin: 0px 0px 8px 0px; +} + +#site_nav_local_views li ul { + margin-bottom: 20px; +} + +#site_nav_local_views a { + display: block; + padding: 0px 0px 1px 10px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + text-transform: uppercase; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.5); +} + +#site_nav_local_views a:hover, #site_nav_local_views .current a { + color: #fff; + text-decoration: none; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.5); + background: #364a84; + background: -moz-linear-gradient(top, #7b8dbb , #364a84); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#7b8dbb), color-stop(100%,#364a84)); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7b8dbb', endColorstr='#364a84',GradientType=0 ); +} + +#content { + width: 520px; + float: left; + overflow: hidden; + position: relative; + left: 801px; + margin: 0px; + padding: 20px 20px 40px 20px; +} + +/* Input forms */ + +.input_forms { + float: left; + position: relative; + top: -20px; + left: -20px; + padding: 18px 20px 0px 20px; + background: #fafafa url('../images/brdr_black_dot.png') repeat-x bottom left; +} + +#input_form_nav { + float: left; + margin-bottom: 10px; +} + +#input_form_nav li a { + display: block; + float: left; + padding: 0px 10px 1px 10px; + margin-right: 10px; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + border: 1px solid #ECECF2; + font-weight: bold; + line-height: 1.4em; + text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.9); + background: #ececf2; + background: -moz-linear-gradient(top, #ffffff , #ececf2); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ffffff), color-stop(100%,#ececf2)); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#ececf2',GradientType=0 ); +} + +#input_form_nav li:hover a, #input_form_nav li.current a { + color: #fff; + text-shadow: 0px 1px 0px rgba(0, 0, 0, 0.5); + border: 1px solid #ececf2; + background: #364a84; + background: -moz-linear-gradient(top, #7b8dbb , #364a84); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#7b8dbb), color-stop(100%,#364a84)); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#7b8dbb', endColorstr='#364a84',GradientType=0 ); +} + +.input_form_nav_tab a, .input_form_nav_tab.current { + text-decoration: none !important; /* XXX cf rebase */ +} + +.input_form { + position: relative; + float: left; + width: 520px; + padding-bottom: 15px; +} + +#input_form_status { + padding-bottom: 45px; +} + +.form_notice { + padding: 0px; + background: none; +} + +.form_notice fieldset { + width: auto; + position: static; +} + +.form_notice #notice_data-text-label { + display: none; /* XXX move into input with js */ +} + +.form_notice_placeholder .placeholder { + width: 473px; + padding: 4px 10px 4px 10px; + border: 1px solid #a6a6a6; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); + z-index: 97; + font-size: 1em; +} + +.form_notice textarea { + width: 473px; + height: 42px; + padding: 6px 10px 18px 10px; + border: 1px solid #a6a6a6; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + border-radius: 4px; + box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); + -moz-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); + -webkit-box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.2); + z-index: 97; + font-size: 1.2em; +} + +.form_notice label.notice_data-attach { + top: 0px; + right: 0px; + z-index: 96; +} + +.form_notice .notice_data-geo_wrap label, +.form_notice .notice_data-geo_wrap input { + top: 26px; + right: 0px; + z-index: 99; +} + +.form_notice .count { + position: absolute; + top: 50px; + right: 35px; + font-size: 0.8em; + height: 1em; + z-index: 99; +} + +.form_notice #notice_action-submit { + position: absolute; + top: 100%; + left: 0px; + margin-top: -44px; + float: left; + width: 90px; + padding: 0px; + z-index: 99; +} + +.form_notice .error, +.form_notice .success, +.form_notice .notice-status { + width: 478px; + position: relative; + top: 0px; + float: none; + clear: none; + margin-left: 0px; + margin-top: 10px; + padding: 5px 5px 5px 10px; + border: 1px solid #ccc; +} + +.form_notice .error { + border: 1px solid #d05858; +} + +.form_notice .attach-status code { + font-size: 1em; +} + +.input_form fieldset { + margin: 0px; + padding: 0px; +} + +.input_form fieldset fieldset { + margin-bottom: 10px !important; +} + +#aside_primary { + width: 218px; + float: left; + overflow: hidden; + position: relative; + left: 802px; + padding: 22px 10px 40px 10px; + margin-top: 0px; + background: none; +} + +#aside_primary .section { + width: 100%; + margin-left: 0px; + margin-right: 0px; + font-size: 0.88em; +} + +#aside_primary h2 { + margin-bottom: 10px; + padding-bottom: 6px; + background: url('../images/brdr_black_dot.png') repeat-x bottom left; + color: #7a7c87; + font-size: 1.25em; + letter-spacing: 2px; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.5); + text-transform: uppercase; +} + +.profile_block_name { + font-size: 14px; + font-weight: bold; +} + +.profile_block_location { + font-weight: bold; +} + +.profile_block_description { + line-height: 1.2em; +} + +.profile_block .entity_actions { + float: left; + margin-left: 0px; +} + +.profile_block .entity_moderation:hover ul, +.profile_block .entity_role:hover ul { + left: 20px; +} + +.profile_block a.profiledetail { + display: block; +} + +.section ul.entities { + width: 240px; +} + +.section .entities li { + margin-right: 23px; + margin-bottom: 12px; + width: 24px; +} + +#popular_notices .avatar { + position: relative; + top: 4px; + margin-bottom: 6px; +} + +#aside_primary td { + padding-right: 20px; + padding-bottom: 14px; +} + +#aside_primary td .nickname { + line-height: 1.6em; +} + +.section .avatar { + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5); + -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5); +} + +#content h1 { + border-bottom: 3px solid #A6ADBF; + color: #A6ADBF; + font-size: 1.4em; + letter-spacing: 4px; + text-transform: none; +} + +#notices_primary { + margin-top: -5px; +} + +#content .notice { + padding-bottom: 14px; + border-bottom: 2px dotted #eee; +} + +.notice { + line-height: 1.36em; + margin-bottom: 10px; +} + +#content .notice .author .photo { + left: 0px; + top: 9px; +} + +#content .notice .entry-title { + min-height: 35px; +} + +#showstream .notice .entry-title { + min-height: 1px; +} + +#shownotice .notice .entry-title { + min-height:123px; +} + +.notice div.entry-content { + font-size: 0.88em; + line-height: 1.2em; + margin-top: 6px; + opacity: 0.6; +} + +.notice:hover div.entry-content { + opacity: 1; +} + +.user_in .notice div.entry-content { + max-width: 440px; +} + +div.entry-content a.response:before { + content: "("; +} + +div.entry-content a.response:after { + content: ")"; +} + +.notice-options { + margin-top: 4px; +} + +.threaded-replies { + clear: both; + float: left; + width: 458px; + margin-left: 59px; + margin-top: 10px; + padding-right: 2px; + border-left: 3px solid #ECECF2; + background: #fafafa; + font-size: 1em; +} + +#content .notice .threaded-replies .notice, +#content .notice .threaded-replies .notice-data { + width: 440px; + min-height: 1px; + padding-bottom: 14px; + padding-top: 5px; + border-bottom: 2px dotted #eee; + line-height: 1.36em; + margin-top: 0px; + margin-bottom: 0px; + margin-left: 10px; + background: none; +} + +#content .notice .threaded-replies .entry-title { + min-height: 1px; +} + +#content .threaded-replies .notice .author .photo { + height: 24px; + width: 24px; + top: 14px; + box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5); + -webkit-box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.5); +} + +#content .notice .threaded-replies .notice .entry-title { + margin: 2px 7px 0px 35px; +} + +#content .notice .threaded-replies .notice div.entry-content { + clear:left; + float:left; + margin-left: 35px; + margin-top: 4px !important; +} + +.threaded-replies li { + list-style-type: none; +} + +.threaded-replies .notice-reply-comments { + margin: 2px 0px 4px 10px; +} + +.threaded-replies .placeholder { + margin: 10px; + width: 426px; +} + +.threaded-replies .notice-reply { + clear: left; + position: relative; + padding: 10px; + padding-bottom: 44px; +} + +.threaded-replies .form_notice textarea { + width: 385px; +} + +.threaded-replies .form_notice label.notice_data-attach { + top: 10px; + right: 10px; +} + +.threaded-replies .form_notice .notice_data-geo_wrap label, +.threaded-replies .form_notice .notice_data-geo_wrap input { + top: 36px; + right: 10px; +} + +.threaded-replies .form_notice .count { + top: 60px; + right: 50px; +} + +.threaded-replies .form_notice #notice_action-submit { + left: 10px; +} + +.threaded-replies .form_notice .error, +.threaded-replies .form_notice .success, +.threaded-replies .form_notice .notice-status { + width: 390px; +} + +#content .notice .notice { + width: 100%; + margin-left: 0; + margin-top: 16px; + margin-bottom: 10px; +} + +.notice .notice { +background-color:rgba(200, 200, 200, 0.050); +} +.notice .notice .notice { +background-color:rgba(200, 200, 200, 0.100); +} +.notice .notice .notice .notice { +background-color:rgba(200, 200, 200, 0.150); +} +.notice .notice .notice .notice .notice { +background-color:rgba(200, 200, 200, 0.300); +} + +.pagination { + height: 1.2em; +} + +#jOverlayContent button { + top: 20px; + right: 36px; +} + +.entity_profile { + float: left; + width: 360px; + margin-top: 4px; +} + +.entity_profile .entity_depiction { + margin-top: 4px; +} + +.entity_actions { + width: 140px; + margin-top: 8px; + margin-bottom: 10px; +} + +.entity_actions a, .entity_actions p, .entity_actions .entity_subscribe input, .entity_actions .entity_block input, .entity_actions .entity_moderation input, .entity_actions .entity_role input, .entity_actions .entity_nudge input, .entity_actions .entity_delete input { + text-shadow:0 1px 0 rgba(255,255,255,0.4); + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + background-color: #CDD1DD !important; +} + +.entity_moderation:hover ul, +.entity_role:hover ul { + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; +} + +.entity_send-a-message .form_notice legend { + text-shadow:0 1px 0 rgba(255,255,255,0.4); +} + +.entity_send-a-message .form_notice { + border: 1px solid #7B4E82; +} + +.entity_send-a-message .form_notice #notice_action-submit { + color: #fff !important; + top: 46px; +} + +#aside_primary #entity_remote_subscribe a:hover { + background-color: #fff !important; +} + +#entity_remote_subscribe .dialogbox { + border: 1px solid #7B4E82; + border-radius: 8px; + -moz-border-radius: 8px; + -webkit-border-radius: 8px; +} + +#entity_remote_subscribe input { + padding-left: 4px; +} + +#entity_remote_subscribe .submit_dialogbox { + margin-top: 10px; + float: right; +} + +#filter_tags_item .submit { + left: 6px; + top: -3px; +} + +#pagination { + height: 1.2em; + padding-bottom: 12px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} + +#footer { + position: relative; + top: -6px; + color: #000; + margin-left: 0px; + margin-right: 0px; + -webkit-border-top-left-radius: 6px; + -webkit-border-top-right-radius: 6px; + -moz-border-radius-topleft: 6px; + -moz-border-radius-topright: 6px; + border-top-left-radius: 6px; + border-top-right-radius: 6px; +} + +#footer a { + color: #3e3e8c; +} + +#site_nav_global_secondary { + margin-bottom: 10px; +} + +.error, .success, .notice-status { + background-color: #F7E8E8; + padding: 4px; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; +} +.success, .notice-status { + background-color: #f2f2f2; +} + +.form_notice input.submit, .form_settings input.submit, .form_settings input.cancel { + height: 1.9em; + padding: 0px 10px; + color:#fff; + font-weight: bold; + text-transform: uppercase; + font-size: 1.2em; + text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.2); + border: 1px solid #d7621c; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + background: #FB6104; + background: -moz-linear-gradient(top, #ff9d63 , #FB6104); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ff9d63), color-stop(100%,#FB6104)); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff9d63', endColorstr='#FB6104',GradientType=0 ); +} + +.form_notice input.submit:hover, .form_settings input.submit:hover, .form_settings input.cancel:hover { + text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.6); + background: #ff9d63; + background: -moz-linear-gradient(top, #FB6104 , #fc8035); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FB6104), color-stop(100%,#fc8035)); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FB6104', endColorstr='#fc8035',GradientType=0 ); +} + +.form_settings input#settings_design_reset, .form_settings input.cancel { + background: #e2e2e2; + color: #8e181b; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.5); +} + +.form_settings input#settings_design_reset:hover, .form_settings input.cancel:hover { + background: #f2f2f2; + color: #8e181b; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.5); +} + +.form_settings input.checkbox, .form_settings input.radio { + margin-left: 24%; + margin-top: 2px; + position: relative; + left: -14px; +} + +.form_settings label.checkbox, .form_settings label.radio { + width: auto; + max-width: 60%; + position: relative; + left: -30px; +} + +.form_settings li input.radio { + clear: left; +} + +.form_settings label.radio { + margin-left: 10px; + margin-right: 10px; + text-align: left; +} + +#form_login p.form_guide, #form_register #settings_rememberme p.form_guide, #form_openid_login #settings_rememberme p.form_guide, #settings_twitter_remove p.form_guide, #design_background-image_onoff p.form_guide { + margin-left: 26%; +} + +#form_search ul.form_data #q { + margin-left: 10px; +} + +.form_settings fieldset fieldset { + margin-bottom: 30px; + padding-top: 25px; +} + + +#content thead th { +text-align:left; +} +#content tbody th { +vertical-align:top; +text-align:left; +font-weight:normal; +padding-top:11px; +padding-right:18px; +} +#content tbody tr { + border-top: 1px dotted #bbb; +} +#content td { +padding:11px 18px 11px 0; +vertical-align:top; +} +#content td:last-child { +padding-right:0; +} + + +#realtime_actions { + position: relative !important; + float: right; + padding-top: 15px; + margin-bottom: -8px !important; +} + +.realtime-popup #content { + padding-left: 4px !important; + padding-right: 4px !important; + margin-right: 0px; + left: 0; + right: 0; + width: 400px; + overflow: visible; +} + +.realtime-popup .threaded-replies { + margin-left: 10px; +} + +.realtime-popup .input_forms { + display: none; /* XXX fixme! */ +} + +.realtime-popup .form_notice textarea { + width: 325px !important; +} + +.realtime-popup .form_notice #notice_action-submit { + top: 59px !important; + right: 6px !important; +} + +.realtime-popup .form_notice label.notice_data-attach, .realtime-popup .form_notice input.notice_data-attach { + right: 74px; + top: 3px !important; +} + +.realtime-popup .form_notice #notice_data-geo_wrap label, .realtime-popup .form_notice #notice_data-geo_wrap input { + right: 8px; + top: 3px !important; +} + + +/* Bookmark specific styles */ + +#content .bookmark .entry-title { + margin-left: 0px; +} + +.bookmark h3 { + margin: 0px 0px 8px 0px; + float: left; + line-height: 1.2em; + max-width: 92%; +} + +.bookmark-notice-count { + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + padding: 1px 6px; + font-size: 1.2em; + line-height: 1.2em; + background: #fff; + border: 1px solid #7b8dbb; + color: #3e3e8c !important; + position: relative; + right: 4px; + margin-left: 10px; +} + +.bookmark-notice-count:hover { + text-decoration: none; + background: #f2f2f2; + border: 1px solid #7b8dbb; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.5); +} + +.notice .bookmark-description { + clear: both; + margin-left: 0px; + margin-bottom: 0px; +} + +.notice .bookmark-author { + margin-left: 0px; + float: left; +} + +.bookmark-tags { + clear: both; + margin-bottom: 8px; + line-height: 1.6em; +} + +ul.bookmark-tags a { + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + padding: 1px 6px; + background: #f2f2f2; + color: #3e3e8c !important; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.5); + font-size: 0.88em; +} + +ul.bookmark-tags a:hover { + background-color: #cdd1dd; + text-decoration: none; +} + +.bookmark-avatar { + float: none !important; + position: relative; + top: 2px; +} + +.bookmark div.entry-content { + font-size: 0.88em; + line-height: 1.2em; + margin-top: 6px; + opacity: 0.6; + margin-bottom: 0px; +} + +.bookmark:hover div.entry-content { + opacity: 1; +} + +.bookmark .notice-options { + margin-top: 16px; +} + +#bookmarkpopup { + min-width: 600px; + margin-top: 0px; + height: 100%; + border: 10px solid #364A84; + background: #364A84; +} + +#bookmarkpopup #wrap { + width: auto; + min-width: 560px; + padding: 40px 0px 25px 0px; + margin-right: 2px; + background: #fff url(../mobilelogo.png) no-repeat 6px 6px; +} + +#bookmarkpopup #header { + width: auto; + padding: 0px 10px; +} + +#bookmarkpopup .form_settings label { + margin-top: 2px; + text-align: right; + width: 24%; + font-size: 1.2em; +} + +#bookmarkpopup .form_settings .form_data input { + width: 60%; +} + +#bookmarkpopup .form_guide { + color: #777; +} + +#bookmarkpopup #submit { + float: right; + margin-right: 0px; +} + +#bookmarkpopup fieldset fieldset { + margin-bottom: 10px; +} + +/* Onboard specific styles */ + +.onboard-flash { + position: relative; + right: -800px; + top: 10px; + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + font-size: 1.1em; + box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.5); + -moz-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.5); + -webkit-box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.5); +} + +.onboard-flash p { + margin-bottom: 10px; +} + +.onboard-flash .next:before { + content: '\00BB'; + padding-right: 6px; +} + +.onboard-breadcrumbs { + margin-bottom: 16px !important; +} + +.onboard-breadcrumbs li { + background: none !important; + border-top: none !important; + padding: 6px 12px 2px 0px !important; +} + +.onboard-breadcrumbs li:last-child { + padding-right: 0px !important; +} + +.onboard-breadcrumbs a { + text-decoration: none; +} + +.onboard-breadcrumbs a:hover { + color: #3e3e8c !important; +} + +/* Billing specific styles */ + +#content table.billing_info { + margin-top: 10px; + background:rgba(240, 240, 240, 0.4); +} + +#content table.billing_info th { + text-align: right; + width: 50%; +} + +.invalid { + border: solid 2px red !important; +} + +#payment_history table { + width: 100%; +} + +#billingadminpanel .form_settings input { + margin-right: 0px; +} + +/* Directory specific styles */ + +td.entity_profile { + width: auto; +} + +#user_directory { + position: relative; + top: -20px; +} + +div#user_directory div.alpha_nav > a { + border-left: 1px solid #ccc !important; + padding-left: 3.5px !important; + padding-right: 4px !important; + margin-right: 0px; + float: left; + line-height: 1.4em; +} + +div#user_directory div.alpha_nav > a.first { + border-left: none !important; +} + +div#user_directory div.alpha_nav a.current { + background-color: #ECECF2 !important; +} + +table.profile_list { + margin-top: 10px; +} + +.profile_list th#created { + width: 100px; +} + +.profile_list th#subscriptions { + width: 120px; +} + +table.profile_list tr.alt { + background-color: #fafafa !important; +} + +.profile_list .entity_actions { + width: 30px; + height: 26px; + margin-right: 5px; +} + +.profile_list .entity_actions input { + width: 26px; + height: 26px; + display: block; + overflow: hidden; + font-size: 0em; +} + +/* Event specific styles */ + +.notice .vevent div { + margin-bottom: 8px; +} + +.event-info { + margin-left: 0px !important; + margin-top: 2px !important; +} + +.notice .event-info + .notice-options { + margin-top: 14px; +} + +.notice .threaded-replies .event-info + .notice-options { + margin-top: 20px; +} + +#form_event_rsvp #new_rsvp_data { + display: inline; + margin: 10px 0px; +} + +#form_event_rsvp input.submit { + height: auto; + padding: 0px 10px; + margin-left: 10px; + color:#fff; + font-weight: bold; + text-transform: uppercase; + font-size: 1.1em; + text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.2); + border: 1px solid #d7621c; + border-radius: 4px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + background: #FB6104; + background: -moz-linear-gradient(top, #ff9d63 , #FB6104); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ff9d63), color-stop(100%,#FB6104)); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ff9d63', endColorstr='#FB6104',GradientType=0 ); +} + +#form_event_rsvp input.submit:hover { + text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.6); + background: #ff9d63; + background: -moz-linear-gradient(top, #FB6104 , #fc8035); + background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#FB6104), color-stop(100%,#fc8035)); + filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#FB6104', endColorstr='#fc8035',GradientType=0 ); +} + +}/*end of @media screen, projection, tv*/ diff --git a/theme/neo/css/ie.css b/theme/neo/css/ie.css new file mode 100644 index 0000000000..b7e4a840cd --- /dev/null +++ b/theme/neo/css/ie.css @@ -0,0 +1,104 @@ +/* Temporary copy of base styles for overriding */ + +input.checkbox, +input.radio { +top:0; +} +.form_notice textarea { + width: 473px; +} +.threaded-replies .form_notice textarea { + width: 385px; +} + +.form_notice .form_note + label { +position:absolute; +top:25px; +left:83%; +text-indent:-9999px; +height:16px; +width:16px; +display:block; + left: 390px; + top: 27px; +} +.form_notice #notice_action-submit { + width: 106px; + max-width: 106px; +} +.form_notice input.notice_data-attach_selected, +.form_notice #notice_data-geo_selected { +width:78.75%; +} +.form_notice input.notice_data-attach_selected button, +.form_notice #notice_data-geo_selected button { +padding:0 4px; +} +.notice-options input.submit { +font-size:0; +text-align:right; +text-indent:0; +} +.notice div.entry-content .timestamp a { +margin-right:4px; +} +.entity_profile { +width:64%; +} +.notice { +z-index:1; +} +.notice:hover { +z-index:9999; +} +.notice .thumbnail img { +z-index:9999; +} + +.form_settings fieldset fieldset legend { +line-height:auto; +} + +/* IE specific styles */ + +#site_nav_global_primary ul { + margin-right: 0px; +} + +#site_nav_local_views ul { + list-style-type: none; + list-style-position: outside; +} + +#site_nav_local_views a { + width: 126px; +} + +.notice-options input.submit { + color:#FFFFFF; +} + +.form_notice input.notice_data-attach { + filter: alpha(opacity=0); +} + +.form_notice .form_note + label { + background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -328px; +} + +.form_notice #notice_data-geo_wrap label { + background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -1780px; +} +.form_notice #notice_data-geo_wrap label.checked { + background:transparent url(../../rebase/images/icons/icons-01.gif) no-repeat 0 -1846px; +} + +/* IE6 sucks */ + +#content { + _width: 520px; +} + +#aside_primary { + _width: 190px; +} diff --git a/theme/neo/css/mp-screen.css b/theme/neo/css/mp-screen.css new file mode 100644 index 0000000000..1b7480ecaf --- /dev/null +++ b/theme/neo/css/mp-screen.css @@ -0,0 +1,204 @@ +/* mobile style */ + +body { + background-image: none; + min-width: 0; +} + +#wrap { + margin: 0; + padding: 0; + min-width:0; + max-width:100%; +} + +#header { + width: 96%; + padding: 0 2%; + padding-top: 20px; +} + +.user_in #header { + padding-top: 40px; +} + +address { +margin:1em 0 0 0; +float:left; +width:100%; +} + +address img + .fn { +display:block; +margin-top:1em; + margin-right: 10px; +clear: left; +float:left; +} + +#site_nav_global_primary { + margin:0; + width: 100%; + padding: 4px 0; + height: auto; + position:absolute; + top:0; + left:0; + font-size: 1em; + letter-spacing: 0em; + border-top: none; +} + +#site_nav_global_primary li { + margin-left:0; + margin-right:0px; + float:left; + font-size:0.9em; + padding: 2px 4px; + line-height: 1em; + height: auto; +} + +#site_nav_global_primary li a { + height: auto; +} + +.form_notice { + float: left; + margin-left: 0px; + width: 300px; + padding: 4px; +} + +#form_notice-direct.form_notice { + padding-top: 10px; +} + +.form_notice textarea { + width: 210px; + height: 50px; + padding: 4px; +} + +#notice_text-count { +position:absolute; +bottom:2px; + left: 175px; + font-size: 0.8em; +z-index:9; +} + +#form_notice-direct.form_notice #notice_text-count { + left: 0px; +} + +/*input type=file no good in +iPhone/iPod Touch, Android, Opera Mini Simulator +*/ +.form_notice #notice_text-count + label, +.form_notice label[for="notice_data-attach"] { +display:none; +} +.form_notice input.notice_data-attach { +position:static; +clear:both; +width:65%; +height:auto; +display:block; +z-index:9; +padding:0; +margin:0; +background:none; +opacity:1; +} + +.form_notice #notice_action-submit { + text-align: center; + left: 230px; + top: 32px; + width: 70px; + font-size: 0.8em; +} + +#form_notice-direct.form_notice #notice_action-submit { + top: 62px; +} + +#site_nav_local_views { + height: auto; + font-size: 0.9em; + line-height: 2em; + margin-bottom: 0px; + padding-left: 4px; + background: none; +} + +#site_nav_local_views li { + margin-right: 6px; +} + +#site_nav_local_views a { + background-color: #7080aa; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + margin-right: 2px; + margin-bottom: 2px; +} + +#core { + width: 100%; + margin: 0; +} + +#content { + width: 96%; + padding: 10px 2%; + margin: 0; + min-height: auto; +} + +#footer { + margin: 0; + padding: 10px 4px 4px 4px; +} + + +.form_settings fieldset { +margin-bottom:7px; +} + +.form_settings label { +width:auto; +display:block; +float:none; + text-align: left; +} + +.form_settings .form_data li { +margin-bottom:7px; +} + +.form_settings .form_data textarea, +.form_settings .form_data select, +.form_settings .form_data input { +margin-left:0; +display:block; +} +.form_settings .form_data textarea { +width:96.41%; +} + +.form_settings .form_data label { +float:none; +} + +.form_settings .form_data p.form_guide { +width:auto; +margin-left:0; +} + +#settings_design_color .form_data { + width: auto; + margin-right: 0; +} diff --git a/theme/neo/default-avatar-mini.png b/theme/neo/default-avatar-mini.png new file mode 100644 index 0000000000..3f3f026ab7 Binary files /dev/null and b/theme/neo/default-avatar-mini.png differ diff --git a/theme/neo/default-avatar-profile.png b/theme/neo/default-avatar-profile.png new file mode 100644 index 0000000000..f9addc06b4 Binary files /dev/null and b/theme/neo/default-avatar-profile.png differ diff --git a/theme/neo/default-avatar-stream.png b/theme/neo/default-avatar-stream.png new file mode 100644 index 0000000000..e542854e77 Binary files /dev/null and b/theme/neo/default-avatar-stream.png differ diff --git a/theme/neo/images/bg.png b/theme/neo/images/bg.png new file mode 100644 index 0000000000..df665bd727 Binary files /dev/null and b/theme/neo/images/bg.png differ diff --git a/theme/neo/images/brdr_black_dot.png b/theme/neo/images/brdr_black_dot.png new file mode 100644 index 0000000000..8a300b1e93 Binary files /dev/null and b/theme/neo/images/brdr_black_dot.png differ diff --git a/theme/neo/images/brdr_white_dot.png b/theme/neo/images/brdr_white_dot.png new file mode 100644 index 0000000000..cdb2d5b205 Binary files /dev/null and b/theme/neo/images/brdr_white_dot.png differ diff --git a/theme/neo/logo.png b/theme/neo/logo.png new file mode 100644 index 0000000000..3891979530 Binary files /dev/null and b/theme/neo/logo.png differ diff --git a/theme/neo/mobilelogo.png b/theme/neo/mobilelogo.png new file mode 100644 index 0000000000..781e79578c Binary files /dev/null and b/theme/neo/mobilelogo.png differ diff --git a/theme/neo/theme.ini b/theme/neo/theme.ini new file mode 100644 index 0000000000..05d914c5e8 --- /dev/null +++ b/theme/neo/theme.ini @@ -0,0 +1,2 @@ +external[]="http://fonts.googleapis.com/css?family=Lato:100,100italic,300,300italic,400,400italic,700,700italic,900,900italic" +include=rebase diff --git a/theme/pigeonthoughts/css/base.css b/theme/pigeonthoughts/css/base.css index 59cba446ac..2eade7a451 100644 --- a/theme/pigeonthoughts/css/base.css +++ b/theme/pigeonthoughts/css/base.css @@ -450,19 +450,24 @@ float:left; font-size:1.3em; margin-bottom:7px; } -#form_notice label[for=notice_data-attach], -#form_notice #notice_data-attach { +#form_notice label.notice_data-attach, +#form_notice input.notice_data-attach { position:absolute; -top:25px; cursor:pointer; } -#form_notice label[for=notice_data-attach] { +#form_notice label.notice_data-attach { +top:25px; +} +#form_notice input.notice_data-attach { +top:0; +} +#form_notice label.notice_data-attach { text-indent:-9999px; left:394px; width:16px; height:16px; } -#form_notice #notice_data-attach { +#form_notice input.notice_data-attach { left:183px; padding:0; height:16px; diff --git a/theme/pigeonthoughts/css/display.css b/theme/pigeonthoughts/css/display.css index b4f2f297b0..3ac0f0bce7 100644 --- a/theme/pigeonthoughts/css/display.css +++ b/theme/pigeonthoughts/css/display.css @@ -192,14 +192,14 @@ color:#333333; #form_notice.warning .count { color:#000000; } -#form_notice label[for=notice_data-attach] { +#form_notice label.notice_data-attach { background-position:0 -328px; } -#form_notice #notice_data-attach { +#form_notice input.notice_data-attach { opacity:0; } -.form_notice label[for=notice_data-attach], +.form_notice label.notice_data-attach, #export_data li a.rss, #export_data li a.atom, #export_data li a.foaf, diff --git a/theme/rebase/css/display.css b/theme/rebase/css/display.css index 32df41b93a..6c3c9e6296 100644 --- a/theme/rebase/css/display.css +++ b/theme/rebase/css/display.css @@ -226,21 +226,28 @@ address .poweredby { color: #333 !important; } -.form_notice label[for=notice_data-attach], -.form_notice #notice_data-attach { +.form_notice label.notice_data-attach, +.form_notice input.notice_data-attach { position:absolute; - top: 31px; - right: 88px; cursor:pointer; } +.form_notice label.notice_data-attach { + top: 31px; + right: 88px; +} +.form_notice input.notice_data-attach { + /* Positioned inside the label */ + top: 0; + right: 0; +} -.form_notice label[for=notice_data-attach] { +.form_notice label.notice_data-attach { text-indent:-9999px; width:16px; height:16px; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { padding:0; height:16px; } @@ -291,7 +298,8 @@ address .poweredby { } .form_notice .error, -.form_notice .success { +.form_notice .success, +.form_notice .notice-status { clear: left; float: left; overflow: auto; @@ -312,7 +320,8 @@ address .poweredby { padding: 6px 2px 6px 5px; } -.form_notice .attach-status button.close { +.form_notice .attach-status button.close, +.form_notice .notice-status button.close { float:right; font-size:0.8em; } @@ -348,7 +357,7 @@ address .poweredby { opacity: 1; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { opacity:0; } @@ -442,6 +451,10 @@ address .poweredby { overflow:visible; } +.notice .automatic { +font-style:italic; +} + #showstream h1 { display:none; } @@ -919,7 +932,7 @@ outline:none; text-indent:-9999px; } -.pagination { +#pagination { background-color: #f2f2f2; clear: left; margin-top: 20px; @@ -927,19 +940,15 @@ text-indent:-9999px; height: 1em; } -.pagination dt { - display: none; -} - -.pagination li { +#pagination li { display: inline; } -.pagination .nav_prev { +#pagination .nav_prev { float: left; } -.pagination .nav_next { +#pagination .nav_next { float: right; } @@ -1724,17 +1733,17 @@ body.realtime-popup { width: 86px; } -.realtime-popup .form_notice label[for=notice_data-attach], .form_notice #notice_data-attach { +.realtime-popup .form_notice label.notice_data-attach { right: 70px; } -.realtime-popup .form_notice .notice_data-geo_wrap label, .form_notice .notice_data-geo_wrap input { +.realtime-popup .form_notice .notice_data-geo_wrap label, .realtime-popup .form_notice .notice_data-geo_wrap input { right: 2px; } /* icons */ -.form_notice label[for=notice_data-attach], +.form_notice label.notice_data-attach, #export_data li a.rss, #export_data li a.atom, #export_data li a.foaf, @@ -1754,8 +1763,8 @@ body.realtime-popup { .notice-options .notice_delete, .notice-options form.form_repeat input.submit, #new_group a, -.pagination .nav_prev a, -.pagination .nav_next a, +#pagination .nav_prev a, +#pagination .nav_next a, button.close, .form_group_leave input.submit, .form_user_unsubscribe input.submit, @@ -1921,7 +1930,7 @@ background-position:0 -1648px; #new_group a { background-position:0 -1054px; } -.form_notice label[for=notice_data-attach] { +.form_notice label.notice_data-attach { background-position: 0 -328px; } .form_notice label.notice_data-geo { @@ -1931,12 +1940,12 @@ background-position:0 -1054px; background-position: 0 -1846px; } -.pagination .nav_prev a { +#pagination .nav_prev a { padding-top: 8px; padding-left: 25px; background-position:0 -187px; } -.pagination .nav_next a { +#pagination .nav_next a { padding-top: 9px; padding-right: 25px; background-position: 115% -252px; @@ -1953,8 +1962,27 @@ margin-bottom:18px; padding-left:20px; } +#input_form_nav { + list-style-type: none; +} -}/*end of @media screen, projection, tv*/ +#input_form_nav li { + display:inline; +} + +.input_form_nav_tab.current { + text-decoration: underline; +} + +.input_form { + display: none; +} + +.input_form.current { + display: block; +} + +/*end of @media screen, projection, tv*/ @media print { diff --git a/theme/rebase/css/ie.css b/theme/rebase/css/ie.css index 20e038998b..9dfb176698 100644 --- a/theme/rebase/css/ie.css +++ b/theme/rebase/css/ie.css @@ -61,7 +61,7 @@ line-height:auto; color:#FFFFFF; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { filter: alpha(opacity=0); } diff --git a/theme/shiny/css/display.css b/theme/shiny/css/display.css index e027153dd7..32a0a7e255 100644 --- a/theme/shiny/css/display.css +++ b/theme/shiny/css/display.css @@ -230,8 +230,8 @@ h6 {font-size: 1em;} border: 1px solid #9495b7; } -.form_notice label[for=notice_data-attach], -.form_notice #notice_data-attach { +.form_notice label.notice_data-attach, +.form_notice input.notice_data-attach { top: 27px; right: 86px; } diff --git a/theme/shiny/css/ie.css b/theme/shiny/css/ie.css index 8145073db5..e916b1e4cc 100644 --- a/theme/shiny/css/ie.css +++ b/theme/shiny/css/ie.css @@ -63,7 +63,7 @@ line-height:auto; color:#FFFFFF; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { filter: alpha(opacity=0); } diff --git a/theme/shiny/css/mp-screen.css b/theme/shiny/css/mp-screen.css index cb899b3557..c23a24b3c9 100644 --- a/theme/shiny/css/mp-screen.css +++ b/theme/shiny/css/mp-screen.css @@ -99,7 +99,7 @@ iPhone/iPod Touch, Android, Opera Mini Simulator .form_notice label[for="notice_data-attach"] { display:none; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { position:static; clear:both; width:65%; diff --git a/theme/victorian/css/display.css b/theme/victorian/css/display.css index 6252fdf908..65d73e96fc 100644 --- a/theme/victorian/css/display.css +++ b/theme/victorian/css/display.css @@ -328,15 +328,15 @@ a, color:#000000; } -.form_notice label[for=notice_data-attach] { +.form_notice label.notice_data-attach { background-position:0 -328px; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { opacity:0; } -.form_notice label[for=notice_data-attach], +.form_notice label.notice_data-attach, #export_data li a.rss, #export_data li a.atom, #export_data li a.foaf, diff --git a/theme/victorian/css/ie.css b/theme/victorian/css/ie.css index 038195faaf..2befa9cc48 100644 --- a/theme/victorian/css/ie.css +++ b/theme/victorian/css/ie.css @@ -9,7 +9,7 @@ background-color:#C8D1D5; .form_notice .count + label { background:transparent url(../../base/images/icons/icons-01.gif) no-repeat 0 -328px; } -.form_notice #notice_data-attach { +.form_notice input.notice_data-attach { filter: alpha(opacity=0); } .notice-options form.form_favor input.submit { diff --git a/theme/victorian/css/mp-screen.css b/theme/victorian/css/mp-screen.css index 94a534912f..584bfc7c10 100644 --- a/theme/victorian/css/mp-screen.css +++ b/theme/victorian/css/mp-screen.css @@ -109,7 +109,7 @@ iPhone/iPod Touch, Android, Opera Mini Simulator #form_notice label[for="notice_data-attach"] { display:none; } -#form_notice #notice_data-attach { +#form_notice input.notice_data-attach { position:static; clear:both; width:65%;