code:
# Translation of StatusNet - Blacklist to Italian (italiano)
# Exported from translatewiki.net
#
# Author: Od1n
# Author: Ximo17
# --
# 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 "Tipo dati sconosciuto per 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 "Impossibile registrarsi con la homepage \"%s\"."

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

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

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr "Non è possibile utilizzare il nickname \"%s\"."

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

#. TRANS: Plugin description.
msgid "Keeps a blacklist of forbidden nickname and URL patterns."
msgstr "Mantiene una lista nera di nickname vietati e modelli di URL."

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

#. TRANS: Tooltip for menu item in admin panel.
msgctxt "TOOLTIP"
msgid "Blacklist configuration."
msgstr "Configurazione lista nera."

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this nickname pattern to blacklist"
msgstr "Aggiungi questo modello di nickname alla lista nera"

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this homepage pattern to blacklist"
msgstr "Aggiungi questo modello di homepage alla lista nera"

#. 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 "Gli utenti provenienti da \" %s \" sono bloccati."

#. 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 notizie del nickname \"%s\" non sono consentite."

#. 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 "Impossibile iscriversi al nickname \"%s\"."

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

#. TRANS: Instructions for blacklist plugin administration panel.
msgid "Blacklisted URLs and nicknames"
msgstr "Lista nera URL e nickname"

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

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of nicknames to block, one per line."
msgstr "Modelli di nickname da bloccare, uno per riga."

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

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of URLs to block, one per line."
msgstr "Modelli di URL da bloccare, uno per riga."

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

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


code:
# Translation of StatusNet - Blacklist to Macedonian (македонски)
# Exported from translatewiki.net
#
# Author: Bjankuloski06
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - 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:50+0000\n"
"Language-Team: Macedonian <https://translatewiki.net/wiki/Portal:mk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 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: mk\n"
"X-Message-Group: #out-statusnet-plugin-blacklist\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 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 "Непознат податочен тип за  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 "Не можете да се регистрирате со домашната страница „%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.
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.
#, 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.
#, 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.
#, php-format
msgid "Cannot subscribe to nickname \"%s\"."
msgstr "Не можете да се претплатите на прекарот „%s“."

#. TRANS: Title of blacklist plugin administration panel.
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.
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.
msgid "Patterns of URLs to block, one per line."
msgstr "Видови URL-адреси за блокирање, по една во секој ред."

#. TRANS: Button text in blacklist plugin administration panel to save settings.
msgctxt "BUTTON"
msgid "Save"
msgstr "Зачувај"

#. TRANS: Button title in blacklist plugin administration panel to save settings.
msgid "Save site settings."
msgstr "Зачувај поставки на мреж. место."

license: mit


code:
# Translation of StatusNet - Blacklist 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 - 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:50+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: 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: nl\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 "Onbekend gegevenstype voor instelling %1$s + %2$s."

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

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not register with nickname \"%s\"."
msgstr "U kunt niet registreren met \"%s\" als gebruikersnaam."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use homepage \"%s\"."
msgstr "U mag \"%s\" niet als homepage instellen."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr "U mag \"%s\" niet als gebruikersnaam gebruiken."

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

#. TRANS: Plugin description.
msgid "Keeps a blacklist of forbidden nickname and URL patterns."
msgstr "Houdt een lijst bij van verboden gebruikersnamen en URL-patronen."

#. TRANS: Menu item in admin panel.
msgctxt "MENU"
msgid "Blacklist"
msgstr "Zwarte lijst"

#. TRANS: Tooltip for menu item in admin panel.
msgctxt "TOOLTIP"
msgid "Blacklist configuration."
msgstr "Instellingen voor zwarte lijst."

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this nickname pattern to blacklist"
msgstr "Dit gebruikersnaampatroon aan de zwarte lijst toevoegen"

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this homepage pattern to blacklist"
msgstr "Dit homepagepatroon aan de zwarte lijst toevoegen"

#. 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 "Gebruikers van \"%s\" zijn geblokkeerd."

#. 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 "Gebruiker \"%s\" mag geen berichten plaatsen."

#. 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 "U kunt niet abonneren op de gebruiker \"%s\"."

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

#. TRANS: Instructions for blacklist plugin administration panel.
msgid "Blacklisted URLs and nicknames"
msgstr "URL's en gebruikersnamen die op de zwarte lijst staan"

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

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of nicknames to block, one per line."
msgstr "Patronen van te blokkeren gebruikersnamen. Eén per regel."

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

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of URLs to block, one per line."
msgstr "Patronen van te blokkeren URL's. Eén per regel."

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

#. TRANS: Button title in blacklist plugin administration panel to save settings.
msgid "Save site settings."
msgstr "Websiteinstellingen opslaan."


code:
# Translation of StatusNet - Blacklist to Russian (русский)
# Exported from translatewiki.net
#
# Author: Eleferen
# Author: Express2000
# Author: Lockal
# --
# 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:50+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: 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: ru\n"
"X-Message-Group: #out-statusnet-plugin-blacklist\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Exception thrown 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.
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.
#, 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.
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.
msgctxt "BUTTON"
msgid "Save"
msgstr "Сохранить"

#. TRANS: Button title in blacklist plugin administration panel to save settings.
msgid "Save site settings."
msgstr "Сохранить настройки сайта."


code:
# Translation of StatusNet - Blacklist 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 - 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:50+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: 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: sv\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 "Du kan inte registrera med hemsida \"%s\"."

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

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use homepage \"%s\"."
msgstr "Du får inte använda hemsida \"%s\"."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr "Du får inte använda smeknamnet \"%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 "Svartlista"

#. TRANS: Tooltip for menu item in admin panel.
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.
#, php-format
msgid "Users from \"%s\" are blocked."
msgstr "Användare från \"%s\" är blockerade."

#. 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 "Användare från \"%s\" är blockerade."

#. 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 ""

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

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

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

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of nicknames to block, one per line."
msgstr "Mönster i smeknamn att blockera, en per rad."

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

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of URLs to block, one per line."
msgstr "Mönster i webbadresser tt blockera, en per rad."

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

#. TRANS: Button title in blacklist plugin administration panel to save settings.
msgid "Save site settings."
msgstr "Spara webbplatsinställningar."


code:
# Translation of StatusNet - Blacklist 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 - 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:50+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: 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: tl\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 "Hindi nalalamang uri ng dato para sa pagkakaayos na %1$s + %2$s."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not register with homepage \"%s\"."
msgstr "Hindi ka maaaring magpatala na may bahay-pahinang \"%s\"."

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

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use homepage \"%s\"."
msgstr "Hindi mo maaaring gamitin ang bahay-pahinang \"%s\"."

#. TRANS: Validation failure for nickname. %s is the nickname.
#, php-format
msgid "You may not use nickname \"%s\"."
msgstr "Hindi mo maaaring gamitin ang palayaw na \"%s\"."

#. TRANS: Validation failure for URL. %s is the URL.
#, php-format
msgid "You may not use URL \"%s\" in notices."
msgstr "Hindi mo maaaring gamitina gn URL na \"%s\" sa loob ng mga pabatid."

#. TRANS: Plugin description.
msgid "Keeps a blacklist of forbidden nickname and URL patterns."
msgstr ""
"Nagkikimkim ng isang talaang-itim ng ipinagbabawal na palayaw at mga parisan "
"ng URL."

#. TRANS: Menu item in admin panel.
msgctxt "MENU"
msgid "Blacklist"
msgstr "Talaang-itim"

#. TRANS: Tooltip for menu item in admin panel.
msgctxt "TOOLTIP"
msgid "Blacklist configuration."
msgstr "Kaayusan ng talaan ng mga pinagbabawalan."

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this nickname pattern to blacklist"
msgstr "Idagdag ang palayaw na ito sa talaang-itim"

#. TRANS: Checkbox label in the blacklist user form.
msgid "Add this homepage pattern to blacklist"
msgstr "Idagdag ang bahay-pahinang ito sa talaang-itim"

#. 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 "Hinahadlangan ang mga tagagamit na mula sa \"%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 ""
"Hindi pinapahintulutan ang mga pabatid na nagmumula sa palayaw na \"%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 "Hindi makapagpapasipi mula sa palayaw na \"%s\"."

#. TRANS: Title of blacklist plugin administration panel.
msgctxt "TITLE"
msgid "Blacklist"
msgstr "Talaan ng mga pinagbabawalan"

#. TRANS: Instructions for blacklist plugin administration panel.
msgid "Blacklisted URLs and nicknames"
msgstr "Mga URL at mga palayaw na itinala bilang hindi kanais-nais"

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

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of nicknames to block, one per line."
msgstr "Mga parisan ng mga palayaw na hahadlangan, isa sa bawat guhit."

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

#. TRANS: Field title in blacklist plugin administration panel.
msgid "Patterns of URLs to block, one per line."
msgstr "Mga parisan ng mga URL na hahadlangan, isa sa bawat guhit."

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

#. TRANS: Button title in blacklist plugin administration panel to save settings.
msgid "Save site settings."
msgstr "Sagipin ang mga katakdaan sa sityo."


code:
# Translation of StatusNet - Blacklist 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 - 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:50+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: 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: uk\n"
"X-Message-Group: #out-statusnet-plugin-blacklist\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Exception thrown 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."

#. 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.
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.
#, 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.
#, php-format
msgid "Cannot subscribe to nickname \"%s\"."
msgstr "Не можу підписатися до користувача «%s»."

#. TRANS: Title of blacklist plugin administration panel.
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.
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.
msgid "Patterns of URLs to block, one per line."
msgstr "Шаблони URL-адрес, котрі будуть блокуватися (по одному на рядок)."

#. TRANS: Button text in blacklist plugin administration panel to save settings.
msgctxt "BUTTON"
msgid "Save"
msgstr "Зберегти"

#. TRANS: Button title in blacklist plugin administration panel to save settings.
msgid "Save site settings."
msgstr "Зберегти налаштування сайту."


code:
# Translation of StatusNet - Blacklist to Simplified Chinese (中文（简体）)
# Exported from translatewiki.net
#
# Author: Chenxiaoqino
# Author: Hydra
# --
# 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:50+0000\n"
"Language-Team: Simplified Chinese <https://translatewiki.net/wiki/Portal:zh-"
"hans>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 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: zh-hans\n"
"X-Message-Group: #out-statusnet-plugin-blacklist\n"
"Plural-Forms: nplurals=1; plural=0;\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.
#, 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.
#, 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.
#, 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:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * Plugin for testing ad layout
 *
 * 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  Ads
 * @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 for testing ad layout
 *
 * This plugin uses the UAPPlugin framework to output ad content. However,
 * its ad content is just images with one red pixel stretched to the
 * right size. It's mostly useful for debugging theme layout.
 *
 * To use this plugin, set the parameter for the ad size you want to use
 * to true (or anything non-null). For example, to make a leaderboard:
 *
 *     addPlugin('BlankAd', array('leaderboard' => true));
 *
 * @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/
 *
 * @seeAlso  Location
 */
class BlankAdPlugin extends UAPPlugin
{
    /**
     * Show a medium rectangle 'ad'
     *
     * @param Action $action Action being shown
     *
     * @return void
     */
    protected function showMediumRectangle($action)
    {
        $action->element('img',
                         array('width' => 300,
                               'height' => 250,
                               'src' => $this->path('redpixel.png')),
                         '');
    }

    /**
     * Show a rectangle 'ad'
     *
     * @param Action $action Action being shown
     *
     * @return void
     */
    protected function showRectangle($action)
    {
        $action->element('img',
                         array('width' => 180,
                               'height' => 150,
                               'src' => $this->path('redpixel.png')),
                         '');
    }

    /**
     * Show a wide skyscraper ad
     *
     * @param Action $action Action being shown
     *
     * @return void
     */
    protected function showWideSkyscraper($action)
    {
        $action->element('img',
                         array('width' => 160,
                               'height' => 600,
                               'src' => $this->path('redpixel.png')),
                         '');
    }

    /**
     * Show a leaderboard ad
     *
     * @param Action $action Action being shown
     *
     * @return void
     */
    protected function showLeaderboard($action)
    {
        $action->element('img',
                         array('width' => 728,
                               'height' => 90,
                               'src' => $this->path('redpixel.png')),
                         '');
    }

    function onPluginVersion(&$versions)
    {
        $versions[] = array('name' => 'BlankAd',
                            'version' => GNUSOCIAL_VERSION,
                            'author' => 'Evan Prodromou',
                            'homepage' => 'http://status.net/wiki/Plugin:BlankAdPlugin',
                            'rawdescription' =>
                            // TRANS: Plugin description.
                            _m('Plugin for testing ad layout.'));
        return true;
    }
}


code:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"

#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr ""


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

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Complementu pa probar la maquetación de publicidad."


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

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Дапаўненьне для праверкі рэклямных модуляў."


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

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Astenn da arnodiñ doare pajennaozañ ar bruderezh."


code:
# Translation of StatusNet - BlankAd to German (Deutsch)
# Exported from translatewiki.net
#
# Author: The Evil IP address
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - BlankAd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:51+0000\n"
"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:49+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-blankad\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Plugin zum Testen von Werbungs-Layout."


code:
# Translation of StatusNet - BlankAd to Spanish (español)
# Exported from translatewiki.net
#
# Author: Translationista
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - BlankAd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:51+0000\n"
"Language-Team: Spanish <https://translatewiki.net/wiki/Portal:es>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:49+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-blankad\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Extensión para la probar la maquetación de publicidad."


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

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Iragarkien maketatzea probatzeko plugina."


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

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Liitännäinen mainosten asettelun testausta varten."


code:
# Translation of StatusNet - BlankAd to French (français)
# Exported from translatewiki.net
#
# Author: Peter17
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - BlankAd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:51+0000\n"
"Language-Team: French <https://translatewiki.net/wiki/Portal:fr>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:49+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-blankad\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Extension pour tester la mise en forme des publicités."


code:
# Translation of StatusNet - BlankAd 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 - BlankAd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:51+0000\n"
"Language-Team: Galician <https://translatewiki.net/wiki/Portal:gl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:49+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-blankad\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Complemento para probar o deseño dos anuncios."


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

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "תוסף לבדיקת פריסת הפרסומות."


code:
# Translation of StatusNet - BlankAd 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 - BlankAd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:51+0000\n"
"Language-Team: Interlingua <https://translatewiki.net/wiki/Portal:ia>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:49+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-blankad\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Plug-in pro essayar le lay-out de annuncios."


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

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Plugin per le prove e il layout."


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

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Приклучок за испробување на распоредот на рекламите."


code:
# Translation of StatusNet - BlankAd to Norwegian Bokmål (norsk (bokmål))
# Exported from translatewiki.net
#
# Author: Nghtwlkr
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - BlankAd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:52+0000\n"
"Language-Team: Norwegian Bokmål <https://translatewiki.net/wiki/Portal:nb>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:49+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: nb\n"
"X-Message-Group: #out-statusnet-plugin-blankad\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Utvidelse for å teste annonseplasseringer."


code:
# Translation of StatusNet - BlankAd 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 - BlankAd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:52+0000\n"
"Language-Team: Dutch <https://translatewiki.net/wiki/Portal:nl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:49+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-blankad\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Plug-in voor het testen van advertentielay-outs."


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

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Plugin para testar a disposição de anúncios."


code:
# Translation of StatusNet - BlankAd to Russian (русский)
# Exported from translatewiki.net
#
# Author: Eleferen
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - BlankAd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:52+0000\n"
"Language-Team: Russian <https://translatewiki.net/wiki/Portal:ru>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:49+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-blankad\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Плагин для тестирования рекламных модулей."


code:
# Translation of StatusNet - BlankAd to Swedish (svenska)
# Exported from translatewiki.net
#
# Author: Jamminjohn
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - BlankAd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:52+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-06-05 21:49:49+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-blankad\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Insticksmodul för att testa annonslayout."


code:
# Translation of StatusNet - BlankAd 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 - BlankAd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:52+0000\n"
"Language-Team: Tagalog <https://translatewiki.net/wiki/Portal:tl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:49+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-blankad\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Pamasak para sa pagsubok ng pagkakalatag ng anunsyo."


code:
# Translation of StatusNet - BlankAd 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 - BlankAd\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:52+0000\n"
"Language-Team: Ukrainian <https://translatewiki.net/wiki/Portal:uk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-05 21:49:49+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-blankad\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "
"2 && n%10 <= 4 && (n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "Додаток для тестування рекламної схеми."


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

#. TRANS: Plugin description.
msgid "Plugin for testing ad layout."
msgstr "测试广告（ad）布局的插件。"


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

if (!defined('STATUSNET')) {
    // This check helps protect against security problems;
    // your code file can't be executed directly from the web.
    exit(1);
}

/**
 * Blog plugin
 *
 * Many social systems have a way to write and share long-form texts with
 * your network. This microapp plugin lets users post blog entries.
 *
 * @category  Blog
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2011 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 * @link      http://status.net/
 */

class BlogPlugin extends MicroAppPlugin
{

    var $oldSaveNew = true;

    /**
     * Database schema setup
     *
     * @see Schema
     * @see ColumnDef
     *
     * @return boolean hook value; true means continue processing, false means stop.
     */
    function onCheckSchema()
    {
        $schema = Schema::get();

        $schema->ensureTable('blog_entry', Blog_entry::schemaDef());

        return true;
    }

    public function newFormAction(){
        return 'newblogentry';
    }

    /**
     * Map URLs to actions
     *
     * @param URLMapper $m path-to-action mapper
     *
     * @return boolean hook value; true means continue processing, false means stop.
     */
    public function onRouterInitialized(URLMapper $m)
    {
        $m->connect('blog/new',
                    array('action' => 'newblogentry'));
        $m->connect('blog/:id',
                    array('action' => 'showblogentry'),
                    array('id' => UUID::REGEX));
        return true;
    }

    function onPluginVersion(&$versions)
    {
        $versions[] = array('name' => 'Blog',
                            'version' => GNUSOCIAL_VERSION,
                            'author' => 'Evan Prodromou',
                            'homepage' => 'http://status.net/wiki/Plugin:Blog',
                            'rawdescription' =>
                            // TRANS: Plugin description.
                            _m('Let users write and share long-form texts.'));
        return true;
    }

    function appTitle()
    {
        // TRANS: Blog application title.
        return _m('TITLE','Blog');
    }

    function tag()
    {
        return 'blog';
    }

    function types()
    {
        return array(Blog_entry::TYPE);
    }

    function saveNoticeFromActivity(Activity $activity, Profile $actor, array $options=array())
    {
        if (count($activity->objects) != 1) {
            // TRANS: Exception thrown when there are too many activity objects.
            throw new ClientException(_m('Too many activity objects.'));
        }

        $entryObj = $activity->objects[0];

        if ($entryObj->type != Blog_entry::TYPE) {
            // TRANS: Exception thrown when blog plugin comes across a non-blog entry type object.
            throw new ClientException(_m('Wrong type for object.'));
        }

        $notice = null;

        switch ($activity->verb) {
        case ActivityVerb::POST:
            $notice = Blog_entry::saveNew($actor,
                                         $entryObj->title,
                                         $entryObj->content,
                                         $options);
            break;
        default:
            // TRANS: Exception thrown when blog plugin comes across a undefined verb.
            throw new ClientException(_m('Unknown verb for blog entries.'));
        }

        return $notice;
    }

    function activityObjectFromNotice(Notice $notice)
    {
        $entry = Blog_entry::fromNotice($notice);

        if (empty($entry)) {
            // TRANS: Exception thrown when requesting a non-existing blog entry for notice.
            throw new ClientException(sprintf(_m('No blog entry for notice %s.'),
                        $notice->id));
        }

        return $entry->asActivityObject();
    }

    function entryForm($out)
    {
        return new BlogEntryForm($out);
    }

    function deleteRelated(Notice $notice)
    {
        if ($notice->object_type == Blog_entry::TYPE) {
            $entry = Blog_entry::fromNotice($notice);
            if (!empty($entry)) {
                $entry->delete();
            }
        }
    }

    function adaptNoticeListItem($nli)
    {
        $notice = $nli->notice;

        if ($notice->object_type == Blog_entry::TYPE) {
            return new BlogEntryListItem($nli);
        }

        return null;
    }

    function onEndShowScripts($action)
    {
        $action->script(common_path('plugins/TinyMCE/js/jquery.tinymce.js'));
        $action->inlineScript('var _tinymce_path = "'.common_path('plugins/TinyMCE/js/tiny_mce.js').'";'."\n".
                              'var _tinymce_placeholder = "'.common_path('plugins/TinyMCE/icons/placeholder.png').'";'."\n");
        $action->script($this->path('blog.js'));
        return true;
    }
}


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

if (!defined('STATUSNET')) {
    // This check helps protect against security problems;
    // your code file can't be executed directly from the web.
    exit(1);
}

/**
 * Save a new blog entry
 *
 * @category  Action
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2011 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 * @link      http://status.net/
 */

class NewblogentryAction extends Action
{
    protected $user;
    protected $title;
    protected $content;

    /**
     * For initializing members of the class.
     *
     * @param array $argarray misc. arguments
     *
     * @return boolean true
     */

    function prepare($argarray)
    {
        parent::prepare($argarray);

        if (!$this->isPost()) {
            throw new ClientException(_('Must be a POST.'), 405);
        }

        $this->user = common_current_user();

        if (empty($this->user)) {
            // TRANS: Client exception thrown when trying to post a blog entry while not logged in.
            throw new ClientException(_m('Must be logged in to post a blog entry.'),
                                      403);
        }

        $this->checkSessionToken();

        $this->title = $this->trimmed('title');

        if (empty($this->title)) {
            // TRANS: Client exception thrown when trying to post a blog entry without providing a title.
            throw new ClientException(_m('Title required.'));
        }

        $this->content = $this->trimmed('content');

        if (empty($this->content)) {
            // TRANS: Client exception thrown when trying to post a blog entry without providing content.
            throw new ClientException(_m('Content required.'));
        }

        return true;
    }

    /**
     * Handler method
     *
     * @param array $argarray is ignored since it's now passed in in prepare()
     *
     * @return void
     */

    function handle($argarray=null)
    {
        $options = array();

        // Does the heavy-lifting for getting "To:" information

        ToSelector::fillOptions($this, $options);

        $options['source'] = 'web';

        $profile = $this->user->getProfile();

        $saved = Blog_entry::saveNew($profile,
                                    $this->title,
                                    $this->content,
                                    $options);

        if ($this->boolean('ajax')) {
            $this->startHTML('text/xml;charset=utf-8');
            $this->elementStart('head');
            // TRANS: Page title after sending a notice.
            $this->element('title', null, _m('Blog entry saved'));
            $this->elementEnd('head');
            $this->elementStart('body');
            $nli = new NoticeListItem($saved, $this);
            $nli->show();
            $this->elementEnd('body');
            $this->endHTML();
        } else {
            common_redirect($saved->getUrl(), 303);
        }
    }
}


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

if (!defined('STATUSNET')) {
    // This check helps protect against security problems;
    // your code file can't be executed directly from the web.
    exit(1);
}

/**
 * Show a blog entry
 *
 * @category  Blog
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2011 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 * @link      http://status.net/
 */
class ShowblogentryAction extends ShownoticeAction
{
    protected $id;
    protected $entry;

    function getNotice()
    {
        $this->id = $this->trimmed('id');

        $this->entry = Blog_entry::getKV('id', $this->id);

        if (empty($this->entry)) {
            // TRANS: Client exception thrown when referring to a non-existing blog entry.
            throw new ClientException(_m('No such entry.'), 404);
        }

        $notice = $this->entry->getNotice();

        if (empty($notice)) {
            // TRANS: Client exception thrown when referring to a non-existing blog entry.
            throw new ClientException(_m('No such entry.'), 404);
        }

        return $notice;
    }

    /**
     * Title of the page
     *
     * Used by Action class for layout.
     *
     * @return string page tile
     */
    function title()
    {
        // XXX: check for double-encoding
        // TRANS: Title for a blog entry without a title.
        return (empty($this->entry->title)) ? _m('Untitled') : $this->entry->title;
    }
}


code:
(function() {
    var origInit = SN.Init.NoticeFormSetup;
    SN.Init.NoticeFormSetup = function(form) {
        origInit(form);
        var content = form.find("#blog-entry-content");
        if (content.length > 0) {
            content.tinymce({
                script_url : window._tinymce_path,
                // General options
                theme : "advanced",
                plugins : "paste,fullscreen,autoresize,autolink,inlinepopups,tabfocus",
                theme_advanced_buttons1 : "bold,italic,strikethrough,|,undo,redo,|,link,unlink,image",
                theme_advanced_buttons2 : "",
                theme_advanced_buttons3 : "",
                add_form_submit_trigger : false,
                theme_advanced_resizing : true,
                tabfocus_elements: ":prev,:next",
                setup: function(ed) {

                    form.find('.submit:first').click(function() {
                        tinymce.triggerSave();
                    });

                    form.find('input[type=file]').change(function() {
                        var img = '<img src="'+window._tinymce_placeholder+'" class="placeholder" width="320" height="240">';
                        var html = tinyMCE.activeEditor.getContent();
                        ed.setContent(html + img);
                    });
                }
            });
        }
    };
})();


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

if (!defined('STATUSNET')) {
    // This check helps protect against security problems;
    // your code file can't be executed directly from the web.
    exit(1);
}

/**
 * Data structure for blog entries
 *
 * @category  Blog
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2011 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 * @link      http://status.net/
 */

class Blog_entry extends Managed_DataObject
{
    public $__table = 'blog_entry';

    public $id; // UUID
    public $profile_id; // int
    public $title; // varchar(255)
    public $summary; // text
    public $content; // text
    public $uri; // text
    public $url; // text
    public $created; // datetime
    public $modified; // datetime

    const TYPE = ActivityObject::ARTICLE;

    static function schemaDef()
    {
        return array(
            'description' => 'lite blog entry',
            'fields' => array(
                'id' => array('type' => 'char',
                              'length' => 36,
                              'not null' => true,
                              'description' => 'Unique ID (UUID)'),
                'profile_id' => array('type' => 'int',
                                      'not null' => true,
                                      'description' => 'Author profile ID'),
                'title' => array('type' => 'varchar',
                                 'length' => 255,
                                 'description' => 'title of the entry'),
                'summary' => array('type' => 'text',
                                   'description' => 'initial summary'),
                'content' => array('type' => 'text',
                                   'description' => 'HTML content of the entry'),
                'uri' => array('type' => 'varchar',
                               'length' => 255,
                               'description' => 'URI (probably http://) for this entry'),
                'url' => array('type' => 'varchar',
                               'length' => 255,
                               'description' => 'URL (probably http://) for this entry'),
                'created' => array('type' => 'datetime',
                                   'not null' => true,
                                   'description' => 'date this record was created'),
                'modified' => array('type' => 'datetime',
                                    'not null' => true,
                                    'description' => 'date this record was created'),
            ),
            'primary key' => array('id'),
            'unique keys' => array(
                'blog_entry_uri_key' => array('uri'),
            ),
            'indexes' => array(
                'blog_entry_profile_id_idx' => array('profile_id'),
                'blog_entry_created_idx' => array('created')
            ),
            'foreign keys' => array(
                'blog_entry_profile_id_fkey' => array('profile', array('profile_id' => 'id')),
            ),
        );
    }

    static function saveNew($profile, $title, $content, $options=null)
    {
        if (is_null($options)) {
            $options = array();
        }

        $be             = new Blog_entry();
        $be->id         = (string) new UUID();
        $be->profile_id = $profile->id;
        $be->title      = $title; // Note: not HTML-protected
        $be->content    = self::purify($content);

        if (array_key_exists('summary', $options)) {
            $be->summary = self::purify($options['summary']);
        } else {
            // Already purified
            $be->summary = self::summarize($be->content);
        }

        // Don't save an identical summary

        if ($be->summary == $be->content) {
            $be->summary = null;
        }

        $url = common_local_url('showblogentry', array('id' => $be->id));

        if (!array_key_exists('uri', $options)) {
            $options['uri'] = $url;
        }

        $be->uri = $options['uri'];

        if (!array_key_exists('url', $options)) {
            $options['url'] = $url;
        }

        $be->url = $options['url'];

        if (!array_key_exists('created', $options)) {
            $be->created = common_sql_now();
        }

        $be->created = $options['created'];

        $be->modified = common_sql_now();

        $be->insert();

        // Use user's preferences for short URLs, if possible

        try {
            $user = $profile->isLocal()
                        ? $profile->getUser()
                        : null;
            $shortUrl = File_redirection::makeShort($url, $user);
        } catch (Exception $e) {
            // Don't let this stop us.
            $shortUrl = $url;
        }

        // XXX: this might be too long.

        if (!empty($be->summary)) {
            $options['rendered'] = $be->summary . ' ' .
                XMLStringer::estring('a', array('href' => $url,
                                                'class' => 'blog-entry'),
                                     _('More...'));
            $text = common_strip_html($be->summary);
        } else {
            $options['rendered'] = $be->content;
            $text = common_strip_html($be->content);
        }

        if (Notice::contentTooLong($text)) {
            $text = substr($text, 0, Notice::maxContent() - mb_strlen($shortUrl) - 2) .
                '… ' . $shortUrl;
        }

        // Override this no matter what.

        $options['object_type'] = self::TYPE;

        $source = array_key_exists('source', $options) ?
                                    $options['source'] : 'web';

        $saved = Notice::saveNew($profile->id, $text, $source, $options);

        return $saved;
    }

    /**
     * Summarize the contents of a blog post
     *
     * We take the first div or paragraph of the blog post if there's a hit;
     * Otherwise we take the whole thing.
     *
     * @param string $html HTML of full content
     */
    static function summarize($html)
    {
        if (preg_match('#
.*?
#s', $html, $matches)) {
            return $matches[0];
        } else if (preg_match('#
.*?
#s', $html, $matches)) {
            return $matches[0];
        } else {
            return $html;
        }
    }

    static function fromNotice($notice)
    {
        return Blog_entry::getKV('uri', $notice->uri);
    }

    function getNotice()
    {
        return Notice::getKV('uri', $this->uri);
    }

    function asActivityObject()
    {
        $obj = new ActivityObject();

        $obj->id      = $this->uri;
        $obj->type    = self::TYPE;
        $obj->title   = $this->title;
        $obj->summary = $this->summary;
        $obj->content = $this->content;
        $obj->link    = $this->url;

        return $obj;
    }

    /**
     * Clean up input HTML
     */
    static function purify($html)
    {
        require_once INSTALLDIR.'/extlib/htmLawed/htmLawed.php';

        $config = array('safe' => 1,
                        'deny_attribute' => 'id,style,on*');
        $pure = htmLawed($html, $config);

        return $pure;
    }
}


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

if (!defined('STATUSNET')) {
    // This check helps protect against security problems;
    // your code file can't be executed directly from the web.
    exit(1);
}

/**
 * Form for creating a blog entry
 *
 * @category  Blog
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2011 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 * @link      http://status.net/
 */
class BlogEntryForm extends Form
{
    /**
     * ID of the form
     *
     * @return int ID of the form
     */
    function id()
    {
        return 'form_new_blog_entry';
    }

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

    /**
     * Action of the form
     *
     * @return string URL of the action
     */
    function action()
    {
        return common_local_url('newblogentry');
    }

    /**
     * Data elements of the form
     *
     * @return void
     */
    function formData()
    {
        $this->out->elementStart('fieldset', array('id' => 'new_blog_entry_data'));
        $this->out->elementStart('ul', 'form_data');

        $this->li();
        $this->out->input('blog-entry-title',
                          // TRANS: Field label on blog entry form.
                          _m('LABEL','Title'),
                          null,
                          // TRANS: Field title on blog entry form.
                          _m('Title of the blog entry.'),
                          'title');
        $this->unli();

        $this->li();
        $this->out->textarea('blog-entry-content',
                             // TRANS: Field label on blog entry form.
                             _m('LABEL','Text'),
                            null,
                            // TRANS: Field title on blog entry form.
                            _m('Text of the blog entry.'),
                            'content');
        $this->unli();

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

        $toWidget = new ToSelector($this->out,
                                   common_current_user(),
                                   null);
        $toWidget->show();

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

    /**
     * Action elements
     *
     * @return void
     */
    function formActions()
    {
        $this->out->submit('blog-entry-submit',
                           // TRANS: Button text to save a blog entry.
                           _m('BUTTON', 'Save'),
                           'submit',
                           'submit');
    }
}


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

if (!defined('STATUSNET')) {
    // This check helps protect against security problems;
    // your code file can't be executed directly from the web.
    exit(1);
}

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

class BlogEntryListItem extends NoticeListItemAdapter
{
    function showNotice()
    {
        $out = $this->nli->out;
        $out->elementStart('div', 'entry-title');
        $this->showAuthor();
        $this->showContent();
        $out->elementEnd('div');
    }

    function showContent()
    {
        $notice = $this->nli->notice;
        $out    = $this->nli->out;

        $entry  = Blog_entry::fromNotice($notice);

        if (empty($entry)) {
            throw new Exception('BlogEntryListItem used for non-blog notice.');
        }

        $out->elementStart('h4', array('class' => 'blog-entry-title'));
        $out->element('a', array('href' => $notice->getUrl()), $entry->title);
        $out->elementEnd('h4');

        // XXX: kind of a hack

        $actionName = $out->trimmed('action');

        if ($actionName == 'shownotice' ||
            $actionName == 'showblogentry' ||
            $actionName == 'conversation') {

            $out->elementStart('div', 'blog-entry-content');
            $out->raw($entry->content);
            $out->elementEnd('div');

        } else {

            if (!empty($entry->summary)) {
                $out->elementStart('div', 'blog-entry-summary');
                $out->raw($entry->summary);
                $out->elementEnd('div');
            }

            $url = ($entry->url) ? $entry->url : $notice->getUrl();
            $out->element('a',
                          array('href' => $url,
                                'class' => 'blog-entry-link'),
                          _('More...'));
        }
    }
}


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: Client exception thrown when trying to post a blog entry while not logged in.
#: newblogentry.php:74
msgid "Must be logged in to post a blog entry."
msgstr ""

#. TRANS: Client exception thrown when trying to post a blog entry without providing a title.
#: newblogentry.php:84
msgid "Title required."
msgstr ""

#. TRANS: Client exception thrown when trying to post a blog entry without providing content.
#: newblogentry.php:91
msgid "Content required."
msgstr ""

#. TRANS: Page title after sending a notice.
#: newblogentry.php:128
msgid "Blog entry saved"
msgstr ""

#. TRANS: Plugin description.
#: BlogPlugin.php:124
msgid "Let users write and share long-form texts."
msgstr ""

#. TRANS: Blog application title.
#: BlogPlugin.php:131
msgctxt "TITLE"
msgid "Blog"
msgstr ""

#. TRANS: Exception thrown when there are too many activity objects.
#: BlogPlugin.php:148
msgid "Too many activity objects."
msgstr ""

#. TRANS: Exception thrown when blog plugin comes across a non-blog entry type object.
#: BlogPlugin.php:155
msgid "Wrong type for object."
msgstr ""

#. TRANS: Exception thrown when blog plugin comes across a undefined verb.
#: BlogPlugin.php:169
msgid "Unknown verb for blog entries."
msgstr ""

#. TRANS: Exception thrown when requesting a non-existing blog entry for notice.
#: BlogPlugin.php:181
#, php-format
msgid "No blog entry for notice %s."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing blog entry.
#: showblogentry.php:60 showblogentry.php:67
msgid "No such entry."
msgstr ""

#. TRANS: Title for a blog entry without a title.
#: showblogentry.php:84
msgid "Untitled"
msgstr ""

#. TRANS: Field label on blog entry form.
#: blogentryform.php:92
msgctxt "LABEL"
msgid "Title"
msgstr ""

#. TRANS: Field title on blog entry form.
#: blogentryform.php:95
msgid "Title of the blog entry."
msgstr ""

#. TRANS: Field label on blog entry form.
#: blogentryform.php:102
msgctxt "LABEL"
msgid "Text"
msgstr ""

#. TRANS: Field title on blog entry form.
#: blogentryform.php:105
msgid "Text of the blog entry."
msgstr ""

#. TRANS: Button text to save a blog entry.
#: blogentryform.php:128
msgctxt "BUTTON"
msgid "Save"
msgstr ""


code:
# Translation of StatusNet - Blog to Arabic (العربية)
# Exported from translatewiki.net
#
# Author: OsamaK
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Blog\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:52+0000\n"
"Language-Team: Arabic <https://translatewiki.net/wiki/Portal:ar>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-02-25 15:25:35+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ar\n"
"X-Message-Group: #out-statusnet-plugin-blog\n"
"Plural-Forms: nplurals=6; plural=(n == 0) ? 0 : ( (n == 1) ? 1 : ( (n == "
"2) ? 2 : ( (n%100 >= 3 && n%100 <= 10) ? 3 : ( (n%100 >= 11 && n%100 <= "
"99) ? 4 : 5 ) ) ) );\n"

#. TRANS: Client exception thrown when trying to post a blog entry while not logged in.
msgid "Must be logged in to post a blog entry."
msgstr ""

#. TRANS: Client exception thrown when trying to post a blog entry without providing a title.
msgid "Title required."
msgstr ""

#. TRANS: Client exception thrown when trying to post a blog entry without providing content.
msgid "Content required."
msgstr ""

#. TRANS: Page title after sending a notice.
msgid "Blog entry saved"
msgstr ""

#. TRANS: Plugin description.
msgid "Let users write and share long-form texts."
msgstr ""

#. TRANS: Blog application title.
msgctxt "TITLE"
msgid "Blog"
msgstr "مدونة"

#. TRANS: Exception thrown when there are too many activity objects.
msgid "Too many activity objects."
msgstr ""

#. TRANS: Exception thrown when blog plugin comes across a non-blog entry type object.
msgid "Wrong type for object."
msgstr ""

#. TRANS: Exception thrown when blog plugin comes across a undefined verb.
msgid "Unknown verb for blog entries."
msgstr ""

#. TRANS: Exception thrown when requesting a non-existing blog entry for notice.
#, php-format
msgid "No blog entry for notice %s."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing blog entry.
msgid "No such entry."
msgstr ""

#. TRANS: Title for a blog entry without a title.
msgid "Untitled"
msgstr ""

#. TRANS: Field label on blog entry form.
msgctxt "LABEL"
msgid "Title"
msgstr "العنوان"

#. TRANS: Field title on blog entry form.
msgid "Title of the blog entry."
msgstr "عنوان التدوينة."

#. TRANS: Field label on blog entry form.
msgctxt "LABEL"
msgid "Text"
msgstr "النص"

#. TRANS: Field title on blog entry form.
msgid "Text of the blog entry."
msgstr "نص التدوينة."

#. TRANS: Button text to save a blog entry.
msgctxt "BUTTON"
msgid "Save"
msgstr "احفظ"


code:
# Translation of StatusNet - Blog 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 - Blog\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:53+0000\n"
"Language-Team: Breton <https://translatewiki.net/wiki/Portal:br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-02-25 15:25:35+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: br\n"
"X-Message-Group: #out-statusnet-plugin-blog\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Client exception thrown when trying to post a blog entry while not logged in.
msgid "Must be logged in to post a blog entry."
msgstr ""

#. TRANS: Client exception thrown when trying to post a blog entry without providing a title.
msgid "Title required."
msgstr "Ezhomm 'zo eus un titl."

#. TRANS: Client exception thrown when trying to post a blog entry without providing content.
msgid "Content required."
msgstr ""

#. TRANS: Page title after sending a notice.
msgid "Blog entry saved"
msgstr ""

#. TRANS: Plugin description.
msgid "Let users write and share long-form texts."
msgstr ""

#. TRANS: Blog application title.
msgctxt "TITLE"
msgid "Blog"
msgstr "Blog"

#. TRANS: Exception thrown when there are too many activity objects.
msgid "Too many activity objects."
msgstr ""

#. TRANS: Exception thrown when blog plugin comes across a non-blog entry type object.
msgid "Wrong type for object."
msgstr ""

#. TRANS: Exception thrown when blog plugin comes across a undefined verb.
msgid "Unknown verb for blog entries."
msgstr ""

#. TRANS: Exception thrown when requesting a non-existing blog entry for notice.
#, php-format
msgid "No blog entry for notice %s."
msgstr ""

#. TRANS: Client exception thrown when referring to a non-existing blog entry.
msgid "No such entry."
msgstr ""

#. TRANS: Title for a blog entry without a title.
msgid "Untitled"
msgstr "Hep titl"

#. TRANS: Field label on blog entry form.
msgctxt "LABEL"
msgid "Title"
msgstr "Titl"

#. TRANS: Field title on blog entry form.
msgid "Title of the blog entry."
msgstr ""

#. TRANS: Field label on blog entry form.
msgctxt "LABEL"
msgid "Text"
msgstr "Testenn"

#. TRANS: Field title on blog entry form.
msgid "Text of the blog entry."
msgstr ""

#. TRANS: Button text to save a blog entry.
msgctxt "BUTTON"
msgid "Save"
msgstr "Enrollañ"