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

#. TRANS: Plugin description.
#: RSSCloudPlugin.php:209
msgid ""
"The RSSCloud plugin enables your StatusNet instance to publish real-time "
"updates for profile RSS feeds using the RSSCloud protocol."
msgstr "Ang pamasak ng RSSCloud ay nagpapahintulot sa iyong pagkakataon ng StatusNet na maglathala ng mga pagsasapanahong pangtunay na oras para sa mga balangkas ng mga pakain ng RSS na gumagamit ng protokolo ng RSSCloud."

#. TRANS: Form validation error displayed when a URL parameter is missing.
#: actions/loggingaggregator.php:86
msgid "A URL parameter is required."
msgstr "Kailangan ang isang parametro ng URL."

#. TRANS: Form validation error displayed when HTTP GET is not used.
#: actions/loggingaggregator.php:94
msgid "This resource requires an HTTP GET."
msgstr "Ang pinagkunang ito ay nangangailangan ng HTTP GET."

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/loggingaggregator.php:104
msgid "This resource requires an HTTP POST."
msgstr "Ang pinagkukunang ito ay nangangailangan ng HTTP POST."

#. TRANS: Form validation error displayed when POST is not used.
#: actions/rsscloudrequestnotify.php:91
msgid "Request must be POST."
msgstr "Ang hiling ay dapat na POST."

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/rsscloudrequestnotify.php:109
msgid "Only HTTP POST notifications are supported at this time."
msgstr "Tanging mga pabatid na HTTP POST lamang ang tinatangkilik sa panahong ito."

#. TRANS: List separator.
#: actions/rsscloudrequestnotify.php:120
msgctxt "SEPARATOR"
msgid ", "
msgstr ", "

#. TRANS: Form validation error displayed when a request body is missing
#. expected parameters.
#. TRANS: %s is a list of parameters separated by a list separator (default:
#. ", ").
#: actions/rsscloudrequestnotify.php:123
#, php-format
msgid "The following parameters were missing from the request body: %s."
msgstr "Nawawala ang sumusunod na mga parametro mula sa katawan ng hiling: %s."

#. TRANS: Form validation error displayed when not providing any valid profile
#. feed URLs.
#: actions/rsscloudrequestnotify.php:130
msgid ""
"You must provide at least one valid profile feed URL (url1, url2, url3 ... "
"urlN)."
msgstr "Dapat kang magbigay ng kahit na isang katanggap-tanggap na URL ng pakain ng balangkas (url1, url2, url3 ... urlN)."

#. TRANS: Form validation error displayed when not providing a valid feed URL.
#: actions/rsscloudrequestnotify.php:146
msgid "Feed subscription failed: Not a valid feed."
msgstr "Nabigo ang pagtanggap ng pakain: Hindi isang tanggap na pakain."

#. TRANS: Form validation error displayed when feed subscription failed.
#: actions/rsscloudrequestnotify.php:153
msgid ""
"Feed subscription failed: Notification handler does not respond correctly."
msgstr "Nabigo ang pagpapasipi ng pakain: Hindi tama ang pagtugon ng tagapaghawak ng pabatid."

#. TRANS: Success message after subscribing to one or more feeds.
#: actions/rsscloudrequestnotify.php:168
msgid ""
"Thanks for the subscription. When the feed(s) update(s), you will be "
"notified."
msgstr "Salamat sa pagtatanggap.  Kapag nagsapanahon ang (mga) pakain, pababatiran ka."


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

#. TRANS: Plugin description.
#: RSSCloudPlugin.php:209
msgid ""
"The RSSCloud plugin enables your StatusNet instance to publish real-time "
"updates for profile RSS feeds using the <a "
"href=\"http://rsscloud.org/\">RSSCloud protocol</a>."
msgstr ""

#. TRANS: Form validation error displayed when a URL parameter is missing.
#: actions/loggingaggregator.php:86
msgid "A URL parameter is required."
msgstr ""

#. TRANS: Form validation error displayed when HTTP GET is not used.
#: actions/loggingaggregator.php:94
msgid "This resource requires an HTTP GET."
msgstr ""

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/loggingaggregator.php:104
msgid "This resource requires an HTTP POST."
msgstr ""

#. TRANS: Form validation error displayed when POST is not used.
#: actions/rsscloudrequestnotify.php:91
msgid "Request must be POST."
msgstr ""

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/rsscloudrequestnotify.php:109
msgid "Only HTTP POST notifications are supported at this time."
msgstr ""

#. TRANS: List separator.
#: actions/rsscloudrequestnotify.php:120
msgctxt "SEPARATOR"
msgid ", "
msgstr ""

#. TRANS: Form validation error displayed when a request body is missing
#. expected parameters.
#. TRANS: %s is a list of parameters separated by a list separator (default:
#. ", ").
#: actions/rsscloudrequestnotify.php:123
#, php-format
msgid "The following parameters were missing from the request body: %s."
msgstr ""

#. TRANS: Form validation error displayed when not providing any valid profile
#. feed URLs.
#: actions/rsscloudrequestnotify.php:130
msgid ""
"You must provide at least one valid profile feed URL (url1, url2, url3 ... "
"urlN)."
msgstr ""

#. TRANS: Form validation error displayed when not providing a valid feed URL.
#: actions/rsscloudrequestnotify.php:146
msgid "Feed subscription failed: Not a valid feed."
msgstr ""

#. TRANS: Form validation error displayed when feed subscription failed.
#: actions/rsscloudrequestnotify.php:153
msgid ""
"Feed subscription failed: Notification handler does not respond correctly."
msgstr ""

#. TRANS: Success message after subscribing to one or more feeds.
#: actions/rsscloudrequestnotify.php:168
msgid ""
"Thanks for the subscription. When the feed(s) update(s), you will be "
"notified."
msgstr ""

repo_name: spookie/gnu

license: mit


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2010 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:32+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Ukrainian (http://www.transifex.com/gnu-social/gnu-social/language/uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: uk\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.
#: RSSCloudPlugin.php:209
msgid ""
"The RSSCloud plugin enables your StatusNet instance to publish real-time "
"updates for profile RSS feeds using the RSSCloud protocol."
msgstr "Додаток RSSCloud дозволяє вашому StatusNet-сумісному сайту публікувати оновлення з веб-стрічок у реальному часі, використовуючи протокол RSSCloud."

#. TRANS: Form validation error displayed when a URL parameter is missing.
#: actions/loggingaggregator.php:86
msgid "A URL parameter is required."
msgstr "Параметр URL-адреси є обов’язковим."

#. TRANS: Form validation error displayed when HTTP GET is not used.
#: actions/loggingaggregator.php:94
msgid "This resource requires an HTTP GET."
msgstr "Цей ресурс вимагає форми HTTP GET."

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/loggingaggregator.php:104
msgid "This resource requires an HTTP POST."
msgstr "Цей ресурс вимагає форми HTTP POST."

#. TRANS: Form validation error displayed when POST is not used.
#: actions/rsscloudrequestnotify.php:91
msgid "Request must be POST."
msgstr "Запит вимагає форми POST."

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/rsscloudrequestnotify.php:109
msgid "Only HTTP POST notifications are supported at this time."
msgstr "На даний момент підтримуються лише сповіщення форми http-post."

#. TRANS: List separator.
#: actions/rsscloudrequestnotify.php:120
msgctxt "SEPARATOR"
msgid ", "
msgstr ", "

#. TRANS: Form validation error displayed when a request body is missing
#. expected parameters.
#. TRANS: %s is a list of parameters separated by a list separator (default:
#. ", ").
#: actions/rsscloudrequestnotify.php:123
#, php-format
msgid "The following parameters were missing from the request body: %s."
msgstr "У формі запиту відсутні наступні параметри: %s."

#. TRANS: Form validation error displayed when not providing any valid profile
#. feed URLs.
#: actions/rsscloudrequestnotify.php:130
msgid ""
"You must provide at least one valid profile feed URL (url1, url2, url3 ... "
"urlN)."
msgstr "Ви повинні зазначити щонайменше одну дійсну  URL-адресу веб-стрічки (URL-адреси через кому та пробіл)."

#. TRANS: Form validation error displayed when not providing a valid feed URL.
#: actions/rsscloudrequestnotify.php:146
msgid "Feed subscription failed: Not a valid feed."
msgstr "Підписатися до веб-стрічки не вдалося: ця веб-стрічка не є дійсною."

#. TRANS: Form validation error displayed when feed subscription failed.
#: actions/rsscloudrequestnotify.php:153
msgid ""
"Feed subscription failed: Notification handler does not respond correctly."
msgstr "Підписатися до веб-стрічки не вдалося: обробник сповіщень відреагував неправильно."

#. TRANS: Success message after subscribing to one or more feeds.
#: actions/rsscloudrequestnotify.php:168
msgid ""
"Thanks for the subscription. When the feed(s) update(s), you will be "
"notified."
msgstr "Дякуємо за підписку. Коли веб-стрічки оновляться, вас буде поінформовано."


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

#. TRANS: Plugin description.
#: RSSCloudPlugin.php:209
msgid ""
"The RSSCloud plugin enables your StatusNet instance to publish real-time "
"updates for profile RSS feeds using the <a "
"href=\"http://rsscloud.org/\">RSSCloud protocol</a>."
msgstr ""

#. TRANS: Form validation error displayed when a URL parameter is missing.
#: actions/loggingaggregator.php:86
msgid "A URL parameter is required."
msgstr ""

#. TRANS: Form validation error displayed when HTTP GET is not used.
#: actions/loggingaggregator.php:94
msgid "This resource requires an HTTP GET."
msgstr ""

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/loggingaggregator.php:104
msgid "This resource requires an HTTP POST."
msgstr ""

#. TRANS: Form validation error displayed when POST is not used.
#: actions/rsscloudrequestnotify.php:91
msgid "Request must be POST."
msgstr ""

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/rsscloudrequestnotify.php:109
msgid "Only HTTP POST notifications are supported at this time."
msgstr ""

#. TRANS: List separator.
#: actions/rsscloudrequestnotify.php:120
msgctxt "SEPARATOR"
msgid ", "
msgstr "،"

#. TRANS: Form validation error displayed when a request body is missing
#. expected parameters.
#. TRANS: %s is a list of parameters separated by a list separator (default:
#. ", ").
#: actions/rsscloudrequestnotify.php:123
#, php-format
msgid "The following parameters were missing from the request body: %s."
msgstr ""

#. TRANS: Form validation error displayed when not providing any valid profile
#. feed URLs.
#: actions/rsscloudrequestnotify.php:130
msgid ""
"You must provide at least one valid profile feed URL (url1, url2, url3 ... "
"urlN)."
msgstr ""

#. TRANS: Form validation error displayed when not providing a valid feed URL.
#: actions/rsscloudrequestnotify.php:146
msgid "Feed subscription failed: Not a valid feed."
msgstr ""

#. TRANS: Form validation error displayed when feed subscription failed.
#: actions/rsscloudrequestnotify.php:153
msgid ""
"Feed subscription failed: Notification handler does not respond correctly."
msgstr ""

#. TRANS: Success message after subscribing to one or more feeds.
#: actions/rsscloudrequestnotify.php:168
msgid ""
"Thanks for the subscription. When the feed(s) update(s), you will be "
"notified."
msgstr ""


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

#. TRANS: Plugin description.
#: RSSCloudPlugin.php:209
msgid ""
"The RSSCloud plugin enables your StatusNet instance to publish real-time "
"updates for profile RSS feeds using the <a "
"href=\"http://rsscloud.org/\">RSSCloud protocol</a>."
msgstr ""

#. TRANS: Form validation error displayed when a URL parameter is missing.
#: actions/loggingaggregator.php:86
msgid "A URL parameter is required."
msgstr ""

#. TRANS: Form validation error displayed when HTTP GET is not used.
#: actions/loggingaggregator.php:94
msgid "This resource requires an HTTP GET."
msgstr ""

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/loggingaggregator.php:104
msgid "This resource requires an HTTP POST."
msgstr ""

#. TRANS: Form validation error displayed when POST is not used.
#: actions/rsscloudrequestnotify.php:91
msgid "Request must be POST."
msgstr ""

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/rsscloudrequestnotify.php:109
msgid "Only HTTP POST notifications are supported at this time."
msgstr ""

#. TRANS: List separator.
#: actions/rsscloudrequestnotify.php:120
msgctxt "SEPARATOR"
msgid ", "
msgstr ""

#. TRANS: Form validation error displayed when a request body is missing
#. expected parameters.
#. TRANS: %s is a list of parameters separated by a list separator (default:
#. ", ").
#: actions/rsscloudrequestnotify.php:123
#, php-format
msgid "The following parameters were missing from the request body: %s."
msgstr ""

#. TRANS: Form validation error displayed when not providing any valid profile
#. feed URLs.
#: actions/rsscloudrequestnotify.php:130
msgid ""
"You must provide at least one valid profile feed URL (url1, url2, url3 ... "
"urlN)."
msgstr ""

#. TRANS: Form validation error displayed when not providing a valid feed URL.
#: actions/rsscloudrequestnotify.php:146
msgid "Feed subscription failed: Not a valid feed."
msgstr ""

#. TRANS: Form validation error displayed when feed subscription failed.
#: actions/rsscloudrequestnotify.php:153
msgid ""
"Feed subscription failed: Notification handler does not respond correctly."
msgstr ""

#. TRANS: Success message after subscribing to one or more feeds.
#: actions/rsscloudrequestnotify.php:168
msgid ""
"Thanks for the subscription. When the feed(s) update(s), you will be "
"notified."
msgstr ""


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

#. TRANS: Plugin description.
#: RSSCloudPlugin.php:209
msgid ""
"The RSSCloud plugin enables your StatusNet instance to publish real-time "
"updates for profile RSS feeds using the <a "
"href=\"http://rsscloud.org/\">RSSCloud protocol</a>."
msgstr ""

#. TRANS: Form validation error displayed when a URL parameter is missing.
#: actions/loggingaggregator.php:86
msgid "A URL parameter is required."
msgstr ""

#. TRANS: Form validation error displayed when HTTP GET is not used.
#: actions/loggingaggregator.php:94
msgid "This resource requires an HTTP GET."
msgstr ""

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/loggingaggregator.php:104
msgid "This resource requires an HTTP POST."
msgstr ""

#. TRANS: Form validation error displayed when POST is not used.
#: actions/rsscloudrequestnotify.php:91
msgid "Request must be POST."
msgstr ""

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/rsscloudrequestnotify.php:109
msgid "Only HTTP POST notifications are supported at this time."
msgstr ""

#. TRANS: List separator.
#: actions/rsscloudrequestnotify.php:120
msgctxt "SEPARATOR"
msgid ", "
msgstr ""

#. TRANS: Form validation error displayed when a request body is missing
#. expected parameters.
#. TRANS: %s is a list of parameters separated by a list separator (default:
#. ", ").
#: actions/rsscloudrequestnotify.php:123
#, php-format
msgid "The following parameters were missing from the request body: %s."
msgstr ""

#. TRANS: Form validation error displayed when not providing any valid profile
#. feed URLs.
#: actions/rsscloudrequestnotify.php:130
msgid ""
"You must provide at least one valid profile feed URL (url1, url2, url3 ... "
"urlN)."
msgstr ""

#. TRANS: Form validation error displayed when not providing a valid feed URL.
#: actions/rsscloudrequestnotify.php:146
msgid "Feed subscription failed: Not a valid feed."
msgstr ""

#. TRANS: Form validation error displayed when feed subscription failed.
#: actions/rsscloudrequestnotify.php:153
msgid ""
"Feed subscription failed: Notification handler does not respond correctly."
msgstr ""

#. TRANS: Success message after subscribing to one or more feeds.
#: actions/rsscloudrequestnotify.php:168
msgid ""
"Thanks for the subscription. When the feed(s) update(s), you will be "
"notified."
msgstr ""


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

#. TRANS: Plugin description.
#: RSSCloudPlugin.php:209
msgid ""
"The RSSCloud plugin enables your StatusNet instance to publish real-time "
"updates for profile RSS feeds using the <a "
"href=\"http://rsscloud.org/\">RSSCloud protocol</a>."
msgstr ""

#. TRANS: Form validation error displayed when a URL parameter is missing.
#: actions/loggingaggregator.php:86
msgid "A URL parameter is required."
msgstr ""

#. TRANS: Form validation error displayed when HTTP GET is not used.
#: actions/loggingaggregator.php:94
msgid "This resource requires an HTTP GET."
msgstr ""

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/loggingaggregator.php:104
msgid "This resource requires an HTTP POST."
msgstr ""

#. TRANS: Form validation error displayed when POST is not used.
#: actions/rsscloudrequestnotify.php:91
msgid "Request must be POST."
msgstr ""

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/rsscloudrequestnotify.php:109
msgid "Only HTTP POST notifications are supported at this time."
msgstr ""

#. TRANS: List separator.
#: actions/rsscloudrequestnotify.php:120
msgctxt "SEPARATOR"
msgid ", "
msgstr "、"

#. TRANS: Form validation error displayed when a request body is missing
#. expected parameters.
#. TRANS: %s is a list of parameters separated by a list separator (default:
#. ", ").
#: actions/rsscloudrequestnotify.php:123
#, php-format
msgid "The following parameters were missing from the request body: %s."
msgstr ""

#. TRANS: Form validation error displayed when not providing any valid profile
#. feed URLs.
#: actions/rsscloudrequestnotify.php:130
msgid ""
"You must provide at least one valid profile feed URL (url1, url2, url3 ... "
"urlN)."
msgstr ""

#. TRANS: Form validation error displayed when not providing a valid feed URL.
#: actions/rsscloudrequestnotify.php:146
msgid "Feed subscription failed: Not a valid feed."
msgstr ""

#. TRANS: Form validation error displayed when feed subscription failed.
#: actions/rsscloudrequestnotify.php:153
msgid ""
"Feed subscription failed: Notification handler does not respond correctly."
msgstr ""

#. TRANS: Success message after subscribing to one or more feeds.
#: actions/rsscloudrequestnotify.php:168
msgid ""
"Thanks for the subscription. When the feed(s) update(s), you will be "
"notified."
msgstr ""


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

#. TRANS: Plugin description.
#: RSSCloudPlugin.php:209
msgid ""
"The RSSCloud plugin enables your StatusNet instance to publish real-time "
"updates for profile RSS feeds using the <a "
"href=\"http://rsscloud.org/\">RSSCloud protocol</a>."
msgstr ""

#. TRANS: Form validation error displayed when a URL parameter is missing.
#: actions/loggingaggregator.php:86
msgid "A URL parameter is required."
msgstr ""

#. TRANS: Form validation error displayed when HTTP GET is not used.
#: actions/loggingaggregator.php:94
msgid "This resource requires an HTTP GET."
msgstr ""

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/loggingaggregator.php:104
msgid "This resource requires an HTTP POST."
msgstr ""

#. TRANS: Form validation error displayed when POST is not used.
#: actions/rsscloudrequestnotify.php:91
msgid "Request must be POST."
msgstr ""

#. TRANS: Form validation error displayed when HTTP POST is not used.
#: actions/rsscloudrequestnotify.php:109
msgid "Only HTTP POST notifications are supported at this time."
msgstr ""

#. TRANS: List separator.
#: actions/rsscloudrequestnotify.php:120
msgctxt "SEPARATOR"
msgid ", "
msgstr ""

#. TRANS: Form validation error displayed when a request body is missing
#. expected parameters.
#. TRANS: %s is a list of parameters separated by a list separator (default:
#. ", ").
#: actions/rsscloudrequestnotify.php:123
#, php-format
msgid "The following parameters were missing from the request body: %s."
msgstr ""

#. TRANS: Form validation error displayed when not providing any valid profile
#. feed URLs.
#: actions/rsscloudrequestnotify.php:130
msgid ""
"You must provide at least one valid profile feed URL (url1, url2, url3 ... "
"urlN)."
msgstr ""

#. TRANS: Form validation error displayed when not providing a valid feed URL.
#: actions/rsscloudrequestnotify.php:146
msgid "Feed subscription failed: Not a valid feed."
msgstr ""

#. TRANS: Form validation error displayed when feed subscription failed.
#: actions/rsscloudrequestnotify.php:153
msgid ""
"Feed subscription failed: Notification handler does not respond correctly."
msgstr ""

#. TRANS: Success message after subscribing to one or more feeds.
#: actions/rsscloudrequestnotify.php:168
msgid ""
"Thanks for the subscription. When the feed(s) update(s), you will be "
"notified."
msgstr ""


code:
Redis cache for GNU social

Installation
============

Tell your `config.php` to use this plugin (replace `tcp://localhost:6379` with the address/port
of your Redis backend server):

addPlugin('RedisCache', ['server' => 'tcp://localhost:6379']);

Settings
========

servers: Array of Redis servers addresses. A semicolon (`;`) should be used to separate
the address from the port, to allow for IPv6 addresses

defaultExpiry: How long before cache expires (in seconds)

Example
=======

```
    addPlugin('RedisCache', [ 'server' => 'tcp://localhost:6379',
                              'defaultExpiry' => 86400 // 24h
                            ]);
```

You can also use a unix socket instead of a tcp connection:

```
    addPlugin('RedisCache', ['server' => 'unix:/var/run/redis/redis.sock']);
```

path: plugins/RedisCache/README


code:
<?php

/**
 * GNU social - a federating social network
 *
 * Plguin inplementing Redis based caching
 *
 * 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  Files
 * @package   GNUsocial
 * @author    Stéphane Bérubé <chimo@chromic.org>
 * @author    Miguel Dantas <biodantas@gmail.com>
 * @copyright 2018, 2019 Free Software Foundation http://fsf.org
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link      https://www.gnu.org/software/social/
 */

defined('GNUSOCIAL') || die();

use Predis\Client;
use Predis\PredisException;

class RedisCachePlugin extends Plugin
{
    const PLUGIN_VERSION = '0.1.0';

    // settings which can be set in config.php with addPlugin('Embed', ['param'=>'value', ...]);
    public $server = null;
    public $defaultExpiry = 86400; // 24h

    protected $client = null;

    function onInitializePlugin()
    {
        $this->_ensureConn();

        return true;
    }

    private function _ensureConn()
    {
        if ($this->client === null) {
            $this->client = new Client($this->server);
        }
    }

    function onStartCacheGet(&$key, &$value)
    {
        try {
            $this->_ensureConn();
            $ret = $this->client->get($key);
        } catch(PredisException $e) {
            common_log(LOG_ERR, 'RedisCache encountered exception ' . get_class($e) . ': ' . $e->getMessage());
            return true;
        }

        // Hit, overwrite "value" and return false
        // to indicate we took care of this
        if ($ret !== null) {
            $value = unserialize($ret);
            return false;
        }

        // Miss, let GS do its thing
        return true;
    }

    function onStartCacheSet(&$key, &$value, &$flag, &$expiry, &$success)
    {
        if ($expiry === null) {
            $expiry = $this->defaultExpiry;
        }

        try {
            $this->_ensureConn();

            $ret = $this->client->setex($key, $expiry, serialize($value));
        } catch(PredisException $e) {
            common_log(LOG_ERR, 'RedisCache encountered exception ' . get_class($e) . ': ' . $e->getMessage());
            return true;
        }

        if (is_int($ret) || (!is_null($ret) && $ret->getPayload() === "OK")) {
            $success = true;
            return false;
        }

        return true;
    }

    function onStartCacheDelete($key)
    {
        if ($key === null) {
            return true;
        }

        try {
            $this->_ensureConn();
            $ret = $this->client->del($key);
        } catch(PredisException $e) {
            common_log(LOG_ERR, 'RedisCache encountered exception ' . get_class($e) . ': ' . $e->getMessage());
        }

        // Let other caches delete stuff if we didn't succeed
        return isset($ret) && $ret === 1;
    }

    function onStartCacheIncrement(&$key, &$step, &$value)
    {
        try {
            $this->_ensureConn();
            $this->client->incrby($key, $step);
        } catch(PredisException $e) {
            common_log(LOG_ERR, 'RedisCache encountered exception ' . get_class($e) . ': ' . $e->getMessage());
            return true;
        }

        return false;
    }

    public function onPluginVersion(array &$versions): bool
    {
        $versions[] = [
            'name' => 'RedisCache',
            'version' => self::VERSION,
            'author' => 'Stéphane Bérubé (chimo)',
            'homepage' => 'https://github.com/chimo/gs-rediscache',
            'description' =>
            // TRANS: Plugin description.
            _m('Plugin implementing Redis as a backend for GNU social caching')
        ];
        return true;
    }
}


code:
RedisQueuePlugin wraps the RedisQueueManager class which is a queue manager
that uses Redis as it's backing storage.

Installation
============

This plugin replaces other queue manager plugins, such as UnQueue and DBQueue.
You don't have to disable them but it is recommended to only use a QueueManager
at a time.

addPlugin('RedisQueue', ['server' => 'your-redis-instance-and-port']);

Example
=======

In config.php

addPlugin('RedisQueue', ['server' => 'tcp://localhost:6379']);


code:
<?php
// This file is part of GNU social - https://www.gnu.org/software/social
//
// GNU social 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.
//
// GNU social 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 GNU social.  If not, see <http://www.gnu.org/licenses/>.

/**
 * Redis interface for GNU social queues
 *
 * @package   GNUsocial
 * @author    Miguel Dantas <biodantasgs@gmail.com>
 * @copyright 2019 Free Software Foundation, Inc http://www.fsf.org
 * @license   https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
 */

defined('GNUSOCIAL') || die();

class RedisQueuePlugin extends Plugin
{
    const PLUGIN_VERSION = '0.1.0';

    // settings which can be set in config.php with addPlugin('RedisQueue', ['param'=>'value', ...]);
    public $server = null;

    public function onStartNewQueueManager(?QueueManager &$qm)
    {
        $qm = new RedisQueueManager($this->server);
        return false;
    }

    public function onPluginVersion(array &$versions): bool
    {
        $versions[] = [
            'name' => 'RedisQueue',
            'version' => self::PLUGIN_VERSION,
            'author' => 'Miguel Dantas',
            'homepage'    => GNUSOCIAL_ENGINE_URL,
            'description' =>
            // TRANS: Plugin description.
            _m('Plugin implementing Redis as a backend for GNU social queues')
        ];
        return true;
    }
};


code:
<?php

use Predis\Client;

class RedisQueueManager extends QueueManager
{
    protected $queue;
    protected $client = null;
    protected $server;

    public function __construct(string $server)
    {
        parent::__construct();
        $this->server = $server;
        $this->queue = 'gnusocial:' . common_config('site', 'name');
    }

    private function _ensureConn()
    {
        if ($this->client === null) {
            $this->client = new Client($this->server);
        }
    }

    public function pollInterval()
    {
        return 10;
    }

    public function enqueue($object, $queue)
    {
        $this->_ensureConn();
        $ret = $this->client->rpush($this->queue, $this->encode([$queue, $object]));
        if (empty($ret)) {
            common_log(LOG_ERR, "Unable to insert object into Redis queue {$queue}");
        } else {
            common_debug("The Redis queue for {$queue} has length {$ret}");
        }
    }

    public function poll()
    {
        try {
            $this->_ensureConn();
            $ret = $this->client->lpop($this->queue);
            if (!empty($ret)) {
                list($queue, $object) = $this->decode($ret);
            } else {
                return false;
            }
        } catch (Exception $e) {
            $this->_log(LOG_INFO, "[Queue {$queue}] Discarding: " . _ve($e->getMessage()));
            return false;
        }

        try {
            $handler = $this->getHandler($queue);
            $handler->handle($object);
            common_debug("Redis Queue handled item from {$queue} queue");
            return true;
        } catch (Exception $e) {
            $this->_log(LOG_ERR, "[Queue: {$queue}] `" . get_class($e) . '` thrown: ' . _ve($e->getMessage()));
            return false;
        }
    }
};


code:
The RegisterThrottle plugin throttles registration by IP address

Installation
============
This plugin is enabled by default on public instances, otherwise it can be
enabled by adding "addPlugin('RegisterThrottle');" to the bottom of your
config.php

Settings
========
regLimits: Array of time spans in seconds to limits. Default is 3 registrations per hour, 5 per day, 10 per week.
silenced: Disallow registration if a silenced user has registered from this IP address

Example
=======
addPlugin('RegisterThrottle', array(
    'regLimits' => array(
                        604800 => 10, // per week
                        86400 => 5,   // per day
                        3600 => 3     // per hour
                    ),
    'silenced' => true
));

path: plugins/RegisterThrottle/README


code:
<?php
/**
 * StatusNet - the distributed open-source microblogging tool
 * Copyright (C) 2010, StatusNet, Inc.
 *
 * Throttle registration by IP address
 *
 * 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  Spam
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2010 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 * @link      http://status.net/
 */

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

/**
 * Throttle registration by IP address
 *
 * We a) record IP address of registrants and b) throttle registrations.
 *
 * @category  Spam
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2010 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 * @link      http://status.net/
 */

class RegisterThrottlePlugin extends Plugin
{
    const PLUGIN_VERSION = '2.0.0';

    /**
     * Array of time spans in seconds to limits.
     *
     * Default is 3 registrations per hour, 5 per day, 10 per week.
     */
    public $regLimits = array(604800 => 10, // per week
                              86400 => 5, // per day
                              3600 => 3); // per hour

    /**
     * Disallow registration if a silenced user has registered from
     * this IP address.
     */
    public $silenced = true;

    /**
     * Auto-silence all other users from the same registration_ip
     * as the one being silenced. Caution: Many users may come from
     * the same IP (even entire countries) without having any sort
     * of relevant connection for moderation.
     */
    public $auto_silence_by_ip = false;

    /**
     * Whether we're enabled; prevents recursion.
     */
    static private $enabled = true;

    /**
     * Database schema setup
     *
     * We store user registrations in a table registration_ip.
     *
     * @return boolean hook value; true means continue processing, false means stop.
     */
    public function onCheckSchema()
    {
        $schema = Schema::get();

        // For storing user-submitted flags on profiles
        $schema->ensureTable('registration_ip', Registration_ip::schemaDef());
        return true;
    }

    public function onRouterInitialized(URLMapper $m)
    {
        $m->connect('main/ipregistrations/:ipaddress',
                    ['action' => 'ipregistrations'],
                    ['ipaddress'   => '[0-9a-f\.\:]+']);
    }

    /**
     * Called when someone tries to register.
     *
     * We check the IP here to determine if it goes over any of our
     * configured limits.
     *
     * @param Action $action Action that is being executed
     *
     * @return boolean hook value
     */
    public function onStartRegistrationTry($action)
    {
        $ipaddress = $this->_getIpAddress();

        if (empty($ipaddress)) {
            // TRANS: Server exception thrown when no IP address can be found for a registation attempt.
            throw new ServerException(_m('Cannot find IP address.'));
        }

        foreach ($this->regLimits as $seconds => $limit) {

            $this->debug("Checking $seconds ($limit)");

            $reg = $this->_getNthReg($ipaddress, $limit);

            if (!empty($reg)) {
                $this->debug("Got a {$limit}th registration.");
                $regtime = strtotime($reg->created);
                $now     = time();
                $this->debug("Comparing {$regtime} to {$now}");
                if ($now - $regtime < $seconds) {
                    // TRANS: Exception thrown when too many user have registered from one IP address within a given time frame.
                    throw new Exception(_m('Too many registrations. Take a break and try again later.'));
                }
            }
        }

        // Check for silenced users

        if ($this->silenced) {
            $ids = Registration_ip::usersByIP($ipaddress);
            foreach ($ids as $id) {
                $profile = Profile::getKV('id', $id);
                if ($profile && $profile->isSilenced()) {
                    // TRANS: Exception thrown when attempting to register from an IP address from which silenced users have registered.
                    throw new Exception(_m('A banned user has registered from this address.'));
                }
            }
        }

        return true;
    }

    function onEndShowSections(Action $action)
    {
        if (!$action instanceof ShowstreamAction) {
            // early return for actions we're not interested in
            return true;
        }

        $target = $action->getTarget();
        if (!$target->isSilenced()) {
            // Only show the IP of users who are not silenced.
            return true;
        }

        $scoped = $action->getScoped();
        if (!$scoped->hasRight(Right::SILENCEUSER)) {
            // only show registration IP if we have the right to silence users
            return true;
        }

        $ri = Registration_ip::getKV('user_id', $target->getID());
        $ipaddress = null;
        if ($ri instanceof Registration_ip) {
            $ipaddress = $ri->ipaddress;
            unset($ri);
        }

        $action->elementStart('div', array('id' => 'entity_mod_log',
                                           'class' => 'section'));

        $action->element('h2', null, _('Registration IP'));

        // TRANS: Label for the information about which IP a users registered from.
        $action->element('strong', null, _('Registered from:'));
        $el = 'span';
        $attrs = ['class'=>'ipaddress'];
        if (!is_null($ipaddress)) {
            $el = 'a';
            $attrs['href'] = common_local_url('ipregistrations', array('ipaddress'=>$ipaddress));
        }
        $action->element($el, $attrs,
                            // TRANS: Unknown IP address.
                            $ipaddress ?: _('unknown'));

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

    /**
     * Called after someone registers, by any means.
     *
     * We record the successful registration and IP address.
     *
     * @param Profile $profile new user's profile
     *
     * @return boolean hook value
     */
    public function onEndUserRegister(Profile $profile)
    {
        $ipaddress = $this->_getIpAddress();

        if (empty($ipaddress)) {
            // User registration can happen from command-line scripts etc.
            return true;
        }

        $reg = new Registration_ip();

        $reg->user_id   = $profile->getID();
        $reg->ipaddress = mb_strtolower($ipaddress);
        $reg->created   = common_sql_now();

        $result = $reg->insert();

        if ($result === false) {
            common_log_db_error($reg, 'INSERT', __FILE__);
            // @todo throw an exception?
        }

        return true;
    }

    /**
     * Check the version of the plugin.
     *
     * @param array &$versions Version array.
     *
     * @return boolean hook value
     */
    public function onPluginVersion(array &$versions): bool
    {
        $versions[] = array('name' => 'RegisterThrottle',
                            'version' => self::PLUGIN_VERSION,
                            'author' => 'Evan Prodromou',
                            'homepage' => GNUSOCIAL_ENGINE_REPO_URL . 'tree/master/plugins/RegisterThrottle',
                            'description' =>
                            // TRANS: Plugin description.
                            _m('Throttles excessive registration from a single IP address.'));
        return true;
    }

    /**
     * Gets the current IP address.
     *
     * @return string IP address or null if not found.
     */
    private function _getIpAddress()
    {
        $keys = array('HTTP_X_FORWARDED_FOR',
                      'HTTP_X_CLIENT',
                      'CLIENT-IP',
                      'REMOTE_ADDR');

        foreach ($keys as $k) {
            if (!empty($_SERVER[$k])) {
                return $_SERVER[$k];
            }
        }

        return null;
    }

    /**
     * Gets the Nth registration with the given IP address.
     *
     * @param string  $ipaddress Address to key on
     * @param integer $n         Nth address
     *
     * @return Registration_ip nth registration or null if not found.
     */
    private function _getNthReg($ipaddress, $n)
    {
        $reg = new Registration_ip();

        $reg->ipaddress = $ipaddress;

        $reg->orderBy('created DESC');
        $reg->limit($n - 1, 1);

        if ($reg->find(true)) {
            return $reg;
        } else {
            return null;
        }
    }

    /**
     * When silencing a user, silence all other users registered from that IP
     * address.
     *
     * @param Profile $profile Person getting a new role
     * @param string  $role    Role being assigned like 'moderator' or 'silenced'
     *
     * @return boolean hook value
     */
    public function onEndGrantRole($profile, $role)
    {
        if (!self::$enabled) {
            return true;
        }

        if ($role !== Profile_role::SILENCED) {
            return true;
        }

        if (!$this->auto_silence_by_ip) {
            return true;
        }

        $ri = Registration_ip::getKV('user_id', $profile->getID());

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

        $ids = Registration_ip::usersByIP($ri->ipaddress);

        foreach ($ids as $id) {
            if ($id == $profile->getID()) {
                continue;
            }

            try {
                $other = Profile::getByID($id);
            } catch (NoResultException $e) {
                continue;
            }

            if ($other->isSilenced()) {
                continue;
            }

            // 'enabled' here is used to prevent recursion, since
            // we'll end up in this function again on ->silence()
            // though I actually think it doesn't matter since we
            // do this in onEndGrantRole and that means the above
            // $other->isSilenced() test should've 'continue'd...
            $old = self::$enabled;
            self::$enabled = false;
            $other->silence();
            self::$enabled = $old;
        }
    }
}


code:
<?php

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

class IpregistrationsAction extends ManagedAction
{
    protected $needLogin = true;

    protected $ipaddress = null;

    function title()
    {
        return sprintf(_('Registrations from IP %s'), $this->ipaddress);
    }

    protected function doPreparation()
    {
        if (!$this->scoped->hasRight(Right::SILENCEUSER) && !$this->scoped->hasRole(Profile_role::ADMINISTRATOR)) {
            throw new AuthorizationException(_('You are not authorized to view this page.'));
        }

        $this->ipaddress    = $this->trimmed('ipaddress');
        $this->profile_ids  = Registration_ip::usersByIP($this->ipaddress);
    }

    public function showContent()
    {
        $this->elementStart('ul');
        $profile = Profile::multiGet('id', $this->profile_ids);
        while ($profile->fetch()) {
            $this->elementStart('li');
            try {
                $this->element('a', ['href'=>$profile->getUrl()], $profile->getFancyName());
            } catch (InvalidUrlException $e) {
                $this->element('span', null, $profile->getFancyName());
            }
            $this->elementEnd('li');
        }
        $this->elementEnd('ul');
    }
}


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

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

/**
 * Data class for storing IP addresses of new registrants.
 *
 * @category Spam
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @license  http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
 * @link     http://status.net/
 */
class Registration_ip extends Managed_DataObject
{
    public $__table = 'registration_ip';     // table name
    public $user_id;                         // int(4)  primary_key not_null
    public $ipaddress;                       // varchar(45)
    public $created;                         // datetime()   not_null
    public $modified;                        // timestamp()   not_null default_CURRENT_TIMESTAMP

    public static function schemaDef()
    {
        return array(
            'fields' => array(
                'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user id this registration relates to'),
                'ipaddress' => array('type' => 'varchar', 'length' => 45, 'description' => 'IP address, max 45+null in IPv6'),
                'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'),
                'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'),
            ),
            'primary key' => array('user_id'),
            'foreign keys' => array(
                'registration_ip_user_id_fkey' => array('user', array('user_id' => 'id')),
            ),
            'indexes' => array(
                'registration_ip_ipaddress_idx' => array('ipaddress'),
                'registration_ip_created_idx' => array('created'),
            ),
        );
    }

    /**
     * Get the users who've registered with this ip address.
     *
     * @param Array $ipaddress IP address to check for
     *
     * @return Array IDs of users who registered with this address.
     */
    static function usersByIP($ipaddress)
    {
        $ids = array();

        $ri            = new Registration_ip();
        $ri->ipaddress = $ipaddress;

        if ($ri->find()) {
            while ($ri->fetch()) {
                $ids[] = $ri->user_id;
            }
        }

        return $ids;
    }
}


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

#. TRANS: Server exception thrown when no IP address can be found for a registation attempt.
#: RegisterThrottlePlugin.php:117
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP address within a given time frame.
#: RegisterThrottlePlugin.php:133
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from which silenced users have registered.
#: RegisterThrottlePlugin.php:146
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:249
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr "No es pot trobar l'adreça IP."

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr "Massa registreu. Prengueu un respir i torneu-ho a provar més endavant."

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr "Kann IP-Adresse nicht finden."

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr "Zu viele Registrierungen. Mach eine Pause and versuche es später noch einmal."

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr "Ein gesperrter Benutzer hat sich von dieser Adresse registriert."

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr "Drosselt exzessive Registrierungen einer einzelnen IP-Adresse."


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr "Cannot find IP address."

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr "Too many registrations. Take a break and try again later."

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr "A banned user has registered from this address."

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr "Throttles excessive registration from a single IP address."


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr "No se encontra la dirección IP."

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr "Demasiados registros. Tómate un descanso y prueba de nuevo más tarde."

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr "Un usuario bloqueado se registró desde esta dirección."

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr "Regula el registro excesivo de cuentas desde una misma dirección IP."


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr "Impossible de trouver l’adresse IP."

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr "Inscriptions trop nombreuses. Faites une pause et essayez à nouveau plus tard."

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr "Un utilisateur banni s’est inscrit depuis cette adresse."

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr "Évite les inscriptions excessives depuis une même adresse IP."


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr "Non se pode atopar o enderezo IP."

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr "Demasiados rexistros. Faga unha pausa e inténteo máis tarde."

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr "Un usuario bloqueado rexistrouse desde este enderezo."

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr "Evita a exceciva creación de contas desde un mesmo enderezo IP."


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr "Non pote trovar adresse IP."

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr "Troppo de registrationes. Face un pausa e reproba plus tarde."

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr "Un usator bannite se ha registrate ab iste adresse."

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr "Inhibi le creation de contos excessive ab un sol adresse IP."


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr "Ne trovebla IP-adreso."

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr "Tro multa registragi. Vartez e lore probez itere."

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr "Interdiktita uzanto registragis per ica adreso."

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""


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

#. TRANS: Server exception thrown when no IP address can be found for a
#. registation attempt.
#: RegisterThrottlePlugin.php:100
msgid "Cannot find IP address."
msgstr ""

#. TRANS: Exception thrown when too many user have registered from one IP
#. address within a given time frame.
#: RegisterThrottlePlugin.php:116
msgid "Too many registrations. Take a break and try again later."
msgstr ""

#. TRANS: Exception thrown when attempting to register from an IP address from
#. which silenced users have registered.
#: RegisterThrottlePlugin.php:129
msgid "A banned user has registered from this address."
msgstr ""

#. TRANS: Plugin description.
#: RegisterThrottlePlugin.php:186
msgid "Throttles excessive registration from a single IP address."
msgstr ""