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 14:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Malayalam (http://www.transifex.com/gnu-social/gnu-social/language/ml/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ml\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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 14:41+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Malay (http://www.transifex.com/gnu-social/gnu-social/language/ms/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ms\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr "Mengambil avatar dan maklumat profil yang lain untuk pengguna WikiHow apabila membuka akaun melalui OpenID."

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr "URL avatar %s tidak sah."

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
msgstr "Avatar tidak dapat diambil dari %s."

license: mit


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 14:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Burmese (http://www.transifex.com/gnu-social/gnu-social/language/my/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: my\n"
"Plural-Forms: nplurals=1; plural=0;\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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:
# abjectio, 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-08 00:11+0000\n"
"Last-Translator: abjectio\n"
"Language-Team: Norwegian Bokmål (http://www.transifex.com/gnu-social/gnu-social/language/nb/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: nb\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr "Henter bruker bilde og annet profil informasjon for WikiHow brukere, i det man setter opp en OpenID konto."

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr "En feil oppstod ved henting av WikiHow profil side."

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr "En feil oppstod ved (HTML parse) ved henting av WikiHow avatar."

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr "Ugyldig avatar URL %s."

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
msgstr "Ikke mulig å hente avatar fra %s"


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 14:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Nepali (http://www.transifex.com/gnu-social/gnu-social/language/ne/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ne\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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 14:34+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Dutch (http://www.transifex.com/gnu-social/gnu-social/language/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr "Haalt avatar- en andere gegevens op voor WikiHow-gebruikers die een gebruiker aanmaken via OpenID."

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr "Het ophalen van de profielpagina van WikiHow is mislukt."

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr "Het verwerken van de HTML is mislukt tijdens het controleren op de WikiHow-avatar."

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr "Ongeldige avatar-URL %s."

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
msgstr "Het was niet mogelijk om de avatar op te halen van %s."


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 14:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Nynorsk (http://www.transifex.com/gnu-social/gnu-social/language/nn/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: nn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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 14:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Polish (http://www.transifex.com/gnu-social/gnu-social/language/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pl\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr "Nieprawidłowy adres URL awataru %s ."

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
msgstr "Nie udało się pobrać awatara z  %s ."


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 14:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Portuguese (http://www.transifex.com/gnu-social/gnu-social/language/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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:
# no and no <nicolasmaia@tutanota.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-04-15 14:52+0000\n"
"Last-Translator: no and no <nicolasmaia@tutanota.com>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/gnu-social/gnu-social/language/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr "Obtém o avatar e outras informações de perfil para usuários do WikiHow quando criando uma conta através do OpenID."

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr "Não foi possível obter a página de perfil do WikiHow."

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr "Falha ao analisar HTML durante a verificação do avatar WikiHow."

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr "URL de avatar %s inválida."

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
msgstr "Não foi possível obter o avatar de %s."


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 14:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Romanian (Romania) (http://www.transifex.com/gnu-social/gnu-social/language/ro_RO/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ro_RO\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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 14:41+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Russian (http://www.transifex.com/gnu-social/gnu-social/language/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ru\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: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr "Запрашивает аватару и прочую информацию из профиля пользователя WikiHow при создании учётной записи с помощью OpenID."

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr "Неверный URL-адрес аватары %s"

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
msgstr "Не удаётся получить аватару из %s."


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 14:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Slovenian (http://www.transifex.com/gnu-social/gnu-social/language/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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 14:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Serbian (http://www.transifex.com/gnu-social/gnu-social/language/sr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sr\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.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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:
# Kristoffer Grundström <kristoffer.grundstrom1983@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-05-05 17:33+0000\n"
"Last-Translator: Kristoffer Grundström <kristoffer.grundstrom1983@gmail.com>\n"
"Language-Team: Swedish (http://www.transifex.com/gnu-social/gnu-social/language/sv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr "Hämtar avataren och annan profilinformation för WikiHow's användare vid öppnande av ett konto via OpenID."

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr "Hämtning av WikiHow's profilsida misslyckades."

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr "Feltolkning av HTML under kontrollen för WikiHow's avatar."

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr "Ogiltig URL för avataren %s."

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
msgstr "Kunde inte hämta in avataren från %s."


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 14:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Tamil (http://www.transifex.com/gnu-social/gnu-social/language/ta/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ta\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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 14:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Telugu (http://www.transifex.com/gnu-social/gnu-social/language/te/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: te\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#. TRANS: Plugin description.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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 14:34+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.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr "Dumarampot ng abatar at ibang kabatiran ng balangkas para sa mga tagagamit ng WikiHow kapag nagtatalaga ng isang akawnt sa pamamagitan ng OpenID."

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr "Nabigo ang pagsalok sa pahina ng balangkas ng WikiHow."

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr "Kabiguan ng parse ng HTML habang sinusuri para sa abatar ng WikiHow."

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr "Hindi tanggap na URL ng abatar ang %s."

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
msgstr "Hindi nagawang damputin ang huwaran mula sa %s."


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:
# Uğur KUYU <ukuyu34@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-03-02 10:40+0000\n"
"Last-Translator: Uğur KUYU <ukuyu34@gmail.com>\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.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr "OpenID aracılığıyla hesap oluşturan WikiHow kullanıcıları için kullanıcı resimlerini ve diğer profil bilgilerini alır."

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr "WikiHow profil sayfası alımı başarısız oldu"

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr "WikiHow avatarı onayı sırasında HTML ayrıştırma hatası"

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr "Geçersiz kullanıcı resmi bağlantısı %s."

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
msgstr "%s'ten kullanıcı resmi alınamıyor."


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:
# Петро Романчук <ixer@ixer.org.ua>, 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-31 11:12+0000\n"
"Last-Translator: Петро Романчук <ixer@ixer.org.ua>\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.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr "Запитує аватар та іншу супутню інформацію з WikiHow для користувачів, котрі створюють акаунти через OpenID."

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr "Не вдалось отримати інформацію зі сторінки профілю WikiHow."

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr "Помилка обробки HTML  під час перевірки аватару з WikiHow."

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr "Невірна URL-адреса аватари %s."

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
msgstr "Неможливо завантажити аватару з %s."


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 14:19+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.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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 14:19+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.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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 14:19+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.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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 14:19+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.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
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 14:19+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.
#: WikiHowProfilePlugin.php:60
msgid ""
"Fetches avatar and other profile information for WikiHow users when setting "
"up an account via OpenID."
msgstr ""

#. TRANS: Exception thrown when fetching a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:126
msgid "WikiHow profile page fetch failed."
msgstr ""

#. TRANS: Exception thrown when parsing a WikiHow profile page fails.
#: WikiHowProfilePlugin.php:143
msgid "HTML parse failure during check for WikiHow avatar."
msgstr ""

#. TRANS: Server exception thrown when an avatar URL is invalid.
#. TRANS: %s is the invalid avatar URL.
#: WikiHowProfilePlugin.php:176
#, php-format
msgid "Invalid avatar URL %s."
msgstr ""

#. TRANS: Exception thrown when fetching an avatar from a URL fails.
#. TRANS: %s is a URL.
#: WikiHowProfilePlugin.php:186
#, php-format
msgid "Unable to fetch avatar from %s."
msgstr ""


code:
XMPP (eXtended Message and Presence Protocol, <http://xmpp.org/>) is the
federating instant-messaging protocol of the future. It is wildly used
all over the world by organisations, private individuals and everyone.

GNU social allows you to receive and distribute messages via XMPP using
this plugin. To get it running, you must also use an active XMPP account.

Installation
============
Add an addPlugin call to your config.php with your settings. Please read
the "Pre-requisites" section of what is required for this to work.

Example
-------
The example account "update@site.example" is hosted on a machine which
can be reached at the hostname "xmpp.site.example".

addPlugin('Xmpp', array(
    'user'      => 'update',
    'server'    => 'site.example',
    'host'      => 'xmpp.site.example',
    'password'  => '...',
));

Pre-requisites
==============

0. You may want to strongly consider setting up your own XMPP server.
   We highly recommend the XMPP server "Prosody" <https://prosody.im/>
   because it is actively developed and highly secure and efficient. It
   is of course also free software under the MIT license. The following
   three pages will help you get it running, even self-hosted at home:

      0.1 https://prosody.im/doc/dns
      0.2 https://prosody.im/doc/install
      0.3 https://prosody.im/doc/configure

1. You must register an XMPP user ID (JID) which is used to send and
   receive messages. Call it something like "update@site.example" or
   similar to hint at what the account is made for. You may register
   the account on any public server (jabber.org, jit.si, etc...) if
   you cannot run one yourself.

   GNU social will not register anything for you, this must be done
   manually, preferrably using an XMPP client like Swift, Empathy,
   Jitsi or maybe even the commandline on your own server. With
   prosody, that'd be (perhaps prepended with 'sudo'):

      prosodyctl adduser update@site.example

2. Configure your site's XMPP variables, as described below in the
   Settings section below.

3. Learn to use the GNU social daemons for processing notice queues,
   background checks and other processes which would be too slow to
   perform on an active site. Using XMPP requires the "imdaemon" to
   run, since a long-running XMPP connection is somewhat necessary.

A design goal of GNU Social is that the basic Web functionality should
work on even the most restrictive commercial hosting services.
However, additional functionality, such as receiving messages by XMPP,
require that you be able to run long-running processes on your account.

Settings
========

Required
--------
user        User part of the jid (like 'update')
server      Host part of the jid (like 'site.example')
password    The account's password. (your secret string)

Optional
--------
resource    JID resource. Default: 'gnusocial'
encryption  TLS server? Default: true
host        Hostname for XMPP server? Default: same as server
port        XMPP server port. Default: 5222
debug       Log extra debug info. Default: false
public      JIDs that should get the public feed (see "Public feed").

Since we do not currently support DNS SRV record lookup, please note
that you may have to enter an alternative 'host' parameter. This is
the case when update@site.example is not handled by the direct _address_
"site.example" but rather something like "xmpp.site.example".

Public feed
===========

You can send *all* messages from your social networking site to a
third-party service using XMPP. This can be useful for providing
search, indexing, bridging, or other cool services. Maybe a text
display next to your coffee machine at work.

To configure a downstream site to receive your public stream, add
their "JID" (Jabber ID) in the "public" array in your addPlugin call.
For example

addPlugin(array(
    [...]
    'public' => array('awesomebot@site.example'),

As the Pre-requisites section says, please only try to configure this
with daemons running properly in the background.

path: plugins/Xmpp/README


code:
<?php
/**
 * StatusNet - the distributed open-source microblogging tool
 * Copyright (C) 2009, StatusNet, Inc.
 *
 * Send and receive notices using the XMPP network
 *
 * PHP version 7
 *
 * 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  IM
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2009 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 * @link      http://status.net/
 */

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

/**
 * Plugin for XMPP
 *
 * @category  Plugin
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2009 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 * @link      http://status.net/
 */
class XmppPlugin extends ImPlugin
{
    const PLUGIN_VERSION = '2.0.0';

    public $server = null;
    public $port = 5222;
    public $user = 'update';
    public $resource = 'gnusocial';
    public $encryption = true;
    public $password = null;
    public $host = null;  // only set if != server
    public $debug = false; // print extra debug info

    public $transport = 'xmpp';

    function getDisplayName()
    {
        // TRANS: Plugin display name.
        return _m('XMPP/Jabber');
    }

    function daemonScreenname()
    {
        $ret = $this->user . '@' . $this->server;
        if ($this->resource) {
            return $ret . '/' . $this->resource;
        } else {
            return $ret;
        }
    }

    function validate($screenname)
    {
        return $this->validateBaseJid($screenname, common_config('email', 'check_domain'));
    }

    /**
     * Checks whether a string is a syntactically valid base Jabber ID (JID).
     * A base JID won't include a resource specifier on the end; since we
     * take it off when reading input we can't really use them reliably
     * to direct outgoing messages yet (sorry guys!)
     *
     * Note that a bare domain can be a valid JID.
     *
     * @param string $jid string to check
     * @param bool $check_domain whether we should validate that domain...
     *
     * @return     boolean whether the string is a valid JID
     */
    protected function validateBaseJid($jid, $check_domain = false)
    {
        try {
            $parts = $this->splitJid($jid);
            if ($check_domain) {
                if (!$this->checkDomain($parts['domain'])) {
                    return false;
                }
            }
            return ($parts['resource'] === null); // missing; empty ain't kosher
        } catch (Exception $e) {
            return false;
        }
    }

    /**
     * Splits a Jabber ID (JID) into node, domain, and resource portions.
     *
     * Based on validation routine submitted by:
     * @param string $jid string to check
     *
     * @return array with "node", "domain", and "resource" indices
     * @throws Exception if input is not valid
     * @license Licensed under ISC-L, which is compatible with everything else that keeps the copyright notice intact.
     *
     * @copyright 2009 Patrick Georgi <patrick@georgi-clan.de>
     */
    protected function splitJid($jid)
    {
        $chars = '';
        /* the following definitions come from stringprep, Appendix C,
           which is used in its entirety by nodeprop, Chapter 5, "Prohibited Output" */
        /* C1.1 ASCII space characters */
        $chars .= "\x{20}";
        /* C1.2 Non-ASCII space characters */
        $chars .= "\x{a0}\x{1680}\x{2000}-\x{200b}\x{202f}\x{205f}\x{3000a}";
        /* C2.1 ASCII control characters */
        $chars .= "\x{00}-\x{1f}\x{7f}";
        /* C2.2 Non-ASCII control characters */
        $chars .= "\x{80}-\x{9f}\x{6dd}\x{70f}\x{180e}\x{200c}\x{200d}\x{2028}\x{2029}\x{2060}-\x{2063}\x{206a}-\x{206f}\x{feff}\x{fff9}-\x{fffc}\x{1d173}-\x{1d17a}";
        /* C3 - Private Use */
        $chars .= "\x{e000}-\x{f8ff}\x{f0000}-\x{ffffd}\x{100000}-\x{10fffd}";
        /* C4 - Non-character code points */
        $chars .= "\x{fdd0}-\x{fdef}\x{fffe}\x{ffff}\x{1fffe}\x{1ffff}\x{2fffe}\x{2ffff}\x{3fffe}\x{3ffff}\x{4fffe}\x{4ffff}\x{5fffe}\x{5ffff}\x{6fffe}\x{6ffff}\x{7fffe}\x{7ffff}\x{8fffe}\x{8ffff}\x{9fffe}\x{9ffff}\x{afffe}\x{affff}\x{bfffe}\x{bffff}\x{cfffe}\x{cffff}\x{dfffe}\x{dffff}\x{efffe}\x{effff}\x{ffffe}\x{fffff}\x{10fffe}\x{10ffff}";
        /* C5 - Surrogate codes */
        // We can't use preg_match to check this, fix below
        // $chars .= "\x{d800}-\x{dfff}";
        /* C6 - Inappropriate for plain text */
        $chars .= "\x{fff9}-\x{fffd}";
        /* C7 - Inappropriate for canonical representation */
        $chars .= "\x{2ff0}-\x{2ffb}";
        /* C8 - Change display properties or are deprecated */
        $chars .= "\x{340}\x{341}\x{200e}\x{200f}\x{202a}-\x{202e}\x{206a}-\x{206f}";
        /* C9 - Tagging characters */
        $chars .= "\x{e0001}\x{e0020}-\x{e007f}";

        /* Nodeprep forbids some more characters */
        $nodeprepchars = $chars;
        $nodeprepchars .= "\x{22}\x{26}\x{27}\x{2f}\x{3a}\x{3c}\x{3e}\x{40}";

        $parts = explode("/", $jid, 2);
        if (count($parts) > 1) {
            $resource = $parts[1];
            // if ($resource == '') then
            // Warning: empty resource isn't legit.
            // But if we're normalizing, we may as well take it...
        } else {
            $resource = null;
        }

        $node = explode("@", $parts[0]);
        if ((count($node) > 2) || (count($node) == 0)) {
            // TRANS: Exception thrown when using too many @ signs in a Jabber ID.
            throw new Exception(_m('Invalid JID: too many @s.'));
        } else if (count($node) == 1) {
            $domain = $node[0];
            $node = null;
        } else {
            $domain = $node[1];
            $node = $node[0];
            if ($node == '') {
                // TRANS: Exception thrown when using @ sign not followed by a Jabber ID.
                throw new Exception(_m('Invalid JID: @ but no node'));
            }
        }

        if ($node !== null) {
            // Length limits per http://xmpp.org/rfcs/rfc3920.html#addressing
            if (strlen($node) > 1023) {
                // TRANS: Exception thrown when using too long a Jabber ID (>1023).
                throw new Exception(_m('Invalid JID: node too long.'));
            }
            // C5 - Surrogate codes is ensured by encoding check
            if (preg_match("/[" . $nodeprepchars . "]/u", $node) || mb_detect_encoding($node, 'UTF-8', true) != 'UTF-8') {
                // TRANS: Exception thrown when using an invalid Jabber ID.
                // TRANS: %s is the invalid Jabber ID.
                throw new Exception(sprintf(_m('Invalid JID node "%s".'), $node));
            }
        }

        if (strlen($domain) > 1023) {
            // TRANS: Exception thrown when using too long a Jabber domain (>1023).
            throw new Exception(_m('Invalid JID: domain too long.'));
        }
        if (!common_valid_domain($domain)) {
            // TRANS: Exception thrown when using an invalid Jabber domain name.
            // TRANS: %s is the invalid domain name.
            throw new Exception(sprintf(_m('Invalid JID domain name "%s".'), $domain));
        }

        if ($resource !== null) {
            if (strlen($resource) > 1023) {
                // TRANS: Exception thrown when using too long a resource (>1023).
                throw new Exception("Invalid JID: resource too long.");
            }
            if (preg_match("/[" . $chars . "]/u", $resource)) {
                // TRANS: Exception thrown when using an invalid Jabber resource.
                // TRANS: %s is the invalid resource.
                throw new Exception(sprintf(_m('Invalid JID resource "%s".'), $resource));
            }
        }

        return array('node' => is_null($node) ? null : mb_strtolower($node),
            'domain' => is_null($domain) ? null : mb_strtolower($domain),
            'resource' => $resource);
    }

    /**
     * Check if this domain's got some legit DNS record
     * @param $domain
     * @return bool
     */
    protected function checkDomain($domain)
    {
        if (checkdnsrr("_xmpp-server._tcp." . $domain, "SRV")) {
            return true;
        }
        if (checkdnsrr($domain, "ANY")) {
            return true;
        }
        return false;
    }

    /**
     * Load related modules when needed
     *
     * @param string $cls Name of the class to be loaded
     *
     * @return boolean hook value; true means continue processing, false means stop.
     */

    function onAutoload($cls)
    {
        switch ($cls) {
            case 'XMPPHP_XMPP':
                require_once __DIR__ . '/extlib/XMPPHP/XMPP.php';
                return false;
        }

        return parent::onAutoload($cls);
    }

    function onStartImDaemonIoManagers(&$classes)
    {
        parent::onStartImDaemonIoManagers($classes);
        $classes[] = new XmppManager($this); // handles pings/reconnects
        return true;
    }

    function sendMessage($screenname, $body)
    {
        $this->queuedConnection()->message($screenname, $body, 'chat');
    }

    /**
     * Build a queue-proxied XMPP interface object. Any outgoing messages
     * will be run back through us for enqueing rather than sent directly.
     *
     * @return QueuedXMPP
     * @throws Exception if server settings are invalid.
     */
    function queuedConnection()
    {
        if (!isset($this->server)) {
            // TRANS: Exception thrown when the plugin configuration is incorrect.
            throw new Exception(_m('You must specify a server in the configuration.'));
        }
        if (!isset($this->port)) {
            // TRANS: Exception thrown when the plugin configuration is incorrect.
            throw new Exception(_m('You must specify a port in the configuration.'));
        }
        if (!isset($this->user)) {
            // TRANS: Exception thrown when the plugin configuration is incorrect.
            throw new Exception(_m('You must specify a user in the configuration.'));
        }
        if (!isset($this->password)) {
            // TRANS: Exception thrown when the plugin configuration is incorrect.
            throw new Exception(_m('You must specify a password in the configuration.'));
        }

        return new QueuedXMPP($this, $this->host ?
            $this->host :
            $this->server,
            $this->port,
            $this->user,
            $this->password,
            $this->resource,
            $this->server,
            $this->debug ?
                true : false,
            $this->debug ?
                \XMPPHP\Log::LEVEL_VERBOSE : null
        );
    }

    function sendNotice($screenname, Notice $notice)
    {
        try {
            $msg = $this->formatNotice($notice);
            $entry = $this->format_entry($notice);
        } catch (Exception $e) {
            common_log(LOG_ERR, __METHOD__ . ": Discarding outgoing stanza because of exception: {$e->getMessage()}");
            return false;   // return value of sendNotice is never actually used as of now
        }
        $this->queuedConnection()->message($screenname, $msg, 'chat', null, $entry);
        return true;
    }

    /**
     * extra information for XMPP messages, as defined by Twitter
     *
     * @param Notice $notice Notice being sent
     *
     * @return string Extra information (Atom, HTML, addresses) in string format
     */
    protected function format_entry(Notice $notice)
    {
        $profile = $notice->getProfile();

        $entry = $notice->asAtomEntry(true, true);

        $xs = new XMLStringer();
        $xs->elementStart('html', array('xmlns' => 'http://jabber.org/protocol/xhtml-im'));
        $xs->elementStart('body', array('xmlns' => 'http://www.w3.org/1999/xhtml'));
        $xs->element('a', array('href' => $profile->profileurl), $profile->nickname);
        try {
            $parent = $notice->getParent();
            $orig_profile = $parent->getProfile();
            $orig_profurl = $orig_profile->getUrl();
            $xs->text(" => ");
            $xs->element('a', array('href' => $orig_profurl), $orig_profile->nickname);
            $xs->text(": ");
        } catch (NoParentNoticeException $e) {
            $xs->text(": ");
        }
        // FIXME: Why do we replace \t with ''? is it just to make it pretty? shouldn't whitespace be handled well...?
        $xs->raw(str_replace("\t", "", $notice->getRendered()));
        $xs->text(" ");
        $xs->element('a', array(
            'href' => common_local_url('conversation',
                    array('id' => $notice->conversation)) . '#notice-' . $notice->id),
            // TRANS: Link description to notice in conversation.
            // TRANS: %s is a notice ID.
            sprintf(_m('[%u]'), $notice->id));
        $xs->elementEnd('body');
        $xs->elementEnd('html');

        $html = $xs->getString();

        return $html . ' ' . $entry;
    }

    function receiveRawMessage($pl)
    {
        $from = $this->normalize($pl['from']);

        if ($pl['type'] != 'chat') {
            $this->log(LOG_WARNING, "Ignoring message of type " . $pl['type'] . " from $from: " . $pl['xml']->toString());
            return true;
        }

        if (mb_strlen($pl['body']) == 0) {
            $this->log(LOG_WARNING, "Ignoring message with empty body from $from: " . $pl['xml']->toString());
            return true;
        }

        $this->handleIncoming($from, $pl['body']);

        return true;
    }

    /**
     * Normalizes a Jabber ID for comparison, dropping the resource component if any.
     *
     * @param string $jid JID to check
     * @return string an equivalent JID in normalized (lowercase) form
     */
    function normalize($jid)
    {
        try {
            $parts = $this->splitJid($jid);
            if ($parts['node'] !== null) {
                return $parts['node'] . '@' . $parts['domain'];
            } else {
                return $parts['domain'];
            }
        } catch (Exception $e) {
            return null;
        }
    }

    /**
     * Add XMPP plugin daemon to the list of daemon to start
     *
     * @param array $daemons the list of daemons to run
     *
     * @return boolean hook return
     */
    function onGetValidDaemons(&$daemons)
    {
        if (isset($this->server) &&
            isset($this->port) &&
            isset($this->user) &&
            isset($this->password)) {

            array_push(
                $daemons,
                INSTALLDIR
                . '/scripts/imdaemon.php'
            );
        }

        return true;
    }

    /**
     * Plugin Nodeinfo information
     *
     * @param array $protocols
     * @return bool hook true
     */
    public function onNodeInfoProtocols(array &$protocols)
    {
        $protocols[] = "xmpp";
        return true;
    }

    function onPluginVersion(array &$versions)
    {
        $versions[] = array('name' => 'XMPP',
            'version' => self::PLUGIN_VERSION,
            'author' => 'Craig Andrews, Evan Prodromou',
            'homepage' => 'https://git.gnu.io/gnu/gnu-social/tree/master/plugins/XMPP',
            'rawdescription' =>
            // TRANS: Plugin description.
                _m('The XMPP plugin allows users to send and receive notices over the XMPP/Jabber network.'));
        return true;
    }

    /**
     * Checks whether a string is a syntactically valid Jabber ID (JID),
     * either with or without a resource.
     *
     * Note that a bare domain can be a valid JID.
     *
     * @param string $jid string to check
     * @param bool $check_domain whether we should validate that domain...
     *
     * @return     boolean whether the string is a valid JID
     */
    protected function validateFullJid($jid, $check_domain = false)
    {
        try {
            $parts = $this->splitJid($jid);
            if ($check_domain) {
                if (!$this->checkDomain($parts['domain'])) {
                    return false;
                }
            }
            return $parts['resource'] !== ''; // missing or present; empty ain't kosher
        } catch (Exception $e) {
            return false;
        }
    }
}


code:
<?php
/**
 * StatusNet, the distributed open-source microblogging tool
 *
 * Queue-mediated proxy class for outgoing XMPP messages.
 *
 * PHP version 7
 *
 * 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  Network
 * @package   StatusNet
 * @author    Brion Vibber <brion@status.net>
 * @copyright 2010 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link      http://status.net/
 */

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

require_once dirname(__DIR__) . '/extlib/XMPPHP/XMPP.php';

use XMPPHP\XMPP;

class QueuedXMPP extends XMPP
{
    /**
     * Reference to the XmppPlugin object we're hooked up to.
     */
    public $plugin;

    /**
     * Constructor
     *
     * @param XmppPlugin $plugin
     * @param string $host
     * @param integer $port
     * @param string $user
     * @param string $password
     * @param string $resource
     * @param string $server
     * @param boolean $printlog
     * @param string $loglevel
     */
    public function __construct($plugin, $host, $port, $user, $password, $resource, $server = null, $printlog = false, $loglevel = null)
    {
        $this->plugin = $plugin;

        parent::__construct($host, $port, $user, $password, $resource, $server, $printlog, $loglevel);

        // We use $host to connect, but $server to build JIDs if specified.
        // This seems to fix an upstream bug where $host was used to build
        // $this->basejid, never seen since it isn't actually used in the base
        // classes.
        if (!$server) {
            $server = $this->host;
        }
        $this->basejid = $this->user . '@' . $server;

        // Normally the fulljid is filled out by the server at resource binding
        // time, but we need to do it since we're not talking to a real server.
        $this->fulljid = "{$this->basejid}/{$this->resource}";
    }

    /**
     * Send a formatted message to the outgoing queue for later forwarding
     * to a real XMPP connection.
     *
     * @param string $msg
     * @param null $timeout
     */
    public function send($msg, $timeout = NULL)
    {
        @$this->plugin->enqueueOutgoingRaw($msg);
    }

    //@{

    /**
     * Stream i/o functions disabled; only do output
     * @param int $timeout
     * @param bool $persistent
     * @param bool $sendinit
     * @throws Exception
     */
    public function connect($timeout = 30, $persistent = false, $sendinit = true)
    {
        // No i18n needed. Test message.
        throw new Exception('Cannot connect to server from fake XMPP.');
    }

    public function disconnect()
    {
        // No i18n needed. Test message.
        throw new Exception('Cannot connect to server from fake XMPP.');
    }

    public function process()
    {
        // No i18n needed. Test message.
        throw new Exception('Cannot read stream from fake XMPP.');
    }

    public function processUntil($event, $timeout = -1)
    {
        // No i18n needed. Test message.
        throw new Exception('Cannot read stream from fake XMPP.');
    }

    public function read()
    {
        // No i18n needed. Test message.
        throw new Exception('Cannot read stream from fake XMPP.');
    }

    public function readyToProcess()
    {
        // No i18n needed. Test message.
        throw new Exception('Cannot read stream from fake XMPP.');
    }
    //@}
}


code:
<?php
/**
 * StatusNet - the distributed open-source microblogging tool
 * Copyright (C) 2009, StatusNet, Inc.
 *
 * Send and receive notices using the Jabber network
 *
 * PHP version 7
 *
 * 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  Jabber
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2009 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 * @link      http://status.net/
 */

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

require_once dirname(__DIR__) . '/extlib/XMPPHP/XMPP.php';

use XMPPHP\XMPP;

class SharingXMPP extends XMPP
{
    function getSocket()
    {
        return $this->socket;
    }
}


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

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

use XMPPHP\Log;

/**
 * XMPP background connection manager for XMPP-using queue handlers,
 * allowing them to send outgoing messages on the right connection.
 *
 * Input is handled during socket select loop, keepalive pings during idle.
 * Any incoming messages will be handled.
 *
 * In a multi-site queuedaemon.php run, one connection will be instantiated
 * for each site being handled by the current process that has XMPP enabled.
 */
class XmppManager extends ImManager
{
    const PING_INTERVAL = 120;
    public $conn = null;
    protected $lastping = null;
    protected $pingid = null;

    /**
     * Initialize connection to server.
     * @param $master
     * @return boolean true on success
     */
    public function start($master)
    {
        if (parent::start($master)) {
            $this->connect();
            return true;
        } else {
            return false;
        }
    }

    function connect()
    {
        if (!$this->conn || $this->conn->isDisconnected()) {
            $resource = 'queue' . posix_getpid();
            $this->conn = new SharingXMPP($this->plugin->host ?
                $this->plugin->host :
                $this->plugin->server,
                $this->plugin->port,
                $this->plugin->user,
                $this->plugin->password,
                $this->plugin->resource,
                $this->plugin->server,
                $this->plugin->debug ?
                    true : false,
                $this->plugin->debug ?
                    Log::LEVEL_VERBOSE : null
            );

            if (!$this->conn) {
                return false;
            }
            $this->conn->addEventHandler('message', 'handle_xmpp_message', $this);
            $this->conn->addEventHandler('reconnect', 'handle_xmpp_reconnect', $this);
            $this->conn->setReconnectTimeout(600);

            $this->conn->autoSubscribe();
            $this->conn->useEncryption($this->plugin->encryption);

            $this->conn->connect(true);

            $this->conn->processUntil('session_start');
            // TRANS: Presence announcement for XMPP.
            $this->send_presence(_m('Send me a message to post a notice'), 'available', null, 'available', 100);
        }
        return $this->conn;
    }

    /**
     * sends a presence stanza on the XMPP network
     *
     * @param string $status current status, free-form string
     * @param string $show structured status value
     * @param string $to recipient of presence, null for general
     * @param string $type type of status message, related to $show
     * @param int $priority priority of the presence
     *
     * @return boolean success value
     */

    function send_presence($status, $show = 'available', $to = null,
                           $type = 'available', $priority = null)
    {
        $this->connect();
        if (!$this->conn || $this->conn->isDisconnected()) {
            return false;
        }
        $this->conn->presence($status, $show, $to, $type, $priority);
        return true;
    }

    function send_raw_message($data)
    {
        $this->connect();
        if (!$this->conn || $this->conn->isDisconnected()) {
            return false;
        }
        $this->conn->send($data);
        return true;
    }

    /**
     * Message pump is triggered on socket input, so we only need an idle()
     * call often enough to trigger our outgoing pings.
     */
    function timeout()
    {
        return self::PING_INTERVAL;
    }

    /**
     * Process XMPP events that have come in over the wire.
     * @fixme may kill process on XMPP error
     * @param resource $socket
     */
    public function handleInput($socket)
    {
        // Process the queue for as long as needed
        common_log(LOG_DEBUG, "Servicing the XMPP queue.");
        $this->stats('xmpp_process');
        $this->conn->processTime(0);
    }

    /**
     * Lists the IM connection socket to allow i/o master to wake
     * when input comes in here as well as from the queue source.
     *
     * @return array of resources
     */
    public function getSockets()
    {
        $this->connect();
        if ($this->conn) {
            return array($this->conn->getSocket());
        } else {
            return array();
        }
    }

    /**
     * Idle processing for io manager's execution loop.
     * Send keepalive pings to server.
     *
     * Side effect: kills process on exception from XMPP library.
     *
     * @param int $timeout
     * @todo FIXME: non-dying error handling
     */
    public function idle($timeout = 0)
    {
        $now = time();
        if (empty($this->lastping) || $now - $this->lastping > self::PING_INTERVAL) {
            $this->send_ping();
        }
    }

    function send_ping()
    {
        $this->connect();
        if (!$this->conn || $this->conn->isDisconnected()) {
            return false;
        }
        $now = time();
        if (!isset($this->pingid)) {
            $this->pingid = 0;
        } else {
            $this->pingid++;
        }

        common_log(LOG_DEBUG, "Sending ping #{$this->pingid}");
        $this->conn->send("<iq from='{$this->plugin->daemonScreenname()}' to='{$this->plugin->server}' id='ping_{$this->pingid}' type='get'><ping xmlns='urn:xmpp:ping'/></iq>");
        $this->lastping = $now;
        return true;
    }

    function handle_xmpp_message(&$pl)
    {
        $this->plugin->enqueueIncomingRaw($pl);
        return true;
    }

    /**
     * Callback for Jabber reconnect event
     * @param $pl
     */
    function handle_xmpp_reconnect(&$pl)
    {
        common_log(LOG_NOTICE, 'XMPP reconnected');

        $this->conn->processUntil('session_start');
        // TRANS: Message for XMPP reconnect.
        $this->send_presence(_m('Send me a message to post a notice'), 'available', null, 'available', 100);
    }

    /**
     * sends a "special" presence stanza on the XMPP network
     *
     * @param string $type Type of presence
     * @param string $to JID to send presence to
     * @param string $show show value for presence
     * @param string $status status value for presence
     *
     * @return boolean success flag
     *
     * @see send_presence()
     */

    function special_presence($type, $to = null, $show = null, $status = null)
    {
        // @todo FIXME: why use this instead of send_presence()?
        $this->connect();
        if (!$this->conn || $this->conn->isDisconnected()) {
            return false;
        }

        $to = htmlspecialchars($to);
        $status = htmlspecialchars($status);

        $out = "<presence";
        if ($to) {
            $out .= " to='$to'";
        }
        if ($type) {
            $out .= " type='$type'";
        }
        if ($show == 'available' and !$status) {
            $out .= "/>";
        } else {
            $out .= ">";
            if ($show && ($show != 'available')) {
                $out .= "<show>$show</show>";
            }
            if ($status) {
                $out .= "<status>$status</status>";
            }
            $out .= "</presence>";
        }
        $this->conn->send($out);
        return true;
    }
}


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

#. TRANS: Presence announcement for XMPP.
#. TRANS: Message for XMPP reconnect.
#: lib/xmppmanager.php:90 lib/xmppmanager.php:218
msgid "Send me a message to post a notice"
msgstr ""

#. TRANS: Plugin display name.
#: XmppPlugin.php:65
msgid "XMPP/Jabber"
msgstr ""

#. TRANS: Exception thrown when using too many @ signs in a Jabber ID.
#: XmppPlugin.php:169
msgid "Invalid JID: too many @s."
msgstr ""

#. TRANS: Exception thrown when using @ sign not followed by a Jabber ID.
#: XmppPlugin.php:178
msgid "Invalid JID: @ but no node"
msgstr ""

#. TRANS: Exception thrown when using too long a Jabber ID (>1023).
#: XmppPlugin.php:186
msgid "Invalid JID: node too long."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber ID.
#. TRANS: %s is the invalid Jabber ID.
#: XmppPlugin.php:192
#, php-format
msgid "Invalid JID node \"%s\"."
msgstr ""

#. TRANS: Exception thrown when using too long a Jabber domain (>1023).
#: XmppPlugin.php:198
msgid "Invalid JID: domain too long."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber domain name.
#. TRANS: %s is the invalid domain name.
#: XmppPlugin.php:203
#, php-format
msgid "Invalid JID domain name \"%s\"."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber resource.
#. TRANS: %s is the invalid resource.
#: XmppPlugin.php:214
#, php-format
msgid "Invalid JID resource \"%s\"."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:281
msgid "You must specify a server in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:285
msgid "You must specify a port in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:289
msgid "You must specify a user in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:293
msgid "You must specify a password in the configuration."
msgstr ""

#. TRANS: Link description to notice in conversation.
#. TRANS: %s is a notice ID.
#: XmppPlugin.php:359
#, php-format
msgid "[%u]"
msgstr ""

#. TRANS: Plugin description.
#: XmppPlugin.php:451
msgid ""
"The XMPP plugin allows users to send and receive notices over the XMPP/"
"Jabber network."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-05 16:43+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: Plugin display name.
#: XmppPlugin.php:62
msgid "XMPP/Jabber"
msgstr ""

#. TRANS: Exception thrown when using too many @ signs in a Jabber ID.
#: XmppPlugin.php:123
msgid "Invalid JID: too many @s."
msgstr ""

#. TRANS: Exception thrown when using @ sign not followed by a Jabber ID.
#: XmppPlugin.php:132
msgid "Invalid JID: @ but no node"
msgstr ""

#. TRANS: Exception thrown when using too long a Jabber ID (>1023).
#: XmppPlugin.php:140
msgid "Invalid JID: node too long."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber ID.
#. TRANS: %s is the invalid Jabber ID.
#: XmppPlugin.php:145
#, php-format
msgid "Invalid JID node \"%s\"."
msgstr ""

#. TRANS: Exception thrown when using too long a Jabber domain (>1023).
#: XmppPlugin.php:151
msgid "Invalid JID: domain too long."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber domain name.
#. TRANS: %s is the invalid domain name.
#: XmppPlugin.php:156
#, php-format
msgid "Invalid JID domain name \"%s\"."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber resource.
#. TRANS: %s is the invalid resource.
#: XmppPlugin.php:167
#, php-format
msgid "Invalid JID resource \"%s\"."
msgstr ""

#. TRANS: Link description to notice in conversation.
#. TRANS: %s is a notice ID.
#: XmppPlugin.php:372
#, php-format
msgid "[%u]"
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:410
msgid "You must specify a server in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:414
msgid "You must specify a port in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:418
msgid "You must specify a user in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:422
msgid "You must specify a password in the configuration."
msgstr ""

#. TRANS: Plugin description.
#: XmppPlugin.php:473
msgid ""
"The XMPP plugin allows users to send and receive notices over the "
"XMPP/Jabber network."
msgstr ""

#. TRANS: Presence announcement for XMPP.
#. TRANS: Message for XMPP reconnect.
#: lib/xmppmanager.php:167 lib/xmppmanager.php:207
msgid "Send me a message to post a notice"
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-05 16:43+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: Plugin display name.
#: XmppPlugin.php:62
msgid "XMPP/Jabber"
msgstr ""

#. TRANS: Exception thrown when using too many @ signs in a Jabber ID.
#: XmppPlugin.php:123
msgid "Invalid JID: too many @s."
msgstr ""

#. TRANS: Exception thrown when using @ sign not followed by a Jabber ID.
#: XmppPlugin.php:132
msgid "Invalid JID: @ but no node"
msgstr ""

#. TRANS: Exception thrown when using too long a Jabber ID (>1023).
#: XmppPlugin.php:140
msgid "Invalid JID: node too long."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber ID.
#. TRANS: %s is the invalid Jabber ID.
#: XmppPlugin.php:145
#, php-format
msgid "Invalid JID node \"%s\"."
msgstr ""

#. TRANS: Exception thrown when using too long a Jabber domain (>1023).
#: XmppPlugin.php:151
msgid "Invalid JID: domain too long."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber domain name.
#. TRANS: %s is the invalid domain name.
#: XmppPlugin.php:156
#, php-format
msgid "Invalid JID domain name \"%s\"."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber resource.
#. TRANS: %s is the invalid resource.
#: XmppPlugin.php:167
#, php-format
msgid "Invalid JID resource \"%s\"."
msgstr ""

#. TRANS: Link description to notice in conversation.
#. TRANS: %s is a notice ID.
#: XmppPlugin.php:372
#, php-format
msgid "[%u]"
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:410
msgid "You must specify a server in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:414
msgid "You must specify a port in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:418
msgid "You must specify a user in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:422
msgid "You must specify a password in the configuration."
msgstr ""

#. TRANS: Plugin description.
#: XmppPlugin.php:473
msgid ""
"The XMPP plugin allows users to send and receive notices over the "
"XMPP/Jabber network."
msgstr ""

#. TRANS: Presence announcement for XMPP.
#. TRANS: Message for XMPP reconnect.
#: lib/xmppmanager.php:167 lib/xmppmanager.php:207
msgid "Send me a message to post a notice"
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-05 16:43+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: Plugin display name.
#: XmppPlugin.php:62
msgid "XMPP/Jabber"
msgstr ""

#. TRANS: Exception thrown when using too many @ signs in a Jabber ID.
#: XmppPlugin.php:123
msgid "Invalid JID: too many @s."
msgstr ""

#. TRANS: Exception thrown when using @ sign not followed by a Jabber ID.
#: XmppPlugin.php:132
msgid "Invalid JID: @ but no node"
msgstr ""

#. TRANS: Exception thrown when using too long a Jabber ID (>1023).
#: XmppPlugin.php:140
msgid "Invalid JID: node too long."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber ID.
#. TRANS: %s is the invalid Jabber ID.
#: XmppPlugin.php:145
#, php-format
msgid "Invalid JID node \"%s\"."
msgstr ""

#. TRANS: Exception thrown when using too long a Jabber domain (>1023).
#: XmppPlugin.php:151
msgid "Invalid JID: domain too long."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber domain name.
#. TRANS: %s is the invalid domain name.
#: XmppPlugin.php:156
#, php-format
msgid "Invalid JID domain name \"%s\"."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber resource.
#. TRANS: %s is the invalid resource.
#: XmppPlugin.php:167
#, php-format
msgid "Invalid JID resource \"%s\"."
msgstr ""

#. TRANS: Link description to notice in conversation.
#. TRANS: %s is a notice ID.
#: XmppPlugin.php:372
#, php-format
msgid "[%u]"
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:410
msgid "You must specify a server in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:414
msgid "You must specify a port in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:418
msgid "You must specify a user in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:422
msgid "You must specify a password in the configuration."
msgstr ""

#. TRANS: Plugin description.
#: XmppPlugin.php:473
msgid ""
"The XMPP plugin allows users to send and receive notices over the "
"XMPP/Jabber network."
msgstr ""

#. TRANS: Presence announcement for XMPP.
#. TRANS: Message for XMPP reconnect.
#: lib/xmppmanager.php:167 lib/xmppmanager.php:207
msgid "Send me a message to post a notice"
msgstr ""


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

#. TRANS: Plugin display name.
#: XmppPlugin.php:62
msgid "XMPP/Jabber"
msgstr ""

#. TRANS: Exception thrown when using too many @ signs in a Jabber ID.
#: XmppPlugin.php:123
msgid "Invalid JID: too many @s."
msgstr ""

#. TRANS: Exception thrown when using @ sign not followed by a Jabber ID.
#: XmppPlugin.php:132
msgid "Invalid JID: @ but no node"
msgstr ""

#. TRANS: Exception thrown when using too long a Jabber ID (>1023).
#: XmppPlugin.php:140
msgid "Invalid JID: node too long."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber ID.
#. TRANS: %s is the invalid Jabber ID.
#: XmppPlugin.php:145
#, php-format
msgid "Invalid JID node \"%s\"."
msgstr ""

#. TRANS: Exception thrown when using too long a Jabber domain (>1023).
#: XmppPlugin.php:151
msgid "Invalid JID: domain too long."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber domain name.
#. TRANS: %s is the invalid domain name.
#: XmppPlugin.php:156
#, php-format
msgid "Invalid JID domain name \"%s\"."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber resource.
#. TRANS: %s is the invalid resource.
#: XmppPlugin.php:167
#, php-format
msgid "Invalid JID resource \"%s\"."
msgstr ""

#. TRANS: Link description to notice in conversation.
#. TRANS: %s is a notice ID.
#: XmppPlugin.php:372
#, php-format
msgid "[%u]"
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:410
msgid "You must specify a server in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:414
msgid "You must specify a port in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:418
msgid "You must specify a user in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:422
msgid "You must specify a password in the configuration."
msgstr ""

#. TRANS: Plugin description.
#: XmppPlugin.php:473
msgid ""
"The XMPP plugin allows users to send and receive notices over the "
"XMPP/Jabber network."
msgstr ""

#. TRANS: Presence announcement for XMPP.
#. TRANS: Message for XMPP reconnect.
#: lib/xmppmanager.php:167 lib/xmppmanager.php:207
msgid "Send me a message to post a notice"
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-05 16:43+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: Plugin display name.
#: XmppPlugin.php:62
msgid "XMPP/Jabber"
msgstr ""

#. TRANS: Exception thrown when using too many @ signs in a Jabber ID.
#: XmppPlugin.php:123
msgid "Invalid JID: too many @s."
msgstr ""

#. TRANS: Exception thrown when using @ sign not followed by a Jabber ID.
#: XmppPlugin.php:132
msgid "Invalid JID: @ but no node"
msgstr ""

#. TRANS: Exception thrown when using too long a Jabber ID (>1023).
#: XmppPlugin.php:140
msgid "Invalid JID: node too long."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber ID.
#. TRANS: %s is the invalid Jabber ID.
#: XmppPlugin.php:145
#, php-format
msgid "Invalid JID node \"%s\"."
msgstr ""

#. TRANS: Exception thrown when using too long a Jabber domain (>1023).
#: XmppPlugin.php:151
msgid "Invalid JID: domain too long."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber domain name.
#. TRANS: %s is the invalid domain name.
#: XmppPlugin.php:156
#, php-format
msgid "Invalid JID domain name \"%s\"."
msgstr ""

#. TRANS: Exception thrown when using an invalid Jabber resource.
#. TRANS: %s is the invalid resource.
#: XmppPlugin.php:167
#, php-format
msgid "Invalid JID resource \"%s\"."
msgstr ""

#. TRANS: Link description to notice in conversation.
#. TRANS: %s is a notice ID.
#: XmppPlugin.php:372
#, php-format
msgid "[%u]"
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:410
msgid "You must specify a server in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:414
msgid "You must specify a port in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:418
msgid "You must specify a user in the configuration."
msgstr ""

#. TRANS: Exception thrown when the plugin configuration is incorrect.
#: XmppPlugin.php:422
msgid "You must specify a password in the configuration."
msgstr ""

#. TRANS: Plugin description.
#: XmppPlugin.php:473
msgid ""
"The XMPP plugin allows users to send and receive notices over the "
"XMPP/Jabber network."
msgstr ""

#. TRANS: Presence announcement for XMPP.
#. TRANS: Message for XMPP reconnect.
#: lib/xmppmanager.php:167 lib/xmppmanager.php:207
msgid "Send me a message to post a notice"
msgstr ""