code:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * List of a user's subscriptions
 *
 * PHP version 5
 *
 * LICENCE: 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 <http://www.gnu.org/licenses/>.
 *
 * @category  Social
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @author    Sarven Capadisli <csarven@status.net>
 * @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('GNUSOCIAL')) { exit(1); }

/**
 * A list of the user's subscriptions
 *
 * @category Social
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @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->getTarget()->getNickname());
        } 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->getTarget()->getNickname(),
                           $this->page);
        }
    }

    function showPageNotice()
    {
        if ($this->scoped instanceof Profile && $this->scoped->sameAs($this->getTarget())) {
            $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->getTarget()->getNickname()));
        }
    }

    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->getTarget()->getID();
            $searchsub->limit($limit, $offset);
            $searchsub->find();

            if ($searchsub->N) {
                $list = new SearchSubscriptionsList($searchsub, $this->getTarget(), $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->getTarget()->getNickname()));

            Event::handle('EndShowTagSubscriptionsContent', array($this));
        }
    }

    function showEmptyListMessage()
    {
        if (common_logged_in()) {
            if ($this->scoped->sameAs($this->getTarget())) {
                // 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->getTarget()->getNickname());
            }
        }
        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->getTarget()->getNickname());
        }

        $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(Profile $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;
    }
}


code:
<?php
/**
 * StatusNet - the distributed open-source microblogging tool
 * Copyright (C) 2008-2011, StatusNet, Inc.
 *
 * Search subscription action.
 *
 * 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 <http://www.gnu.org/licenses/>.
 *
 * PHP version 5
 *
 * @category  Action
 * @package   StatusNet
 * @author    Brion Vibber <brion@status.net>
 * @author    Evan Prodromou <evan@status.net>
 * @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 <evan@status.net>
 * @author    Brion Vibber <brion@status.net>
 * @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()
    {
        // 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->endHTML();
        } else {
            $url = common_local_url('search',
                                    array('search' => $this->search));
            common_redirect($url, 303);
        }
    }
}

license: mit


code:
<?php
/**
 * Data class to store local search subscriptions
 *
 * PHP version 5
 *
 * @category SearchSubPlugin
 * @package  StatusNet
 * @author   Brion Vibber <brion@status.net>
 * @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 <http://www.gnu.org/licenses/>.
 */

if (!defined('STATUSNET')) {
    exit(1);
}

/**
 * For storing the search subscriptions
 *
 * @category PollPlugin
 * @package  StatusNet
 * @author   Brion Vibber <brion@status.net>
 * @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

    /**
     * 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();
        self::blow('searchsub:by_profile:%d', $profile->id);
        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();
            self::blow('searchsub:by_profile:%d', $profile->id);
        }
    }

    static function forProfile(Profile $profile)
    {
        $searches = array();

        $keypart = sprintf('searchsub:by_profile:%d', $profile->id);
        $searchstring = self::cacheGet($keypart);

        if ($searchstring !== false) {
        	if (!empty($searchstring)) {
            	$searches = explode(',', $searchstring);
        	}
        } else {
            $searchsub = new SearchSub();
            $searchsub->profile_id = $profile->id;
            $searchsub->selectAdd();
            $searchsub->selectAdd('search');

            if ($searchsub->find()) {
                $searches = $searchsub->fetchAll('search');
            }

            self::cacheSet($keypart, implode(',', $searches));
        }

        return $searches;
    }
}


code:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * Form for subscribing to a search
 *
 * PHP version 5
 *
 * LICENCE: 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 <http://www.gnu.org/licenses/>.
 *
 * @category  SearchSubPlugin
 * @package   StatusNet
 * @author    Brion Vibber <brion@status.net>
 * @author    Evan Prodromou <evan@status.net>
 * @author    Sarven Capadisli <csarven@status.net>
 * @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 <brion@status.net>
 * @author   Evan Prodromou <evan@status.net>
 * @author   Sarven Capadisli <csarven@status.net>
 * @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()
    {
        // TRANS: Form legend.
        $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',
                           // TRANS: Button text for subscribing to a search.
                           _m('BUTTON','Subscribe'),
                           'submit',
                           null,
                           // TRANS: Button title for subscribing to a search.
                           _m('Subscribe to this search.'));
    }
}


code:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * Form for subscribing to a search
 *
 * PHP version 5
 *
 * LICENCE: 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 <http://www.gnu.org/licenses/>.
 *
 * @category  SearchSubPlugin
 * @package   StatusNet
 * @author    Brion Vibber <brion@status.net>
 * @author    Evan Prodromou <evan@status.net>
 * @author    Sarven Capadisli <csarven@status.net>
 * @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 <brion@status.net>
 * @author   Evan Prodromou <evan@status.net>
 * @author   Sarven Capadisli <csarven@status.net>
 * @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()
    {
        // TRANS: Form legend.
        $this->out->element('legend', null, _m('Unsubscribe from this search'));
    }

    /**
     * Action elements
     *
     * @return void
     */
    function formActions()
    {
        $this->out->submit('submit',
                           // TRANS: Button text for unsubscribing from a text search.
                           _m('BUTTON','Unsubscribe'),
                           'submit',
                           null,
                           // TRANS: Button title for unsubscribing from a text search.
                           _m('Unsubscribe from this search.'));
    }
}


code:
<?php
/**
 * StatusNet - the distributed open-source microblogging tool
 * Copyright (C) 2011, StatusNet, Inc.
 *
 * Menu to show searches you're subscribed to
 *
 * PHP version 5
 *
 * 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 <http://www.gnu.org/licenses/>.
 *
 * @category  Menu
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @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);
}

/**
 * Class comment
 *
 * @category  General
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2011 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 * @link      http://status.net/
 */

class SearchSubMenu extends MoreMenu
{
    protected $user;
    protected $searches;

    function __construct($out, $user, $searches)
    {
        parent::__construct($out);
        $this->user = $user;
        $this->searches = $searches;
    }

    function tag()
    {
        return 'searchsubs';
    }

    function seeAllItem()
    {
        return array('searchsubs',
                     array('nickname' => $this->user->nickname),
                     _('See all'),
                     _('See all searches you are following'));
    }

    function getItems()
    {
        $items = array();

        foreach ($this->searches as $search) {
            if (!empty($search)) {
                $items[] = array('noticesearch',
                                 array('q' => $search),
                                 sprintf('"%s"', $search),
                                 sprintf(_('Notices including %s'), $search));;
            }
        }

        return $items;
    }

    function item($actionName, array $args, $label, $description, $id=null, $cls=null)
    {
        if (empty($id)) {
            $id = $this->menuItemID($actionName, $args);
        }

        if ($actionName == 'noticesearch') {
            // Add 'q' as a search param, not part of the url path
            $url = common_local_url($actionName, array(), $args);
        } else {
            $url = common_local_url($actionName, $args);
        }

        $this->out->menuItem($url,
                             $label,
                             $description,
                             $this->isCurrent($actionName, $args),
                             $id,
                             $cls);
    }
}


code:
<?php

class SearchSubTrackCommand extends Command
{
    var $keyword = null;

    function __construct($user, $keyword)
    {
        parent::__construct($user);
        $this->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));
    }
}


code:
<?php

class SearchSubTrackingCommand extends Command
{
    function handle($channel)
    {
        $cur = $this->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: Separator for list of tracked searches.
        $separator = _m('SEPARATOR','", "');

        // TRANS: Message given having disabled all search subscriptions with 'track off'.
        // TRANS: %s is a list of searches. Separator default is '", "'.
        $channel->output($cur, sprintf(_m('You are tracking searches for: "%s".'),
                                       implode($separator, $list)));
    }
}


code:
<?php

class SearchSubTrackoffCommand extends Command
{
    function handle($channel)
    {
        $cur = $this->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.
                // TRANS: %s is the search for which the subscription removal failed.
                $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.'));
    }
}


code:
<?php

class SearchSubUntrackCommand extends Command
{
    var $keyword = null;

    function __construct($user, $keyword)
    {
        parent::__construct($user);
        $this->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.
            // TRANS: %s is the keyword for the search.
            $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.
            // TRANS: %s is the keyword for the query.
            $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.
        // TRANS: %s is the keyword for the search.
        $channel->output($cur, sprintf(_m('You are no longer subscribed to the search "%s".'),
                                              $this->keyword));
    }
}


code:
# 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 <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-06-08 18:20+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#. TRANS: Plugin description.
#: SearchSubPlugin.php:99
msgid "Plugin to allow following all messages with a given search."
msgstr ""

#. TRANS: SearchSub plugin menu item on user settings page.
#. TRANS: Sub menu for searches.
#: SearchSubPlugin.php:202 SearchSubPlugin.php:265
msgctxt "MENU"
msgid "Searches"
msgstr ""

#. TRANS: SearchSub plugin tooltip for user settings menu item.
#: SearchSubPlugin.php:204
msgid "Configure search subscriptions"
msgstr ""

#. TRANS: Help message for IM/SMS command "track <word>"
#: SearchSubPlugin.php:242
msgctxt "COMMANDHELP"
msgid "Start following notices matching the given search query."
msgstr ""

#. TRANS: Help message for IM/SMS command "untrack <word>"
#: SearchSubPlugin.php:244
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:246 SearchSubPlugin.php:248
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:250 SearchSubPlugin.php:252
msgctxt "COMMANDHELP"
msgid "List all your search subscriptions."
msgstr ""

#. TRANS: Error text shown a user tries to untrack a search query they're not subscribed to.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:22
#, php-format
msgid "You are not tracking the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel a search subscription by untrack command.
#. TRANS: %s is the keyword for the query.
#: lib/searchsubuntrackcommand.php:31
#, php-format
msgid "Could not end a search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having removed a search subscription by untrack command.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:38
#, php-format
msgid "You are no longer subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to disable all a search subscriptions with track off command, but has none.
#: lib/searchsubtrackoffcommand.php:14 lib/searchsubtrackingcommand.php:14
msgid "You are not tracking any searches."
msgstr ""

#. TRANS: Message given having failed to cancel one of the search subs with 'track off' command.
#. TRANS: %s is the search for which the subscription removal failed.
#: lib/searchsubtrackoffcommand.php:25
#, php-format
msgid "Error disabling search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track off'.
#: lib/searchsubtrackoffcommand.php:32
msgid "Disabled all your search subscriptions."
msgstr ""

#. TRANS: Separator for list of tracked searches.
#: lib/searchsubtrackingcommand.php:24
msgctxt "SEPARATOR"
msgid "\", \""
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track off'.
#. TRANS: %s is a list of searches. Separator default is '", "'.
#: lib/searchsubtrackingcommand.php:28
#, php-format
msgid "You are tracking searches for: \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to track a search query they're already subscribed to.
#: lib/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.
#: lib/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.
#: lib/searchsubtrackcommand.php:35
#, php-format
msgid "You are subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Header for subscriptions overview for a user (first page).
#. TRANS: %s is a user nickname.
#: actions/searchsubs.php:49
#, 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.
#: actions/searchsubs.php:53
#, 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.
#: actions/searchsubs.php:65
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.
#: actions/searchsubs.php:70
#, 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.
#: actions/searchsubs.php:114
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.
#: actions/searchsubs.php:120 actions/searchsubs.php:126
#, 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.
#: actions/searchsubs.php:166
#, php-format
msgid "\"%2$s\" since %3$s"
msgstr ""

#. TRANS: Client error displayed trying to perform any request method other than POST.
#. TRANS: Do not translate POST.
#: actions/searchsub.php:78
msgid "This action only accepts POST requests."
msgstr ""

#. TRANS: Client error displayed when the session token is not okay.
#: actions/searchsub.php:87
msgid "There was a problem with your session token. Try again, please."
msgstr ""

#. TRANS: Error message displayed when trying to perform an action that requires a logged in user.
#: actions/searchsub.php:97
msgid "Not logged in."
msgstr ""

#. TRANS: Client error displayed trying to subscribe to a non-existing profile.
#: actions/searchsub.php:106
msgid "No such profile."
msgstr ""

#. TRANS: Page title when search subscription succeeded.
#: actions/searchsub.php:132
msgid "Subscribed"
msgstr ""

#. TRANS: Page title when search unsubscription succeeded.
#: actions/searchunsub.php:76
msgid "Unsubscribed"
msgstr ""

#. TRANS: Form legend.
#: forms/searchsub.php:110
msgid "Subscribe to this search"
msgstr ""

#. TRANS: Button text for subscribing to a search.
#: forms/searchsub.php:134
msgctxt "BUTTON"
msgid "Subscribe"
msgstr ""

#. TRANS: Button title for subscribing to a search.
#: forms/searchsub.php:138
msgid "Subscribe to this search."
msgstr ""

#. TRANS: Form legend.
#: forms/searchunsub.php:90
msgid "Unsubscribe from this search"
msgstr ""

#. TRANS: Button text for unsubscribing from a text search.
#: forms/searchunsub.php:102
msgctxt "BUTTON"
msgid "Unsubscribe"
msgstr ""

#. TRANS: Button title for unsubscribing from a text search.
#: forms/searchunsub.php:106
msgid "Unsubscribe from this search."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-05 16:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Afrikaans (http://www.transifex.com/gnu-social/gnu-social/language/af/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: af\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Form legend.
#: forms/searchunsub.php:90
msgid "Unsubscribe from this search"
msgstr ""

#. TRANS: Button text for unsubscribing from a text search.
#: forms/searchunsub.php:102
msgctxt "BUTTON"
msgid "Unsubscribe"
msgstr ""

#. TRANS: Button title for unsubscribing from a text search.
#: forms/searchunsub.php:106
msgid "Unsubscribe from this search."
msgstr ""

#. TRANS: Form legend.
#: forms/searchsub.php:110
msgid "Subscribe to this search"
msgstr ""

#. TRANS: Button text for subscribing to a search.
#: forms/searchsub.php:134
msgctxt "BUTTON"
msgid "Subscribe"
msgstr ""

#. TRANS: Button title for subscribing to a search.
#: forms/searchsub.php:138
msgid "Subscribe to this search."
msgstr ""

#. TRANS: Plugin description.
#: SearchSubPlugin.php:99
msgid "Plugin to allow following all messages with a given search."
msgstr ""

#. TRANS: SearchSub plugin menu item on user settings page.
#. TRANS: Sub menu for searches.
#: SearchSubPlugin.php:202 SearchSubPlugin.php:265
msgctxt "MENU"
msgid "Searches"
msgstr ""

#. TRANS: SearchSub plugin tooltip for user settings menu item.
#: SearchSubPlugin.php:204
msgid "Configure search subscriptions"
msgstr ""

#. TRANS: Help message for IM/SMS command "track <word>"
#: SearchSubPlugin.php:242
msgctxt "COMMANDHELP"
msgid "Start following notices matching the given search query."
msgstr ""

#. TRANS: Help message for IM/SMS command "untrack <word>"
#: SearchSubPlugin.php:244
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:246 SearchSubPlugin.php:248
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:250 SearchSubPlugin.php:252
msgctxt "COMMANDHELP"
msgid "List all your search subscriptions."
msgstr ""

#. TRANS: Header for subscriptions overview for a user (first page).
#. TRANS: %s is a user nickname.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.php:124 actions/searchsubs.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.
#: actions/searchsubs.php:170
#, php-format
msgid "\"%2$s\" since %3$s"
msgstr ""

#. TRANS: Page title when search unsubscription succeeded.
#: actions/searchunsub.php:76
msgid "Unsubscribed"
msgstr ""

#. TRANS: Client error displayed trying to perform any request method other
#. than POST.
#. TRANS: Do not translate POST.
#: actions/searchsub.php:78
msgid "This action only accepts POST requests."
msgstr ""

#. TRANS: Client error displayed when the session token is not okay.
#: actions/searchsub.php:87
msgid "There was a problem with your session token. Try again, please."
msgstr ""

#. TRANS: Error message displayed when trying to perform an action that
#. requires a logged in user.
#: actions/searchsub.php:97
msgid "Not logged in."
msgstr "Nie aangeteken nie."

#. TRANS: Client error displayed trying to subscribe to a non-existing
#. profile.
#: actions/searchsub.php:106
msgid "No such profile."
msgstr ""

#. TRANS: Page title when search subscription succeeded.
#: actions/searchsub.php:132
msgid "Subscribed"
msgstr ""

#. TRANS: Error text shown a user tries to disable all a search subscriptions
#. with track off command, but has none.
#: lib/searchsubtrackingcommand.php:14 lib/searchsubtrackoffcommand.php:14
msgid "You are not tracking any searches."
msgstr ""

#. TRANS: Separator for list of tracked searches.
#: lib/searchsubtrackingcommand.php:24
msgctxt "SEPARATOR"
msgid "\", \""
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#. TRANS: %s is a list of searches. Separator default is '", "'.
#: lib/searchsubtrackingcommand.php:28
#, php-format
msgid "You are tracking searches for: \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to track a search query they're
#. already subscribed to.
#: lib/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.
#: lib/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.
#: lib/searchsubtrackcommand.php:35
#, php-format
msgid "You are subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to untrack a search query they're not
#. subscribed to.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:22
#, php-format
msgid "You are not tracking the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel a search subscription by
#. untrack command.
#. TRANS: %s is the keyword for the query.
#: lib/searchsubuntrackcommand.php:31
#, php-format
msgid "Could not end a search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having removed a search subscription by untrack
#. command.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:38
#, php-format
msgid "You are no longer subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel one of the search subs with
#. 'track off' command.
#. TRANS: %s is the search for which the subscription removal failed.
#: lib/searchsubtrackoffcommand.php:25
#, php-format
msgid "Error disabling search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#: lib/searchsubtrackoffcommand.php:32
msgid "Disabled all your search subscriptions."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-05 16:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic (http://www.transifex.com/gnu-social/gnu-social/language/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar\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"

#. TRANS: Form legend.
#: forms/searchunsub.php:90
msgid "Unsubscribe from this search"
msgstr ""

#. TRANS: Button text for unsubscribing from a text search.
#: forms/searchunsub.php:102
msgctxt "BUTTON"
msgid "Unsubscribe"
msgstr "ألغِ الاشتراك"

#. TRANS: Button title for unsubscribing from a text search.
#: forms/searchunsub.php:106
msgid "Unsubscribe from this search."
msgstr ""

#. TRANS: Form legend.
#: forms/searchsub.php:110
msgid "Subscribe to this search"
msgstr ""

#. TRANS: Button text for subscribing to a search.
#: forms/searchsub.php:134
msgctxt "BUTTON"
msgid "Subscribe"
msgstr "اشترك"

#. TRANS: Button title for subscribing to a search.
#: forms/searchsub.php:138
msgid "Subscribe to this search."
msgstr ""

#. TRANS: Plugin description.
#: SearchSubPlugin.php:99
msgid "Plugin to allow following all messages with a given search."
msgstr ""

#. TRANS: SearchSub plugin menu item on user settings page.
#. TRANS: Sub menu for searches.
#: SearchSubPlugin.php:202 SearchSubPlugin.php:265
msgctxt "MENU"
msgid "Searches"
msgstr ""

#. TRANS: SearchSub plugin tooltip for user settings menu item.
#: SearchSubPlugin.php:204
msgid "Configure search subscriptions"
msgstr ""

#. TRANS: Help message for IM/SMS command "track <word>"
#: SearchSubPlugin.php:242
msgctxt "COMMANDHELP"
msgid "Start following notices matching the given search query."
msgstr ""

#. TRANS: Help message for IM/SMS command "untrack <word>"
#: SearchSubPlugin.php:244
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:246 SearchSubPlugin.php:248
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:250 SearchSubPlugin.php:252
msgctxt "COMMANDHELP"
msgid "List all your search subscriptions."
msgstr ""

#. TRANS: Header for subscriptions overview for a user (first page).
#. TRANS: %s is a user nickname.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.php:124 actions/searchsubs.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.
#: actions/searchsubs.php:170
#, php-format
msgid "\"%2$s\" since %3$s"
msgstr ""

#. TRANS: Page title when search unsubscription succeeded.
#: actions/searchunsub.php:76
msgid "Unsubscribed"
msgstr "غير مشترك"

#. TRANS: Client error displayed trying to perform any request method other
#. than POST.
#. TRANS: Do not translate POST.
#: actions/searchsub.php:78
msgid "This action only accepts POST requests."
msgstr "هذا الإجراء يقبل طلبات POST فقط."

#. TRANS: Client error displayed when the session token is not okay.
#: actions/searchsub.php:87
msgid "There was a problem with your session token. Try again, please."
msgstr ""

#. TRANS: Error message displayed when trying to perform an action that
#. requires a logged in user.
#: actions/searchsub.php:97
msgid "Not logged in."
msgstr "لست والجًا."

#. TRANS: Client error displayed trying to subscribe to a non-existing
#. profile.
#: actions/searchsub.php:106
msgid "No such profile."
msgstr "لا يوجد ملف شخصي بهذا الاسم."

#. TRANS: Page title when search subscription succeeded.
#: actions/searchsub.php:132
msgid "Subscribed"
msgstr "مُشترك"

#. TRANS: Error text shown a user tries to disable all a search subscriptions
#. with track off command, but has none.
#: lib/searchsubtrackingcommand.php:14 lib/searchsubtrackoffcommand.php:14
msgid "You are not tracking any searches."
msgstr ""

#. TRANS: Separator for list of tracked searches.
#: lib/searchsubtrackingcommand.php:24
msgctxt "SEPARATOR"
msgid "\", \""
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#. TRANS: %s is a list of searches. Separator default is '", "'.
#: lib/searchsubtrackingcommand.php:28
#, php-format
msgid "You are tracking searches for: \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to track a search query they're
#. already subscribed to.
#: lib/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.
#: lib/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.
#: lib/searchsubtrackcommand.php:35
#, php-format
msgid "You are subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to untrack a search query they're not
#. subscribed to.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:22
#, php-format
msgid "You are not tracking the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel a search subscription by
#. untrack command.
#. TRANS: %s is the keyword for the query.
#: lib/searchsubuntrackcommand.php:31
#, php-format
msgid "Could not end a search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having removed a search subscription by untrack
#. command.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:38
#, php-format
msgid "You are no longer subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel one of the search subs with
#. 'track off' command.
#. TRANS: %s is the search for which the subscription removal failed.
#: lib/searchsubtrackoffcommand.php:25
#, php-format
msgid "Error disabling search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#: lib/searchsubtrackoffcommand.php:32
msgid "Disabled all your search subscriptions."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-05 16:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Arabic (Egypt) (http://www.transifex.com/gnu-social/gnu-social/language/ar_EG/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ar_EG\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"

#. TRANS: Form legend.
#: forms/searchunsub.php:90
msgid "Unsubscribe from this search"
msgstr ""

#. TRANS: Button text for unsubscribing from a text search.
#: forms/searchunsub.php:102
msgctxt "BUTTON"
msgid "Unsubscribe"
msgstr ""

#. TRANS: Button title for unsubscribing from a text search.
#: forms/searchunsub.php:106
msgid "Unsubscribe from this search."
msgstr ""

#. TRANS: Form legend.
#: forms/searchsub.php:110
msgid "Subscribe to this search"
msgstr ""

#. TRANS: Button text for subscribing to a search.
#: forms/searchsub.php:134
msgctxt "BUTTON"
msgid "Subscribe"
msgstr ""

#. TRANS: Button title for subscribing to a search.
#: forms/searchsub.php:138
msgid "Subscribe to this search."
msgstr ""

#. TRANS: Plugin description.
#: SearchSubPlugin.php:99
msgid "Plugin to allow following all messages with a given search."
msgstr ""

#. TRANS: SearchSub plugin menu item on user settings page.
#. TRANS: Sub menu for searches.
#: SearchSubPlugin.php:202 SearchSubPlugin.php:265
msgctxt "MENU"
msgid "Searches"
msgstr ""

#. TRANS: SearchSub plugin tooltip for user settings menu item.
#: SearchSubPlugin.php:204
msgid "Configure search subscriptions"
msgstr ""

#. TRANS: Help message for IM/SMS command "track <word>"
#: SearchSubPlugin.php:242
msgctxt "COMMANDHELP"
msgid "Start following notices matching the given search query."
msgstr ""

#. TRANS: Help message for IM/SMS command "untrack <word>"
#: SearchSubPlugin.php:244
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:246 SearchSubPlugin.php:248
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:250 SearchSubPlugin.php:252
msgctxt "COMMANDHELP"
msgid "List all your search subscriptions."
msgstr ""

#. TRANS: Header for subscriptions overview for a user (first page).
#. TRANS: %s is a user nickname.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.php:124 actions/searchsubs.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.
#: actions/searchsubs.php:170
#, php-format
msgid "\"%2$s\" since %3$s"
msgstr ""

#. TRANS: Page title when search unsubscription succeeded.
#: actions/searchunsub.php:76
msgid "Unsubscribed"
msgstr ""

#. TRANS: Client error displayed trying to perform any request method other
#. than POST.
#. TRANS: Do not translate POST.
#: actions/searchsub.php:78
msgid "This action only accepts POST requests."
msgstr ""

#. TRANS: Client error displayed when the session token is not okay.
#: actions/searchsub.php:87
msgid "There was a problem with your session token. Try again, please."
msgstr ""

#. TRANS: Error message displayed when trying to perform an action that
#. requires a logged in user.
#: actions/searchsub.php:97
msgid "Not logged in."
msgstr "لست والجًا."

#. TRANS: Client error displayed trying to subscribe to a non-existing
#. profile.
#: actions/searchsub.php:106
msgid "No such profile."
msgstr ""

#. TRANS: Page title when search subscription succeeded.
#: actions/searchsub.php:132
msgid "Subscribed"
msgstr "مُشترك"

#. TRANS: Error text shown a user tries to disable all a search subscriptions
#. with track off command, but has none.
#: lib/searchsubtrackingcommand.php:14 lib/searchsubtrackoffcommand.php:14
msgid "You are not tracking any searches."
msgstr ""

#. TRANS: Separator for list of tracked searches.
#: lib/searchsubtrackingcommand.php:24
msgctxt "SEPARATOR"
msgid "\", \""
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#. TRANS: %s is a list of searches. Separator default is '", "'.
#: lib/searchsubtrackingcommand.php:28
#, php-format
msgid "You are tracking searches for: \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to track a search query they're
#. already subscribed to.
#: lib/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.
#: lib/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.
#: lib/searchsubtrackcommand.php:35
#, php-format
msgid "You are subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to untrack a search query they're not
#. subscribed to.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:22
#, php-format
msgid "You are not tracking the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel a search subscription by
#. untrack command.
#. TRANS: %s is the keyword for the query.
#: lib/searchsubuntrackcommand.php:31
#, php-format
msgid "Could not end a search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having removed a search subscription by untrack
#. command.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:38
#, php-format
msgid "You are no longer subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel one of the search subs with
#. 'track off' command.
#. TRANS: %s is the search for which the subscription removal failed.
#: lib/searchsubtrackoffcommand.php:25
#, php-format
msgid "Error disabling search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#: lib/searchsubtrackoffcommand.php:32
msgid "Disabled all your search subscriptions."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-05 17:29+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Asturian (http://www.transifex.com/gnu-social/gnu-social/language/ast/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ast\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Form legend.
#: forms/searchunsub.php:90
msgid "Unsubscribe from this search"
msgstr ""

#. TRANS: Button text for unsubscribing from a text search.
#: forms/searchunsub.php:102
msgctxt "BUTTON"
msgid "Unsubscribe"
msgstr ""

#. TRANS: Button title for unsubscribing from a text search.
#: forms/searchunsub.php:106
msgid "Unsubscribe from this search."
msgstr ""

#. TRANS: Form legend.
#: forms/searchsub.php:110
msgid "Subscribe to this search"
msgstr ""

#. TRANS: Button text for subscribing to a search.
#: forms/searchsub.php:134
msgctxt "BUTTON"
msgid "Subscribe"
msgstr ""

#. TRANS: Button title for subscribing to a search.
#: forms/searchsub.php:138
msgid "Subscribe to this search."
msgstr ""

#. TRANS: Plugin description.
#: SearchSubPlugin.php:99
msgid "Plugin to allow following all messages with a given search."
msgstr ""

#. TRANS: SearchSub plugin menu item on user settings page.
#. TRANS: Sub menu for searches.
#: SearchSubPlugin.php:202 SearchSubPlugin.php:265
msgctxt "MENU"
msgid "Searches"
msgstr ""

#. TRANS: SearchSub plugin tooltip for user settings menu item.
#: SearchSubPlugin.php:204
msgid "Configure search subscriptions"
msgstr ""

#. TRANS: Help message for IM/SMS command "track <word>"
#: SearchSubPlugin.php:242
msgctxt "COMMANDHELP"
msgid "Start following notices matching the given search query."
msgstr ""

#. TRANS: Help message for IM/SMS command "untrack <word>"
#: SearchSubPlugin.php:244
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:246 SearchSubPlugin.php:248
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:250 SearchSubPlugin.php:252
msgctxt "COMMANDHELP"
msgid "List all your search subscriptions."
msgstr ""

#. TRANS: Header for subscriptions overview for a user (first page).
#. TRANS: %s is a user nickname.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.php:124 actions/searchsubs.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.
#: actions/searchsubs.php:170
#, php-format
msgid "\"%2$s\" since %3$s"
msgstr ""

#. TRANS: Page title when search unsubscription succeeded.
#: actions/searchunsub.php:76
msgid "Unsubscribed"
msgstr ""

#. TRANS: Client error displayed trying to perform any request method other
#. than POST.
#. TRANS: Do not translate POST.
#: actions/searchsub.php:78
msgid "This action only accepts POST requests."
msgstr ""

#. TRANS: Client error displayed when the session token is not okay.
#: actions/searchsub.php:87
msgid "There was a problem with your session token. Try again, please."
msgstr ""

#. TRANS: Error message displayed when trying to perform an action that
#. requires a logged in user.
#: actions/searchsub.php:97
msgid "Not logged in."
msgstr ""

#. TRANS: Client error displayed trying to subscribe to a non-existing
#. profile.
#: actions/searchsub.php:106
msgid "No such profile."
msgstr ""

#. TRANS: Page title when search subscription succeeded.
#: actions/searchsub.php:132
msgid "Subscribed"
msgstr ""

#. TRANS: Error text shown a user tries to disable all a search subscriptions
#. with track off command, but has none.
#: lib/searchsubtrackingcommand.php:14 lib/searchsubtrackoffcommand.php:14
msgid "You are not tracking any searches."
msgstr ""

#. TRANS: Separator for list of tracked searches.
#: lib/searchsubtrackingcommand.php:24
msgctxt "SEPARATOR"
msgid "\", \""
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#. TRANS: %s is a list of searches. Separator default is '", "'.
#: lib/searchsubtrackingcommand.php:28
#, php-format
msgid "You are tracking searches for: \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to track a search query they're
#. already subscribed to.
#: lib/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.
#: lib/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.
#: lib/searchsubtrackcommand.php:35
#, php-format
msgid "You are subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to untrack a search query they're not
#. subscribed to.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:22
#, php-format
msgid "You are not tracking the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel a search subscription by
#. untrack command.
#. TRANS: %s is the keyword for the query.
#: lib/searchsubuntrackcommand.php:31
#, php-format
msgid "Could not end a search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having removed a search subscription by untrack
#. command.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:38
#, php-format
msgid "You are no longer subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel one of the search subs with
#. 'track off' command.
#. TRANS: %s is the search for which the subscription removal failed.
#: lib/searchsubtrackoffcommand.php:25
#, php-format
msgid "Error disabling search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#: lib/searchsubtrackoffcommand.php:32
msgid "Disabled all your search subscriptions."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-05 16:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Belarusian (Tarask) (http://www.transifex.com/gnu-social/gnu-social/language/be@tarask/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: be@tarask\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"

#. TRANS: Form legend.
#: forms/searchunsub.php:90
msgid "Unsubscribe from this search"
msgstr ""

#. TRANS: Button text for unsubscribing from a text search.
#: forms/searchunsub.php:102
msgctxt "BUTTON"
msgid "Unsubscribe"
msgstr ""

#. TRANS: Button title for unsubscribing from a text search.
#: forms/searchunsub.php:106
msgid "Unsubscribe from this search."
msgstr ""

#. TRANS: Form legend.
#: forms/searchsub.php:110
msgid "Subscribe to this search"
msgstr ""

#. TRANS: Button text for subscribing to a search.
#: forms/searchsub.php:134
msgctxt "BUTTON"
msgid "Subscribe"
msgstr ""

#. TRANS: Button title for subscribing to a search.
#: forms/searchsub.php:138
msgid "Subscribe to this search."
msgstr ""

#. TRANS: Plugin description.
#: SearchSubPlugin.php:99
msgid "Plugin to allow following all messages with a given search."
msgstr ""

#. TRANS: SearchSub plugin menu item on user settings page.
#. TRANS: Sub menu for searches.
#: SearchSubPlugin.php:202 SearchSubPlugin.php:265
msgctxt "MENU"
msgid "Searches"
msgstr ""

#. TRANS: SearchSub plugin tooltip for user settings menu item.
#: SearchSubPlugin.php:204
msgid "Configure search subscriptions"
msgstr ""

#. TRANS: Help message for IM/SMS command "track <word>"
#: SearchSubPlugin.php:242
msgctxt "COMMANDHELP"
msgid "Start following notices matching the given search query."
msgstr ""

#. TRANS: Help message for IM/SMS command "untrack <word>"
#: SearchSubPlugin.php:244
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:246 SearchSubPlugin.php:248
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:250 SearchSubPlugin.php:252
msgctxt "COMMANDHELP"
msgid "List all your search subscriptions."
msgstr ""

#. TRANS: Header for subscriptions overview for a user (first page).
#. TRANS: %s is a user nickname.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.php:124 actions/searchsubs.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.
#: actions/searchsubs.php:170
#, php-format
msgid "\"%2$s\" since %3$s"
msgstr ""

#. TRANS: Page title when search unsubscription succeeded.
#: actions/searchunsub.php:76
msgid "Unsubscribed"
msgstr "Адпісаны"

#. TRANS: Client error displayed trying to perform any request method other
#. than POST.
#. TRANS: Do not translate POST.
#: actions/searchsub.php:78
msgid "This action only accepts POST requests."
msgstr "Гэтае дзеяньне прымае толькі POST-запыты."

#. TRANS: Client error displayed when the session token is not okay.
#: actions/searchsub.php:87
msgid "There was a problem with your session token. Try again, please."
msgstr "Узьнікла праблема з ключом Вашай сэсіі. Калі ласка, паспрабуйце зноў."

#. TRANS: Error message displayed when trying to perform an action that
#. requires a logged in user.
#: actions/searchsub.php:97
msgid "Not logged in."
msgstr "Вы не ўвайшлі ў сыстэму."

#. TRANS: Client error displayed trying to subscribe to a non-existing
#. profile.
#: actions/searchsub.php:106
msgid "No such profile."
msgstr "Няма такога профілю."

#. TRANS: Page title when search subscription succeeded.
#: actions/searchsub.php:132
msgid "Subscribed"
msgstr "Падпісаны"

#. TRANS: Error text shown a user tries to disable all a search subscriptions
#. with track off command, but has none.
#: lib/searchsubtrackingcommand.php:14 lib/searchsubtrackoffcommand.php:14
msgid "You are not tracking any searches."
msgstr ""

#. TRANS: Separator for list of tracked searches.
#: lib/searchsubtrackingcommand.php:24
msgctxt "SEPARATOR"
msgid "\", \""
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#. TRANS: %s is a list of searches. Separator default is '", "'.
#: lib/searchsubtrackingcommand.php:28
#, php-format
msgid "You are tracking searches for: \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to track a search query they're
#. already subscribed to.
#: lib/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.
#: lib/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.
#: lib/searchsubtrackcommand.php:35
#, php-format
msgid "You are subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to untrack a search query they're not
#. subscribed to.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:22
#, php-format
msgid "You are not tracking the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel a search subscription by
#. untrack command.
#. TRANS: %s is the keyword for the query.
#: lib/searchsubuntrackcommand.php:31
#, php-format
msgid "Could not end a search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having removed a search subscription by untrack
#. command.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:38
#, php-format
msgid "You are no longer subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel one of the search subs with
#. 'track off' command.
#. TRANS: %s is the search for which the subscription removal failed.
#: lib/searchsubtrackoffcommand.php:25
#, php-format
msgid "Error disabling search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#: lib/searchsubtrackoffcommand.php:32
msgid "Disabled all your search subscriptions."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-05 16:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bulgarian (http://www.transifex.com/gnu-social/gnu-social/language/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Form legend.
#: forms/searchunsub.php:90
msgid "Unsubscribe from this search"
msgstr ""

#. TRANS: Button text for unsubscribing from a text search.
#: forms/searchunsub.php:102
msgctxt "BUTTON"
msgid "Unsubscribe"
msgstr ""

#. TRANS: Button title for unsubscribing from a text search.
#: forms/searchunsub.php:106
msgid "Unsubscribe from this search."
msgstr ""

#. TRANS: Form legend.
#: forms/searchsub.php:110
msgid "Subscribe to this search"
msgstr ""

#. TRANS: Button text for subscribing to a search.
#: forms/searchsub.php:134
msgctxt "BUTTON"
msgid "Subscribe"
msgstr ""

#. TRANS: Button title for subscribing to a search.
#: forms/searchsub.php:138
msgid "Subscribe to this search."
msgstr ""

#. TRANS: Plugin description.
#: SearchSubPlugin.php:99
msgid "Plugin to allow following all messages with a given search."
msgstr ""

#. TRANS: SearchSub plugin menu item on user settings page.
#. TRANS: Sub menu for searches.
#: SearchSubPlugin.php:202 SearchSubPlugin.php:265
msgctxt "MENU"
msgid "Searches"
msgstr ""

#. TRANS: SearchSub plugin tooltip for user settings menu item.
#: SearchSubPlugin.php:204
msgid "Configure search subscriptions"
msgstr ""

#. TRANS: Help message for IM/SMS command "track <word>"
#: SearchSubPlugin.php:242
msgctxt "COMMANDHELP"
msgid "Start following notices matching the given search query."
msgstr ""

#. TRANS: Help message for IM/SMS command "untrack <word>"
#: SearchSubPlugin.php:244
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:246 SearchSubPlugin.php:248
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:250 SearchSubPlugin.php:252
msgctxt "COMMANDHELP"
msgid "List all your search subscriptions."
msgstr ""

#. TRANS: Header for subscriptions overview for a user (first page).
#. TRANS: %s is a user nickname.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.php:124 actions/searchsubs.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.
#: actions/searchsubs.php:170
#, php-format
msgid "\"%2$s\" since %3$s"
msgstr ""

#. TRANS: Page title when search unsubscription succeeded.
#: actions/searchunsub.php:76
msgid "Unsubscribed"
msgstr ""

#. TRANS: Client error displayed trying to perform any request method other
#. than POST.
#. TRANS: Do not translate POST.
#: actions/searchsub.php:78
msgid "This action only accepts POST requests."
msgstr ""

#. TRANS: Client error displayed when the session token is not okay.
#: actions/searchsub.php:87
msgid "There was a problem with your session token. Try again, please."
msgstr "Имаше проблем със сесията ви в сайта. Моля, опитайте отново!"

#. TRANS: Error message displayed when trying to perform an action that
#. requires a logged in user.
#: actions/searchsub.php:97
msgid "Not logged in."
msgstr "Не сте влезли в системата."

#. TRANS: Client error displayed trying to subscribe to a non-existing
#. profile.
#: actions/searchsub.php:106
msgid "No such profile."
msgstr "Няма такъв профил."

#. TRANS: Page title when search subscription succeeded.
#: actions/searchsub.php:132
msgid "Subscribed"
msgstr ""

#. TRANS: Error text shown a user tries to disable all a search subscriptions
#. with track off command, but has none.
#: lib/searchsubtrackingcommand.php:14 lib/searchsubtrackoffcommand.php:14
msgid "You are not tracking any searches."
msgstr ""

#. TRANS: Separator for list of tracked searches.
#: lib/searchsubtrackingcommand.php:24
msgctxt "SEPARATOR"
msgid "\", \""
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#. TRANS: %s is a list of searches. Separator default is '", "'.
#: lib/searchsubtrackingcommand.php:28
#, php-format
msgid "You are tracking searches for: \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to track a search query they're
#. already subscribed to.
#: lib/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.
#: lib/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.
#: lib/searchsubtrackcommand.php:35
#, php-format
msgid "You are subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to untrack a search query they're not
#. subscribed to.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:22
#, php-format
msgid "You are not tracking the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel a search subscription by
#. untrack command.
#. TRANS: %s is the keyword for the query.
#: lib/searchsubuntrackcommand.php:31
#, php-format
msgid "Could not end a search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having removed a search subscription by untrack
#. command.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:38
#, php-format
msgid "You are no longer subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel one of the search subs with
#. 'track off' command.
#. TRANS: %s is the search for which the subscription removal failed.
#: lib/searchsubtrackoffcommand.php:25
#, php-format
msgid "Error disabling search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#: lib/searchsubtrackoffcommand.php:32
msgid "Disabled all your search subscriptions."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-05 16:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Bengali (India) (http://www.transifex.com/gnu-social/gnu-social/language/bn_IN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: bn_IN\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Form legend.
#: forms/searchunsub.php:90
msgid "Unsubscribe from this search"
msgstr ""

#. TRANS: Button text for unsubscribing from a text search.
#: forms/searchunsub.php:102
msgctxt "BUTTON"
msgid "Unsubscribe"
msgstr ""

#. TRANS: Button title for unsubscribing from a text search.
#: forms/searchunsub.php:106
msgid "Unsubscribe from this search."
msgstr ""

#. TRANS: Form legend.
#: forms/searchsub.php:110
msgid "Subscribe to this search"
msgstr ""

#. TRANS: Button text for subscribing to a search.
#: forms/searchsub.php:134
msgctxt "BUTTON"
msgid "Subscribe"
msgstr ""

#. TRANS: Button title for subscribing to a search.
#: forms/searchsub.php:138
msgid "Subscribe to this search."
msgstr ""

#. TRANS: Plugin description.
#: SearchSubPlugin.php:99
msgid "Plugin to allow following all messages with a given search."
msgstr ""

#. TRANS: SearchSub plugin menu item on user settings page.
#. TRANS: Sub menu for searches.
#: SearchSubPlugin.php:202 SearchSubPlugin.php:265
msgctxt "MENU"
msgid "Searches"
msgstr ""

#. TRANS: SearchSub plugin tooltip for user settings menu item.
#: SearchSubPlugin.php:204
msgid "Configure search subscriptions"
msgstr ""

#. TRANS: Help message for IM/SMS command "track <word>"
#: SearchSubPlugin.php:242
msgctxt "COMMANDHELP"
msgid "Start following notices matching the given search query."
msgstr ""

#. TRANS: Help message for IM/SMS command "untrack <word>"
#: SearchSubPlugin.php:244
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:246 SearchSubPlugin.php:248
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:250 SearchSubPlugin.php:252
msgctxt "COMMANDHELP"
msgid "List all your search subscriptions."
msgstr ""

#. TRANS: Header for subscriptions overview for a user (first page).
#. TRANS: %s is a user nickname.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.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.
#: actions/searchsubs.php:124 actions/searchsubs.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.
#: actions/searchsubs.php:170
#, php-format
msgid "\"%2$s\" since %3$s"
msgstr ""

#. TRANS: Page title when search unsubscription succeeded.
#: actions/searchunsub.php:76
msgid "Unsubscribed"
msgstr ""

#. TRANS: Client error displayed trying to perform any request method other
#. than POST.
#. TRANS: Do not translate POST.
#: actions/searchsub.php:78
msgid "This action only accepts POST requests."
msgstr ""

#. TRANS: Client error displayed when the session token is not okay.
#: actions/searchsub.php:87
msgid "There was a problem with your session token. Try again, please."
msgstr ""

#. TRANS: Error message displayed when trying to perform an action that
#. requires a logged in user.
#: actions/searchsub.php:97
msgid "Not logged in."
msgstr ""

#. TRANS: Client error displayed trying to subscribe to a non-existing
#. profile.
#: actions/searchsub.php:106
msgid "No such profile."
msgstr ""

#. TRANS: Page title when search subscription succeeded.
#: actions/searchsub.php:132
msgid "Subscribed"
msgstr ""

#. TRANS: Error text shown a user tries to disable all a search subscriptions
#. with track off command, but has none.
#: lib/searchsubtrackingcommand.php:14 lib/searchsubtrackoffcommand.php:14
msgid "You are not tracking any searches."
msgstr ""

#. TRANS: Separator for list of tracked searches.
#: lib/searchsubtrackingcommand.php:24
msgctxt "SEPARATOR"
msgid "\", \""
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#. TRANS: %s is a list of searches. Separator default is '", "'.
#: lib/searchsubtrackingcommand.php:28
#, php-format
msgid "You are tracking searches for: \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to track a search query they're
#. already subscribed to.
#: lib/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.
#: lib/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.
#: lib/searchsubtrackcommand.php:35
#, php-format
msgid "You are subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Error text shown a user tries to untrack a search query they're not
#. subscribed to.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:22
#, php-format
msgid "You are not tracking the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel a search subscription by
#. untrack command.
#. TRANS: %s is the keyword for the query.
#: lib/searchsubuntrackcommand.php:31
#, php-format
msgid "Could not end a search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having removed a search subscription by untrack
#. command.
#. TRANS: %s is the keyword for the search.
#: lib/searchsubuntrackcommand.php:38
#, php-format
msgid "You are no longer subscribed to the search \"%s\"."
msgstr ""

#. TRANS: Message given having failed to cancel one of the search subs with
#. 'track off' command.
#. TRANS: %s is the search for which the subscription removal failed.
#: lib/searchsubtrackoffcommand.php:25
#, php-format
msgid "Error disabling search subscription for query \"%s\"."
msgstr ""

#. TRANS: Message given having disabled all search subscriptions with 'track
#. off'.
#: lib/searchsubtrackoffcommand.php:32
msgid "Disabled all your search subscriptions."
msgstr ""