code:
# Translation of StatusNet - AnonymousFave to Tagalog (Tagalog)
# Exported from translatewiki.net
#
# Author: AnakngAraw
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AnonymousFave\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:37+0000\n"
"Language-Team: Tagalog <https://translatewiki.net/wiki/Portal:tl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:09+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: tl\n"
"X-Message-Group: #out-statusnet-plugin-anonymousfave\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Server exception.
#. TRANS: %d is the notice ID (number).
#, php-format
msgid "Could not update favorite tally for notice ID %d."
msgstr ""
"Hindi maisapanahon ang talang-bilang ng kinagigiliwan para sa ID ng pabatid "
"na %d."

#. TRANS: Server exception.
#. TRANS: %d is the notice ID (number).
#, php-format
msgid "Could not create favorite tally for notice ID %d."
msgstr ""
"Hindi malikha ang talang-bilang ng kinagigiliwan para sa ID ng pabatid na %d."

#. TRANS: Client error.
msgid ""
"Could not disfavor notice! Please make sure your browser has cookies enabled."
msgstr ""
"Hindi magawang hindi paborito ang pabatid!  Pakitiyak na gumagana ang mga  "
"otap ng iyong pantingin-tingin."

#. TRANS: Client error.
msgid "There was a problem with your session token. Try again, please."
msgstr ""
"Nagkaroon ng isang suliranin sa iyong token ng sesyon.  Paki subukang muli."

#. TRANS: Client error.
msgid "This notice is not a favorite!"
msgstr "Ang pabatid na ito ay hindi isang paborito!"

#. TRANS: Server error.
msgid "Could not delete favorite."
msgstr "Hindi mabura ang paborito."

#. TRANS: Title.
msgid "Add to favorites"
msgstr "Idagdag sa mga paborito"

#. TRANS: Label for tally for number of times a notice was favored.
msgid "Favored"
msgstr "Pinaboran"

#. TRANS: Server exception.
msgid "Could not create anonymous user session."
msgstr "Hindi makalikha ng sesyon ng hindi nagpapakilalang tagagamit."

#. TRANS: Plugin description.
msgid "Allow anonymous users to favorite notices."
msgstr ""
"Payagan ang hindi nakikilalang mga tagagamit sa paboritong mga pabatid."

#. TRANS: Client error.
msgid ""
"Could not favor notice! Please make sure your browser has cookies enabled."
msgstr ""
"Hindi maipaborito ang pabatid!  Pakitiyak na gumagana ang mga otap ng iyong "
"pantingin-tingin."

#. TRANS: Client error.
msgid "This notice is already a favorite!"
msgstr "Isa nang paborito ang pabatid na ito!"

#. TRANS: Server error.
msgid "Could not create favorite."
msgstr "Hindi malikha ang paborito."

#. TRANS: Title.
msgid "Disfavor favorite"
msgstr "Huwag paboran ang paborito"


code:
# Translation of StatusNet - AnonymousFave to Ukrainian (українська)
# Exported from translatewiki.net
#
# Author: Boogie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AnonymousFave\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:37+0000\n"
"Language-Team: Ukrainian <https://translatewiki.net/wiki/Portal:uk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:09+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: uk\n"
"X-Message-Group: #out-statusnet-plugin-anonymousfave\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Server exception.
#. TRANS: %d is the notice ID (number).
#, php-format
msgid "Could not update favorite tally for notice ID %d."
msgstr ""
"Не вдалося оновити кількість позначок «обране» для допису за номером %d."

#. TRANS: Server exception.
#. TRANS: %d is the notice ID (number).
#, php-format
msgid "Could not create favorite tally for notice ID %d."
msgstr "Не вдалося створити позначку «обране» для допису за номером %d."

#. TRANS: Client error.
msgid ""
"Could not disfavor notice! Please make sure your browser has cookies enabled."
msgstr ""
"Не вдалося видалити повідомлення зі списку обраних! Будь ласка, "
"переконайтеся, що у вашому браузері увімкнено кукі."

#. TRANS: Client error.
msgid "There was a problem with your session token. Try again, please."
msgstr "Виникли певні проблеми з токеном сесії. Спробуйте знов, будь ласка."

#. TRANS: Client error.
msgid "This notice is not a favorite!"
msgstr "Цей допис не є обраним!"

#. TRANS: Server error.
msgid "Could not delete favorite."
msgstr "Не можу видалити допис зі списку обраних."

#. TRANS: Title.
msgid "Add to favorites"
msgstr "Додати до обраних"

#. TRANS: Label for tally for number of times a notice was favored.
msgid "Favored"
msgstr "Обране"

#. TRANS: Server exception.
msgid "Could not create anonymous user session."
msgstr "Не вдалося створити сесію анонімного користувача."

#. TRANS: Plugin description.
msgid "Allow anonymous users to favorite notices."
msgstr "Дозволити анонімнім користувачам позначати повідомлення як обрані."

#. TRANS: Client error.
msgid ""
"Could not favor notice! Please make sure your browser has cookies enabled."
msgstr ""
"Не вдалося позначити повідомлення як обране! Будь ласка, переконайтеся, що у "
"вашому браузері увімкнено кукі."

#. TRANS: Client error.
msgid "This notice is already a favorite!"
msgstr "Цей допис вже є обраним!"

#. TRANS: Server error.
msgid "Could not create favorite."
msgstr "Не вдалося позначити як обране."

#. TRANS: Title.
msgid "Disfavor favorite"
msgstr "Видалити з обраних"

license: mit


code:
#!/usr/bin/env php
<?php
/*
 * StatusNet - the distributed open-source microblogging tool
 * Copyright (C) 2010, 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/>.
 */

define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..'));

$helptext = <<<ENDOFHELP
USAGE: initialize_fave_tallys.php

Offline script to initialize notice fave tallys

ENDOFHELP;

require_once INSTALLDIR.'/scripts/commandline.inc';

$notice = new Notice();
$notice->find();

while ($notice->fetch()) {
    Fave_tally::ensureTally($notice->id);
}


code:
<?php

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

class AntiBrutePlugin extends Plugin {
    protected $failed_attempts = 0;
    protected $unauthed_user = null;
    protected $client_ip = null;

    const FAILED_LOGIN_IP_SECTION = 'failed_login_ip';

    public function onStartCheckPassword($nickname, $password, &$authenticatedUser)
    {
        if (common_is_email($nickname)) {
            $this->unauthed_user = User::getKV('email', common_canonical_email($nickname));
        } else {
            $this->unauthed_user = User::getKV('nickname', Nickname::normalize($nickname));
        }

        if (!$this->unauthed_user instanceof User) {
            // Unknown username continue processing StartCheckPassword (maybe uninitialized LDAP user etc?)
            return true;
        }

        // This probably needs some work. For example with IPv6 you can easily generate new IPs...
        $client_ip = common_client_ip();
        $this->client_ip = $client_ip[0] ?: $client_ip[1];   // [0] is proxy, [1] should be the real IP
        $this->failed_attempts = (int)$this->unauthed_user->getPref(self::FAILED_LOGIN_IP_SECTION, $this->client_ip);
        switch (true) {
        case $this->failed_attempts >= 5:
            common_log(LOG_WARNING, sprintf('Multiple failed login attempts for user %s from IP %s - brute force attack?',
                                 $this->unauthed_user->getNickname(), $this->client_ip));
            // 5 seconds is a good max waiting time anyway...
            sleep($this->failed_attempts % 5 + 1);
            break;
        case $this->failed_attempts > 0:
            common_debug(sprintf('Previously failed login on user %s from IP %s - sleeping %u seconds.',
                                 $this->unauthed_user->getNickname(), $this->client_ip, $this->failed_attempts));
            sleep($this->failed_attempts);
            break;
        default:
            // No sleeping if it's our first failed attempt.
        }

        return true;
    }

    public function onEndCheckPassword($nickname, $password, $authenticatedUser)
    {
        if ($authenticatedUser instanceof User) {
            // We'll trust this IP for this user and remove failed logins for the database..
            $authenticatedUser->delPref(self::FAILED_LOGIN_IP_SECTION, $this->client_ip);
            return true;
        }

        // See if we have an unauthed user from before. If not, it might be because the User did
        // not exist yet (such as autoregistering with LDAP, OpenID etc.).
        if ($this->unauthed_user instanceof User) {
            // And if the login failed, we'll increment the attempt count.
            common_debug(sprintf('Failed login tests for user %s from IP %s',
                                 $this->unauthed_user->getNickname(), $this->client_ip));
            $this->unauthed_user->setPref(self::FAILED_LOGIN_IP_SECTION, $this->client_ip, ++$this->failed_attempts);
        }
        return true;
    }

    public function onPluginVersion(&$versions)
    {
        $versions[] = array('name' => 'AntiBrute',
                            'version' => GNUSOCIAL_VERSION,
                            'author' => 'Mikael Nordfeldth',
                            'homepage' => 'http://gnu.io/',
                            'description' =>
                            // TRANS: Plugin description.
                            _m('Anti bruteforce method(s).'));
        return true;
    }
}


code:
<?php
/*
 * StatusNet - the distributed open-source microblogging tool
 * Copyright (C) 2010, 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/>.
 */

/**
 * @package ApiLoggerPlugin
 * @maintainer Brion Vibber <brion@status.net>
 */

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

class ApiLoggerPlugin extends Plugin
{
    // Lower this to do random sampling of API requests rather than all.
    // 0.1 will check about 10% of hits, etc.
    public $frequency = 1.0;

    function onArgsInitialize($args)
    {
        if (isset($args['action'])) {
            $action = strtolower($args['action']);
            if (substr($action, 0, 3) == 'api') {
                if ($this->frequency < 1.0 && $this->frequency > 0.0) {
                    $max = mt_getrandmax();
                    $n = mt_rand() / $max;
                    if ($n > $this->frequency) {
                        return true;
                    }
                }
                $uri = $_SERVER['REQUEST_URI'];

                $method = $_SERVER['REQUEST_METHOD'];
                $ssl = empty($_SERVER['HTTPS']) ? 'no' : 'yes';
                $cookie = empty($_SERVER['HTTP_COOKIE']) ? 'no' : 'yes';
                $etag = empty($_SERVER['HTTP_IF_MATCH']) ? 'no' : 'yes';
                $last = empty($_SERVER['HTTP_IF_MODIFIED_SINCE']) ? 'no' : 'yes';
                $auth = empty($_SERVER['HTTP_AUTHORIZATION']) ? 'no' : 'yes';
                if ($auth == 'no' && function_exists('apache_request_headers')) {
                    // Sometimes Authorization doesn't make it into $_SERVER.
                    // Probably someone thought it was scary.
                    $headers = apache_request_headers();
                    if (isset($headers['Authorization'])) {
                        $auth = 'yes';
                    }
                }
                $agent = empty($_SERVER['HTTP_USER_AGENT']) ? 'no' : $_SERVER['HTTP_USER_AGENT'];

                $query = (strpos($uri, '?') === false) ? 'no' : 'yes';
                if ($query == 'yes') {
                    if (preg_match('/\?since_id=\d+$/', $uri)) {
                        $query = 'since_id';
                    }
                }

                common_log(LOG_INFO, "STATLOG action:$action method:$method ssl:$ssl query:$query cookie:$cookie auth:$auth ifmatch:$etag ifmod:$last agent:$agent");
            }
        }
        return true;
    }

    function onPluginVersion(&$versions)
    {
        $versions[] = array('name' => 'ApiLogger',
                            'version' => GNUSOCIAL_VERSION,
                            'author' => 'Brion Vibber',
                            'homepage' => 'http://status.net/wiki/Plugin:ApiLogger',
                            'rawdescription' =>
                            // TRANS: Plugin description.
                            _m('Allows random sampling of API requests.'));
        return true;
    }
}


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: 2012-06-30 11:07+0000\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#. TRANS: Plugin description.
#: ApiLoggerPlugin.php:86
msgid "Allows random sampling of API requests."
msgstr ""


code:
# Translation of StatusNet - ApiLogger to Asturian (asturianu)
# Exported from translatewiki.net
#
# Author: Xuacu
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:39+0000\n"
"Language-Team: Asturian <https://translatewiki.net/wiki/Portal:ast>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ast\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Permite un muestréu al debalu de les peticiones del API."


code:
# Translation of StatusNet - ApiLogger to German (Deutsch)
# Exported from translatewiki.net
#
# Author: Giftpflanze
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:39+0000\n"
"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: de\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Erlaubt das zufällige Sampeln von API-Anfragen."


code:
# Translation of StatusNet - ApiLogger to Spanish (español)
# Exported from translatewiki.net
#
# Author: Erchache2000
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:39+0000\n"
"Language-Team: Spanish <https://translatewiki.net/wiki/Portal:es>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: es\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Permite un muestreo aleatorio de las solicitudes de API."


code:
# Translation of StatusNet - ApiLogger to Basque (euskara)
# Exported from translatewiki.net
#
# Author: Artsuaga
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:40+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "API eskarien ausazko laginketa baimentzen du."


code:
# Translation of StatusNet - ApiLogger to French (français)
# Exported from translatewiki.net
#
# Author: Iketsi
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:40+0000\n"
"Language-Team: French <https://translatewiki.net/wiki/Portal:fr>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: fr\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Permet un échantillonnage aléatoire des demandes de l'API."


code:
# Translation of StatusNet - ApiLogger to Galician (galego)
# Exported from translatewiki.net
#
# Author: Toliño
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:40+0000\n"
"Language-Team: Galician <https://translatewiki.net/wiki/Portal:gl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: gl\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Permite dar unha mostra aleatoria das solicitudes da API."


code:
# Translation of StatusNet - ApiLogger to Hebrew (עברית)
# Exported from translatewiki.net
#
# Author: Amire80
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:40+0000\n"
"Language-Team: Hebrew <https://translatewiki.net/wiki/Portal:he>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: he\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "מאפשר דגימה מקרית של בקשות API."


code:
# Translation of StatusNet - ApiLogger to Interlingua (interlingua)
# Exported from translatewiki.net
#
# Author: McDutchie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:40+0000\n"
"Language-Team: Interlingua <https://translatewiki.net/wiki/Portal:ia>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ia\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Permitte le inspection aleatori de requestas al API."


code:
# Translation of StatusNet - ApiLogger to Italian (italiano)
# Exported from translatewiki.net
#
# Author: Ximo17
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:40+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Permette il campionamento casuale delle richieste API."


code:
# Translation of StatusNet - ApiLogger to Colognian (Ripoarisch)
# Exported from translatewiki.net
#
# Author: Purodha
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:40+0000\n"
"Language-Team: Colognian <https://translatewiki.net/wiki/Portal:ksh>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ksh\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr ""
"Määt et müjjelesch, vun zohfälleje Oprohfe un dä <i lang=\"en\">API</i> "
"Schteschproobe ze maache."


code:
# Translation of StatusNet - ApiLogger to Macedonian (македонски)
# Exported from translatewiki.net
#
# Author: Bjankuloski06
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:40+0000\n"
"Language-Team: Macedonian <https://translatewiki.net/wiki/Portal:mk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: mk\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Овозможува земање произволни примероци на барањата од API."


code:
# Translation of StatusNet - ApiLogger to Malay (Bahasa Melayu)
# Exported from translatewiki.net
#
# Author: Anakmalaysia
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:40+0000\n"
"Language-Team: Malay <https://translatewiki.net/wiki/Portal:ms>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ms\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Membolehkan pensampelan permohonan API secara rawak."


code:
# Translation of StatusNet - ApiLogger to Dutch (Nederlands)
# Exported from translatewiki.net
#
# Author: Siebrand
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:40+0000\n"
"Language-Team: Dutch <https://translatewiki.net/wiki/Portal:nl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: nl\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Maakt het mogelijk om steekproeven te nemen van API-verzoeken."


code:
# Translation of StatusNet - ApiLogger to Polish (polski)
# Exported from translatewiki.net
#
# Author: BeginaFelicysym
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:40+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && "
"(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Umożliwia losowe próbkowanie żądań interfejsu API."


code:
# Translation of StatusNet - ApiLogger to Portuguese (português)
# Exported from translatewiki.net
#
# Author: Diego Queiroz
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:41+0000\n"
"Language-Team: Portuguese <https://translatewiki.net/wiki/Portal:pt>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: pt\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Permite que seja feita uma amostragem aleatória das chamadas da API."


code:
# Translation of StatusNet - ApiLogger to Tagalog (Tagalog)
# Exported from translatewiki.net
#
# Author: AnakngAraw
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:41+0000\n"
"Language-Team: Tagalog <https://translatewiki.net/wiki/Portal:tl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: tl\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Nagpapahintulot ng sapalarang paghahalimbawa ng mga kahilingan ng API."


code:
# Translation of StatusNet - ApiLogger to Ukrainian (українська)
# Exported from translatewiki.net
#
# Author: Boogie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ApiLogger\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:41+0000\n"
"Language-Team: Ukrainian <https://translatewiki.net/wiki/Portal:uk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: uk\n"
"X-Message-Group: #out-statusnet-plugin-apilogger\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Plugin description.
msgid "Allows random sampling of API requests."
msgstr "Дозволяє випадкової вибірки з API запитів."


code:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * Plugin to use crypt() for user password hashes
 *
 * 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  Plugin
 * @package   GNUsocial
 * @author    Mikael Nordfeldth <mmn@hethane.se>
 * @copyright 2012 StatusNet, Inc.
 * @copyright 2013 Free Software Foundation, Inc http://www.fsf.org
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link      http://www.gnu.org/software/social/
 */

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

class AuthCryptPlugin extends AuthenticationPlugin
{
    protected $hash         = '$6$';    // defaults to SHA512, i.e. '$6$', in onInitializePlugin()
    protected $statusnet    = true;     // if true, also check StatusNet style password hash
    protected $overwrite    = true;     // if true, password change means overwrite with crypt()

    public $provider_name   = 'crypt';  // not actually used

    /*
     * FUNCTIONALITY
     */

    function checkPassword($username, $password)
    {
        $user = User::getKV('nickname', $username);
        if (!($user instanceof User)) {
            return false;
        }

        // crypt understands what the salt part of $user->password is
        if ($user->password === crypt($password, $user->password)) {
            return $user;
        }

        // If we check StatusNet hash, for backwards compatibility and migration
        if ($this->statusnet && $user->password === md5($password . $user->id)) {
            // and update password hash entry to crypt() compatible
            if ($this->overwrite) {
                $this->changePassword($user->nickname, null, $password);
            }
            return $user;
        }

        return false;
    }

    protected function cryptSalt($len=CRYPT_SALT_LENGTH)
    {
        $chars = "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
        $salt  = '';

        for ($i=0; $i<$len; $i++) {
            $salt .= $chars{mt_rand(0, strlen($chars)-1)};
        }

        return $salt;
    }

    // $oldpassword is already verified when calling this function... shouldn't this be private?!
    function changePassword($username, $oldpassword, $newpassword)
    {
        if (!$this->password_changeable) {
            return false;
        }

        $user = User::getKV('nickname', $username);
        if (empty($user)) {
            return false;
        }
        $original = clone($user);

        $user->password = $this->hashPassword($newpassword, $user->getProfile());

        return (true === $user->validate() && $user->update($original));
    }

    public function hashPassword($password, Profile $profile=null)
    {
        // A new, unique salt per new record stored...
        return crypt($password, $this->hash . self::cryptSalt());
    }

    /*
     * EVENTS
     */

    public function onStartChangePassword($user, $oldpassword, $newpassword)
    {
        if (!$this->checkPassword($user->nickname, $oldpassword)) {
            // if we ARE in overwrite mode, test password with common_check_user
            if (!$this->overwrite || !common_check_user($user->nickname, $oldpassword)) {
                // either we're not in overwrite mode, or the password was incorrect
                return !$this->authoritative;
            }
            // oldpassword was apparently ok
        }
        $changed = $this->changePassword($user->nickname, $oldpassword, $newpassword);

        return (!$changed && empty($this->authoritative));
    }

    public function onStartCheckPassword($nickname, $password, &$authenticatedUser)
    {
        $authenticatedUser = $this->checkPassword($nickname, $password);
        // if we failed, only return false to stop plugin execution if we're authoritative
        return (!($authenticatedUser instanceof User) && empty($this->authoritative));
    }

    public function onStartHashPassword(&$hashed, $password, Profile $profile=null)
    {
        $hashed = $this->hashPassword($password, $profile);
        return false;
    }

    public function onCheckSchema()
    {
        // we only use the User database, so default AuthenticationPlugin stuff can be ignored
        return true;
    }

    public function onUserDeleteRelated($user, &$tables)
    {
        // not using User_username table, so no need to add it here.
        return true;
    }

    public function onPluginVersion(&$versions)
    {
        $versions[] = array('name' => 'AuthCrypt',
                            'version' => GNUSOCIAL_VERSION,
                            'author' => 'Mikael Nordfeldth',
                            'homepage' => 'http://status.net/wiki/Plugin:AuthCrypt',
                            'rawdescription' =>
                            // TRANS: Plugin description.
                            _m('Authentication and password hashing with crypt()'));
        return true;
    }
}


code:
AuthCrypt allows for StatusNet to use crypt() hashing to store password credentials.

Requirements
============
* PHP >= 5.3.2 with php5-mcrypt extension for certain SHA512 support
* lib/authenticationplugin.php in your StatusNet install

Installation
============
Add either of the following configurations to your config.php (see Example below for more options):

The recommended use is to overwrite old hash values when logging in (statusnet + overwrite modes) and be the authority on password checks when logging in. If you only wish to update entries on password change the default values are enough. 'statusnet' and 'overwrite' are true by default. 'authoritative' is only necessary if we want to exclude other plugins from verifying the password.

    addPlugin('AuthCrypt');

To disable updating to crypt() on password change (and login with the 'statusnet' compatibility mode), simply set the 'overwrite' setting to false:

    addPlugin('AuthCrypt', array(
        'overwrite'=>false,
    ));

Settings
========
Default values in parenthesis. Many settings are inherited from the AuthenticationPlugin class.

authoritative (false): Set this to true when _all_ passwords are hashed with crypt()
    (warning: this may disable all other password verification, also when changing passwords!)
hash ('$6$'): Hash signature to use, defaults to SHA512. See all supported strings at http://php.net/crypt
    (warning: set this to something crypt() understands, or you will default to the very weak 2-char DES scheme)
statusnet (true): Do we check the password against legacy StatusNet md5 hash?
    (notice: will check password login against old-style hash and if 'overwrite' is enabled update using crypt())
overwrite (true): Do we overwrite old style password hashes with crypt() hashes on password change?
    (notice: to make use of stronger security or migrate to crypt() hashes, this must be true)
password_changeable (true): Enables or disables password changing.
    (notice: if combined with authoritative, it disables changing passwords and removes option from menu.)
autoregistration: This setting is ignored. Password can never be valid without existing User.
provider_name: This setting defaults to 'crypt' but is never stored anywhere.

path: plugins/AuthCrypt/README


code:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * Plugin to automatically sandbox newly registered users in an effort to beat
 * spammers. If the user proves to be legitimate, moderators can un-sandbox them.
 *
 * 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  Plugin
 * @package   StatusNet
 * @author    Sean Carmody<seancarmody@gmail.com>
 * @copyright 2010
 * @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);
}

define('AUTOSANDBOX', '0.1');

//require_once(INSTALLDIR.'/plugins/AutoSandbox/autosandbox.php');

class AutoSandboxPlugin extends Plugin
{
    var $contact;
    var $debug;

    function onInitializePlugin()
    {
        if(!isset($this->debug))
        {
            $this->debug = 0;
        }

        if(!isset($this->contact)) {
           $default = common_config('newuser', 'default');
           if (!empty($default)) {
               $this->contact = $default;
           }
        }
    }

    function onPluginVersion(&$versions)
    {
        $versions[] = array('name' => 'AutoSandbox',
                            'version' => GNUSOCIAL_VERSION,
                            'author' => 'Sean Carmody',
                            'homepage' => 'http://status.net/wiki/Plugin:AutoSandbox',
                            'rawdescription' =>
                            // TRANS: Plugin description.
                            _m('Automatically sandboxes newly registered members.'));
        return true;
    }

    function onStartRegistrationFormData($action)
    {
         // TRANS: User instructions after registration.
         $instr = _m('Note you will initially be "sandboxed" so your posts will not appear in the public timeline.');

         if (isset($this->contact)) {
             $contactuser = User::getKV('nickname', $this->contact);
             if ($contactuser instanceof User) {
                 $contactlink = sprintf('@%s',
                                        htmlspecialchars($contactuser->getProfile()->getUrl()),
                                        htmlspecialchars($contactuser->getProfile()->getNickname()));
                 // TRANS: User instructions after registration.
                 // TRANS: %s is a clickable OStatus profile URL.
                 $instr = sprintf(_m('Note you will initially be "sandboxed" so your posts will not appear in the public timeline. '.
                   'Send a message to %s to speed up the unsandboxing process.'),$contactlink);
             }
         }

         $output = common_markup_to_html($instr);
         $action->elementStart('div', 'instructions');
         $action->raw($output);
         $action->elementEnd('div');
    }

    public function onEndUserRegister(Profile $profile)
    {
        $profile->sandbox();
        if ($this->debug) {
            common_log(LOG_WARNING, "AutoSandbox: sandboxed of $profile->nickname");
        }
    }
}


code:
StatusNet AutoSandbox plugin 0.1 03/16/10
=========================================
Automatically sandboxes newly registered users as a spam-management technique.
Only really suits small sites where all users can be hand-moderated. A moderator
will then have to unbox legimate users, using the following built-in script:

./scripts/userrole.php -n username -r moderator

(replace 'username' with the nickname of the user you wish to make a moderator).

The following note will be added to the top of the Registration form:

"Note you will initially be "sandboxed" so your posts will not appear in the
public timeline."

This can be followed by the following extra information if a contact user (denoted
here by XXX) is specified:

"Send a message to @XXX to speed up the unsandboxing process."

If no contact user is specified, it will default to the "Default subscription" user
who automatically subscribes to new users (set in Admin -> User).

Use:
1. Add plugin:

Default usage:
addPlugin('AutoSandbox');

Specify a contact user (replace 'someuser' with appropriate username):
addPlugin('AutoSandbox', array('contact' => 'someuser'));

Stop contact user from defaulting to the Defaul subscription:
addPlugin('AutoSandbox', array('contact' => ''));

Changelog
=========
0.1 initial release

path: plugins/AutoSandbox/README


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: 2012-06-30 11:07+0000\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#. TRANS: Plugin description.
#: AutoSandboxPlugin.php:67
msgid "Automatically sandboxes newly registered members."
msgstr ""

#. TRANS: User instructions after registration.
#: AutoSandboxPlugin.php:74
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#: AutoSandboxPlugin.php:82
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""


code:
# Translation of StatusNet - AutoSandbox to Belarusian (Taraškievica orthography) (беларуская (тарашкевіца))
# Exported from translatewiki.net
#
# Author: EugeneZelenko
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:43+0000\n"
"Language-Team: Belarusian (Taraškievica orthography) <https://translatewiki."
"net/wiki/Portal:be-tarask>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: be-tarask\n"
"X-Message-Group: #out-statusnet-plugin-autosandbox\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr "Аўтаматычна перасылае ў пясочніцу ўсіх новых карыстальнікаў."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Памятайце, што спачатку Вы будзеце знаходзіцца ў пясочніцы, таму Вашыя "
"паведамленьні ня будуць паказвацца ў агульнай стужцы."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, fuzzy, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Памятайце, што спачатку Вы будзеце знаходзіцца ў пясочніцы, таму Вашыя "
"паведамленьні ня будуць паказвацца ў агульнай стужцы. Дашліце паведамленьне "
"ў $contactlink, каб паскорыць працэс пераводу з пясочніцы."


code:
# Translation of StatusNet - AutoSandbox to Breton (brezhoneg)
# Exported from translatewiki.net
#
# Author: Fulup
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:43+0000\n"
"Language-Team: Breton <https://translatewiki.net/wiki/Portal:br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: br\n"
"X-Message-Group: #out-statusnet-plugin-autosandbox\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr "Lakaat a ra an implijerien nevez en ur poull-traezh ent emgefre."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Notit mat e viot lakaet en ur poull-traezh e penn-kentañ, ar pezh a dalvez "
"ne vo ket gwelet ho kemennadennoù en deiziataer foran."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, fuzzy, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Notit mat e viot lakaet en ur \"poull-traezh\" e penn-kentañ, ar pezh a "
"dalvez ne vo ket gwelet ho kemennadennoù en deiziataer foran.  Kasit ur "
"c'hemenn da $contactlink evit mont er-maez eus ar poull-traezh fonnusoc'h."


code:
# Translation of StatusNet - AutoSandbox to German (Deutsch)
# Exported from translatewiki.net
#
# Author: DaSch
# Author: The Evil IP address
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:43+0000\n"
"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: de\n"
"X-Message-Group: #out-statusnet-plugin-autosandbox\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr "Neu registrierte Benutzer automatisch auf die Spielwiese setzen."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Beachte, dass du anfangs in die „Spielwiese“ gesetzt wirst, sodass deine "
"Beiträge nicht in der öffentlichen Zeitleiste erscheinen."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Beachte, dass du anfangs in den „Sandkasten“ gesetzt wirst, das heißt dass "
"deine Beiträge nicht in der öffentlichen Zeitleiste erscheinen. Schicke eine "
"Nachricht an %s, um schneller aus dem Sandkasten rauszukommen."


code:
# Translation of StatusNet - AutoSandbox to Spanish (español)
# Exported from translatewiki.net
#
# Author: Erchache2000
# Author: Translationista
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:43+0000\n"
"Language-Team: Spanish <https://translatewiki.net/wiki/Portal:es>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: es\n"
"X-Message-Group: #out-statusnet-plugin-autosandbox\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr ""
"Envía automáticamente a zona de pruebas a los usuarios recién registrados."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Ten en cuenta que inicialmente serás enviado a la zona de pruebas, así que "
"tus mensajes no aparecerán en la línea temporal pública."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Ten en cuenta que inicialmente serás enviado a la zona de pruebas, así que "
"tus mensajes no aparecerán en la línea temporal pública. Envía un mensaje a %"
"s para acelerar el proceso de exclusión de la zona de pruebas."


code:
# Translation of StatusNet - AutoSandbox to Basque (euskara)
# Exported from translatewiki.net
#
# Author: Artsuaga
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:43+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr "Erregistratzen diren erabiltzaile berriak automatikoki isolatzen ditu."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Izan kontutan haseran isolatua izango zarela, eta beraz zure oharrak ez "
"direla denbora lerro publikoan azalduko."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Izan kontutan haseran isolatua izango zarela, eta beraz zure oharrak ez "
"direla denbora lerro publikoan azalduko. Isolamendutik ateratzeko prozesua "
"arintzeko bidali mezu bat %s(e)ri."


code:
# Translation of StatusNet - AutoSandbox to French (français)
# Exported from translatewiki.net
#
# Author: Peter17
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:43+0000\n"
"Language-Team: French <https://translatewiki.net/wiki/Portal:fr>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: fr\n"
"X-Message-Group: #out-statusnet-plugin-autosandbox\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr "Place automatiquement les nouveaux membres dans une boîte à sable."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Notez que vous serez initialement placé dans un « bac à sable », ce qui "
"signifie que vos messages n’apparaîtront pas dans le calendrier public."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Notez que vous serez initialement placé dans un « bac à sable », ce qui "
"signifie que vos messages n’apparaîtront pas dans le calendrier public. "
"Envoyez un message à %s pour accélérer le processus de sortie du bac à sable."


code:
# Translation of StatusNet - AutoSandbox to Galician (galego)
# Exported from translatewiki.net
#
# Author: Toliño
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:43+0000\n"
"Language-Team: Galician <https://translatewiki.net/wiki/Portal:gl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: gl\n"
"X-Message-Group: #out-statusnet-plugin-autosandbox\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr "Sitúa de xeito automático aos novos usuarios nunha zona de probas."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Teña en conta que inicialmente será enviado a unha zona de probas, de xeito "
"que as súas mensaxes non apareceran na liña temporal pública."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Teña en conta que inicialmente será enviado a unha zona de probas, de xeito "
"que as súas mensaxes non apareceran na liña temporal pública. Envíe unha "
"mensaxe a %s para acelerar o proceso de abandonar a zona de probas."


code:
# Translation of StatusNet - AutoSandbox to Interlingua (interlingua)
# Exported from translatewiki.net
#
# Author: McDutchie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:43+0000\n"
"Language-Team: Interlingua <https://translatewiki.net/wiki/Portal:ia>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ia\n"
"X-Message-Group: #out-statusnet-plugin-autosandbox\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr "Automaticamente pone le membros novemente registrate in isolation."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Nota que tu essera initialmente ponite in isolation de sorta que tu messages "
"non apparera in le chronologia public."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Nota que tu essera initialmente isolate in le \"cassa de sablo\" de sorta "
"que tu messages non apparera in le chronologia public. Invia un message a %s "
"pro accelerar le liberation del cassa de sablo."


code:
# Translation of StatusNet - AutoSandbox to Italian (italiano)
# Exported from translatewiki.net
#
# Author: Ximo17
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:44+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr "I nuovi membri registrati saranno automaticamente inseriti in sandbox."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Nota che inizialmente sarai \"sandboxato\" e i tuoi post non compariranno "
"nella cronologia pubblica."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Nota che inizialmente sarai \"sandboxato\" e i tuoi post non compariranno "
"nella cronologia pubblica. Invia un messaggio a  %s  per accelerare il "
"processo di uscita dal sandbox."


code:
# Translation of StatusNet - AutoSandbox to Macedonian (македонски)
# Exported from translatewiki.net
#
# Author: Bjankuloski06
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:44+0000\n"
"Language-Team: Macedonian <https://translatewiki.net/wiki/Portal:mk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: mk\n"
"X-Message-Group: #out-statusnet-plugin-autosandbox\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr "Автоматски става новорегистрираните членови во песочник."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Напомена: во прво време ќе бидете ставени во песочникот, па така Вашите "
"објави нема да фигурираат во јавната хронологија."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Напомена: во прво време ќе бидете ставени во песочникот, па така Вашите "
"објави нема да фигурираат во јавната хронологија. Испратете порака на %s за "
"да ја забрзате постапката за излегување од песочникот."


code:
# Translation of StatusNet - AutoSandbox to Dutch (Nederlands)
# Exported from translatewiki.net
#
# Author: Siebrand
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:44+0000\n"
"Language-Team: Dutch <https://translatewiki.net/wiki/Portal:nl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: nl\n"
"X-Message-Group: #out-statusnet-plugin-autosandbox\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr ""
"Voegt nieuwe gebruikers automatisch toe aan een groep met beperkte "
"functionaliteit."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Let op: In eerste instantie worden uw mogelijkheden beperkt, dus uw "
"mededelingen worden niet zichtbaar in de publieke tijdlijn."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Let op: In eerste instantie worden uw mogelijkheden beperkt, dus uw "
"mededelingen worden niet zichtbaar in de publieke tijdlijn. Stuur een "
"bericht naar %s om het proces te versnellen."


code:
# Translation of StatusNet - AutoSandbox to Polish (polski)
# Exported from translatewiki.net
#
# Author: BeginaFelicysym
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:44+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && "
"(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr ""
"Automatycznie umieszcza nowozarejestrowanych użytkowników w piaskownicy."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Zauważ, że początkowo będziesz w \"trybie piaskownicy\" więc ogłoszenia nie "
"pojawią się w strumieniach publicznych."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Zauważ, że początkowo będziesz w \"trybie piaskownicy\" więc ogłoszenia nie "
"pojawią się w strumieniach publicznych. Wyślij wiadomość do  %s  by "
"przyspieszenia proces wyjścia z pisakownicy."


code:
# Translation of StatusNet - AutoSandbox to Russian (русский)
# Exported from translatewiki.net
#
# Author: MaxSem
# Author: Александр Сигачёв
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:44+0000\n"
"Language-Team: Russian <https://translatewiki.net/wiki/Portal:ru>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ru\n"
"X-Message-Group: #out-statusnet-plugin-autosandbox\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr "Автоматически отсылает всех новых пользователей в «песочницу»."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Обратите внимание, что сначала вы будете находиться в «песочнице», так что "
"ваши сообщения не будут появляться в общей ленте."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Обратите внимание, что сначала вы будете находиться в «песочнице», так что "
"ваши сообщения не будут появляться в общей ленте. Отправьте сообщение на "
"адрес %s, чтобы ускорить перевод из песочницы."


code:
# Translation of StatusNet - AutoSandbox to Tagalog (Tagalog)
# Exported from translatewiki.net
#
# Author: AnakngAraw
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:44+0000\n"
"Language-Team: Tagalog <https://translatewiki.net/wiki/Portal:tl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: tl\n"
"X-Message-Group: #out-statusnet-plugin-autosandbox\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr "Kusang ikinakahon ng buhangin ang bagong nagpatalang mga kasapi."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Taandan na \"ikakahon ng buhangin\" ka muna kaya't ang mga pagpapaskil mo ay "
"hindi lilitaw sa pangmadlang guhit ng panahon."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Taandan na \"ikakahon sa buhangin\" ka muna kaya't ang mga pagpapaskil mo ay "
"hindi lilitaw sa pangmadlang guhit ng panahon.  Magpadala ng mensahe sa %s "
"upang mapabilis ang pagsasagawa ng hindi pagkakahon sa buhangin."


code:
# Translation of StatusNet - AutoSandbox to Ukrainian (українська)
# Exported from translatewiki.net
#
# Author: Boogie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:44+0000\n"
"Language-Team: Ukrainian <https://translatewiki.net/wiki/Portal:uk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: uk\n"
"X-Message-Group: #out-statusnet-plugin-autosandbox\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr "Автоматично відсилати до «пісочниці» усіх нових користувачів."

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr ""
"Зауважте, що спочатку вас буде відправлено до «пісочниці», отже ваші дописи "
"не з’являтимуться у загальній стрічці дописів."

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"Зауважте, що спочатку вас буде відправлено до «пісочниці», отже ваші дописи "
"не з’являтимуться у загальній стрічці дописів. Надішліть повідомлення до %s, "
"аби прискорити процес вашого «виходу в люди»."


code:
# Translation of StatusNet - AutoSandbox to Simplified Chinese (中文（简体）)
# Exported from translatewiki.net
#
# Author: ZhengYiFeng
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AutoSandbox\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:44+0000\n"
"Language-Team: Simplified Chinese <https://translatewiki.net/wiki/Portal:zh-"
"hans>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:46+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: zh-hans\n"
"X-Message-Group: #out-statusnet-plugin-autosandbox\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#. TRANS: Plugin description.
msgid "Automatically sandboxes newly registered members."
msgstr "自动将新注册用户添加至沙盒中。"

#. TRANS: User instructions after registration.
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline."
msgstr "注意：最初你将被添加至“沙盒”中，你的消息将不会在公共的时间线上显示。"

#. TRANS: User instructions after registration.
#. TRANS: %s is a clickable e-mailaddress.
#, fuzzy, php-format
msgid ""
"Note you will initially be \"sandboxed\" so your posts will not appear in "
"the public timeline. Send a message to %s to speed up the unsandboxing "
"process."
msgstr ""
"注意：最初你将被添加至“沙盒”中，你的消息将不会在公共的时间线上显示。给"
"$contactlink发消息可以加快你被移出沙盒的速度。"


code:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * Plugin to enable nickname completion in the enter status box
 *
 * 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  Plugin
 * @package   StatusNet
 * @author    Craig Andrews <candrews@integralblue.com>
 * @copyright 2010 Free Software Foundation http://fsf.org
 * @copyright 2009 Free Software Foundation, Inc http://www.fsf.org
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link      http://status.net/
 */

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

class AutocompletePlugin extends Plugin
{
    function __construct()
    {
        parent::__construct();
    }

    function onEndShowScripts($action){
        if (common_logged_in()) {
            $action->element('span', array('id' => 'autocomplete-api',
                                           'data-url' => common_local_url('autocomplete')));
            $action->script($this->path('js/autocomplete.go.js'));
        }
    }

    function onRouterInitialized($m)
    {
        $m->connect('main/autocomplete/suggest', array('action'=>'autocomplete'));
    }

    function onPluginVersion(&$versions)
    {
        $versions[] = array('name' => 'Autocomplete',
                            'version' => GNUSOCIAL_VERSION,
                            'author' => 'Craig Andrews',
                            'homepage' => 'http://status.net/wiki/Plugin:Autocomplete',
                            'rawdescription' =>
                            // TRANS: Plugin description.
                            _m('The autocomplete plugin adds autocompletion for @ replies.'));
        return true;
    }
}


code:
Autocomplete allows users to autocomplete screen names in @ replies and
! group references.

When an "@" or "!" is typed into the notice text area, an autocomplete box
is displayed populated with the user's friends' screen names or group
memberships.

Completion suggestions can be selected via the mouse or arrow keys, and the
suggestion can be inserted either by clicking or hitting tab. Hitting enter
will also select the suggestion, but will submit your message too!

Installation
============
Add "addPlugin('Autocomplete');" to the bottom of your config.php
That's it!

path: plugins/Autocomplete/README


code:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * List profiles and groups for autocompletion
 *
 * 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  Plugin
 * @package   StatusNet
 * @author    Craig Andrews <candrews@integralblue.com>
 * @author    Mikael Nordfeldth <mmn@hethane.se>
 * @copyright 2008-2009 StatusNet, Inc.
 * @copyright 2009-2013 Free Software Foundation, Inc http://www.fsf.org
 * @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') && !defined('STATUSNET')) {
    exit(1);
}

/**
 * List users for autocompletion
 *
 * This is the form for adding a new g
 *
 * @category Plugin
 * @package  StatusNet
 * @author   Craig Andrews <candrews@integralblue.com>
 * @author   Mikael Nordfeldth <mmn@hethane.se>
 * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link     http://status.net/
 */
class AutocompleteAction extends Action
{
    protected $needLogin = true;

    private $result;

    /**
     * Last-modified date for page
     *
     * When was the content of this page last modified? Based on notice,
     * profile, avatar.
     *
     * @return int last-modified date as unix timestamp
     */
    function lastModified()
    {
        $max=0;
        foreach($this->profiles as $profile){
            $max = max($max, strtotime($profile->modified));
        }
        foreach($this->groups as $group){
            $max = max($max,strtotime($group->modified));
        }
        return $max;
    }

    /**
     * An entity tag for this page
     *
     * Shows the ETag for the page, based on the notice ID and timestamps
     * for the notice, profile, and avatar. It's weak, since we change
     * the date text "one hour ago", etc.
     *
     * @return string etag
     */
    function etag()
    {
        return '"' . implode(':', array($this->arg('action'),
            common_user_cache_hash(),
            crc32($this->arg('term')), //the actual string can have funny characters in we don't want showing up in the etag
            $this->arg('limit'),
            $this->lastModified())) . '"';
    }

    protected function prepare(array $args=array())
    {
        // If we die, show short error messages.
        StatusNet::setApi(true);

        parent::prepare($args);

        $this->groups=array();
        $this->profiles=array();
        $term = $this->arg('term');
        $limit = $this->arg('limit');
        if($limit > 200) $limit=200; //prevent DOS attacks
        if(substr($term,0,1)=='@'){
            //profile search
            $term=substr($term,1);
            $profile = new Profile();
            $profile->limit($limit);
            $profile->whereAdd('nickname like \'' . trim($profile->escape($term), '\'') . '%\'');
            $profile->whereAdd(sprintf('id in (SELECT id FROM user) OR '
                               . 'id in (SELECT subscribed from subscription'
                               . ' where subscriber = %d)', $this->scoped->id));
            if ($profile->find()) {
                while($profile->fetch()) {
                    $this->profiles[]=clone($profile);
                }
            }
        }
        if(substr($term,0,1)=='!'){
            //group search
            $term=substr($term,1);
            $group = new User_group();
            $group->limit($limit);
            $group->whereAdd('nickname like \'' . trim($group->escape($term), '\'') . '%\'');
            //Can't post to groups we're not subscribed to...:
            $group->whereAdd(sprintf('id in (SELECT group_id FROM group_member'
                             . ' WHERE profile_id = %d)', $this->scoped->id));
            if($group->find()){
                while($group->fetch()) {
                    $this->groups[]=clone($group);
                }
            }
        }
        return true;
    }

    protected function handle()
    {
        parent::handle();

        $results = array();
        foreach($this->profiles as $profile){
            $avatarUrl = $profile->avatarUrl(AVATAR_MINI_SIZE);
            $results[] = array(
                'value' => '@'.$profile->nickname,
                'nickname' => $profile->nickname,
                'label'=> $profile->getFancyName(),
                'avatar' => $avatarUrl,
                'type' => 'user'
            );
        }
        foreach($this->groups as $group){
            // sigh.... encapsulate this upstream!
            if ($group->mini_logo) {
                $avatarUrl = $group->mini_logo;
            } else {
                $avatarUrl = User_group::defaultLogo(AVATAR_MINI_SIZE);
            }
            $results[] = array(
                'value' => '!'.$group->nickname,
                'nickname' => $group->nickname,
                'label'=> $group->getFancyName(),
                'avatar' => $avatarUrl,
                'type' => 'group');
        }
        print json_encode($results);
    }

    /**
     * Is this action read-only?
     *
     * @param array $args other arguments
     *
     * @return boolean is read only action?
     */
    function isReadOnly($args)
    {
        return true;
    }
}


code:
/** Init for Autocomplete (requires jquery-ui)
 *
 * @package   Plugin
 * @author Mikael Nordfeldth <mmn@hethane.se>
 * @copyright 2013 Free Software Foundation, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link      http://status.net/
 */

var origInit = SN.Init.NoticeFormSetup;
SN.Init.NoticeFormSetup = function(form) {
    origInit(form);

    // Only attach to traditional-style forms
    var textarea = form.find('.notice_data-text:first');
    if (textarea.length == 0) {
        return;
    }

    function termSplit(val) {
        return val.split(/ \s*/);
    }
    function extractLast( term ) {
        return termSplit(term).pop();
    }
    var apiUrl = $('#autocomplete-api').attr('data-url');
    // migrated "multiple" and "multipleSeparator" from
    // http://www.learningjquery.com/2010/06/autocomplete-migration-guide
    textarea
        .bind('keydown', function( event ) {
            if ( event.keyCode === $.ui.keyCode.TAB &&
                $( this ).data( "ui-autocomplete" ).menu.active ) {
                event.preventDefault();
            }
        })
        .autocomplete({
            minLength: 1,   // 1 is default
            source: function (request, response) {
                $.getJSON( apiUrl, {
                    term: extractLast(request.term)
                }, response );
            },
            search: function () {
                // custom minLength, we though we match the 1 below
                var term = extractLast(this.value);
                if (term.length <= 1) {
                    return false;
                }
            },
            focus: function () {
                // prevent value inserted on focus
                return false;
            },
            select: function (event, ui) {
                var terms = termSplit(this.value);
                terms.pop();    // remove latest term
                terms.push(ui.item.value);  // insert
                terms.push(''); // empty element, for the join()
                this.value = terms.join(' ');
                return false;
            },
        })
        .data('ui-autocomplete')._renderItem = function (ul, item) {
            return $('

')
                .data('ui-autocomplete-item', item)
                .append('')
                .find('img').attr('src', item.avatar).end()
                .find('span').text(item.label).end()
                .appendTo(ul);
        };
};


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: 2012-06-30 11:07+0000\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#. TRANS: Plugin description.
#: AutocompletePlugin.php:83
msgid "The autocomplete plugin adds autocompletion for @ replies."
msgstr ""

#. TRANS: Client exception in autocomplete plugin.
#: autocomplete.php:98
msgid "Access forbidden."
msgstr ""


code:
# Translation of StatusNet - Autocomplete to Arabic (العربية)
# Exported from translatewiki.net
#
# Author: OsamaK
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Autocomplete\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:41+0000\n"
"Language-Team: Arabic <https://translatewiki.net/wiki/Portal:ar>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ar\n"
"X-Message-Group: #out-statusnet-plugin-autocomplete\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: Plugin description.
msgid "The autocomplete plugin adds autocompletion for @ replies."
msgstr ""

#. TRANS: Client exception in autocomplete plugin.
msgid "Access forbidden."
msgstr "الوصول محظور."


code:
# Translation of StatusNet - Autocomplete to Asturian (asturianu)
# Exported from translatewiki.net
#
# Author: Xuacu
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Autocomplete\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:41+0000\n"
"Language-Team: Asturian <https://translatewiki.net/wiki/Portal:ast>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ast\n"
"X-Message-Group: #out-statusnet-plugin-autocomplete\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "The autocomplete plugin adds autocompletion for @ replies."
msgstr ""
"El plugin autocompletar amiesta completáu automático a les rempuestes @"

#. TRANS: Client exception in autocomplete plugin.
msgid "Access forbidden."
msgstr "Accesu torgáu."


code:
# Translation of StatusNet - Autocomplete to Catalan (català)
# Exported from translatewiki.net
#
# Author: Toniher
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Autocomplete\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:41+0000\n"
"Language-Team: Catalan <https://translatewiki.net/wiki/Portal:ca>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ca\n"
"X-Message-Group: #out-statusnet-plugin-autocomplete\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "The autocomplete plugin adds autocompletion for @ replies."
msgstr ""

#. TRANS: Client exception in autocomplete plugin.
msgid "Access forbidden."
msgstr "Accés prohibit."


code:
# Translation of StatusNet - Autocomplete to German (Deutsch)
# Exported from translatewiki.net
#
# Author: Giftpflanze
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Autocomplete\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:41+0000\n"
"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: de\n"
"X-Message-Group: #out-statusnet-plugin-autocomplete\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "The autocomplete plugin adds autocompletion for @ replies."
msgstr ""
"Das autocomplete-Plugin fügt Autovervollständigung für @-Antworten hinzu."

#. TRANS: Client exception in autocomplete plugin.
msgid "Access forbidden."
msgstr "Zugriff verboten."


code:
# Translation of StatusNet - Autocomplete to Spanish (español)
# Exported from translatewiki.net
#
# Author: Erchache2000
# Author: Od1n
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Autocomplete\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:41+0000\n"
"Language-Team: Spanish <https://translatewiki.net/wiki/Portal:es>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: es\n"
"X-Message-Group: #out-statusnet-plugin-autocomplete\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "The autocomplete plugin adds autocompletion for @ replies."
msgstr "El plugin de Autocompletar agrega autocompletado para @ respuestas."

#. TRANS: Client exception in autocomplete plugin.
msgid "Access forbidden."
msgstr "Acceso prohibido."


code:
# Translation of StatusNet - Autocomplete to Basque (euskara)
# Exported from translatewiki.net
#
# Author: Artsuaga
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Autocomplete\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:41+0000\n"
"Language-Team: Basque <https://translatewiki.net/wiki/Portal:eu>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: eu\n"
"X-Message-Group: #out-statusnet-plugin-autocomplete\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "The autocomplete plugin adds autocompletion for @ replies."
msgstr "Autocomplete pluginak @ erantzunak berez osatzen ditu."

#. TRANS: Client exception in autocomplete plugin.
msgid "Access forbidden."
msgstr "Atzipena debekaturik."


code:
# Translation of StatusNet - Autocomplete to French (français)
# Exported from translatewiki.net
#
# Author: Crochet.david
# Author: Iketsi
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Autocomplete\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:41+0000\n"
"Language-Team: French <https://translatewiki.net/wiki/Portal:fr>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: fr\n"
"X-Message-Group: #out-statusnet-plugin-autocomplete\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Plugin description.
msgid "The autocomplete plugin adds autocompletion for @ replies."
msgstr ""
"Le greffon de saisie semi-automatique ajoute l’auto-complétion pour les "
"réponses @."

#. TRANS: Client exception in autocomplete plugin.
msgid "Access forbidden."
msgstr "Accès interdit."


code:
# Translation of StatusNet - Autocomplete to Galician (galego)
# Exported from translatewiki.net
#
# Author: Toliño
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Autocomplete\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:41+0000\n"
"Language-Team: Galician <https://translatewiki.net/wiki/Portal:gl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: gl\n"
"X-Message-Group: #out-statusnet-plugin-autocomplete\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "The autocomplete plugin adds autocompletion for @ replies."
msgstr ""
"O complemento de completar automaticamente engade o completado automático "
"para as respostas @."

#. TRANS: Client exception in autocomplete plugin.
msgid "Access forbidden."
msgstr "Acceso prohibido."


code:
# Translation of StatusNet - Autocomplete to Hebrew (עברית)
# Exported from translatewiki.net
#
# Author: Amire80
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Autocomplete\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:41+0000\n"
"Language-Team: Hebrew <https://translatewiki.net/wiki/Portal:he>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: he\n"
"X-Message-Group: #out-statusnet-plugin-autocomplete\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "The autocomplete plugin adds autocompletion for @ replies."
msgstr "תוסף השלמה אוטומטית מאפשר השלמה אוטומטית של תשובות ב־@."

#. TRANS: Client exception in autocomplete plugin.
msgid "Access forbidden."
msgstr "הגישה אסורה."


code:
# Translation of StatusNet - Autocomplete to Interlingua (interlingua)
# Exported from translatewiki.net
#
# Author: McDutchie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Autocomplete\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:42+0000\n"
"Language-Team: Interlingua <https://translatewiki.net/wiki/Portal:ia>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:45+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ia\n"
"X-Message-Group: #out-statusnet-plugin-autocomplete\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "The autocomplete plugin adds autocompletion for @ replies."
msgstr "Le plug-in \"autocomplete\" adde autocompletion pro responsas \"@\"."

#. TRANS: Client exception in autocomplete plugin.
msgid "Access forbidden."
msgstr "Accesso interdicite."


code:
# Translation of StatusNet - Autocomplete to Italian (italiano)
# Exported from translatewiki.net
#
# Author: Ximo17
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Autocomplete\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:42+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:45+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "The autocomplete plugin adds autocompletion for @ replies."
msgstr ""
"Il plugin di completamento automatico aggiunge il completamento automatico "
"per le @ risposte."

#. TRANS: Client exception in autocomplete plugin.
msgid "Access forbidden."
msgstr "Accesso vietato."