code:
# Translation of StatusNet - BitlyUrl 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 - BitlyUrl\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:48+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-12-03 13:48:51+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-bitlyurl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Title of administration panel.
msgid "bit.ly URL shortening"
msgstr "URL's inkorten via bit.ly"

#. TRANS: Instructions for administration panel.
#. TRANS: This message contains Markdown links in the form [decsription](link).
msgid ""
"URL shortening with bit.ly requires [a bit.ly account and API key](http://"
"bit.ly/a/your_api_key). This verifies that this is an authorized account, "
"and allow you to use bit.ly's tracking features and custom domains."
msgstr ""
"Het inkorten van URL's via bit.ly vereist een [account bij bit.ly en een API-"
"sleutel](http://bit.ly/a/your_api_key)."

#. TRANS: Client error displayed when using too long a key.
msgid "Invalid login. Maximum length is 255 characters."
msgstr "Ongeldige aanmeldgegevens. De maximale lengte is 255 tekens."

#. TRANS: Client error displayed when using too long a key.
msgid "Invalid API key. Maximum length is 255 characters."
msgstr "De API-sleutel is ongeldig. De maximale lengte is 255 tekens."

#. TRANS: Fieldset legend in administration panel for bit.ly username and API key.
msgctxt "LEGEND"
msgid "Credentials"
msgstr "Gebruikersgegevens"

#. TRANS: Form guide in administration panel for bit.ly URL shortening.
msgid "Leave these empty to use global default credentials."
msgstr "Laat deze leeg om globale standaard gebruikersgegevens te gebruiken."

#. TRANS: Form guide in administration panel for bit.ly URL shortening.
msgid "If you leave these empty, bit.ly will be unavailable to users."
msgstr ""
"Als u deze velden oningevuld laat, is bit.ly niet beschikbaar voor "
"gebruikers."

#. TRANS: Field label in administration panel for bit.ly URL shortening.
msgid "Login name"
msgstr "Gebruikersnaam"

#. TRANS: Field label in administration panel for bit.ly URL shortening.
msgid "API key"
msgstr "API-sleutel"

#. TRANS: Button text to save setting in administration panel for bit.ly URL shortening.
msgctxt "BUTTON"
msgid "Save"
msgstr "Opslaan"

#. TRANS: Button title to save setting in administration panel for bit.ly URL shortening.
msgid "Save bit.ly settings"
msgstr "bit.ly-instellingen opslaan"

#. TRANS: Exception thrown when bit.ly URL shortening plugin was configured incorrectly.
msgid "You must specify a serviceUrl for bit.ly URL shortening."
msgstr "U moet een serviceUrl opgeven om URL's in te korten via bit.ly."

#. TRANS: Plugin description. %1$s is the URL shortening service base URL (for example "bit.ly").
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""
"Gebruikt de dienst %1$s om URL's korter te "
"maken."

#. TRANS: Menu item in administration menus for bit.ly URL shortening settings.
msgid "bit.ly"
msgstr "bit.ly"

#. TRANS: Title for menu item in administration menus for bit.ly URL shortening settings.
msgid "bit.ly URL shortening."
msgstr "URL's inkorten via bit.ly."


code:
# Translation of StatusNet - BitlyUrl to Brazilian Portuguese (Português do Brasil)
# Expored from translatewiki.net
#
# Author: Giro720
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - BitlyUrl\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-10-09 14:04+0000\n"
"PO-Revision-Date: 2010-10-09 14:07:16+0000\n"
"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-"
"br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2010-10-03 20:54:25+0000\n"
"X-Generator: MediaWiki 1.17alpha (r74529); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: pt-br\n"
"X-Message-Group: #out-statusnet-plugin-bitlyurl\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#: BitlyUrlPlugin.php:48
#, fuzzy
msgid "You must specify a serviceUrl for bit.ly shortening."
msgstr "Você precisa especificar um serviceUrl."

#: BitlyUrlPlugin.php:171
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""
"Utiliza o serviço de encurtamento de URL %1$s"

#: BitlyUrlPlugin.php:212
msgid "bit.ly"
msgstr ""

#: BitlyUrlPlugin.php:213 bitlyadminpanelaction.php:54
msgid "bit.ly URL shortening"
msgstr ""

#: bitlyadminpanelaction.php:65
msgid ""
"URL shortening with bit.ly requires [a bit.ly account and API key](http://"
"bit.ly/a/your_api_key). This verifies that this is an authorized account, "
"and allow you to use bit.ly's tracking features and custom domains."
msgstr ""

#: bitlyadminpanelaction.php:132
msgid "Invalid login. Max length is 255 characters."
msgstr ""

#: bitlyadminpanelaction.php:138
msgid "Invalid API key. Max length is 255 characters."
msgstr ""

#: bitlyadminpanelaction.php:191
msgid "Credentials"
msgstr ""

#: bitlyadminpanelaction.php:199
msgid "Leave these empty to use global default credentials."
msgstr ""

#: bitlyadminpanelaction.php:202
msgid "If you leave these empty, bit.ly will be unavailable to users."
msgstr ""

#: bitlyadminpanelaction.php:209
msgid "Login name"
msgstr ""

#: bitlyadminpanelaction.php:218
msgid "API key"
msgstr ""

#: bitlyadminpanelaction.php:236
msgid "Save bit.ly settings"
msgstr ""

license: mit


code:
# Translation of StatusNet - BitlyUrl to Russian (русский)
# Exported from translatewiki.net
#
# Author: Eleferen
# Author: Lockal
# Author: Александр Сигачёв
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - BitlyUrl\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:48+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-12-03 13:48:51+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-bitlyurl\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: Title of administration panel.
msgid "bit.ly URL shortening"
msgstr "Сервис сокращения URL bit.ly"

#. TRANS: Instructions for administration panel.
#. TRANS: This message contains Markdown links in the form [decsription](link).
msgid ""
"URL shortening with bit.ly requires [a bit.ly account and API key](http://"
"bit.ly/a/your_api_key). This verifies that this is an authorized account, "
"and allow you to use bit.ly's tracking features and custom domains."
msgstr ""
"Сокращение URL с bit.ly требует наличие [учётной записи bit.ly и API-ключа]"
"(http://bit.ly/a/your_api_key). Это подтверждает, что ваша учётная запись "
"авторизована и позволяет использовать функции отслеживания bit.ly и "
"настраивать домены."

#. TRANS: Client error displayed when using too long a key.
#, fuzzy
msgid "Invalid login. Maximum length is 255 characters."
msgstr "Неверное имя пользователя. Максимальная длина составляет 255 символов."

#. TRANS: Client error displayed when using too long a key.
#, fuzzy
msgid "Invalid API key. Maximum length is 255 characters."
msgstr "Неверный ключ API. Максимальная длина составляет 255 символов."

#. TRANS: Fieldset legend in administration panel for bit.ly username and API key.
msgctxt "LEGEND"
msgid "Credentials"
msgstr "Полномочия"

#. TRANS: Form guide in administration panel for bit.ly URL shortening.
msgid "Leave these empty to use global default credentials."
msgstr ""
"Оставьте это поле пустым для использования глобальных полномочий по "
"умолчанию."

#. TRANS: Form guide in administration panel for bit.ly URL shortening.
msgid "If you leave these empty, bit.ly will be unavailable to users."
msgstr ""
"Если оставить это поле пустым, bit.ly будет недоступен для пользователей."

#. TRANS: Field label in administration panel for bit.ly URL shortening.
msgid "Login name"
msgstr "Имя учётной записи"

#. TRANS: Field label in administration panel for bit.ly URL shortening.
msgid "API key"
msgstr "Ключ API"

#. TRANS: Button text to save setting in administration panel for bit.ly URL shortening.
msgctxt "BUTTON"
msgid "Save"
msgstr "Сохранить"

#. TRANS: Button title to save setting in administration panel for bit.ly URL shortening.
msgid "Save bit.ly settings"
msgstr "Сохранить настройки bit.ly"

#. TRANS: Exception thrown when bit.ly URL shortening plugin was configured incorrectly.
#, fuzzy
msgid "You must specify a serviceUrl for bit.ly URL shortening."
msgstr "Вы должны указать serviceUrl для bit.ly сокращений."

#. TRANS: Plugin description. %1$s is the URL shortening service base URL (for example "bit.ly").
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr "Использование службы сокращения URL %1$s."

#. TRANS: Menu item in administration menus for bit.ly URL shortening settings.
msgid "bit.ly"
msgstr "bit.ly"

#. TRANS: Title for menu item in administration menus for bit.ly URL shortening settings.
#, fuzzy
msgid "bit.ly URL shortening."
msgstr "Сервис сокращения URL bit.ly"


code:
# Translation of StatusNet - BitlyUrl to Swedish (svenska)
# Exported from translatewiki.net
#
# Author: Jamminjohn
# Author: Lokal Profil
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - BitlyUrl\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:48+0000\n"
"Language-Team: Swedish <https://translatewiki.net/wiki/Portal:sv>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 13:48:51+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: sv\n"
"X-Message-Group: #out-statusnet-plugin-bitlyurl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Title of administration panel.
msgid "bit.ly URL shortening"
msgstr ""

#. TRANS: Instructions for administration panel.
#. TRANS: This message contains Markdown links in the form [decsription](link).
msgid ""
"URL shortening with bit.ly requires [a bit.ly account and API key](http://"
"bit.ly/a/your_api_key). This verifies that this is an authorized account, "
"and allow you to use bit.ly's tracking features and custom domains."
msgstr ""

#. TRANS: Client error displayed when using too long a key.
msgid "Invalid login. Maximum length is 255 characters."
msgstr "Ogiltig inloggning. Maximal längd är 255 tecken."

#. TRANS: Client error displayed when using too long a key.
msgid "Invalid API key. Maximum length is 255 characters."
msgstr "Ogiltig API-nyckel. Maximal längd är 255 tecken."

#. TRANS: Fieldset legend in administration panel for bit.ly username and API key.
msgctxt "LEGEND"
msgid "Credentials"
msgstr ""

#. TRANS: Form guide in administration panel for bit.ly URL shortening.
msgid "Leave these empty to use global default credentials."
msgstr ""

#. TRANS: Form guide in administration panel for bit.ly URL shortening.
msgid "If you leave these empty, bit.ly will be unavailable to users."
msgstr ""

#. TRANS: Field label in administration panel for bit.ly URL shortening.
msgid "Login name"
msgstr "Inloggningsnamn"

#. TRANS: Field label in administration panel for bit.ly URL shortening.
msgid "API key"
msgstr "API-nyckel"

#. TRANS: Button text to save setting in administration panel for bit.ly URL shortening.
msgctxt "BUTTON"
msgid "Save"
msgstr "Spara"

#. TRANS: Button title to save setting in administration panel for bit.ly URL shortening.
msgid "Save bit.ly settings"
msgstr "Spara bit.ly-inställningar"

#. TRANS: Exception thrown when bit.ly URL shortening plugin was configured incorrectly.
msgid "You must specify a serviceUrl for bit.ly URL shortening."
msgstr "Du måste ange ett serviceUrl för bit.ly URL-förkortning."

#. TRANS: Plugin description. %1$s is the URL shortening service base URL (for example "bit.ly").
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""

#. TRANS: Menu item in administration menus for bit.ly URL shortening settings.
msgid "bit.ly"
msgstr "bit.ly"

#. TRANS: Title for menu item in administration menus for bit.ly URL shortening settings.
msgid "bit.ly URL shortening."
msgstr "bit.ly URL-förkortning."


code:
# Translation of StatusNet - BitlyUrl 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 - BitlyUrl\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:48+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-12-03 13:48:51+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-bitlyurl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Title of administration panel.
msgid "bit.ly URL shortening"
msgstr "Pagpapaikli ng URL ng bit.ly"

#. TRANS: Instructions for administration panel.
#. TRANS: This message contains Markdown links in the form [decsription](link).
msgid ""
"URL shortening with bit.ly requires [a bit.ly account and API key](http://"
"bit.ly/a/your_api_key). This verifies that this is an authorized account, "
"and allow you to use bit.ly's tracking features and custom domains."
msgstr ""
"Ang pagpapaikli ng URL na may bit.ly ay nangangailangan ng [isang akawnt ng "
"bit.ly at susing API](http://bit.ly/a/your_api_key). Pinatutunayan nito na "
"ito ay isang pinahintulutang akawnt, at nagpapahintulot sa iyong gamitin ang "
"mga tampok na pambakas at pinaasadyang mga nasasaklawwan ng bit.ly."

#. TRANS: Client error displayed when using too long a key.
msgid "Invalid login. Maximum length is 255 characters."
msgstr ""
"Hindi katanggap-tanggap na paglagdang papasok. Ang pinakamataas na haba ay "
"255 mga panitik."

#. TRANS: Client error displayed when using too long a key.
msgid "Invalid API key. Maximum length is 255 characters."
msgstr ""
"Hindi katanggap-tanggap na susi ng API. Ang pinakamataas na haba ay 255 mga "
"panitik."

#. TRANS: Fieldset legend in administration panel for bit.ly username and API key.
msgctxt "LEGEND"
msgid "Credentials"
msgstr "Mga katangian"

#. TRANS: Form guide in administration panel for bit.ly URL shortening.
msgid "Leave these empty to use global default credentials."
msgstr ""
"Iwanang walang lamang ang mga ito upang magamit ang pandaigdigang likas na "
"nakatakdang mga katangian."

#. TRANS: Form guide in administration panel for bit.ly URL shortening.
msgid "If you leave these empty, bit.ly will be unavailable to users."
msgstr ""
"Kapag iniwan mong walang lamang ang mga ito, hindi makukuha ng mga tagagamit "
"ang bit.ly."

#. TRANS: Field label in administration panel for bit.ly URL shortening.
msgid "Login name"
msgstr "Pangalang panglagda"

#. TRANS: Field label in administration panel for bit.ly URL shortening.
msgid "API key"
msgstr "Susi ng API"

#. TRANS: Button text to save setting in administration panel for bit.ly URL shortening.
msgctxt "BUTTON"
msgid "Save"
msgstr "Sagipin"

#. TRANS: Button title to save setting in administration panel for bit.ly URL shortening.
msgid "Save bit.ly settings"
msgstr "Sagipin ang mga katakdaan ng bit.ly"

#. TRANS: Exception thrown when bit.ly URL shortening plugin was configured incorrectly.
msgid "You must specify a serviceUrl for bit.ly URL shortening."
msgstr ""
"Dapat kang tumukoy ng isang URL ng palingkuran para sa pagpapaikli ng URL na "
"bit.ly."

#. TRANS: Plugin description. %1$s is the URL shortening service base URL (for example "bit.ly").
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""
"Gumagamit ng %1$s na serbisyong pampaiksi ng "
"URL."

#. TRANS: Menu item in administration menus for bit.ly URL shortening settings.
msgid "bit.ly"
msgstr "bit.ly"

#. TRANS: Title for menu item in administration menus for bit.ly URL shortening settings.
msgid "bit.ly URL shortening."
msgstr "Pagpapaikli ng URL ng bit.ly"


code:
# Translation of StatusNet - BitlyUrl 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 - BitlyUrl\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:48+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-12-03 13:48:51+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-bitlyurl\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: Title of administration panel.
msgid "bit.ly URL shortening"
msgstr "Скорочення URL-адрес bit.ly"

#. TRANS: Instructions for administration panel.
#. TRANS: This message contains Markdown links in the form [decsription](link).
msgid ""
"URL shortening with bit.ly requires [a bit.ly account and API key](http://"
"bit.ly/a/your_api_key). This verifies that this is an authorized account, "
"and allow you to use bit.ly's tracking features and custom domains."
msgstr ""
"Скорочення URL-адрес за допомогою bit.ly вимагає [акаунт bit.ly та API-ключ]"
"(http://bit.ly/a/your_api_key). Це підтвердить те, що даний акаунт є "
"авторизованим і дозволить користуватися функцією відстеження bit.ly, а також "
"доменами користувачів."

#. TRANS: Client error displayed when using too long a key.
msgid "Invalid login. Maximum length is 255 characters."
msgstr "Неправильний лоґін. Максимальна довжина — 255 символів."

#. TRANS: Client error displayed when using too long a key.
msgid "Invalid API key. Maximum length is 255 characters."
msgstr "Неправильний API-ключ. Максимальна довжина — 255 символів."

#. TRANS: Fieldset legend in administration panel for bit.ly username and API key.
msgctxt "LEGEND"
msgid "Credentials"
msgstr "Повноваження"

#. TRANS: Form guide in administration panel for bit.ly URL shortening.
msgid "Leave these empty to use global default credentials."
msgstr ""
"Залиште це поле порожнім, щоб користуватися загальними повноваженнями за "
"замовчуванням."

#. TRANS: Form guide in administration panel for bit.ly URL shortening.
msgid "If you leave these empty, bit.ly will be unavailable to users."
msgstr ""
"Якщо ви залишите це поле порожнім, сервіс bit.ly стане недоступним для інших "
"користувачів."

#. TRANS: Field label in administration panel for bit.ly URL shortening.
msgid "Login name"
msgstr "Лоґін"

#. TRANS: Field label in administration panel for bit.ly URL shortening.
msgid "API key"
msgstr "API-ключ"

#. TRANS: Button text to save setting in administration panel for bit.ly URL shortening.
msgctxt "BUTTON"
msgid "Save"
msgstr "Зберегти"

#. TRANS: Button title to save setting in administration panel for bit.ly URL shortening.
msgid "Save bit.ly settings"
msgstr "Зберегти налаштування bit.ly"

#. TRANS: Exception thrown when bit.ly URL shortening plugin was configured incorrectly.
msgid "You must specify a serviceUrl for bit.ly URL shortening."
msgstr ""
"Ви мусите зазначити URL-адресу для сервісу скорочення URL-адрес bit.ly."

#. TRANS: Plugin description. %1$s is the URL shortening service base URL (for example "bit.ly").
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""
"Використання %1$s для скорочення URL-адрес."

#. TRANS: Menu item in administration menus for bit.ly URL shortening settings.
msgid "bit.ly"
msgstr "bit.ly"

#. TRANS: Title for menu item in administration menus for bit.ly URL shortening settings.
msgid "bit.ly URL shortening."
msgstr "Скорочення URL-адрес bit.ly."


code:
# Translation of StatusNet - BitlyUrl to Simplified Chinese (中文(简体))
# Expored from translatewiki.net
#
# Author: Chenxiaoqino
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - BitlyUrl\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-10-09 14:04+0000\n"
"PO-Revision-Date: 2010-10-09 14:07:16+0000\n"
"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-"
"hans>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2010-10-03 20:54:25+0000\n"
"X-Generator: MediaWiki 1.17alpha (r74529); Translate extension (2010-09-17)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: zh-hans\n"
"X-Message-Group: #out-statusnet-plugin-bitlyurl\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#: BitlyUrlPlugin.php:48
#, fuzzy
msgid "You must specify a serviceUrl for bit.ly shortening."
msgstr "你必须指定一个服务网址"

#: BitlyUrlPlugin.php:171
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr "使用 %1$s短链接服务"

#: BitlyUrlPlugin.php:212
msgid "bit.ly"
msgstr ""

#: BitlyUrlPlugin.php:213 bitlyadminpanelaction.php:54
msgid "bit.ly URL shortening"
msgstr ""

#: bitlyadminpanelaction.php:65
msgid ""
"URL shortening with bit.ly requires [a bit.ly account and API key](http://"
"bit.ly/a/your_api_key). This verifies that this is an authorized account, "
"and allow you to use bit.ly's tracking features and custom domains."
msgstr ""

#: bitlyadminpanelaction.php:132
msgid "Invalid login. Max length is 255 characters."
msgstr ""

#: bitlyadminpanelaction.php:138
msgid "Invalid API key. Max length is 255 characters."
msgstr ""

#: bitlyadminpanelaction.php:191
msgid "Credentials"
msgstr ""

#: bitlyadminpanelaction.php:199
msgid "Leave these empty to use global default credentials."
msgstr ""

#: bitlyadminpanelaction.php:202
msgid "If you leave these empty, bit.ly will be unavailable to users."
msgstr ""

#: bitlyadminpanelaction.php:209
msgid "Login name"
msgstr ""

#: bitlyadminpanelaction.php:218
msgid "API key"
msgstr ""

#: bitlyadminpanelaction.php:236
msgid "Save bit.ly settings"
msgstr ""


code:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * Plugin to prevent use of nicknames or URLs on a blacklist
 *
 * 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  Action
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2010 StatusNet Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link      http://status.net/
 */

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

/**
 * Plugin to prevent use of nicknames or URLs on a blacklist
 *
 * @category Plugin
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link     http://status.net/
 */
class BlacklistPlugin extends Plugin
{
    const VERSION = GNUSOCIAL_VERSION;

    public $nicknames = array();
    public $urls      = array();
    public $canAdmin  = true;

    function _getNicknamePatterns()
    {
        $confNicknames = $this->_configArray('blacklist', 'nicknames');

        $dbNicknames = Nickname_blacklist::getPatterns();

        return array_merge($this->nicknames,
                           $confNicknames,
                           $dbNicknames);
    }

    function _getUrlPatterns()
    {
        $confURLs = $this->_configArray('blacklist', 'urls');

        $dbURLs = Homepage_blacklist::getPatterns();

        return array_merge($this->urls,
                           $confURLs,
                           $dbURLs);
    }

    /**
     * Database schema setup
     *
     * @return boolean hook value
     */
    function onCheckSchema()
    {
        $schema = Schema::get();

        // For storing blacklist patterns for nicknames
        $schema->ensureTable('nickname_blacklist', Nickname_blacklist::schemaDef());
        $schema->ensureTable('homepage_blacklist', Homepage_blacklist::schemaDef());

        return true;
    }

    /**
     * Retrieve an array from configuration
     *
     * Carefully checks a section.
     *
     * @param string $section Configuration section
     * @param string $setting Configuration setting
     *
     * @return array configuration values
     */
    function _configArray($section, $setting)
    {
        $config = common_config($section, $setting);

        if (empty($config)) {
            return array();
        } else if (is_array($config)) {
            return $config;
        } else if (is_string($config)) {
            return explode("\r\n", $config);
        } else {
            // TRANS: Exception thrown if the Blacklist plugin configuration is incorrect.
            // TRANS: %1$s is a configuration section, %2$s is a configuration setting.
            throw new Exception(sprintf(_m('Unknown data type for config %1$s + %2$s.'),$section, $setting));
        }
    }

    /**
     * Hook registration to prevent blacklisted homepages or nicknames
     *
     * Throws an exception if there's a blacklisted homepage or nickname.
     *
     * @param Action $action Action being called (usually register)
     *
     * @return boolean hook value
     */
    function onStartRegisterUser(&$user, &$profile)
    {
        $homepage = strtolower($profile->homepage);

        if (!empty($homepage)) {
            if (!$this->_checkUrl($homepage)) {
                // TRANS: Validation failure for URL. %s is the URL.
                $msg = sprintf(_m("You may not register with homepage \"%s\"."),
                               $homepage);
                throw new ClientException($msg);
            }
        }

        $nickname = strtolower($profile->nickname);

        if (!empty($nickname)) {
            if (!$this->_checkNickname($nickname)) {
                // TRANS: Validation failure for nickname. %s is the nickname.
                $msg = sprintf(_m("You may not register with nickname \"%s\"."),
                               $nickname);
                throw new ClientException($msg);
            }
        }

        return true;
    }

    /**
     * Hook profile update to prevent blacklisted homepages or nicknames
     *
     * Throws an exception if there's a blacklisted homepage or nickname.
     *
     * @param Action $action Action being called (usually register)
     *
     * @return boolean hook value
     */
    function onStartProfileSaveForm($action)
    {
        $homepage = strtolower($action->trimmed('homepage'));

        if (!empty($homepage)) {
            if (!$this->_checkUrl($homepage)) {
                // TRANS: Validation failure for URL. %s is the URL.
                $msg = sprintf(_m("You may not use homepage \"%s\"."),
                               $homepage);
                throw new ClientException($msg);
            }
        }

        $nickname = strtolower($action->trimmed('nickname'));

        if (!empty($nickname)) {
            if (!$this->_checkNickname($nickname)) {
                // TRANS: Validation failure for nickname. %s is the nickname.
                $msg = sprintf(_m("You may not use nickname \"%s\"."),
                               $nickname);
                throw new ClientException($msg);
            }
        }

        return true;
    }

    /**
     * Hook notice save to prevent blacklisted urls
     *
     * Throws an exception if there's a blacklisted url in the content.
     *
     * @param Notice &$notice Notice being saved
     *
     * @return boolean hook value
     */
    function onStartNoticeSave(&$notice)
    {
        common_replace_urls_callback($notice->content,
                                     array($this, 'checkNoticeUrl'));
        return true;
    }

    /**
     * Helper callback for notice save
     *
     * Throws an exception if there's a blacklisted url in the content.
     *
     * @param string $url URL in the notice content
     *
     * @return boolean hook value
     */
    function checkNoticeUrl($url)
    {
        // It comes in special'd, so we unspecial it
        // before comparing against patterns

        $url = htmlspecialchars_decode($url);

        if (!$this->_checkUrl($url)) {
            // TRANS: Validation failure for URL. %s is the URL.
            $msg = sprintf(_m("You may not use URL \"%s\" in notices."),
                           $url);
            throw new ClientException($msg);
        }

        return $url;
    }

    /**
     * Helper for checking URLs
     *
     * Checks an URL against our patterns for a match.
     *
     * @param string $url URL to check
     *
     * @return boolean true means it's OK, false means it's bad
     */
    private function _checkUrl($url)
    {
        $patterns = $this->_getUrlPatterns();

        foreach ($patterns as $pattern) {
            if ($pattern != '' && preg_match("/$pattern/", $url)) {
                return false;
            }
        }

        return true;
    }

    /**
     * Helper for checking nicknames
     *
     * Checks a nickname against our patterns for a match.
     *
     * @param string $nickname nickname to check
     *
     * @return boolean true means it's OK, false means it's bad
     */
    private function _checkNickname($nickname)
    {
        $patterns = $this->_getNicknamePatterns();

        foreach ($patterns as $pattern) {
            if ($pattern != '' && preg_match("/$pattern/", $nickname)) {
                return false;
            }
        }

        return true;
    }

    /**
     * Add our actions to the URL router
     *
     * @param URLMapper $m URL mapper for this hit
     *
     * @return boolean hook return
     */
    public function onRouterInitialized(URLMapper $m)
    {
        $m->connect('panel/blacklist', array('action' => 'blacklistadminpanel'));
        return true;
    }

    /**
     * Plugin version data
     *
     * @param array &$versions array of version blocks
     *
     * @return boolean hook value
     */
    function onPluginVersion(&$versions)
    {
        $versions[] = array('name' => 'Blacklist',
                            'version' => self::VERSION,
                            'author' => 'Evan Prodromou',
                            'homepage' =>
                            'http://status.net/wiki/Plugin:Blacklist',
                            'description' =>
                            // TRANS: Plugin description.
                            _m('Keeps a blacklist of forbidden nickname '.
                               'and URL patterns.'));
        return true;
    }

    /**
     * Determines if our admin panel can be shown
     *
     * @param string  $name  name of the admin panel
     * @param boolean &$isOK result
     *
     * @return boolean hook value
     */
    function onAdminPanelCheck($name, &$isOK)
    {
        if ($name == 'blacklist') {
            $isOK = $this->canAdmin;
            return false;
        }

        return true;
    }

    /**
     * Add our tab to the admin panel
     *
     * @param Widget $nav Admin panel nav
     *
     * @return boolean hook value
     */
    function onEndAdminPanelNav($nav)
    {
        if (AdminPanelAction::canAdmin('blacklist')) {

            $action_name = $nav->action->trimmed('action');

            $nav->out->menuItem(common_local_url('blacklistadminpanel'),
                                // TRANS: Menu item in admin panel.
                                _m('MENU','Blacklist'),
                                // TRANS: Tooltip for menu item in admin panel.
                                _m('TOOLTIP','Blacklist configuration.'),
                                $action_name == 'blacklistadminpanel',
                                'nav_blacklist_admin_panel');
        }

        return true;
    }

    function onEndDeleteUserForm($action, $user)
    {
        $cur = common_current_user();

        if (empty($cur) || !$cur->hasRight(Right::CONFIGURESITE)) {
            return;
        }

        $profile = $user->getProfile();

        if (empty($profile)) {
            return;
        }

        $action->elementStart('ul', 'form_data');
        $action->elementStart('li');
        $this->checkboxAndText($action,
                               'blacklistnickname',
                               // TRANS: Checkbox label in the blacklist user form.
                               _m('Add this nickname pattern to blacklist'),
                               'blacklistnicknamepattern',
                               $this->patternizeNickname($user->nickname));
        $action->elementEnd('li');

        if (!empty($profile->homepage)) {
            $action->elementStart('li');
            $this->checkboxAndText($action,
                                   'blacklisthomepage',
                                   // TRANS: Checkbox label in the blacklist user form.
                                   _m('Add this homepage pattern to blacklist'),
                                   'blacklisthomepagepattern',
                                   $this->patternizeHomepage($profile->homepage));
            $action->elementEnd('li');
        }

        $action->elementEnd('ul');
    }

    function onEndDeleteUser($action, $user)
    {
        if ($action->boolean('blacklisthomepage')) {
            $pattern = $action->trimmed('blacklisthomepagepattern');
            Homepage_blacklist::ensurePattern($pattern);
        }

        if ($action->boolean('blacklistnickname')) {
            $pattern = $action->trimmed('blacklistnicknamepattern');
            Nickname_blacklist::ensurePattern($pattern);
        }

        return true;
    }

    function checkboxAndText($action, $checkID, $label, $textID, $value)
    {
        $action->element('input', array('name' => $checkID,
                                        'type' => 'checkbox',
                                        'class' => 'checkbox',
                                        'id' => $checkID));

        $action->text(' ');

        $action->element('label', array('class' => 'checkbox',
                                        'for' => $checkID),
                         $label);

        $action->text(' ');

        $action->element('input', array('name' => $textID,
                                        'type' => 'text',
                                        'id' => $textID,
                                        'value' => $value));
    }

    function patternizeNickname($nickname)
    {
        return $nickname;
    }

    function patternizeHomepage($homepage)
    {
        $hostname = parse_url($homepage, PHP_URL_HOST);
        return $hostname;
    }

    function onStartHandleFeedEntry($activity)
    {
        return $this->_checkActivity($activity);
    }

    function onStartHandleSalmon($activity)
    {
        return $this->_checkActivity($activity);
    }

    function _checkActivity($activity)
    {
        $actor = $activity->actor;

        if (empty($actor)) {
            return true;
        }

        $homepage = strtolower($actor->link);

        if (!empty($homepage)) {
            if (!$this->_checkUrl($homepage)) {
                // TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL.
                $msg = sprintf(_m("Users from \"%s\" are blocked."),
                               $homepage);
                throw new ClientException($msg);
            }
        }

        if (!empty($actor->poco)) {
            $nickname = strtolower($actor->poco->preferredUsername);

            if (!empty($nickname)) {
                if (!$this->_checkNickname($nickname)) {
                    // TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname.
                    $msg = sprintf(_m("Notices from nickname \"%s\" are disallowed."),
                                   $nickname);
                    throw new ClientException($msg);
                }
            }
        }

        return true;
    }

    /**
     * Check URLs and homepages for blacklisted users.
     */
    function onStartSubscribe(Profile $subscriber, Profile $other)
    {
        foreach (array($other->profileurl, $other->homepage) as $url) {

            if (empty($url)) {
                continue;
            }

            $url = strtolower($url);

            if (!$this->_checkUrl($url)) {
                // TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL.
                $msg = sprintf(_m("Users from \"%s\" are blocked."),
                               $url);
                throw new ClientException($msg);
            }
        }

        $nickname = $other->nickname;

        if (!empty($nickname)) {
            if (!$this->_checkNickname($nickname)) {
                // TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname.
                $msg = sprintf(_m("Cannot subscribe to nickname \"%s\"."),
                               $nickname);
                throw new ClientException($msg);
            }
        }

        return true;
    }
}


code:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * Blacklist administration panel
 *
 * 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  Settings
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2010 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
 * @link      http://status.net/
 */

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

/**
 * Administer blacklist
 *
 * @category Admin
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
 * @link     http://status.net/
 */
class BlacklistadminpanelAction extends AdminPanelAction
{
    /**
     * title of the admin panel
     *
     * @return string title
     */
    function title()
    {
        // TRANS: Title of blacklist plugin administration panel.
        return _m('TITLE','Blacklist');
    }

    /**
     * Panel instructions
     *
     * @return string instructions
     */
    function getInstructions()
    {
        // TRANS: Instructions for blacklist plugin administration panel.
        return _m('Blacklisted URLs and nicknames');
    }

    /**
     * Show the actual form
     *
     * @return void
     *
     * @see BlacklistAdminPanelForm
     */
    function showForm()
    {
        $form = new BlacklistAdminPanelForm($this);
        $form->show();
        return;
    }

    /**
     * Save the form settings
     *
     * @return void
     */
    function saveSettings()
    {
        $nickPatterns = $this->splitPatterns($this->trimmed('blacklist-nicknames'));
        Nickname_blacklist::saveNew($nickPatterns);

        $urlPatterns = $this->splitPatterns($this->trimmed('blacklist-urls'));
        Homepage_blacklist::saveNew($urlPatterns);

        return;
    }

    protected function splitPatterns($text)
    {
        $patterns = array();
        foreach (explode("\n", $text) as $raw) {
            $trimmed = trim($raw);
            if ($trimmed != '') {
                $patterns[] = $trimmed;
            }
        }
        return $patterns;
    }

    /**
     * Validate the values
     *
     * @param array &$values 2d array of values to check
     *
     * @return boolean success flag
     */
    function validate(&$values)
    {
        return true;
    }
}

/**
 * Admin panel form for blacklist panel
 *
 * @category Admin
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPLv3
 * @link     http://status.net/
 */
class BlacklistAdminPanelForm extends Form
{
    /**
     * ID of the form
     *
     * @return string ID
     */
    function id()
    {
        return 'blacklistadminpanel';
    }

    /**
     * Class of the form
     *
     * @return string class
     */
    function formClass()
    {
        return 'form_settings';
    }

    /**
     * Action we post to
     *
     * @return string action URL
     */
    function action()
    {
        return common_local_url('blacklistadminpanel');
    }

    /**
     * Show the form controls
     *
     * @return void
     */
    function formData()
    {
        $this->out->elementStart('ul', 'form_data');

        $this->out->elementStart('li');

        $nickPatterns = Nickname_blacklist::getPatterns();

        // TRANS: Field label in blacklist plugin administration panel.
        $this->out->textarea('blacklist-nicknames', _m('Nicknames'),
                             implode("\r\n", $nickPatterns),
                             // TRANS: Field title in blacklist plugin administration panel.
                             _m('Patterns of nicknames to block, one per line.'));
        $this->out->elementEnd('li');

        $urlPatterns = Homepage_blacklist::getPatterns();

        $this->out->elementStart('li');
        // TRANS: Field label in blacklist plugin administration panel.
        $this->out->textarea('blacklist-urls', _m('URLs'),
                             implode("\r\n", $urlPatterns),
                             // TRANS: Field title in blacklist plugin administration panel.
                             _m('Patterns of URLs to block, one per line.'));
        $this->out->elementEnd('li');

        $this->out->elementEnd('ul');
    }

    /**
     * Buttons for submitting
     *
     * @return void
     */
    function formActions()
    {
        $this->out->submit('submit',
                           // TRANS: Button text in blacklist plugin administration panel to save settings.
                           _m('BUTTON','Save'),
                           'submit',
                           null,
                           // TRANS: Button title in blacklist plugin administration panel to save settings.
                           _m('Save site settings.'));
    }
}


code:
<?php
/**
 * Data class for homepage blacklisting
 *
 * PHP version 5
 *
 * @category Data
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
 * @link     http://status.net/
 *
 * StatusNet - the distributed open-source microblogging tool
 * Copyright (C) 2009, StatusNet, Inc.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.     See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

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

require_once INSTALLDIR . '/classes/Memcached_DataObject.php';

/**
 * Data class for Homepage blacklist
 *
 * @category Action
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
 * @link     http://status.net/
 *
 * @see      DB_DataObject
 */
class Homepage_blacklist extends Managed_DataObject
{
    public $__table = 'homepage_blacklist'; // table name
    public $pattern;                        // varchar(255) pattern
    public $created;                        // datetime not_null
    public $modified;                       // timestamp()   not_null default_CURRENT_TIMESTAMP

    public static function schemaDef()
    {
        return array(
            'fields' => array(
                'pattern' => array('type' => 'varchar', 'not null' => true, 'length' => 255, 'description' => 'blacklist pattern'),
                'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'),
                'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'),
            ),
            'primary key' => array('pattern'),
        );
    }

    /**
     * Return a list of patterns to check
     *
     * @return array string patterns to check
     */
    static function getPatterns()
    {
        $patterns = self::cacheGet('homepage_blacklist:patterns');

        if ($patterns === false) {

            $patterns = array();

            $nb = new Homepage_blacklist();

            $nb->find();

            while ($nb->fetch()) {
                $patterns[] = $nb->pattern;
            }

            self::cacheSet('homepage_blacklist:patterns', $patterns);
        }

        return $patterns;
    }

    /**
     * Save new list of patterns
     *
     * @return array of patterns to check
     */
    static function saveNew($newPatterns)
    {
        $oldPatterns = self::getPatterns();

        // Delete stuff that's old that not in new
        $toDelete = array_diff($oldPatterns, $newPatterns);

        // Insert stuff that's in new and not in old
        $toInsert = array_diff($newPatterns, $oldPatterns);

        foreach ($toDelete as $pattern) {
            $nb = Homepage_blacklist::getKV('pattern', $pattern);
            if (!empty($nb)) {
                $nb->delete();
            }
        }

        foreach ($toInsert as $pattern) {
            $nb = new Homepage_blacklist();
            $nb->pattern = $pattern;
            $nb->created = common_sql_now();
            $nb->insert();
        }

        self::blow('homepage_blacklist:patterns');
    }

    static function ensurePattern($pattern)
    {
        $hb = Homepage_blacklist::getKV('pattern', $pattern);

        if (empty($nb)) {
            $hb = new Homepage_blacklist();
            $hb->pattern = $pattern;
            $hb->created = common_sql_now();
            $hb->insert();
            self::blow('homepage_blacklist:patterns');
        }
    }
}


code:
<?php
/**
 * Data class for nickname blacklisting
 *
 * PHP version 5
 *
 * @category Data
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
 * @link     http://status.net/
 *
 * StatusNet - the distributed open-source microblogging tool
 * Copyright (C) 2009, StatusNet, Inc.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.     See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

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

require_once INSTALLDIR . '/classes/Memcached_DataObject.php';

/**
 * Data class for Nickname blacklist
 *
 * @category Action
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
 * @link     http://status.net/
 *
 * @see      DB_DataObject
 */
class Nickname_blacklist extends Managed_DataObject
{
    public $__table = 'nickname_blacklist'; // table name
    public $pattern;                        // varchar(255) pattern
    public $created;                        // datetime not_null
    public $modified;                       // timestamp()   not_null default_CURRENT_TIMESTAMP

    public static function schemaDef()
    {
        return array(
            'fields' => array(
                'pattern' => array('type' => 'varchar', 'not null' => true, 'length' => 255, 'description' => 'blacklist pattern'),
                'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'),
                'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'),
            ),
            'primary key' => array('pattern'),
        );
    }

    /**
     * Return a list of patterns to check
     *
     * @return array string patterns to check
     */
    static function getPatterns()
    {
        $patterns = self::cacheGet('nickname_blacklist:patterns');

        if ($patterns === false) {

            $patterns = array();

            $nb = new Nickname_blacklist();

            $nb->find();

            while ($nb->fetch()) {
                $patterns[] = $nb->pattern;
            }

            self::cacheSet('nickname_blacklist:patterns', $patterns);
        }

        return $patterns;
    }

    /**
     * Save new list of patterns
     *
     * @return array of patterns to check
     */
    static function saveNew($newPatterns)
    {
        $oldPatterns = self::getPatterns();

        // Delete stuff that's old that not in new
        $toDelete = array_diff($oldPatterns, $newPatterns);

        // Insert stuff that's in new and not in old
        $toInsert = array_diff($newPatterns, $oldPatterns);

        foreach ($toDelete as $pattern) {
            $nb = Nickname_blacklist::getKV('pattern', $pattern);
            if (!empty($nb)) {
                $nb->delete();
            }
        }

        foreach ($toInsert as $pattern) {
            $nb = new Nickname_blacklist();
            $nb->pattern = $pattern;
            $nb->created = common_sql_now();
            $nb->insert();
        }

        self::blow('nickname_blacklist:patterns');
    }

    static function ensurePattern($pattern)
    {
        $nb = Nickname_blacklist::getKV('pattern', $pattern);

        if (empty($nb)) {
            $nb = new Nickname_blacklist();
            $nb->pattern = $pattern;
            $nb->created = common_sql_now();
            $nb->insert();
            self::blow('nickname_blacklist:patterns');
        }
    }
}


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: Exception thrown if the Blacklist plugin configuration is incorrect.
#. TRANS: %1$s is a configuration section, %2$s is a configuration setting.
#: BlacklistPlugin.php:131
#, php-format
msgid "Unknown data type for config %1$s + %2$s."
msgstr ""

#. TRANS: Validation failure for URL. %s is the URL.
#: BlacklistPlugin.php:151
#, php-format
msgid "You may not register with homepage \"%s\"."
msgstr ""

#. TRANS: Validation failure for nickname. %s is the nickname.
#: BlacklistPlugin.php:162
#, php-format
msgid "You may not register with nickname \"%s\"."
msgstr ""

#. TRANS: Validation failure for URL. %s is the URL.
#: BlacklistPlugin.php:187
#, php-format
msgid "You may not use homepage \"%s\"."
msgstr ""

#. TRANS: Validation failure for nickname. %s is the nickname.
#: BlacklistPlugin.php:198
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr ""

#. TRANS: Validation failure for URL. %s is the URL.
#: BlacklistPlugin.php:241
#, php-format
msgid "You may not use URL \"%s\" in notices."
msgstr ""

#. TRANS: Plugin description.
#: BlacklistPlugin.php:346
msgid "Keeps a blacklist of forbidden nickname and URL patterns."
msgstr ""

#. TRANS: Menu item in admin panel.
#: BlacklistPlugin.php:384
msgctxt "MENU"
msgid "Blacklist"
msgstr ""

#. TRANS: Tooltip for menu item in admin panel.
#: BlacklistPlugin.php:386
msgctxt "TOOLTIP"
msgid "Blacklist configuration."
msgstr ""

#. TRANS: Checkbox label in the blacklist user form.
#: BlacklistPlugin.php:413
msgid "Add this nickname pattern to blacklist"
msgstr ""

#. TRANS: Checkbox label in the blacklist user form.
#: BlacklistPlugin.php:423
msgid "Add this homepage pattern to blacklist"
msgstr ""

#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL.
#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL.
#: BlacklistPlugin.php:502 BlacklistPlugin.php:539
#, php-format
msgid "Users from \"%s\" are blocked."
msgstr ""

#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname.
#: BlacklistPlugin.php:514
#, php-format
msgid "Notices from nickname \"%s\" are disallowed."
msgstr ""

#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname.
#: BlacklistPlugin.php:550
#, php-format
msgid "Cannot subscribe to nickname \"%s\"."
msgstr ""

#. TRANS: Title of blacklist plugin administration panel.
#: blacklistadminpanel.php:53
msgctxt "TITLE"
msgid "Blacklist"
msgstr ""

#. TRANS: Instructions for blacklist plugin administration panel.
#: blacklistadminpanel.php:64
msgid "Blacklisted URLs and nicknames"
msgstr ""

#. TRANS: Field label in blacklist plugin administration panel.
#: blacklistadminpanel.php:177
msgid "Nicknames"
msgstr ""

#. TRANS: Field title in blacklist plugin administration panel.
#: blacklistadminpanel.php:180
msgid "Patterns of nicknames to block, one per line."
msgstr ""

#. TRANS: Field label in blacklist plugin administration panel.
#: blacklistadminpanel.php:187
msgid "URLs"
msgstr ""

#. TRANS: Field title in blacklist plugin administration panel.
#: blacklistadminpanel.php:190
msgid "Patterns of URLs to block, one per line."
msgstr ""

#. TRANS: Button text in blacklist plugin administration panel to save settings.
#: blacklistadminpanel.php:205
msgctxt "BUTTON"
msgid "Save"
msgstr ""

#. TRANS: Button title in blacklist plugin administration panel to save settings.
#: blacklistadminpanel.php:209
msgid "Save site settings."
msgstr ""


code:
# Translation of StatusNet - Blacklist to Belarusian (Taraškievica orthography) (беларуская (тарашкевіца))
# Exported from translatewiki.net
#
# Author: EugeneZelenko
# Author: Jim-by
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Blacklist\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:48+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: 2012-03-01 18:55: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-blacklist\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Exception thrown if the Blacklist plugin configuration is incorrect.
#. TRANS: %1$s is a configuration section, %2$s is a configuration setting.
#, php-format
msgid "Unknown data type for config %1$s + %2$s."
msgstr ""

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not register with homepage \"%s\"."
msgstr "Вы ня можаце зарэгістравацца, падаўшы «%s» як хатнюю старонку."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not register with nickname \"%s\"."
msgstr "Вы ня можаце зарэгістравацца з мянушкай «%s»."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use homepage \"%s\"."
msgstr "Вы ня можаце выкарыстоўваць хатнюю старонку «%s»."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr "Вы ня можаце выкарыстоўваць мянушку «%s»."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use URL \"%s\" in notices."
msgstr "Вы ня можаце выкарыстоўваць URL-адрас «%s» у заўвагах."

#. TRANS: Plugin description.
msgid "Keeps a blacklist of forbidden nickname and URL patterns."
msgstr "Захоўвае чорны сьпіс забароненых мянушак і шаблёнаў URL-адрасоў."

#. TRANS: Menu item in admin panel.
msgctxt "MENU"
msgid "Blacklist"
msgstr "Чорны сьпіс"

#. TRANS: Tooltip for menu item in admin panel.
#, fuzzy
msgctxt "TOOLTIP"
msgid "Blacklist configuration."
msgstr "Устаноўкі чорнага сьпісу"

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this nickname pattern to blacklist"
msgstr "Дадаць гэты шаблён мянушкі да чорнага сьпісу"

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this homepage pattern to blacklist"
msgstr "Дадаць гэты шаблён хатняй старонкі да чорнага сьпісу"

#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL.
#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL.
#, fuzzy, php-format
msgid "Users from \"%s\" are blocked."
msgstr "Карыстальнік з «%s» заблякаваны."

#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname.
#, fuzzy, php-format
msgid "Notices from nickname \"%s\" are disallowed."
msgstr "Паведамленьні ад карыстальніка «%s» забароненыя."

#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname.
#, fuzzy, php-format
msgid "Cannot subscribe to nickname \"%s\"."
msgstr "Немагчыма падпісацца на карыстальніка «%s»."

#. TRANS: Title of blacklist plugin administration panel.
#, fuzzy
msgctxt "TITLE"
msgid "Blacklist"
msgstr "Чорны сьпіс"

#. TRANS: Instructions for blacklist plugin administration panel.
msgid "Blacklisted URLs and nicknames"
msgstr "Чорны сьпіс URL-адрасоў і мянушак"

#. TRANS: Field label in blacklist plugin administration panel.
msgid "Nicknames"
msgstr "Мянушкі"

#. TRANS: Field title in blacklist plugin administration panel.
#, fuzzy
msgid "Patterns of nicknames to block, one per line."
msgstr "Шаблёны мянушак для блякаваньня, па аднаму на радок"

#. TRANS: Field label in blacklist plugin administration panel.
msgid "URLs"
msgstr "URL-адрасы"

#. TRANS: Field title in blacklist plugin administration panel.
#, fuzzy
msgid "Patterns of URLs to block, one per line."
msgstr "Шаблёны URL-адрасоў для блякаваньня, па аднаму на радок"

#. TRANS: Button text in blacklist plugin administration panel to save settings.
#, fuzzy
msgctxt "BUTTON"
msgid "Save"
msgstr "Захаваць"

#. TRANS: Button title in blacklist plugin administration panel to save settings.
#, fuzzy
msgid "Save site settings."
msgstr "Захаваць устаноўкі сайта"


code:
# Translation of StatusNet - Blacklist to Breton (Brezhoneg)
# Exported from translatewiki.net
#
# Author: Y-M D
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Blacklist\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-04-09 18:34+0000\n"
"PO-Revision-Date: 2011-04-09 18:36:39+0000\n"
"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-03-18 20:06:03+0000\n"
"X-Generator: MediaWiki 1.18alpha (r85732); Translate extension (2011-03-11)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: br\n"
"X-Message-Group: #out-statusnet-plugin-blacklist\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#, php-format
msgid "Unknown data type for config %1$s + %2$s."
msgstr ""

#. TRANS: Validation failure for URL. %s is the URL.
#, fuzzy, php-format
msgid "You may not register with homepage \"%s\"."
msgstr "Ne c'hellit ket en em enskrivañ gant ar bajenn degemer \"%s\"."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not register with nickname \"%s\"."
msgstr "Ne c'hellit ket en em enskrivañ gant al lesanv \"%s\"."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use homepage \"%s\"."
msgstr "Ne c'hellit ket implij ar bajenn degemer \"%s\"."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr "Ne c'hellit ket implij al lesanv \"%s\"."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use URL \"%s\" in notices."
msgstr "Ne c'hellit ket implij an URL \"%s\" en alioù."

#. TRANS: Plugin description.
msgid "Keeps a blacklist of forbidden nickname and URL patterns."
msgstr ""

#. TRANS: Menu item in admin panel.
msgctxt "MENU"
msgid "Blacklist"
msgstr "Roll zu"

#. TRANS: Tooltip for menu item in admin panel.
#, fuzzy
msgctxt "TOOLTIP"
msgid "Blacklist configuration."
msgstr "Kefluniadur ar roll zu"

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this nickname pattern to blacklist"
msgstr ""

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this homepage pattern to blacklist"
msgstr ""

#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL.
#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL.
#, fuzzy, php-format
msgid "Users from \"%s\" are blocked."
msgstr "Implijer \"%s\" stanket."

#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Notices from nickname \"%s\" disallowed."
msgstr ""

#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname.
#, fuzzy, php-format
msgid "Cannot subscribe to nickname \"%s\"."
msgstr "Ne c'hellit ket en em enskrivañ gant al lesanv \"%s\"."

#. TRANS: Title of blacklist plugin administration panel.
#, fuzzy
msgctxt "TITLE"
msgid "Blacklist"
msgstr "Roll zu"

#. TRANS: Instructions for blacklist plugin administration panel.
msgid "Blacklisted URLs and nicknames"
msgstr ""

#. TRANS: Field label in blacklist plugin administration panel.
msgid "Nicknames"
msgstr "Lesanvioù"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of nicknames to block, one per line."
msgstr ""

#. TRANS: Field label in blacklist plugin administration panel.
msgid "URLs"
msgstr "URLoù"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of URLs to block, one per line."
msgstr ""

#. TRANS: Button text in blacklist plugin administration panel to save settings.
#, fuzzy
msgctxt "BUTTON"
msgid "Save"
msgstr "Enrollañ"

#. TRANS: Button title in blacklist plugin administration panel to save settings.
#, fuzzy
msgid "Save site settings."
msgstr "Enrollañ arventennoù al lec'hienn"


code:
# Translation of StatusNet - Blacklist to Catalan (català)
# Exported from translatewiki.net
#
# Author: SMP
# Author: Toniher
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Blacklist\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:48+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: 2012-03-01 18:55: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: ca\n"
"X-Message-Group: #out-statusnet-plugin-blacklist\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Exception thrown if the Blacklist plugin configuration is incorrect.
#. TRANS: %1$s is a configuration section, %2$s is a configuration setting.
#, php-format
msgid "Unknown data type for config %1$s + %2$s."
msgstr ""

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not register with homepage \"%s\"."
msgstr ""

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not register with nickname \"%s\"."
msgstr ""

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use homepage \"%s\"."
msgstr "No podeu fer servir la pàgina personal «%s»."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr "No podeu fer servir el sobrenom «%s»."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use URL \"%s\" in notices."
msgstr ""

#. TRANS: Plugin description.
msgid "Keeps a blacklist of forbidden nickname and URL patterns."
msgstr ""

#. TRANS: Menu item in admin panel.
msgctxt "MENU"
msgid "Blacklist"
msgstr "Llista negra"

#. TRANS: Tooltip for menu item in admin panel.
msgctxt "TOOLTIP"
msgid "Blacklist configuration."
msgstr "Configuració de la llista negra."

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this nickname pattern to blacklist"
msgstr "Afegeix aquest patró de sobrenom a la llista negra"

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this homepage pattern to blacklist"
msgstr "Afegeix aquest patró de pàgina d'inici a la llista negra"

#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL.
#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL.
#, php-format
msgid "Users from \"%s\" are blocked."
msgstr "S'han blocat els usuaris de «%s»."

#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Notices from nickname \"%s\" are disallowed."
msgstr "No es permeten els avisos del sobrenom «%s»."

#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Cannot subscribe to nickname \"%s\"."
msgstr "No s'ha pogut subscriure al sobrenom «%s»."

#. TRANS: Title of blacklist plugin administration panel.
msgctxt "TITLE"
msgid "Blacklist"
msgstr "Llista negra"

#. TRANS: Instructions for blacklist plugin administration panel.
msgid "Blacklisted URLs and nicknames"
msgstr "URL a la llista negra i sobrenoms"

#. TRANS: Field label in blacklist plugin administration panel.
msgid "Nicknames"
msgstr "Sobrenoms"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of nicknames to block, one per line."
msgstr ""

#. TRANS: Field label in blacklist plugin administration panel.
msgid "URLs"
msgstr "Adreces URL"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of URLs to block, one per line."
msgstr ""

#. TRANS: Button text in blacklist plugin administration panel to save settings.
msgctxt "BUTTON"
msgid "Save"
msgstr "Desa"

#. TRANS: Button title in blacklist plugin administration panel to save settings.
msgid "Save site settings."
msgstr "Desa la configuració del lloc."


code:
# Translation of StatusNet - Blacklist to German (Deutsch)
# Exported from translatewiki.net
#
# Author: Giftpflanze
# Author: MF-Warburg
# Author: PtM
# Author: The Evil IP address
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Blacklist\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:49+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: 2012-03-01 18:55: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-blacklist\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Exception thrown if the Blacklist plugin configuration is incorrect.
#. TRANS: %1$s is a configuration section, %2$s is a configuration setting.
#, php-format
msgid "Unknown data type for config %1$s + %2$s."
msgstr "Unbekannter Datentyp für %1$s + %2$s."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not register with homepage \"%s\"."
msgstr "Du darfst dich nicht mit der Homepage „%s“ anmelden."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not register with nickname \"%s\"."
msgstr "Du darfst dich nicht mit den Benutzernamen „%s“ anmelden."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use homepage \"%s\"."
msgstr "Du darfst nicht die Homepage „%s“ benutzen."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr "Du darfst nicht den Benutzernamen „%s“ benutzen."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use URL \"%s\" in notices."
msgstr "Du darfst nicht die URL „%s“ in Nachrichten verwenden."

#. TRANS: Plugin description.
msgid "Keeps a blacklist of forbidden nickname and URL patterns."
msgstr "Hält eine schwarze Liste der verbotenen Benutzernamen und URL-Muster."

#. TRANS: Menu item in admin panel.
msgctxt "MENU"
msgid "Blacklist"
msgstr "Schwarze Liste"

#. TRANS: Tooltip for menu item in admin panel.
msgctxt "TOOLTIP"
msgid "Blacklist configuration."
msgstr "Konfiguration der schwarzen Liste."

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this nickname pattern to blacklist"
msgstr "Dieses Benutzernamen-Muster zur schwarzen Liste hinzufügen"

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this homepage pattern to blacklist"
msgstr "Dieses Homepage-Muster zur schwarzen Liste hinzufügen"

#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL.
#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL.
#, php-format
msgid "Users from \"%s\" are blocked."
msgstr "Benutzer von „%s“ sind gesperrt."

#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Notices from nickname \"%s\" are disallowed."
msgstr "Beiträge vom Benutzernamen „%s“ sind nicht erlaubt."

#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Cannot subscribe to nickname \"%s\"."
msgstr "Kann Beiträge von Benutzer „%s“ nicht abonnieren."

#. TRANS: Title of blacklist plugin administration panel.
msgctxt "TITLE"
msgid "Blacklist"
msgstr "Schwarze Liste"

#. TRANS: Instructions for blacklist plugin administration panel.
msgid "Blacklisted URLs and nicknames"
msgstr "URLs und Benutzernamen auf der schwarzen Liste"

#. TRANS: Field label in blacklist plugin administration panel.
msgid "Nicknames"
msgstr "Benutzernamen"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of nicknames to block, one per line."
msgstr "Muster der zu blockierenden Benutzernamen, einer pro Zeile."

#. TRANS: Field label in blacklist plugin administration panel.
msgid "URLs"
msgstr "URLs"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of URLs to block, one per line."
msgstr "Muster der zu blockierenden URLS, eine pro Zeile."

#. TRANS: Button text in blacklist plugin administration panel to save settings.
msgctxt "BUTTON"
msgid "Save"
msgstr "Speichern"

#. TRANS: Button title in blacklist plugin administration panel to save settings.
msgid "Save site settings."
msgstr "Website-Einstellungen speichern."


code:
# Translation of StatusNet - Blacklist to Spanish (español)
# Exported from translatewiki.net
#
# Author: Armando-Martin
# Author: Erchache2000
# Author: Peter17
# Author: Translationista
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Blacklist\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:49+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: 2012-03-01 18:55: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-blacklist\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Exception thrown if the Blacklist plugin configuration is incorrect.
#. TRANS: %1$s is a configuration section, %2$s is a configuration setting.
#, php-format
msgid "Unknown data type for config %1$s + %2$s."
msgstr "Tipo de datos desconocidos para config  %1$s  +  %2$s ."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not register with homepage \"%s\"."
msgstr "No puedes registrate con la página de inicio \"%s\"."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not register with nickname \"%s\"."
msgstr "No puedes registrarte con el nombre de usuario '%s'."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use homepage \"%s\"."
msgstr "No puedes utilizar la página de inicio '%s'."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr "No puedes utilizar el nombre de usuario '%s'."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use URL \"%s\" in notices."
msgstr "No puedes utilizar el URL \"%s\" en los mensajes."

#. TRANS: Plugin description.
msgid "Keeps a blacklist of forbidden nickname and URL patterns."
msgstr ""
"Mantiene una lista negra de patrones de nombres de usuario y URL prohibidos."

#. TRANS: Menu item in admin panel.
msgctxt "MENU"
msgid "Blacklist"
msgstr "Lista negra"

#. TRANS: Tooltip for menu item in admin panel.
msgctxt "TOOLTIP"
msgid "Blacklist configuration."
msgstr "Configuración de la lista negra."

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this nickname pattern to blacklist"
msgstr "Añadir este patrón de nombre de usuario a la lista negra"

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this homepage pattern to blacklist"
msgstr "Añadir este patrón de página principal a la lista negra"

#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL.
#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL.
#, php-format
msgid "Users from \"%s\" are blocked."
msgstr "Los usuarios de \" %s \" están bloqueados."

#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Notices from nickname \"%s\" are disallowed."
msgstr "No están permitidos los mensajes del alias \"%s\"."

#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Cannot subscribe to nickname \"%s\"."
msgstr "No es posible suscribirse al usuario \" %s \"."

#. TRANS: Title of blacklist plugin administration panel.
msgctxt "TITLE"
msgid "Blacklist"
msgstr "Lista negra"

#. TRANS: Instructions for blacklist plugin administration panel.
msgid "Blacklisted URLs and nicknames"
msgstr "URL y nombres de usuario incluidos en la lista negra"

#. TRANS: Field label in blacklist plugin administration panel.
msgid "Nicknames"
msgstr "Nombres de usuario"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of nicknames to block, one per line."
msgstr "Patrones de nombres de usuario a bloquear, uno por línea"

#. TRANS: Field label in blacklist plugin administration panel.
msgid "URLs"
msgstr "URLs"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of URLs to block, one per line."
msgstr "Patrones de URL a bloquear, uno por línea"

#. TRANS: Button text in blacklist plugin administration panel to save settings.
msgctxt "BUTTON"
msgid "Save"
msgstr "Guardar"

#. TRANS: Button title in blacklist plugin administration panel to save settings.
msgid "Save site settings."
msgstr "Guardar la configuración del sitio."


code:
# Translation of StatusNet - Blacklist to Basque (euskara)
# Exported from translatewiki.net
#
# Author: Artsuaga
# Author: Unai Fdz. de Betoño
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Blacklist\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:49+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-03-01 18:55: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: Exception thrown if the Blacklist plugin configuration is incorrect.
#. TRANS: %1$s is a configuration section, %2$s is a configuration setting.
#, php-format
msgid "Unknown data type for config %1$s + %2$s."
msgstr "%1$s + %2$s konfiguratzeko datu modu ezezaguna."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not register with homepage \"%s\"."
msgstr "Ezin zara erregistratu \"%s\" hasera orriarekin."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not register with nickname \"%s\"."
msgstr "Ezin zara erregistratu \"%s\" goitizenarekin."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use homepage \"%s\"."
msgstr "Ezin duzu \"%s\" hasera orria erabili."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr "Ezin duzu \"%s\" goitizena erabili."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use URL \"%s\" in notices."
msgstr "Ezin duzu \"%s\" URLa erabili oharretan."

#. TRANS: Plugin description.
msgid "Keeps a blacklist of forbidden nickname and URL patterns."
msgstr "Galerazitako goitizen eta URL ereduen zerrenda beltza mantentzen du."

#. TRANS: Menu item in admin panel.
msgctxt "MENU"
msgid "Blacklist"
msgstr "Zerrenda beltza"

#. TRANS: Tooltip for menu item in admin panel.
msgctxt "TOOLTIP"
msgid "Blacklist configuration."
msgstr "Zerrenda beltzaren konfigurazioa."

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this nickname pattern to blacklist"
msgstr "Gehitu goitizen honen modukoak zerrenda beltzari."

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this homepage pattern to blacklist"
msgstr "Gehitu hasera orri honen modukoak zerrenda beltzari"

#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL.
#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL.
#, php-format
msgid "Users from \"%s\" are blocked."
msgstr "%s(e)ko erabiltzaileak blokeaturik daude."

#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Notices from nickname \"%s\" are disallowed."
msgstr "\"%s\" goitizenarekin idatzitako oharrak debekaturik daude."

#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Cannot subscribe to nickname \"%s\"."
msgstr "Ezin da \"%s\" goitizenera harpidetu."

#. TRANS: Title of blacklist plugin administration panel.
msgctxt "TITLE"
msgid "Blacklist"
msgstr "Zerrenda beltza"

#. TRANS: Instructions for blacklist plugin administration panel.
msgid "Blacklisted URLs and nicknames"
msgstr "Zerrenda beltzeko URL eta goitizenak"

#. TRANS: Field label in blacklist plugin administration panel.
msgid "Nicknames"
msgstr "Goitizenak"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of nicknames to block, one per line."
msgstr "Blokeatutako goitizenen ereduak, bat lerroko."

#. TRANS: Field label in blacklist plugin administration panel.
msgid "URLs"
msgstr "URLak"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of URLs to block, one per line."
msgstr "Blokeatutako URLen ereduak, bat lerroko."

#. TRANS: Button text in blacklist plugin administration panel to save settings.
msgctxt "BUTTON"
msgid "Save"
msgstr "Gorde"

#. TRANS: Button title in blacklist plugin administration panel to save settings.
msgid "Save site settings."
msgstr "Gorde gunearen ezarpenak."


code:
# Translation of StatusNet - Blacklist to French (français)
# Exported from translatewiki.net
#
# Author: Davidtsm
# Author: Iketsi
# Author: Peter17
# Author: Verdy p
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Blacklist\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:49+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: 2012-03-01 18:55: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-blacklist\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Exception thrown if the Blacklist plugin configuration is incorrect.
#. TRANS: %1$s is a configuration section, %2$s is a configuration setting.
#, php-format
msgid "Unknown data type for config %1$s + %2$s."
msgstr "Type de données inconnu pour config %1$s + %2$s."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not register with homepage \"%s\"."
msgstr "Vous ne pouvez pas vous inscrire avec la page d’accueil « %s »."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not register with nickname \"%s\"."
msgstr "Vous ne pouvez pas vous inscrire avec le pseudonyme « %s »."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use homepage \"%s\"."
msgstr "Vous ne pouvez pas utiliser la page d’accueil « %s »."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr "Vous ne pouvez pas utiliser le pseudonyme « %s »."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use URL \"%s\" in notices."
msgstr "Vous ne pouvez pas utiliser l’URL « %s » dans les avis."

#. TRANS: Plugin description.
msgid "Keeps a blacklist of forbidden nickname and URL patterns."
msgstr "Maintient une liste noire des pseudonymes et motifs d’URL interdits."

#. TRANS: Menu item in admin panel.
msgctxt "MENU"
msgid "Blacklist"
msgstr "Liste noire"

#. TRANS: Tooltip for menu item in admin panel.
msgctxt "TOOLTIP"
msgid "Blacklist configuration."
msgstr "Configuration de la liste noire."

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this nickname pattern to blacklist"
msgstr "Ajouter ce motif de pseudonymes à la liste noire"

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this homepage pattern to blacklist"
msgstr "Ajouter ce motif de pages d’accueil à la liste noire"

#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL.
#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL.
#, php-format
msgid "Users from \"%s\" are blocked."
msgstr "Les utilisateurs de « %s » sont bloqués."

#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Notices from nickname \"%s\" are disallowed."
msgstr " Notifications du pseudonyme « %s » ne sont plus autorisées."

#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Cannot subscribe to nickname \"%s\"."
msgstr "Vous ne pouvez pas vous inscrire avec le pseudonyme « %s »."

#. TRANS: Title of blacklist plugin administration panel.
msgctxt "TITLE"
msgid "Blacklist"
msgstr "Liste noire"

#. TRANS: Instructions for blacklist plugin administration panel.
msgid "Blacklisted URLs and nicknames"
msgstr "Liste noire d’URL et de pseudonymes"

#. TRANS: Field label in blacklist plugin administration panel.
msgid "Nicknames"
msgstr "Pseudonymes"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of nicknames to block, one per line."
msgstr "Motifs de surnoms à bloquer, un par ligne."

#. TRANS: Field label in blacklist plugin administration panel.
msgid "URLs"
msgstr "Adresses URL"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of URLs to block, one per line."
msgstr "Motifs d’adresses URL à bloquer, un par ligne."

#. TRANS: Button text in blacklist plugin administration panel to save settings.
msgctxt "BUTTON"
msgid "Save"
msgstr "Sauvegarder"

#. TRANS: Button title in blacklist plugin administration panel to save settings.
msgid "Save site settings."
msgstr "Sauvegarder les paramètres du site."


code:
# Translation of StatusNet - Blacklist 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 - Blacklist\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:49+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: 2012-03-01 18:55: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-blacklist\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Exception thrown if the Blacklist plugin configuration is incorrect.
#. TRANS: %1$s is a configuration section, %2$s is a configuration setting.
#, php-format
msgid "Unknown data type for config %1$s + %2$s."
msgstr "Tipo de datos descoñecido para a configuración %1$s + %2$s."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not register with homepage \"%s\"."
msgstr "Non se pode rexistrar coa páxina de inicio \"%s\"."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not register with nickname \"%s\"."
msgstr "Non se pode rexistrar co alcume \"%s\"."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use homepage \"%s\"."
msgstr "Non pode usar a páxina de inicio \"%s\"."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr "Non pode usar o alcume \"%s\"."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use URL \"%s\" in notices."
msgstr "Non pode usar o enderezo URL \"%s\" nas notas."

#. TRANS: Plugin description.
msgid "Keeps a blacklist of forbidden nickname and URL patterns."
msgstr ""
"Mantén unha lista negra cos patróns de alcumes e de enderezos URL prohibidos."

#. TRANS: Menu item in admin panel.
msgctxt "MENU"
msgid "Blacklist"
msgstr "Lista negra"

#. TRANS: Tooltip for menu item in admin panel.
msgctxt "TOOLTIP"
msgid "Blacklist configuration."
msgstr "Configuración da lista negra."

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this nickname pattern to blacklist"
msgstr "Engadir o patrón deste alcume á lista negra"

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this homepage pattern to blacklist"
msgstr "Engadir o patrón desta páxina de inicio á lista negra"

#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL.
#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL.
#, php-format
msgid "Users from \"%s\" are blocked."
msgstr "Os usuarios de \"%s\" están bloqueados."

#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Notices from nickname \"%s\" are disallowed."
msgstr "As notas do alcume \"%s\" non están permitidas."

#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Cannot subscribe to nickname \"%s\"."
msgstr "Non pode subscribirse ao alcume \"%s\"."

#. TRANS: Title of blacklist plugin administration panel.
msgctxt "TITLE"
msgid "Blacklist"
msgstr "Lista negra"

#. TRANS: Instructions for blacklist plugin administration panel.
msgid "Blacklisted URLs and nicknames"
msgstr "Enderezos URL e alcumes na lista negra"

#. TRANS: Field label in blacklist plugin administration panel.
msgid "Nicknames"
msgstr "Alcumes"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of nicknames to block, one per line."
msgstr "Patróns de alcumes a bloquear, un por liña."

#. TRANS: Field label in blacklist plugin administration panel.
msgid "URLs"
msgstr "Enderezos URL"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of URLs to block, one per line."
msgstr "Patróns de enderezos URL a bloquear, un por liña."

#. TRANS: Button text in blacklist plugin administration panel to save settings.
msgctxt "BUTTON"
msgid "Save"
msgstr "Gardar"

#. TRANS: Button title in blacklist plugin administration panel to save settings.
msgid "Save site settings."
msgstr "Gardar a configuración do sitio."


code:
# Translation of StatusNet - Blacklist 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 - Blacklist\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:49+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: 2012-03-01 18:55: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-blacklist\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Exception thrown if the Blacklist plugin configuration is incorrect.
#. TRANS: %1$s is a configuration section, %2$s is a configuration setting.
#, php-format
msgid "Unknown data type for config %1$s + %2$s."
msgstr "Typo de datos incognite pro configuration %1$s + %2$s."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not register with homepage \"%s\"."
msgstr "Tu non pote registrar te con le pagina personal \"%s\"."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not register with nickname \"%s\"."
msgstr "Tu non pote registrar te con le pseudonymo \"%s\"."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use homepage \"%s\"."
msgstr "Tu non pote usar le pagina personal \"%s\"."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr "Tu non pote usar le pseudonymo \"%s\"."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use URL \"%s\" in notices."
msgstr "Tu non pote usar le URL \"%s\" in notas."

#. TRANS: Plugin description.
msgid "Keeps a blacklist of forbidden nickname and URL patterns."
msgstr ""
"Tene un lista nigre de pseudonymos e patronos de adresse URL prohibite."

#. TRANS: Menu item in admin panel.
msgctxt "MENU"
msgid "Blacklist"
msgstr "Lista nigre"

#. TRANS: Tooltip for menu item in admin panel.
msgctxt "TOOLTIP"
msgid "Blacklist configuration."
msgstr "Configuration del lista nigre."

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this nickname pattern to blacklist"
msgstr "Adder iste patrono de pseudonymo al lista nigre"

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this homepage pattern to blacklist"
msgstr "Adder iste patrono de pagina personal al lista nigre"

#. TRANS: Exception thrown trying to post a notice while having set a blocked homepage URL. %s is the blocked URL.
#. TRANS: Client exception thrown trying to subscribe to a person with a blocked homepage or site URL. %s is the blocked URL.
#, php-format
msgid "Users from \"%s\" are blocked."
msgstr "Le usatores de \"%s\" es blocate."

#. TRANS: Exception thrown trying to post a notice while having a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Notices from nickname \"%s\" are disallowed."
msgstr "Le notas del pseudonymo \"%s\" non es permittite."

#. TRANS: Client exception thrown trying to subscribe to a person with a blocked nickname. %s is the blocked nickname.
#, php-format
msgid "Cannot subscribe to nickname \"%s\"."
msgstr "Non pote subscriber al pseudonymo \"%s\"."

#. TRANS: Title of blacklist plugin administration panel.
msgctxt "TITLE"
msgid "Blacklist"
msgstr "Lista nigre"

#. TRANS: Instructions for blacklist plugin administration panel.
msgid "Blacklisted URLs and nicknames"
msgstr "URLs e pseudonymos in lista nigre"

#. TRANS: Field label in blacklist plugin administration panel.
msgid "Nicknames"
msgstr "Pseudonymos"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of nicknames to block, one per line."
msgstr "Patronos de pseudonymos a blocar, un per linea."

#. TRANS: Field label in blacklist plugin administration panel.
msgid "URLs"
msgstr "Adresses URL"

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of URLs to block, one per line."
msgstr "Patronos de adresses URL a blocar, un per linea."

#. TRANS: Button text in blacklist plugin administration panel to save settings.
msgctxt "BUTTON"
msgid "Save"
msgstr "Salveguardar"

#. TRANS: Button title in blacklist plugin administration panel to save settings.
msgid "Save site settings."
msgstr "Salveguardar configurationes del sito."