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

#. TRANS: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""


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

#. TRANS: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""

repo_name: spookie/gnu

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

#. TRANS: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""


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

#. TRANS: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""


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

#. TRANS: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""


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

#. TRANS: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
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 10:53+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Macedonian (http://www.transifex.com/gnu-social/gnu-social/language/mk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: mk\n"
"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"

#. TRANS: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr "Мора да наведете serviceUrl."

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr "Користи %1$s - служба за скратување на URL-адреси."


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:25+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr "Menggunakan khidmat pemendekan URL %1$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 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
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 10:53+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr "Bruker URL-forkortertjenesten %1$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 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
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 10:53+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr "U moet een serviceUrl opgeven."

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr "Gebruikt de dienst %1$s om URL's korter te maken."


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
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 10:53+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr "Usa o serviço de abreviação de URLs %1$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:
# Thiago Casotti <thiago.casotti@uol.com.br>, 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-09 19:22+0000\n"
"Last-Translator: Thiago Casotti <thiago.casotti@uol.com.br>\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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr "Você deve especificar um serviço URL."

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr "Utiliza o serviço de encurtamento de URL %1$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 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
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 10:53+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr "Использование службы сокращения URL %1$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 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
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-03 10:12+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr "Du måste specificera en tjänstAdress."

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr "Använder%1$stjänst för förkortning av URL."


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
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 10:53+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr "Dapat kang tumukoy ng isang URL ng paglilingkod."

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr "Gumagamit ng %1$s na palingkuran ng pampaiksi ng URL."


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

#. TRANS: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
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:
# Петро Романчук <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 10:34+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr "Ви повинні задати serviceUrl."

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr "Використання %1$s для скорочення URL-адрес."


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr "使用 %1$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 10:25+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: Exception thrown when the SimpleUrl plugin has been configured
#. incorrectly.
#: SimpleUrlPlugin.php:42
msgid "You must specify a serviceUrl."
msgstr ""

#. TRANS: Plugin description.
#: SimpleUrlPlugin.php:58
#, php-format
msgid "Uses %1$s URL-shortener service."
msgstr ""


code:
The SiteNoticeInSidebar plugin puts the site notice in the sidebar.

Installation
============
add "addPlugin('SiteNoticeInSidebar');"
to the bottom of your config.php

Settings
========
notice: The text to use in the site notice

Example
=======
$config['site']['notice'] = 'Site notice content';
addPlugin('SiteNoticeInSidebar');

path: plugins/SiteNoticeInSidebar/README


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

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

/**
 * Put the site notice in the sidebar
 *
 * @category  General
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2011 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 * @link      http://status.net/
 */

class SiteNoticeInSidebarPlugin extends Plugin
{
    /**
     * Function comment
     *
     * @param
     *
     * @return
     */

    function onStartShowSiteNotice($action)
    {
        return false;
    }

    function onStartShowSections(Action $action)
    {
        $text = common_config('site', 'notice');
        if (!empty($text)) {
            $sns = new SiteNoticeSection($action, $text);
            $sns->show();
        }
        return true;
    }

    function onEndShowStyles($action)
    {
        $action->element('style', null, '#site_notice { width: 100% }');
        return true;
    }
}


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

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

/**
 * Site notice section
 *
 * @category  Site
 * @package   StatusNet
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2011 StatusNet, Inc.
 * @license   http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
 * @link      http://status.net/
 */

class SiteNoticeSection extends Section
{
    var $text;

    function __construct($action, $text)
    {
        parent::__construct($action);
        $this->text = $text;
    }

    function title()
    {
        return _('Site notice');
    }

    function divId()
    {
        return 'site_notice';
    }

    function showContent()
    {
        $this->out->raw($this->text);
    }
}


code:
The Sitemap plugin creates a dynamic sitemap for Bing, Yahoo! and Google

Installation
============
add "addPlugin('Sitemap');"
to the bottom of your config.php

Settings
========
googlekey: The key provided by Google
yahookey: The key provided by Yahoo!
bingkey: The key provided by Bing

Example
=======
$config['sitemap']['googlekey'] = 'GOOGLE_KEY';
$config['sitemap']['yahookey'] = 'YAHOO_KEY';
$config['sitemap']['bingkey'] = 'BING_KEY';
addPlugin('Sitemap');

path: plugins/Sitemap/README


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

/**
 * Creates a dynamic sitemap for a StatusNet site
 *
 * @package   GNUsocial
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2010 StatusNet, Inc.
 * @license   https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
 */

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

/**
 * Sitemap plugin
 *
 * @copyright 2010 StatusNet, Inc.
 * @license   https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
 */
class SitemapPlugin extends Plugin
{
    const PLUGIN_VERSION = '2.0.0';

    const USERS_PER_MAP   = 50000;
    const NOTICES_PER_MAP = 50000;

    /**
     * Add sitemap-related information at the end of robots.txt
     *
     * @param Action $action Action being run
     *
     * @return boolean hook value.
     */
    public function onEndRobotsTxt($action)
    {
        $url = common_local_url('sitemapindex');

        print "\nSitemap: $url\n";

        return true;
    }

    /**
     * Map URLs to actions
     *
     * @param URLMapper $m path-to-action mapper
     *
     * @return boolean hook value; true means continue processing, false means stop.
     */
    public function onRouterInitialized(URLMapper $m)
    {
        $m->connect(
            'sitemapindex.xml',
            ['action' => 'sitemapindex']
        );

        $m->connect(
            'notice-sitemap-:year-:month-:day-:index.xml',
            ['action' => 'noticesitemap'],
            [
                'year'  => '[0-9]{4}',
                'month' => '[01][0-9]',
                'day'   => '[0123][0-9]',
                'index' => '[1-9][0-9]*',
            ]
        );

        $m->connect(
            'user-sitemap-:year-:month-:day-:index.xml',
            ['action' => 'usersitemap'],
            [
                'year'  => '[0-9]{4}',
                'month' => '[01][0-9]',
                'day'   => '[0123][0-9]',
                'index' => '[1-9][0-9]*',
            ]
        );

        $m->connect(
            'panel/sitemap',
            ['action' => 'sitemapadminpanel']
        );

        return true;
    }

    /**
     * Meta tags for "claiming" a site
     *
     * We add extra meta tags that search engines like Yahoo! and Bing
     * require to let you claim your site.
     *
     * @param Action $action Action being executed
     *
     * @return boolean hook value.
     */
    public function onStartShowHeadElements($action)
    {
        $actionName = $action->trimmed('action');

        $singleUser = common_config('singleuser', 'enabled');

        // Different "top" pages if it's single user or not

        if (($singleUser && $actionName == 'showstream') ||
            (!$singleUser && $actionName == 'public')) {
            $keys = array('yahookey' => 'y_key',
                          'bingkey' => 'msvalidate.01'); // XXX: is this the same for all sites?

            foreach ($keys as $config => $metaname) {
                $content = common_config('sitemap', $config);

                if (!empty($content)) {
                    $action->element('meta', array('name' => $metaname,
                                                   'content' => $content));
                }
            }
        }

        return true;
    }

    /**
     * Database schema setup
     *
     * We cache some data persistently to avoid overlong queries.
     *
     * @see Sitemap_user_count
     * @see Sitemap_notice_count
     *
     * @return boolean hook value; true means continue processing, false means stop.
     */
    public function onCheckSchema()
    {
        $schema = Schema::get();

        $schema->ensureTable('sitemap_user_count', Sitemap_user_count::schemaDef());
        $schema->ensureTable('sitemap_notice_count', Sitemap_notice_count::schemaDef());
        return true;
    }

    public function onEndAdminPanelNav($menu)
    {
        if (AdminPanelAction::canAdmin('sitemap')) {
            // TRANS: Menu item title/tooltip
            $menu_title = _m('Sitemap configuration');
            // TRANS: Menu item for site administration
            $menu->out->menuItem(
                common_local_url('sitemapadminpanel'),
                _m('MENU', 'Sitemap'),
                $menu_title,
                ($action_name === 'sitemapadminpanel'),
                'nav_sitemap_admin_panel'
            );
        }
        return true;
    }

    /**
     * Provide plugin version information.
     *
     * This data is used when showing the version page.
     *
     * @param array &$versions array of version data arrays; see EVENTS.txt
     *
     * @return boolean hook value
     */
    public function onPluginVersion(array &$versions): bool
    {
        $url = GNUSOCIAL_ENGINE_REPO_URL . 'tree/master/plugins/Sitemap';

        $versions[] = array('name' => 'Sitemap',
            'version' => self::PLUGIN_VERSION,
            'author' => 'Evan Prodromou',
            'homepage' => $url,
            'rawdescription' =>
            // TRANS: Plugin description.
            _m('This plugin allows creation of sitemaps for Bing and Yahoo!.'));

        return true;
    }
}


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

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

/**
 * sitemap for users
 *
 * @category Sitemap
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link     http://status.net/
 */
class NoticesitemapAction extends SitemapAction
{
    var $notices = null;
    var $j = 0;

    function prepare(array $args = array())
    {
        parent::prepare($args);

        $y = $this->trimmed('year');

        $m = $this->trimmed('month');
        $d = $this->trimmed('day');

        $i = $this->trimmed('index');

        $y += 0;
        $m += 0;
        $d += 0;
        $i += 0;

        $this->notices = $this->getNotices($y, $m, $d, $i);
        $this->j       = 0;

        return true;
    }

    function nextUrl()
    {
        if ($this->j < count($this->notices)) {
            $n = $this->notices[$this->j];
            $this->j++;
            return array(common_local_url('shownotice', array('notice' => $n[0])),
                         common_date_w3dtf($n[1]),
                         'never',
                         null);
        } else {
            return null;
        }
    }

    function getNotices($y, $m, $d, $i)
    {
        $n = Notice::cacheGet("sitemap:notice:$y:$m:$d:$i");

        if ($n === false) {

            $notice = new Notice();

            $begindt = sprintf('%04d-%02d-%02d 00:00:00', $y, $m, $d);

            // XXX: estimates 1d == 24h, which screws up days
            // with leap seconds (1d == 24h + 1s). Thankfully they're
            // few and far between.

            $theend = strtotime($begindt) + (24 * 60 * 60);
            $enddt  = common_sql_date($theend);

            $notice->selectAdd();
            $notice->selectAdd('id, created');

            $notice->whereAdd("created >= '$begindt'");
            $notice->whereAdd("created <  '$enddt'");

            $notice->whereAdd('is_local = ' . Notice::LOCAL_PUBLIC);

            $notice->orderBy('created');

            $offset = ($i-1) * SitemapPlugin::NOTICES_PER_MAP;
            $limit  = SitemapPlugin::NOTICES_PER_MAP;

            $notice->limit($offset, $limit);

            $notice->find();

            $n = array();

            while ($notice->fetch()) {
                $n[] = array($notice->id, $notice->created);
            }

            $c = Cache::instance();

            if (!empty($c)) {
                $c->set(Cache::key("sitemap:notice:$y:$m:$d:$i"),
                        $n,
                        Cache::COMPRESSED,
                        ((time() > $theend) ? (time() + 90 * 24 * 60 * 60) : (time() + 5 * 60)));
            }
        }

        return $n;
    }
}


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

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

/**
 * superclass for sitemap actions
 *
 * @category Sitemap
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link     http://status.net/
 */
class SitemapAction extends Action
{
    /**
     * handle the action
     *
     * @param array $args unused.
     *
     * @return void
     */
    function handle()
    {
        parent::handle();

        header('Content-Type: text/xml; charset=UTF-8');
        $this->startXML();

        $this->elementStart('urlset', array('xmlns' => 'http://www.sitemaps.org/schemas/sitemap/0.9'));

        while (list($url, $lm, $cf, $p) = $this->nextUrl()) {
            $this->showUrl($url, $lm, $cf, $p);
        }

        $this->elementEnd('urlset');

        $this->endXML();
    }

    function lastModified()
    {
        $y = $this->trimmed('year');

        $m = $this->trimmed('month');
        $d = $this->trimmed('day');

        $y += 0;
        $m += 0;
        $d += 0;

        $begdate = strtotime("$y-$m-$d 00:00:00");
        $enddate = $begdate + (24 * 60 * 60);

        if ($enddate < time()) {
            return $enddate;
        } else {
            return null;
        }
    }

    function showUrl($url, $lastMod=null, $changeFreq=null, $priority=null)
    {
        $this->elementStart('url');
        $this->element('loc', null, $url);
        if (!is_null($lastMod)) {
            $this->element('lastmod', null, $lastMod);
        }
        if (!is_null($changeFreq)) {
            $this->element('changefreq', null, $changeFreq);
        }
        if (!is_null($priority)) {
            $this->element('priority', null, $priority);
        }
        $this->elementEnd('url');
    }

    function nextUrl()
    {
        return null;
    }

    function isReadOnly()
    {
        return true;
    }
}


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

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

/**
 * Administer sitemap settings
 *
 * @category Sitemap
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link     http://status.net/
 */
class SitemapadminpanelAction extends AdminPanelAction
{
    /**
     * Returns the page title
     *
     * @return string page title
     */
    function title()
    {
        // TRANS: Title for sitemap.
        return _m('Sitemap');
    }

    /**
     * Instructions for using this form.
     *
     * @return string instructions
     */
    function getInstructions()
    {
        // TRANS: Instructions for sitemap.
        return _m('Sitemap settings for this StatusNet site');
    }

    /**
     * Show the site admin panel form
     *
     * @return void
     */
    function showForm()
    {
        $form = new SitemapAdminPanelForm($this);
        $form->show();
        return;
    }

    /**
     * Save settings from the form
     *
     * @return void
     */
    function saveSettings()
    {
        static $settings = array('sitemap' => array('yahookey', 'bingkey'));

        $values = array();

        foreach ($settings as $section => $parts) {
            foreach ($parts as $setting) {
                $values[$section][$setting] = $this->trimmed($setting);
            }
        }

        // This throws an exception on validation errors
        $this->validate($values);

        // assert(all values are valid);

        $config = new Config();

        $config->query('BEGIN');

        foreach ($settings as $section => $parts) {
            foreach ($parts as $setting) {
                Config::save($section, $setting, $values[$section][$setting]);
            }
        }

        $config->query('COMMIT');

        return;
    }

    function validate(&$values)
    {
    }
}

/**
 * Form for the sitemap admin panel
 */
class SitemapAdminPanelForm extends AdminForm
{
    /**
     * ID of the form
     *
     * @return int ID of the form
     */
    function id()
    {
        return 'form_sitemap_admin_panel';
    }

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

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

    /**
     * Data elements of the form
     *
     * @return void
     */
    function formData()
    {
        $this->out->elementStart('ul', 'form_data');
        $this->li();
        $this->input('yahookey',
                     // TRANS: Field label.
                     _m('Yahoo key'),
                     // TRANS: Title for field label.
                     _m('Yahoo! Site Explorer verification key.'),
                     'sitemap');
        $this->unli();
        $this->li();
        $this->input('bingkey',
                     // TRANS: Field label.
                     _m('Bing key'),
                     // TRANS: Title for field label.
                     _m('Bing Webmaster Tools verification key.'),
                     'sitemap');
        $this->unli();
        $this->out->elementEnd('ul');
    }

    /**
     * Action elements
     *
     * @return void
     */
    function formActions()
    {
        $this->out->submit('submit',
                           // TRANS: Submit button text to save sitemap settings.
                           _m('BUTTON','Save'),
                           'submit',
                           null,
                           // TRANS: Submit button title to save sitemap settings.
                           _m('Save sitemap settings.'));
    }
}


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

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

/**
 * Show the sitemap index
 *
 * @category Sitemap
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link     http://status.net/
 */
class SitemapindexAction extends Action
{
    /**
     * handle the action
     *
     * @param array $args unused.
     *
     * @return void
     */
    function handle()
    {
        header('Content-Type: text/xml; charset=UTF-8');
        $this->startXML();

        $this->elementStart('sitemapindex', array('xmlns' => 'http://www.sitemaps.org/schemas/sitemap/0.9'));

        $this->showNoticeSitemaps();
        $this->showUserSitemaps();

        $this->elementEnd('sitemapindex');

        $this->endXML();
    }

    function showUserSitemaps()
    {
        $userCounts = Sitemap_user_count::getAll();

        foreach ($userCounts as $dt => $cnt) {
            $cnt = $cnt+0;

            if ($cnt == 0) {
                continue;
            }

            $n = (int)$cnt / (int)SitemapPlugin::USERS_PER_MAP;
            if (($cnt % SitemapPlugin::USERS_PER_MAP) != 0) {
                $n++;
            }
            for ($i = 1; $i <= $n; $i++) {
                $this->showSitemap('user', $dt, $i);
            }
        }
    }

    function showNoticeSitemaps()
    {
        $noticeCounts = Sitemap_notice_count::getAll();

        foreach ($noticeCounts as $dt => $cnt) {
            if ($cnt == 0) {
                continue;
            }
            $n = $cnt / SitemapPlugin::NOTICES_PER_MAP;
            if ($cnt % SitemapPlugin::NOTICES_PER_MAP) {
                $n++;
            }
            for ($i = 1; $i <= $n; $i++) {
                $this->showSitemap('notice', $dt, $i);
            }
        }
    }

    function showSitemap($prefix, $dt, $i)
    {
        list($y, $m, $d) = explode('-', $dt);

        $this->elementStart('sitemap');
        $this->element('loc', null, common_local_url($prefix.'sitemap',
                                                     array('year' => $y,
                                                           'month' => $m,
                                                           'day' => $d,
                                                           'index' => $i)));

        $begdate = strtotime("$y-$m-$d 00:00:00");
        $enddate = $begdate + (24 * 60 * 60);

        if ($enddate < time()) {
            $this->element('lastmod', null, date(DATE_W3C, $enddate));
        }

        $this->elementEnd('sitemap');
    }
}


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

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

/**
 * sitemap for users
 *
 * @category Sitemap
 * @package  StatusNet
 * @author   Evan Prodromou <evan@status.net>
 * @license  http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
 * @link     http://status.net/
 */
class UsersitemapAction extends SitemapAction
{
    var $users = null;
    var $j     = 0;

    function prepare(array $args = array())
    {
        parent::prepare($args);

        $y = $this->trimmed('year');

        $m = $this->trimmed('month');
        $d = $this->trimmed('day');

        $i = $this->trimmed('index');

        $y += 0;
        $m += 0;
        $d += 0;
        $i += 0;

        $this->users = $this->getUsers($y, $m, $d, $i);
        $this->j     = 0;
        return true;
    }

    function nextUrl()
    {
        if ($this->j < count($this->users)) {
            $nickname = $this->users[$this->j];
            $this->j++;
            return array(common_profile_url($nickname), null, null, '1.0');
        } else {
            return null;
        }
    }

    function getUsers($y, $m, $d, $i)
    {
        $u = User::cacheGet("sitemap:user:$y:$m:$d:$i");

        if ($u === false) {

            $user = new User();

            $begindt = sprintf('%04d-%02d-%02d 00:00:00', $y, $m, $d);

            // XXX: estimates 1d == 24h, which screws up days
            // with leap seconds (1d == 24h + 1s). Thankfully they're
            // few and far between.

            $theend = strtotime($begindt) + (24 * 60 * 60);
            $enddt  = common_sql_date($theend);

            $user->selectAdd();
            $user->selectAdd('nickname');
            $user->whereAdd("created >= '$begindt'");
            $user->whereAdd("created <  '$enddt'");

            $user->orderBy('created');

            $offset = ($i-1) * SitemapPlugin::USERS_PER_MAP;
            $limit  = SitemapPlugin::USERS_PER_MAP;

            $user->limit($offset, $limit);

            $user->find();

            while ($user->fetch()) {
                $u[] = $user->nickname;
            }

            $c = Cache::instance();

            if (!empty($c)) {
                $c->set(Cache::key("sitemap:user:$y:$m:$d:$i"),
                        $u,
                        Cache::COMPRESSED,
                        ((time() > $theend) ? (time() + 90 * 24 * 60 * 60) : (time() + 5 * 60)));
            }
        }

        return $u;
    }
}


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

/**
 * Data class for counting notice postings by date
 *
 * @category  Data
 * @package   GNUsocial
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2010, StatusNet, Inc.
 * @license   https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
 */

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

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

/**
 * Data class for counting notices by date
 *
 * We make a separate sitemap for each notice posted by date.
 * To save ourselves some (not inconsiderable) processing effort,
 * we cache this data in the sitemap_notice_count table. Each
 * row represents a day since the site has been started, with a count
 * of notices posted on that day. Since, after the end of the day,
 * this number doesn't change, it's a good candidate for persistent caching.
 *
 * @copyright 2010, StatusNet, Inc.
 * @license   https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
 *
 * @see      DB_DataObject
 */
class Sitemap_notice_count extends Managed_DataObject
{
    public $__table = 'sitemap_notice_count'; // table name

    public $notice_date;                       // date primary_key not_null
    public $notice_count;                      // int(4)
    public $created;                           // datetime()   not_null
    public $modified;                          // datetime   not_null default_0000-00-00%2000%3A00%3A00

    public static function schemaDef()
    {
        return array(
            'fields' => array(
                'notice_date' => array('type' => 'date', 'not null' => true, 'description' => 'record date'),
                'notice_count' => array('type' => 'int', 'not null' => true, 'description' => 'the notice count'),
                'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'),
                'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'),
            ),
            'primary key' => array('notice_date'),
        );
    }

    public static function getAll()
    {
        $noticeCounts = self::cacheGet('sitemap:notice:counts');

        if ($noticeCounts === false) {
            $snc = new Sitemap_notice_count();
            $snc->orderBy('notice_date DESC');

            // Fetch the first one to check up-to-date-itude

            $n = $snc->find(true);

            $today = self::today();
            $noticeCounts = array();

            if (!$n) { // No counts saved yet
                $noticeCounts = self::initializeCounts();
            } elseif ($snc->notice_date < $today) { // There are counts but not up to today
                $noticeCounts = self::fillInCounts($snc->notice_date);
            } elseif ($snc->notice_date === $today) { // Refresh today's
                $noticeCounts[$today] = self::updateToday();
            }

            // starts with second-to-last date

            while ($snc->fetch()) {
                $noticeCounts[$snc->notice_date] = $snc->notice_count;
            }

            // Cache notice counts for 4 hours.

            self::cacheSet('sitemap:notice:counts', $noticeCounts, null, time() + 4 * 60 * 60);
        }

        return $noticeCounts;
    }

    public static function initializeCounts()
    {
        $firstDate = self::getFirstDate(); // awww
        $today     = self::today();

        $counts = array();

        for ($d = $firstDate; $d <= $today; $d = self::incrementDay($d)) {
            $n = self::getCount($d);
            self::insertCount($d, $n);
            $counts[$d] = $n;
        }

        return $counts;
    }

    public static function fillInCounts($lastDate)
    {
        $today = self::today();

        $counts = array();

        $n = self::getCount($lastDate);
        self::updateCount($lastDate, $n);

        $counts[$lastDate] = $n;

        for ($d = self::incrementDay($lastDate); $d <= $today; $d = self::incrementDay($d)) {
            $n = self::getCount($d);
            self::insertCount($d, $n);
        }

        return $counts;
    }

    public static function updateToday()
    {
        $today = self::today();

        $n = self::getCount($today);
        self::updateCount($today, $n);

        return $n;
    }

    public static function getCount($d)
    {
        $notice = new Notice();
        $notice->whereAdd(
            "created BETWEEN TIMESTAMP '" . $d . " 00:00:00' AND " .
            "TIMESTAMP '" . self::incrementDay($d) . " 00:00:00'"
        );
        $notice->whereAdd('is_local = ' . Notice::LOCAL_PUBLIC);
        $n = $notice->count();

        return $n;
    }

    public static function insertCount($d, $n)
    {
        $snc = new Sitemap_notice_count();

        $snc->notice_date = DB_DataObject_Cast::date($d);

        $snc->notice_count      = $n;
        $snc->created           = common_sql_now();
        $snc->modified          = $snc->created;

        if (!$snc->insert()) {
            common_log(LOG_WARNING, "Could not save user counts for '$d'");
        }
    }

    public static function updateCount($d, $n)
    {
        $snc = Sitemap_notice_count::getKV('notice_date', DB_DataObject_Cast::date($d));

        if (empty($snc)) {
            // TRANS: Exception
            throw new Exception(_m("No such registration date: $d."));
        }

        $orig = clone($snc);

        $snc->notice_date = DB_DataObject_Cast::date($d);

        $snc->notice_count      = $n;
        $snc->created           = common_sql_now();
        $snc->modified          = $snc->created;

        if (!$snc->update($orig)) {
            common_log(LOG_WARNING, "Could not save user counts for '$d'");
        }
    }

    public static function incrementDay($d)
    {
        $dt = self::dateStrToInt($d);
        return self::dateIntToStr($dt + 24 * 60 * 60);
    }

    public static function dateStrToInt($d)
    {
        return strtotime($d.' 00:00:00');
    }

    public static function dateIntToStr($dt)
    {
        return date('Y-m-d', $dt);
    }

    public static function getFirstDate()
    {
        $n = new Notice();

        $n->selectAdd();
        $n->selectAdd('date(min(created)) as first_date');

        if ($n->find(true)) {
            return $n->first_date;
        } else {
            // Is this right?
            return self::dateIntToStr(time());
        }
    }

    public static function today()
    {
        return self::dateIntToStr(time());
    }
}


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

/**
 * Data class for counting user registrations by date
 *
 * @category  Data
 * @package   GNUsocial
 * @author    Evan Prodromou <evan@status.net>
 * @copyright 2010, StatusNet, Inc.
 * @license   https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
 */

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

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

/**
 * Data class for counting users by date
 *
 * We make a separate sitemap for each user registered by date.
 * To save ourselves some processing effort, we cache this data
 *
 * @copyright 2010, StatusNet, Inc.
 * @license   https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
 *
 * @see      DB_DataObject
 */
class Sitemap_user_count extends Managed_DataObject
{
    public $__table = 'sitemap_user_count'; // table name

    public $registration_date;               // date primary_key not_null
    public $user_count;                      // int(4)
    public $created;                         // datetime()   not_null
    public $modified;                        // datetime   not_null default_0000-00-00%2000%3A00%3A00

    public static function schemaDef()
    {
        return array(
            'fields' => array(
                'registration_date' => array('type' => 'date', 'not null' => true, 'description' => 'record date'),
                'user_count' => array('type' => 'int', 'not null' => true, 'description' => 'the user count of the recorded date'),
                'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'),
                'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'),
            ),
            'primary key' => array('registration_date'),
        );
    }

    public static function getAll()
    {
        $userCounts = self::cacheGet('sitemap:user:counts');

        if ($userCounts === false) {
            $suc = new Sitemap_user_count();
            $suc->orderBy('registration_date DESC');

            // Fetch the first one to check up-to-date-itude

            $n = $suc->find(true);

            $today = self::today();
            $userCounts = array();

            if (!$n) { // No counts saved yet
                $userCounts = self::initializeCounts();
            } elseif ($suc->registration_date < $today) { // There are counts but not up to today
                $userCounts = self::fillInCounts($suc->registration_date);
            } elseif ($suc->registration_date === $today) { // Refresh today's
                $userCounts[$today] = self::updateToday();
            }

            // starts with second-to-last date

            while ($suc->fetch()) {
                $userCounts[$suc->registration_date] = $suc->user_count;
            }

            // Cache user counts for 4 hours.

            self::cacheSet('sitemap:user:counts', $userCounts, null, time() + 4 * 60 * 60);
        }

        return $userCounts;
    }

    public static function initializeCounts()
    {
        $firstDate = self::getFirstDate(); // awww
        $today     = self::today();

        $counts = array();

        for ($d = $firstDate; $d <= $today; $d = self::incrementDay($d)) {
            $n = self::getCount($d);
            self::insertCount($d, $n);
            $counts[$d] = $n;
        }

        return $counts;
    }

    public static function fillInCounts($lastDate)
    {
        $today = self::today();

        $counts = array();

        $n = self::getCount($lastDate);
        self::updateCount($lastDate, $n);

        $counts[$lastDate] = $n;

        for ($d = self::incrementDay($lastDate); $d <= $today; $d = self::incrementDay($d)) {
            $n = self::getCount($d);
            self::insertCount($d, $n);
        }

        return $counts;
    }

    public static function updateToday()
    {
        $today = self::today();

        $n = self::getCount($today);
        self::updateCount($today, $n);

        return $n;
    }

    public static function getCount($d)
    {
        $user = new User();
        $user->whereAdd(
            "created BETWEEN TIMESTAMP '" . $d . " 00:00:00' AND " .
            "TIMESTAMP '" . self::incrementDay($d) . " 00:00:00'"
        );
        $n = $user->count();

        return $n;
    }

    public static function insertCount($d, $n)
    {
        $suc = new Sitemap_user_count();

        $suc->registration_date = DB_DataObject_Cast::date($d);
        $suc->user_count        = $n;
        $suc->created           = common_sql_now();
        $suc->modified          = $suc->created;

        if (!$suc->insert()) {
            common_log(LOG_WARNING, "Could not save user counts for '$d'");
        }
    }

    public static function updateCount($d, $n)
    {
        $suc = Sitemap_user_count::getKV('registration_date', DB_DataObject_Cast::date($d));

        if (empty($suc)) {
            // TRANS: Exception thrown when a registration date cannot be found.
            throw new Exception(_m("No such registration date: $d."));
        }

        $orig = clone($suc);

        $suc->registration_date = DB_DataObject_Cast::date($d);
        $suc->user_count        = $n;
        $suc->created           = common_sql_now();
        $suc->modified          = $suc->created;

        if (!$suc->update($orig)) {
            common_log(LOG_WARNING, "Could not save user counts for '$d'");
        }
    }

    public static function incrementDay($d)
    {
        $dt = self::dateStrToInt($d);
        return self::dateIntToStr($dt + 24 * 60 * 60);
    }

    public static function dateStrToInt($d)
    {
        return strtotime($d.' 00:00:00');
    }

    public static function dateIntToStr($dt)
    {
        return date('Y-m-d', $dt);
    }

    public static function getFirstDate()
    {
        $u = new User();
        $u->selectAdd();
        $u->selectAdd('date(min(created)) as first_date');
        if ($u->find(true)) {
            return $u->first_date;
        } else {
            // Is this right?
            return self::dateIntToStr(time());
        }
    }

    public static function today()
    {
        return self::dateIntToStr(time());
    }
}


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

#. TRANS: Menu item title/tooltip
#: SitemapPlugin.php:161
msgid "Sitemap configuration"
msgstr ""

#. TRANS: Menu item for site administration
#: SitemapPlugin.php:163
msgctxt "MENU"
msgid "Sitemap"
msgstr ""

#. TRANS: Plugin description.
#: SitemapPlugin.php:188
msgid "This plugin allows creation of sitemaps for Bing and Yahoo!."
msgstr ""

#. TRANS: Title for sitemap.
#: actions/sitemapadminpanel.php:53
msgid "Sitemap"
msgstr ""

#. TRANS: Instructions for sitemap.
#: actions/sitemapadminpanel.php:64
msgid "Sitemap settings for this StatusNet site"
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:167
msgid "Yahoo key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:169
msgid "Yahoo! Site Explorer verification key."
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:175
msgid "Bing key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:177
msgid "Bing Webmaster Tools verification key."
msgstr ""

#. TRANS: Submit button text to save sitemap settings.
#: actions/sitemapadminpanel.php:192
msgctxt "BUTTON"
msgid "Save"
msgstr ""

#. TRANS: Submit button title to save sitemap settings.
#: actions/sitemapadminpanel.php:196
msgid "Save sitemap settings."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:29+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: Title for sitemap.
#: actions/sitemapadminpanel.php:53
msgid "Sitemap"
msgstr ""

#. TRANS: Instructions for sitemap.
#: actions/sitemapadminpanel.php:64
msgid "Sitemap settings for this StatusNet site"
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:175
msgid "Yahoo key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:177
msgid "Yahoo! Site Explorer verification key."
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:183
msgid "Bing key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:185
msgid "Bing Webmaster Tools verification key."
msgstr ""

#. TRANS: Submit button text to save sitemap settings.
#: actions/sitemapadminpanel.php:200
msgctxt "BUTTON"
msgid "Save"
msgstr "Stoor"

#. TRANS: Submit button title to save sitemap settings.
#: actions/sitemapadminpanel.php:204
msgid "Save sitemap settings."
msgstr ""

#. TRANS: Menu item title/tooltip
#: SitemapPlugin.php:160
msgid "Sitemap configuration"
msgstr ""

#. TRANS: Menu item for site administration
#: SitemapPlugin.php:162
msgctxt "MENU"
msgid "Sitemap"
msgstr ""

#. TRANS: Plugin description.
#: SitemapPlugin.php:187
msgid "This plugin allows creation of sitemaps for Bing and Yahoo!."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:29+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: Title for sitemap.
#: actions/sitemapadminpanel.php:53
msgid "Sitemap"
msgstr ""

#. TRANS: Instructions for sitemap.
#: actions/sitemapadminpanel.php:64
msgid "Sitemap settings for this StatusNet site"
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:175
msgid "Yahoo key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:177
msgid "Yahoo! Site Explorer verification key."
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:183
msgid "Bing key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:185
msgid "Bing Webmaster Tools verification key."
msgstr ""

#. TRANS: Submit button text to save sitemap settings.
#: actions/sitemapadminpanel.php:200
msgctxt "BUTTON"
msgid "Save"
msgstr "احفظ"

#. TRANS: Submit button title to save sitemap settings.
#: actions/sitemapadminpanel.php:204
msgid "Save sitemap settings."
msgstr ""

#. TRANS: Menu item title/tooltip
#: SitemapPlugin.php:160
msgid "Sitemap configuration"
msgstr ""

#. TRANS: Menu item for site administration
#: SitemapPlugin.php:162
msgctxt "MENU"
msgid "Sitemap"
msgstr ""

#. TRANS: Plugin description.
#: SitemapPlugin.php:187
msgid "This plugin allows creation of sitemaps for Bing and Yahoo!."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:29+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: Title for sitemap.
#: actions/sitemapadminpanel.php:53
msgid "Sitemap"
msgstr ""

#. TRANS: Instructions for sitemap.
#: actions/sitemapadminpanel.php:64
msgid "Sitemap settings for this StatusNet site"
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:175
msgid "Yahoo key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:177
msgid "Yahoo! Site Explorer verification key."
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:183
msgid "Bing key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:185
msgid "Bing Webmaster Tools verification key."
msgstr ""

#. TRANS: Submit button text to save sitemap settings.
#: actions/sitemapadminpanel.php:200
msgctxt "BUTTON"
msgid "Save"
msgstr "أرسل"

#. TRANS: Submit button title to save sitemap settings.
#: actions/sitemapadminpanel.php:204
msgid "Save sitemap settings."
msgstr ""

#. TRANS: Menu item title/tooltip
#: SitemapPlugin.php:160
msgid "Sitemap configuration"
msgstr ""

#. TRANS: Menu item for site administration
#: SitemapPlugin.php:162
msgctxt "MENU"
msgid "Sitemap"
msgstr ""

#. TRANS: Plugin description.
#: SitemapPlugin.php:187
msgid "This plugin allows creation of sitemaps for Bing and Yahoo!."
msgstr ""


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

#. TRANS: Title for sitemap.
#: actions/sitemapadminpanel.php:53
msgid "Sitemap"
msgstr ""

#. TRANS: Instructions for sitemap.
#: actions/sitemapadminpanel.php:64
msgid "Sitemap settings for this StatusNet site"
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:175
msgid "Yahoo key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:177
msgid "Yahoo! Site Explorer verification key."
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:183
msgid "Bing key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:185
msgid "Bing Webmaster Tools verification key."
msgstr ""

#. TRANS: Submit button text to save sitemap settings.
#: actions/sitemapadminpanel.php:200
msgctxt "BUTTON"
msgid "Save"
msgstr ""

#. TRANS: Submit button title to save sitemap settings.
#: actions/sitemapadminpanel.php:204
msgid "Save sitemap settings."
msgstr ""

#. TRANS: Menu item title/tooltip
#: SitemapPlugin.php:160
msgid "Sitemap configuration"
msgstr ""

#. TRANS: Menu item for site administration
#: SitemapPlugin.php:162
msgctxt "MENU"
msgid "Sitemap"
msgstr ""

#. TRANS: Plugin description.
#: SitemapPlugin.php:187
msgid "This plugin allows creation of sitemaps for Bing and Yahoo!."
msgstr ""


code:
# Translation file for GNU social - the free software social networking platform
# Copyright (C) 2015 - 2019 Free Software Foundation, Inc http://www.fsf.org
# This file is under https://www.gnu.org/licenses/agpl v3 or later
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2015-02-07 10:29+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: Title for sitemap.
#: actions/sitemapadminpanel.php:53
msgid "Sitemap"
msgstr ""

#. TRANS: Instructions for sitemap.
#: actions/sitemapadminpanel.php:64
msgid "Sitemap settings for this StatusNet site"
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:175
msgid "Yahoo key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:177
msgid "Yahoo! Site Explorer verification key."
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:183
msgid "Bing key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:185
msgid "Bing Webmaster Tools verification key."
msgstr ""

#. TRANS: Submit button text to save sitemap settings.
#: actions/sitemapadminpanel.php:200
msgctxt "BUTTON"
msgid "Save"
msgstr "Захаваць"

#. TRANS: Submit button title to save sitemap settings.
#: actions/sitemapadminpanel.php:204
msgid "Save sitemap settings."
msgstr ""

#. TRANS: Menu item title/tooltip
#: SitemapPlugin.php:160
msgid "Sitemap configuration"
msgstr ""

#. TRANS: Menu item for site administration
#: SitemapPlugin.php:162
msgctxt "MENU"
msgid "Sitemap"
msgstr ""

#. TRANS: Plugin description.
#: SitemapPlugin.php:187
msgid "This plugin allows creation of sitemaps for Bing and Yahoo!."
msgstr ""


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

#. TRANS: Title for sitemap.
#: actions/sitemapadminpanel.php:53
msgid "Sitemap"
msgstr ""

#. TRANS: Instructions for sitemap.
#: actions/sitemapadminpanel.php:64
msgid "Sitemap settings for this StatusNet site"
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:175
msgid "Yahoo key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:177
msgid "Yahoo! Site Explorer verification key."
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:183
msgid "Bing key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:185
msgid "Bing Webmaster Tools verification key."
msgstr ""

#. TRANS: Submit button text to save sitemap settings.
#: actions/sitemapadminpanel.php:200
msgctxt "BUTTON"
msgid "Save"
msgstr "Запазване"

#. TRANS: Submit button title to save sitemap settings.
#: actions/sitemapadminpanel.php:204
msgid "Save sitemap settings."
msgstr ""

#. TRANS: Menu item title/tooltip
#: SitemapPlugin.php:160
msgid "Sitemap configuration"
msgstr ""

#. TRANS: Menu item for site administration
#: SitemapPlugin.php:162
msgctxt "MENU"
msgid "Sitemap"
msgstr ""

#. TRANS: Plugin description.
#: SitemapPlugin.php:187
msgid "This plugin allows creation of sitemaps for Bing and Yahoo!."
msgstr ""


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

#. TRANS: Title for sitemap.
#: actions/sitemapadminpanel.php:53
msgid "Sitemap"
msgstr ""

#. TRANS: Instructions for sitemap.
#: actions/sitemapadminpanel.php:64
msgid "Sitemap settings for this StatusNet site"
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:175
msgid "Yahoo key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:177
msgid "Yahoo! Site Explorer verification key."
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:183
msgid "Bing key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:185
msgid "Bing Webmaster Tools verification key."
msgstr ""

#. TRANS: Submit button text to save sitemap settings.
#: actions/sitemapadminpanel.php:200
msgctxt "BUTTON"
msgid "Save"
msgstr ""

#. TRANS: Submit button title to save sitemap settings.
#: actions/sitemapadminpanel.php:204
msgid "Save sitemap settings."
msgstr ""

#. TRANS: Menu item title/tooltip
#: SitemapPlugin.php:160
msgid "Sitemap configuration"
msgstr ""

#. TRANS: Menu item for site administration
#: SitemapPlugin.php:162
msgctxt "MENU"
msgid "Sitemap"
msgstr ""

#. TRANS: Plugin description.
#: SitemapPlugin.php:187
msgid "This plugin allows creation of sitemaps for Bing and Yahoo!."
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:33+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: Breton (http://www.transifex.com/gnu-social/gnu-social/language/br/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: br\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

#. TRANS: Title for sitemap.
#: actions/sitemapadminpanel.php:53
msgid "Sitemap"
msgstr "Tres al lec'hienn"

#. TRANS: Instructions for sitemap.
#: actions/sitemapadminpanel.php:64
msgid "Sitemap settings for this StatusNet site"
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:175
msgid "Yahoo key"
msgstr "Alc'hwez Yahoo"

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:177
msgid "Yahoo! Site Explorer verification key."
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:183
msgid "Bing key"
msgstr "Alc'hwez Bing"

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:185
msgid "Bing Webmaster Tools verification key."
msgstr ""

#. TRANS: Submit button text to save sitemap settings.
#: actions/sitemapadminpanel.php:200
msgctxt "BUTTON"
msgid "Save"
msgstr "Enrollañ"

#. TRANS: Submit button title to save sitemap settings.
#: actions/sitemapadminpanel.php:204
msgid "Save sitemap settings."
msgstr "Enrollañ arventennoù tres al lec'hienn"

#. TRANS: Menu item title/tooltip
#: SitemapPlugin.php:160
msgid "Sitemap configuration"
msgstr "Kefluniadur tres al lec'hienn"

#. TRANS: Menu item for site administration
#: SitemapPlugin.php:162
msgctxt "MENU"
msgid "Sitemap"
msgstr "Tres al lec'hienn"

#. TRANS: Plugin description.
#: SitemapPlugin.php:187
msgid "This plugin allows creation of sitemaps for Bing and Yahoo!."
msgstr "Gant an astenn-mañ e c'haller sevel tresoù lec'hiennoù evit Bing and Yahoo!."


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

#. TRANS: Title for sitemap.
#: actions/sitemapadminpanel.php:53
msgid "Sitemap"
msgstr ""

#. TRANS: Instructions for sitemap.
#: actions/sitemapadminpanel.php:64
msgid "Sitemap settings for this StatusNet site"
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:175
msgid "Yahoo key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:177
msgid "Yahoo! Site Explorer verification key."
msgstr ""

#. TRANS: Field label.
#: actions/sitemapadminpanel.php:183
msgid "Bing key"
msgstr ""

#. TRANS: Title for field label.
#: actions/sitemapadminpanel.php:185
msgid "Bing Webmaster Tools verification key."
msgstr ""

#. TRANS: Submit button text to save sitemap settings.
#: actions/sitemapadminpanel.php:200
msgctxt "BUTTON"
msgid "Save"
msgstr "Desa"

#. TRANS: Submit button title to save sitemap settings.
#: actions/sitemapadminpanel.php:204
msgid "Save sitemap settings."
msgstr ""

#. TRANS: Menu item title/tooltip
#: SitemapPlugin.php:160
msgid "Sitemap configuration"
msgstr ""

#. TRANS: Menu item for site administration
#: SitemapPlugin.php:162
msgctxt "MENU"
msgid "Sitemap"
msgstr ""

#. TRANS: Plugin description.
#: SitemapPlugin.php:187
msgid "This plugin allows creation of sitemaps for Bing and Yahoo!."
msgstr ""