Merge remote-tracking branch 'statusnet/master'

This merges GNU Social with current development of StatusNet. The only conflicts were some documentation, where GNU Social's versions were retained.

Conflicts:
	doc-src/about
	doc-src/faq
	plugins/OpenID/doc-src/openid
This commit is contained in:
Mikael Nordfeldth
2013-08-12 12:23:17 +02:00
2769 changed files with 162438 additions and 97073 deletions

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Asturian (Asturianu)
# Translation of StatusNet - APC to Asturian (asturianu)
# Exported from translatewiki.net
#
# Author: Xuacu
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:37+0000\n"
"Language-Team: Asturian <http://translatewiki.net/wiki/Portal:ast>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:37+0000\n"
"Language-Team: Asturian <https://translatewiki.net/wiki/Portal:ast>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ast\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
# Translation of StatusNet - APC to Belarusian (Taraškievica orthography) (беларуская (тарашкевіца))
# Exported from translatewiki.net
#
# Author: EugeneZelenko
@@ -9,15 +9,15 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:37+0000\n"
"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki."
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:37+0000\n"
"Language-Team: Belarusian (Taraškievica orthography) <https://translatewiki."
"net/wiki/Portal:be-tarask>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: be-tarask\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Breton (Brezhoneg)
# Translation of StatusNet - APC to Breton (brezhoneg)
# Exported from translatewiki.net
#
# Author: Fulup
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:37+0000\n"
"Language-Team: Breton <https://translatewiki.net/wiki/Portal:br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: br\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

View File

@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:37+0000\n"
"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: de\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Spanish (Español)
# Translation of StatusNet - APC to Spanish (español)
# Exported from translatewiki.net
#
# Author: Translationista
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:37+0000\n"
"Language-Team: Spanish <https://translatewiki.net/wiki/Portal:es>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: es\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -0,0 +1,27 @@
# Translation of StatusNet - APC to Basque (euskara)
# Exported from translatewiki.net
#
# Author: Artsuaga
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:37+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
msgid ""
"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache "
"to cache query results."
msgstr ""
"Erabili <a href=\"http://pecl.php.net/package/apc\">APC</a> aldagairen "
"katxea kontsultako emaitzak katxean kopiatzeko."

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to French (Français)
# Translation of StatusNet - APC to French (français)
# Exported from translatewiki.net
#
# Author: Verdy p
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:38+0000\n"
"Language-Team: French <https://translatewiki.net/wiki/Portal:fr>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: fr\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Galician (Galego)
# Translation of StatusNet - APC to Galician (galego)
# Exported from translatewiki.net
#
# Author: Toliño
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:38+0000\n"
"Language-Team: Galician <https://translatewiki.net/wiki/Portal:gl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: gl\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Hebrew <http://translatewiki.net/wiki/Portal:he>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:38+0000\n"
"Language-Team: Hebrew <https://translatewiki.net/wiki/Portal:he>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: he\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Interlingua (Interlingua)
# Translation of StatusNet - APC to Interlingua (interlingua)
# Exported from translatewiki.net
#
# Author: McDutchie
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:38+0000\n"
"Language-Team: Interlingua <https://translatewiki.net/wiki/Portal:ia>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ia\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Indonesian <http://translatewiki.net/wiki/Portal:id>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:38+0000\n"
"Language-Team: Indonesian <https://translatewiki.net/wiki/Portal:id>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: id\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=1; plural=0;\n"

View File

@@ -0,0 +1,27 @@
# Translation of StatusNet - APC to Italian (italiano)
# Exported from translatewiki.net
#
# Author: Ximo17
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:38+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
msgid ""
"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache "
"to cache query results."
msgstr ""
"Utilizzare la cache variabile <a href=\"http://pecl.php.net/package/apc"
"\">APC</a> per i risultati della query cache."

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Macedonian (Македонски)
# Translation of StatusNet - APC to Macedonian (македонски)
# Exported from translatewiki.net
#
# Author: Bjankuloski06
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:38+0000\n"
"Language-Team: Macedonian <https://translatewiki.net/wiki/Portal:mk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: mk\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n"

View File

@@ -0,0 +1,30 @@
# Translation of StatusNet - APC to Malay (Bahasa Melayu)
# Exported from translatewiki.net
#
# Author: Anakmalaysia
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:38+0000\n"
"Language-Team: Malay <https://translatewiki.net/wiki/Portal:ms>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ms\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description.
msgid ""
"Use the <a href=\"http://pecl.php.net/package/apc\">APC</a> variable cache "
"to cache query results."
msgstr ""
"Gunakan cache pembolehubah <a href=\"http://pecl.php.net/package/apc\">APC</"
"a> untuk meng-cache-kan hasil pertanyaan."

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Norwegian (bokmål) (Norsk (bokmål))
# Translation of StatusNet - APC to Norwegian Bokmål (norsk (bokmål))
# Exported from translatewiki.net
#
# Author: Nghtwlkr
@@ -9,15 +9,15 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Norwegian (bokmål) <http://translatewiki.net/wiki/Portal:no>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:38+0000\n"
"Language-Team: Norwegian Bokmål <https://translatewiki.net/wiki/Portal:nb>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-Language-Code: no\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: nb\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -2,6 +2,7 @@
# Exported from translatewiki.net
#
# Author: McDutchie
# Author: Siebrand
# --
# This file is distributed under the same license as the StatusNet package.
#
@@ -9,14 +10,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:38+0000\n"
"Language-Team: Dutch <https://translatewiki.net/wiki/Portal:nl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: nl\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -27,4 +28,4 @@ msgid ""
"to cache query results."
msgstr ""
"De variabelencache <a href=\"http://pecl.php.net/package/apc\">APC</a> "
"gebruiken op resultaten van zoekopdrachten te cachen."
"gebruiken om resultaten van zoekopdrachten te cachen."

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Polish (Polski)
# Translation of StatusNet - APC to Polish (polski)
# Exported from translatewiki.net
#
# Author: Sp5uhe
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Polish <http://translatewiki.net/wiki/Portal:pl>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:39+0000\n"
"Language-Team: Polish <https://translatewiki.net/wiki/Portal:pl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: pl\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && "

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Portuguese (Português)
# Translation of StatusNet - APC to Portuguese (português)
# Exported from translatewiki.net
#
# Author: Waldir
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:39+0000\n"
"Language-Team: Portuguese <https://translatewiki.net/wiki/Portal:pt>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: pt\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Brazilian Portuguese (Português do Brasil)
# Translation of StatusNet - APC to Brazilian Portuguese (português do Brasil)
# Exported from translatewiki.net
#
# Author: Giro720
@@ -9,15 +9,15 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Brazilian Portuguese <http://translatewiki.net/wiki/Portal:pt-"
"br>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:39+0000\n"
"Language-Team: Brazilian Portuguese <https://translatewiki.net/wiki/Portal:"
"pt-br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: pt-br\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Russian (Русский)
# Translation of StatusNet - APC to Russian (русский)
# Exported from translatewiki.net
#
# Author: Александр Сигачёв
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:39+0000\n"
"Language-Team: Russian <https://translatewiki.net/wiki/Portal:ru>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ru\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "

View File

@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:38+0000\n"
"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:39+0000\n"
"Language-Team: Tagalog <https://translatewiki.net/wiki/Portal:tl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: tl\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Ukrainian (Українська)
# Translation of StatusNet - APC to Ukrainian (українська)
# Exported from translatewiki.net
#
# Author: Boogie
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:39+0000\n"
"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:39+0000\n"
"Language-Team: Ukrainian <https://translatewiki.net/wiki/Portal:uk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: uk\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - APC to Simplified Chinese (‪中文(简体))
# Translation of StatusNet - APC to Simplified Chinese (‪中文简体)
# Exported from translatewiki.net
#
# Author: Chenxiaoqino
@@ -9,15 +9,15 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - APC\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:39+0000\n"
"Language-Team: Simplified Chinese <http://translatewiki.net/wiki/Portal:zh-"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:39+0000\n"
"Language-Team: Simplified Chinese <https://translatewiki.net/wiki/Portal:zh-"
"hans>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-13 13:56:51+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-06-18 16:18:40+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: zh-hans\n"
"X-Message-Group: #out-statusnet-plugin-apc\n"
"Plural-Forms: nplurals=1; plural=0;\n"

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:31+0000\n"
"Language-Team: Afrikaans <http://translatewiki.net/wiki/Portal:af>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:26+0000\n"
"Language-Team: Afrikaans <https://translatewiki.net/wiki/Portal:af>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-09 18:55:57+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: af\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - AccountManager to Asturian (Asturianu)
# Translation of StatusNet - AccountManager to Asturian (asturianu)
# Exported from translatewiki.net
#
# Author: Xuacu
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:31+0000\n"
"Language-Team: Asturian <http://translatewiki.net/wiki/Portal:ast>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:26+0000\n"
"Language-Team: Asturian <https://translatewiki.net/wiki/Portal:ast>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-09 18:55:57+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ast\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - AccountManager to Catalan (Català)
# Translation of StatusNet - AccountManager to Catalan (català)
# Exported from translatewiki.net
#
# Author: Toniher
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:31+0000\n"
"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:27+0000\n"
"Language-Team: Catalan <https://translatewiki.net/wiki/Portal:ca>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-09 18:55:57+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ca\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:31+0000\n"
"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:27+0000\n"
"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-09 18:55:57+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: de\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -0,0 +1,29 @@
# Translation of StatusNet - AccountManager to Spanish (español)
# Exported from translatewiki.net
#
# Author: Erchache2000
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:27+0000\n"
"Language-Team: Spanish <https://translatewiki.net/wiki/Portal:es>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: es\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
msgid ""
"The Account Manager plugin implements the Account Manager specification."
msgstr ""
"El plugin Account Manager implementa la especificación de la cuenta "
"Administrador."

View File

@@ -0,0 +1,28 @@
# Translation of StatusNet - AccountManager to Basque (euskara)
# Exported from translatewiki.net
#
# Author: Artsuaga
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:27+0000\n"
"Language-Team: Basque <https://translatewiki.net/wiki/Portal:eu>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: eu\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
msgid ""
"The Account Manager plugin implements the Account Manager specification."
msgstr ""
"Kontu Kudeatzaile pluginak Kontu Kudeatzaile zehaztapenak ezartzen ditu."

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - AccountManager to Finnish (Suomi)
# Translation of StatusNet - AccountManager to Finnish (suomi)
# Exported from translatewiki.net
#
# Author: Nike
@@ -10,14 +10,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:31+0000\n"
"Language-Team: Finnish <http://translatewiki.net/wiki/Portal:fi>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:27+0000\n"
"Language-Team: Finnish <https://translatewiki.net/wiki/Portal:fi>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-09 18:55:57+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: fi\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - AccountManager to French (Français)
# Translation of StatusNet - AccountManager to French (français)
# Exported from translatewiki.net
#
# Author: Crochet.david
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:31+0000\n"
"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:27+0000\n"
"Language-Team: French <https://translatewiki.net/wiki/Portal:fr>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-09 18:55:57+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: fr\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

View File

@@ -0,0 +1,29 @@
# Translation of StatusNet - AccountManager to Galician (galego)
# Exported from translatewiki.net
#
# Author: Toliño
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:27+0000\n"
"Language-Team: Galician <https://translatewiki.net/wiki/Portal:gl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: gl\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
msgid ""
"The Account Manager plugin implements the Account Manager specification."
msgstr ""
"O complemento de xestión de contas aplica a especificación do xestor de "
"contas."

View File

@@ -0,0 +1,27 @@
# Translation of StatusNet - AccountManager to Hebrew (עברית)
# Exported from translatewiki.net
#
# Author: Amire80
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:27+0000\n"
"Language-Team: Hebrew <https://translatewiki.net/wiki/Portal:he>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: he\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
msgid ""
"The Account Manager plugin implements the Account Manager specification."
msgstr "תוסף מנהל החשבון מיישם את מִפרט מנהל החשבון."

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - AccountManager to Interlingua (Interlingua)
# Translation of StatusNet - AccountManager to Interlingua (interlingua)
# Exported from translatewiki.net
#
# Author: McDutchie
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:31+0000\n"
"Language-Team: Interlingua <http://translatewiki.net/wiki/Portal:ia>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:27+0000\n"
"Language-Team: Interlingua <https://translatewiki.net/wiki/Portal:ia>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-09 18:55:57+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ia\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -0,0 +1,24 @@
# Translation of StatusNet - AccountManager to Italian (italiano)
# Exported from translatewiki.net
#
# Author: Ximo17
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:27+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
msgid ""
"The Account Manager plugin implements the Account Manager specification."
msgstr "Il plugin Account Manager implementa le specifiche Account Manager."

View File

@@ -0,0 +1,27 @@
# Translation of StatusNet - AccountManager to Japanese (日本語)
# Exported from translatewiki.net
#
# Author: Miwa ka
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:27+0000\n"
"Language-Team: Japanese <https://translatewiki.net/wiki/Portal:ja>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ja\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description.
msgid ""
"The Account Manager plugin implements the Account Manager specification."
msgstr "Account Manager プラグインは、アカウント管理の仕様を実装しています"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - AccountManager to Macedonian (Македонски)
# Translation of StatusNet - AccountManager to Macedonian (македонски)
# Exported from translatewiki.net
#
# Author: Bjankuloski06
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:31+0000\n"
"Language-Team: Macedonian <http://translatewiki.net/wiki/Portal:mk>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:28+0000\n"
"Language-Team: Macedonian <https://translatewiki.net/wiki/Portal:mk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-09 18:55:57+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: mk\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n"

View File

@@ -0,0 +1,27 @@
# Translation of StatusNet - AccountManager to Malay (Bahasa Melayu)
# Exported from translatewiki.net
#
# Author: Anakmalaysia
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:28+0000\n"
"Language-Team: Malay <https://translatewiki.net/wiki/Portal:ms>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ms\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description.
msgid ""
"The Account Manager plugin implements the Account Manager specification."
msgstr "Pemalam Pengurus Akaun melaksanakan spesifikasi Pengurus Akaun."

View File

@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:31+0000\n"
"Language-Team: Dutch <http://translatewiki.net/wiki/Portal:nl>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:28+0000\n"
"Language-Team: Dutch <https://translatewiki.net/wiki/Portal:nl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-09 18:55:57+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: nl\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -0,0 +1,25 @@
# Translation of StatusNet - AccountManager to Polish (polski)
# Exported from translatewiki.net
#
# Author: BeginaFelicysym
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:28+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && "
"(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"
#. TRANS: Plugin description.
msgid ""
"The Account Manager plugin implements the Account Manager specification."
msgstr "Wtyczka menedżer kont implementuje specyfikację menedżera kont."

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - AccountManager to Portuguese (Português)
# Translation of StatusNet - AccountManager to Portuguese (português)
# Exported from translatewiki.net
#
# Author: SandroHc
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:31+0000\n"
"Language-Team: Portuguese <http://translatewiki.net/wiki/Portal:pt>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:28+0000\n"
"Language-Team: Portuguese <https://translatewiki.net/wiki/Portal:pt>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-09 18:55:57+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: pt\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - AccountManager to Russian (Русский)
# Translation of StatusNet - AccountManager to Russian (русский)
# Exported from translatewiki.net
#
# Author: Александр Сигачёв
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:31+0000\n"
"Language-Team: Russian <http://translatewiki.net/wiki/Portal:ru>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:28+0000\n"
"Language-Team: Russian <https://translatewiki.net/wiki/Portal:ru>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-09 18:55:57+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ru\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "

View File

@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:31+0000\n"
"Language-Team: Tagalog <http://translatewiki.net/wiki/Portal:tl>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:28+0000\n"
"Language-Team: Tagalog <https://translatewiki.net/wiki/Portal:tl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-09 18:55:57+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: tl\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - AccountManager to Ukrainian (Українська)
# Translation of StatusNet - AccountManager to Ukrainian (українська)
# Exported from translatewiki.net
#
# Author: Boogie
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - AccountManager\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:31+0000\n"
"Language-Team: Ukrainian <http://translatewiki.net/wiki/Portal:uk>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:28+0000\n"
"Language-Team: Ukrainian <https://translatewiki.net/wiki/Portal:uk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-09 18:55:57+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-08-30 10:01:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: uk\n"
"X-Message-Group: #out-statusnet-plugin-accountmanager\n"
"Plural-Forms: nplurals=3; plural=(n%10 == 1 && n%100 != 11) ? 0 : ( (n%10 >= "

View File

@@ -0,0 +1,430 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2010, StatusNet, Inc.
*
* Shows social activities in the output feed
*
* 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 Activity
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2010 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
// This check helps protect against security problems;
// your code file can't be executed directly from the web.
exit(1);
}
/**
* Activity plugin main class
*
* @category Activity
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2010 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class ActivityPlugin extends Plugin
{
const VERSION = '0.1';
const SOURCE = 'activity';
// Flags to switch off certain activity notices
public $StartFollowUser = true;
public $StopFollowUser = false;
public $JoinGroup = true;
public $LeaveGroup = false;
public $StartLike = false;
public $StopLike = false;
function onAutoload($cls)
{
$dir = dirname(__FILE__);
switch ($cls)
{
case 'JoinListItem':
case 'LeaveListItem':
case 'FollowListItem':
case 'UnfollowListItem':
case 'SystemListItem':
include_once $dir . '/'.strtolower($cls).'.php';
return false;
default:
return true;
}
}
function onEndSubscribe($subscriber, $other)
{
// Only do this if config is enabled
if(!$this->StartFollowUser) return true;
$user = $subscriber->getUser();
if (!empty($user)) {
$sub = Subscription::pkeyGet(array('subscriber' => $subscriber->id,
'subscribed' => $other->id));
// TRANS: Text for "started following" item in activity plugin.
// TRANS: %1$s is a profile URL, %2$s is a profile name,
// TRANS: %3$s is a profile URL, %4$s is a profile name.
$rendered = sprintf(_m('<a href="%1$s">%2$s</a> started following <a href="%3$s">%4$s</a>.'),
$subscriber->profileurl,
$subscriber->getBestName(),
$other->profileurl,
$other->getBestName());
// TRANS: Text for "started following" item in activity plugin.
// TRANS: %1$s is a profile name, %2$s is a profile URL,
// TRANS: %3$s is a profile name, %4$s is a profile URL.
$content = sprintf(_m('%1$s (%2$s) started following %3$s (%4$s).'),
$subscriber->getBestName(),
$subscriber->profileurl,
$other->getBestName(),
$other->profileurl);
$notice = Notice::saveNew($user->id,
$content,
ActivityPlugin::SOURCE,
array('rendered' => $rendered,
'urls' => array(),
'replies' => array($other->getUri()),
'verb' => ActivityVerb::FOLLOW,
'object_type' => ActivityObject::PERSON,
'uri' => $sub->uri));
}
return true;
}
function onEndUnsubscribe($subscriber, $other)
{
// Only do this if config is enabled
if(!$this->StopFollowUser) return true;
$user = $subscriber->getUser();
if (!empty($user)) {
// TRANS: Text for "stopped following" item in activity plugin.
// TRANS: %1$s is a profile URL, %2$s is a profile name,
// TRANS: %3$s is a profile URL, %4$s is a profile name.
$rendered = sprintf(_m('<a href="%1$s">%2$s</a> stopped following <a href="%3$s">%4$s</a>.'),
$subscriber->profileurl,
$subscriber->getBestName(),
$other->profileurl,
$other->getBestName());
// TRANS: Text for "stopped following" item in activity plugin.
// TRANS: %1$s is a profile name, %2$s is a profile URL,
// TRANS: %3$s is a profile name, %4$s is a profile URL.
$content = sprintf(_m('%1$s (%2$s) stopped following %3$s (%4$s).'),
$subscriber->getBestName(),
$subscriber->profileurl,
$other->getBestName(),
$other->profileurl);
$uri = TagURI::mint('stop-following:%d:%d:%s',
$subscriber->id,
$other->id,
common_date_iso8601(common_sql_now()));
$notice = Notice::saveNew($user->id,
$content,
ActivityPlugin::SOURCE,
array('rendered' => $rendered,
'urls' => array(),
'replies' => array($other->getUri()),
'uri' => $uri,
'verb' => ActivityVerb::UNFOLLOW,
'object_type' => ActivityObject::PERSON));
}
return true;
}
function onEndFavorNotice($profile, $notice)
{
// Only do this if config is enabled
if(!$this->StartLike) return true;
$user = $profile->getUser();
if (!empty($user)) {
$author = $notice->getProfile();
$fave = Fave::pkeyGet(array('user_id' => $user->id,
'notice_id' => $notice->id));
// TRANS: Text for "liked" item in activity plugin.
// TRANS: %1$s is a profile URL, %2$s is a profile name,
// TRANS: %3$s is a notice URL, %4$s is an author name.
$rendered = sprintf(_m('<a href="%1$s">%2$s</a> liked <a href="%3$s">%4$s\'s update</a>.'),
$profile->profileurl,
$profile->getBestName(),
$notice->bestUrl(),
$author->getBestName());
// TRANS: Text for "liked" item in activity plugin.
// TRANS: %1$s is a profile name, %2$s is a profile URL,
// TRANS: %3$s is an author name, %4$s is a notice URL.
$content = sprintf(_m('%1$s (%2$s) liked %3$s\'s status (%4$s).'),
$profile->getBestName(),
$profile->profileurl,
$author->getBestName(),
$notice->bestUrl());
$notice = Notice::saveNew($user->id,
$content,
ActivityPlugin::SOURCE,
array('rendered' => $rendered,
'urls' => array(),
'replies' => array($author->getUri()),
'uri' => $fave->getURI(),
'verb' => ActivityVerb::FAVORITE,
'object_type' => (($notice->verb == ActivityVerb::POST) ?
$notice->object_type : ActivityObject::ACTIVITY)));
}
return true;
}
function onEndDisfavorNotice($profile, $notice)
{
// Only do this if config is enabled
if(!$this->StopLike) return true;
$user = User::staticGet('id', $profile->id);
if (!empty($user)) {
$author = Profile::staticGet('id', $notice->profile_id);
// TRANS: Text for "stopped liking" item in activity plugin.
// TRANS: %1$s is a profile URL, %2$s is a profile name,
// TRANS: %3$s is a notice URL, %4$s is an author name.
$rendered = sprintf(_m('<a href="%1$s">%2$s</a> stopped liking <a href="%3$s">%4$s\'s update</a>.'),
$profile->profileurl,
$profile->getBestName(),
$notice->bestUrl(),
$author->getBestName());
// TRANS: Text for "stopped liking" item in activity plugin.
// TRANS: %1$s is a profile name, %2$s is a profile URL,
// TRANS: %3$s is an author name, %4$s is a notice URL.
$content = sprintf(_m('%1$s (%2$s) stopped liking %3$s\'s status (%4$s).'),
$profile->getBestName(),
$profile->profileurl,
$author->getBestName(),
$notice->bestUrl());
$uri = TagURI::mint('unlike:%d:%d:%s',
$profile->id,
$notice->id,
common_date_iso8601(common_sql_now()));
$notice = Notice::saveNew($user->id,
$content,
ActivityPlugin::SOURCE,
array('rendered' => $rendered,
'urls' => array(),
'replies' => array($author->getUri()),
'uri' => $uri,
'verb' => ActivityVerb::UNFAVORITE,
'object_type' => (($notice->verb == ActivityVerb::POST) ?
$notice->object_type : ActivityObject::ACTIVITY)));
}
return true;
}
function onEndJoinGroup($group, $profile)
{
// Only do this if config is enabled
if(!$this->JoinGroup) return true;
$user = $profile->getUser();
if (empty($user)) {
return true;
}
// TRANS: Text for "joined group" item in activity plugin.
// TRANS: %1$s is a profile URL, %2$s is a profile name,
// TRANS: %3$s is a group URL, %4$s is a group name.
$rendered = sprintf(_m('<a href="%1$s">%2$s</a> joined the group <a href="%3$s">%4$s</a>.'),
$profile->profileurl,
$profile->getBestName(),
$group->homeUrl(),
$group->getBestName());
// TRANS: Text for "joined group" item in activity plugin.
// TRANS: %1$s is a profile name, %2$s is a profile URL,
// TRANS: %3$s is a group name, %4$s is a group URL.
$content = sprintf(_m('%1$s (%2$s) joined the group %3$s (%4$s).'),
$profile->getBestName(),
$profile->profileurl,
$group->getBestName(),
$group->homeUrl());
$mem = Group_member::pkeyGet(array('group_id' => $group->id,
'profile_id' => $profile->id));
$notice = Notice::saveNew($user->id,
$content,
ActivityPlugin::SOURCE,
array('rendered' => $rendered,
'urls' => array(),
'groups' => array($group->id),
'uri' => $mem->getURI(),
'verb' => ActivityVerb::JOIN,
'object_type' => ActivityObject::GROUP));
return true;
}
function onEndLeaveGroup($group, $profile)
{
// Only do this if config is enabled
if(!$this->LeaveGroup) return true;
$user = $profile->getUser();
if (empty($user)) {
return true;
}
// TRANS: Text for "left group" item in activity plugin.
// TRANS: %1$s is a profile URL, %2$s is a profile name,
// TRANS: %3$s is a group URL, %4$s is a group name.
$rendered = sprintf(_m('<a href="%1$s">%2$s</a> left the group <a href="%3$s">%4$s</a>.'),
$profile->profileurl,
$profile->getBestName(),
$group->homeUrl(),
$group->getBestName());
// TRANS: Text for "left group" item in activity plugin.
// TRANS: %1$s is a profile name, %2$s is a profile URL,
// TRANS: %3$s is a group name, %4$s is a group URL.
$content = sprintf(_m('%1$s (%2$s) left the group %3$s (%4$s).'),
$profile->getBestName(),
$profile->profileurl,
$group->getBestName(),
$group->homeUrl());
$uri = TagURI::mint('leave:%d:%d:%s',
$user->id,
$group->id,
common_date_iso8601(common_sql_now()));
$notice = Notice::saveNew($user->id,
$content,
ActivityPlugin::SOURCE,
array('rendered' => $rendered,
'urls' => array(),
'groups' => array($group->id),
'uri' => $uri,
'verb' => ActivityVerb::LEAVE,
'object_type' => ActivityObject::GROUP));
return true;
}
function onStartShowNoticeItem($nli)
{
$notice = $nli->notice;
$adapter = null;
switch ($notice->verb) {
case ActivityVerb::FAVORITE:
case ActivityVerb::UNFAVORITE:
$adapter = new SystemListItem($nli);
break;
case ActivityVerb::JOIN:
$adapter = new JoinListItem($nli);
break;
case ActivityVerb::LEAVE:
$adapter = new JoinListItem($nli);
break;
case ActivityVerb::FOLLOW:
$adapter = new FollowListItem($nli);
break;
case ActivityVerb::UNFOLLOW:
$adapter = new UnfollowListItem($nli);
break;
}
if (!empty($adapter)) {
$adapter->showNotice();
$adapter->showNoticeAttachments();
$adapter->showNoticeInfo();
$adapter->showNoticeOptions();
return false;
}
return true;
}
function onEndNoticeAsActivity($notice, &$activity)
{
switch ($notice->verb) {
case ActivityVerb::FAVORITE:
$fave = Fave::staticGet('uri', $notice->uri);
if (!empty($fave)) {
$notice = Notice::staticGet('id', $fave->notice_id);
if (!empty($notice)) {
$cur = common_current_user();
$target = $notice->asActivity($cur);
if ($target->verb == ActivityVerb::POST) {
// "I like the thing you posted"
$activity->objects = $target->objects;
} else {
// "I like that you did whatever you did"
$activity->objects = array($target);
}
}
}
break;
case ActivityVerb::UNFAVORITE:
// FIXME: do something here
break;
case ActivityVerb::JOIN:
$mem = Group_member::staticGet('uri', $notice->uri);
if (!empty($mem)) {
$group = $mem->getGroup();
$activity->objects = array(ActivityObject::fromGroup($group));
}
break;
case ActivityVerb::LEAVE:
// FIXME: ????
break;
case ActivityVerb::FOLLOW:
$sub = Subscription::staticGet('uri', $notice->uri);
if (!empty($sub)) {
$profile = Profile::staticGet('id', $sub->subscribed);
if (!empty($profile)) {
$activity->objects = array(ActivityObject::fromProfile($profile));
}
}
break;
case ActivityVerb::UNFOLLOW:
// FIXME: ????
break;
}
return true;
}
function onPluginVersion(&$versions)
{
$versions[] = array('name' => 'Activity',
'version' => self::VERSION,
'author' => 'Evan Prodromou',
'homepage' => 'http://status.net/wiki/Plugin:Activity',
'rawdescription' =>
// TRANS: Plugin description.
_m('Emits notices when social activities happen.'));
return true;
}
}

View File

@@ -0,0 +1,49 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2011, StatusNet, Inc.
*
* Title of module
*
* 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 Cache
* @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);
}
/**
* NoticeListItemAdapter for join activities
*
* @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 FollowListItem extends SystemListItem
{
}

View File

@@ -0,0 +1,75 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2011, StatusNet, Inc.
*
* List item for when you join a group
*
* 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 Cache
* @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);
}
/**
* NoticeListItemAdapter for join activities
*
* @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 JoinListItem extends SystemListItem
{
function showContent()
{
$notice = $this->nli->notice;
$out = $this->nli->out;
$mem = Group_member::staticGet('uri', $notice->uri);
if (!empty($mem)) {
$out->elementStart('div', 'join-activity');
$profile = $mem->getMember();
$group = $mem->getGroup();
// TRANS: Text for "joined list" item in activity plugin.
// TRANS: %1$s is a profile URL, %2$s is a profile name,
// TRANS: %3$s is a group home URL, %4$s is a group name.
$out->raw(sprintf(_m('<a href="%1$s">%2$s</a> joined the group <a href="%3$s">%4$s</a>.'),
$profile->profileurl,
$profile->getBestName(),
$group->homeUrl(),
$group->getBestName()));
$out->elementEnd('div');
} else {
parent::showContent();
}
}
}

View File

@@ -0,0 +1,49 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2011, StatusNet, Inc.
*
* List item for when you leave a group
*
* 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 Cache
* @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);
}
/**
* NoticeListItemAdapter for leave activities
*
* @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 LeaveListItem extends SystemListItem
{
}

View File

@@ -0,0 +1,122 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#. TRANS: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#: joinlistitem.php:64 ActivityPlugin.php:259
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#: ActivityPlugin.php:89
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr ""
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#: ActivityPlugin.php:97
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr ""
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#: ActivityPlugin.php:125
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr ""
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#: ActivityPlugin.php:133
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr ""
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#: ActivityPlugin.php:173
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#: ActivityPlugin.php:181
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr ""
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#: ActivityPlugin.php:212
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#: ActivityPlugin.php:220
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr ""
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#: ActivityPlugin.php:267
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr ""
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#: ActivityPlugin.php:302
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#: ActivityPlugin.php:310
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr ""
#. TRANS: Plugin description.
#: ActivityPlugin.php:427
msgid "Emits notices when social activities happen."
msgstr ""

View File

@@ -0,0 +1,118 @@
# Translation of StatusNet - Activity to Arabic (العربية)
# Exported from translatewiki.net
#
# Author: DRIHEM
# Author: OsamaK
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:28+0000\n"
"Language-Team: Arabic <https://translatewiki.net/wiki/Portal:ar>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ar\n"
"X-Message-Group: #out-statusnet-plugin-activity\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: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> انضم لمجموعة <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> بدأ متابعة <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "%1$s (%2$s) بدأ متابعة %3$s (%4$s)."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> توقف عن متابعة <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "%1$s (%2$s) توقف عن متابعة %3$s (%4$s)."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr "<a href=\"%1$s\">%2$s</a> أعجبه <a href=\"%3$s\">مستجد %4$s</a>."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "%1$s (%2$s) أعجبته حالة %3$s (%4$s)."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> لم يعد يعجبه <a href=\"%3$s\">مستجد %4$s</a>."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "%1$s (%2$s) لم تعد تعجبه حالة %3$s (%4$s)."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s (%2$s) انضم لمجموعة %3$s (%4$s)."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> غادر مجموعة <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s (%2$s) غادر مجموعة %3$s (%4$s)."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr "يرسل إشعارات عند حدوث أنشطة إجتماعية."

View File

@@ -0,0 +1,120 @@
# Translation of StatusNet - Activity to Catalan (català)
# Exported from translatewiki.net
#
# Author: Toniher
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:28+0000\n"
"Language-Team: Catalan <https://translatewiki.net/wiki/Portal:ca>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ca\n"
"X-Message-Group: #out-statusnet-plugin-activity\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> s'ha unit al grup <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> ha començat a seguir <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "%1$s (%2$s) ha començat a seguir %3$s (%4$s)."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> ha deixat de seguir <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "%1$s (%2$s) ha deixat de seguir %3$s (%4$s)."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"A <a href=\"%1$s\">%2$s</a> li ha agradat l'actualització de <a href=\"%3$s"
"\">%4$s</a>."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "A %1$s (%2$s) li ha agradat l'estat de %3$s (%4$s)."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"A <a href=\"%1$s\">%2$s</a> li ha deixat d'agradar l'actualització de <a "
"href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "A %1$s (%2$s) li ha deixat d'agradar l'estat de %3$s (%4$s)."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s (%2$s) s'ha unit al grup %3$s (%4$s)."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> ha deixat el grup <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s (%2$s) ha deixat el grup %3$s (%4$s)."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr "Emet avisos quan passen activitats socials."

View File

@@ -0,0 +1,120 @@
# Translation of StatusNet - Activity to German (Deutsch)
# Exported from translatewiki.net
#
# Author: Marcel083
# Author: Tiin
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:29+0000\n"
"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: de\n"
"X-Message-Group: #out-statusnet-plugin-activity\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> hat die Gruppe <a href=\"%3$s\">%4$s</a> betreten."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> folgt jetzt <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "%1$s (%2$s) folgt jetzt %3$s (%4$s)."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> folgt jetzt nicht mehr <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "%1$s (%2$s) folgt jetzt nicht mehr %3$s (%4$s)."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr "<a href=\"%1$s\">%2$s</a> gefällt <a href=\"%3$s\">%4$s's Post</a>."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "%1$s (%2$s) gefällt %3$s's Status (%4$s)."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> gefällt <a href=\"%3$s\">%4$s's Update</a> nicht "
"mehr."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "%1$s (%2$s) gefällt %3$s's Status (%4$s) nicht mehr."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s (%2$s) hat die Gruppe %3$s (%4$s) betreten."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> hat die Gruppe <a href=\"%3$s\">%4$s</a> verlassen."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s (%2$s) hat die Gruppe %3$s (%4$s) verlassen."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr "Gibt Hinweise, wenn soziale Aktivitäten geschehen."

View File

@@ -0,0 +1,118 @@
# Translation of StatusNet - Activity to Spanish (español)
# Exported from translatewiki.net
#
# Author: Erchache2000
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:29+0000\n"
"Language-Team: Spanish <https://translatewiki.net/wiki/Portal:es>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: es\n"
"X-Message-Group: #out-statusnet-plugin-activity\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> se unió al grupo <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> empieza a seguir <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "%1$s (%2$s) empieza a seguir %3$s (%4$s)."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> deja de seguir <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "%1$s (%2$s) deja de seguir %3$s (%4$s)."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> le gusta <a href=\"%3$s\">%4$s's actualizaciones</"
"a>."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "%1$s (%2$s) le gusta el estado de %3$s's (%4$s)."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> deja de seguir las actualizaciones de <a href=\"%3"
"$s\">%4$s</a>."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "%1$s( %2$s ) dejó de seguir el estado de %3$s ( %4$s )."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s( %2$s ) se unió al grupo %3$s ( %4$s )."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> deja al grupo <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s( %2$s ) deja al grupo %3$s ( %4$s )."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr "Emite mensajes cuando se producen actividades sociales."

View File

@@ -0,0 +1,124 @@
# Translation of StatusNet - Activity to Basque (euskara)
# Exported from translatewiki.net
#
# Author: Artsuaga
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:29+0000\n"
"Language-Team: Basque <https://translatewiki.net/wiki/Portal:eu>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: eu\n"
"X-Message-Group: #out-statusnet-plugin-activity\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> <a href=\"%3$s\">%4$s</a> taldekoa da orain."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> <a href=\"%3$s\">%4$s</a> jarraitzen hasi da."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "%1$s (%2$s) %3$s (%4$s) jarraitzen hasi da."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a>(e)k <a href=\"%3$s\">%4$s</a> jarraitzeari utzi "
"dio."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "%1$s(e)k (%2$s) %3$s (%4$s) jarraitzeari utzi dio."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a>(e)k <a href=\"%3$s\">%4$s(r)en eguneraketa</a> "
"atsegin du."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "%1$s(e)k (%2$s) %3$s(r)en egoera (%4$s) atsegin du."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a>(r)i ez zaio dagoeneko <a href=\"%3$s\">%4$s(r)en "
"eguneraketa</a> atsegin."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "%1$s(r)i (%2$s) ez zaio dagoeneko %3$s(r)en egoera (%4$s) atsegin."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s (%2$s) %3$s (%4$s) taldera batu da."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a>(e)k <a href=\"%3$s\">%4$s</a> taldea utzi du."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s(e)k (%2$s) %3$s (%4$s) taldea utzi du."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr ""
"Oharrak argitaratzen ditu iharduera bat dagoenean (lagun egin, taldekide "
"izan, taldea utzi...)."

View File

@@ -0,0 +1,117 @@
# Translation of StatusNet - Activity to French (français)
# Exported from translatewiki.net
#
# Author: Gomoko
# Author: Jean-Frédéric
# Author: Od1n
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:29+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> a rejoint le groupe <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> suit désormais <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "%1$s (%2$s) suit désormais %3$s (%4$s)."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> a cessé de suivre <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "%1$s (%2$s) a arrêté de suivre %3$s (%4$s)."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr "<a href=\"%1$s\">%2$s</a> a aimé <a href=\"%3$s\">%4$s's update</a>."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "%1$s (%2$s) a aimé le statut de %3$s (%4$s)."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> n'aime plus <a href=\"%3$s\">les mises à jour de %4"
"$s</a>."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "%1$s (%2$s) n'aime plus le statut de %3$s (%4$s)."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s (%2$s) a rejoint le groupe %3$s (%4$s)."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> a quitté le groupe <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s (%2$s) a quitté le groupe %3$s (%4$s)."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr "Émettre des avis lorsque des activités sociales se produisent."

View File

@@ -0,0 +1,120 @@
# Translation of StatusNet - Activity to Galician (galego)
# Exported from translatewiki.net
#
# Author: Toliño
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:29+0000\n"
"Language-Team: Galician <https://translatewiki.net/wiki/Portal:gl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: gl\n"
"X-Message-Group: #out-statusnet-plugin-activity\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> uniuse ao grupo <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> comezou a seguir a <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "%1$s (%2$s) comezou a seguir a %3$s (%4$s)."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> deixou de seguir a <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "%1$s (%2$s) deixou de seguir a %3$s (%4$s)."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> gustou da <a href=\"%3$s\">actualización de %4$s</"
"a>."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "%1$s (%2$s) gustou do estado de %3$s (%4$s)."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> deixou de gustar da <a href=\"%3$s\">actualización "
"de %4$s</a>."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "%1$s (%2$s) deixou de gustar do estado de %3$s (%4$s)."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s (%2$s) uniuse ao grupo %3$s (%4$s)."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> deixou o grupo <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s (%2$s) deixou o grupo %3$s (%4$s)."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr "Emite notificacións cando acontecen actividades sociais."

View File

@@ -0,0 +1,120 @@
# Translation of StatusNet - Activity to Interlingua (interlingua)
# Exported from translatewiki.net
#
# Author: McDutchie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:29+0000\n"
"Language-Team: Interlingua <https://translatewiki.net/wiki/Portal:ia>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ia\n"
"X-Message-Group: #out-statusnet-plugin-activity\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> adhereva al gruppo <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> comenciava a sequer <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "%1$s (%2$s) comenciava a sequer %3$s (%4$s)."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> cessava de sequer <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "%1$s (%2$s) cessava de sequer %3$s (%4$s)."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> amava <a href=\"%3$s\">le actualisation de %4$s</"
"a>."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "%1$s (%2$s) amava le stato de %3$s (%4$s)."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> cessava de amar <a href=\"%3$s\">le actualisation "
"de %4$s</a>."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "%1$s (%2$s) cessava de amar le stato de %3$s (%4$s)."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s (%2$s) adhereva al gruppo %3$s (%4$s)."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> quitava le gruppo <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s (%2$s) quitava le gruppo %3$s (%4$s)."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr "Emitte notificationes quando activitates social occurre."

View File

@@ -0,0 +1,118 @@
# Translation of StatusNet - Activity to Italian (italiano)
# Exported from translatewiki.net
#
# Author: Ximo17
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:29+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> unisciti al gruppo <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> ha iniziato a seguire <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "%1$s (%2$s) ha iniziato a seguire %3$s (%4$s)."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> ha smesso di seguire <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "%1$s (%2$s) ha smesso di seguire %3$s (%4$s)."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> piace <a href=\"%3$s\">l'aggiornamento di %4$s</a>."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "%1$s (%2$s) piace lo stato di %3$s (%4$s)."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> non piace più <a href=\"%3$s\">l'aggiornamento di %"
"4$s</a>."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "%1$s (%2$s) non piace più lo stato di %3$s (%4$s)."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s (%2$s) si è unito al gruppo %3$s (%4$s)."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> è uscito dal gruppo <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s (%2$s) è uscito dal gruppo %3$s (%4$s)."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr "Emette avvisi quando avvengono le attività sociali."

View File

@@ -0,0 +1,116 @@
# Translation of StatusNet - Activity to Lithuanian (lietuvių)
# Exported from translatewiki.net
#
# Author: Eitvys200
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:29+0000\n"
"Language-Team: Lithuanian <https://translatewiki.net/wiki/Portal:lt>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: lt\n"
"X-Message-Group: #out-statusnet-plugin-activity\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: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> prisijungė prie grupės <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> pradėjo sekti <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr ""
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> nustojo sekti <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr ""
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr ""
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr ""
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s (%2$s) prisijungė prie grupės %3$s (%4$s)."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> paliko grupę <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s (%2$s) paliko grupę %3$s (%4$s)."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr ""

View File

@@ -0,0 +1,123 @@
# Translation of StatusNet - Activity to Macedonian (македонски)
# Exported from translatewiki.net
#
# Author: Bjankuloski06
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:29+0000\n"
"Language-Team: Macedonian <https://translatewiki.net/wiki/Portal:mk>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: mk\n"
"X-Message-Group: #out-statusnet-plugin-activity\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n"
#. TRANS: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> се зачлени во групата <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> почна да го следи корисникот <a href=\"%3$s\">%4"
"$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "%1$s (%2$s) почна да го следи корисникот %3$s (%4$s)."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> престана да го следи корисникот <a href=\"%3$s\">%4"
"$s</a>."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "%1$s (%2$s) престана да го следи корисникот %3$s (%4$s)."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> ја бендиса <a href=\"%3$s\">објавата на %4$s</a>."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "%1$s (%2$s) го бендиса статусот на %3$s (%4$s)."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> повеќе не ја бендисува <a href=\"%3$s\">објавата "
"на %4$s</a>."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "%1$s (%2$s) повеќе не го бендисува статусот на %3$s (%4$s)."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s (%2$s) се зачлени во групата %3$s (%4$s)."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> ја напушти групата <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s (%2$s) ја напушти групата %3$s (%4$s)."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr "Емитува известувања кога се одвиваат друштвени активности."

View File

@@ -0,0 +1,120 @@
# Translation of StatusNet - Activity to Dutch (Nederlands)
# Exported from translatewiki.net
#
# Author: Siebrand
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:29+0000\n"
"Language-Team: Dutch <https://translatewiki.net/wiki/Portal:nl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: nl\n"
"X-Message-Group: #out-statusnet-plugin-activity\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> is lid geworden van de groep <a href=\"%3$s\">%4"
"$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> is <a href=\"%3$s\">%4$s</a> gaan volgen."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "%1$s (%2$s) is %3$s (%4$s) gaan volgen."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> volgt <a href=\"%3$s\">%4$s</a> niet langer."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "%1$s (%2$s) volgt %3$s (%4$s) niet langer."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> vindt de <a href=\"%3$s\">status van %4$s</a> leuk."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "%1$s (%2$s) vindt de status van %3$s leuk (%4$s)."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> vindt de <a href=\"%3$s\">status van %4$s</a> niet "
"langer leuk."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "%1$s (%2$s) vindt de status van %3$s niet langer leuk (%4$s)."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s (%2$s) is lid geworden van de groep %3$s (%4$s)."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> heeft de groep <a href=\"%3$s\">%4$s</a> verlaten."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s (%2$s) heeft de groep %3$s verlaten (%4$s)."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr "Verstuurt mededelingen als sociale activiteiten gebeuren."

View File

@@ -0,0 +1,117 @@
# Translation of StatusNet - Activity to Polish (polski)
# Exported from translatewiki.net
#
# Author: BeginaFelicysym
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:30+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=3; plural=(n == 1) ? 0 : ( (n%10 >= 2 && n%10 <= 4 && "
"(n%100 < 10 || n%100 >= 20)) ? 1 : 2 );\n"
#. TRANS: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> dołączył do grupy <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> zaczął obserwować <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "%1$s (%2$s) zaczął obserwować %3$s (%4$s)."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> zakończył obserwację <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "%1$s (%2$s) zakończył obserwację %3$s (%4$s)."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> polubił <a href=\"%3$s\">aktualizację użytkownika %"
"4$s</a>."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "%1$s (%2$s) polubił status (%4$s) użytkownika %3$s."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> przestał lubić <a href=\"%3$s\">aktualizację "
"użytkownika %4$s</a>."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "%1$s (%2$s) przestał lubić status (%4$s) użytkownika %3$s."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s (%2$s) dołączył do grupy %3$s (%4$s)."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> opuścił grupę <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s (%2$s) opuścił grupę %3$s (%4$s)."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr "Wysyła ogłoszenia, gdy się dzieją się zdarzenia towarzyskie."

View File

@@ -0,0 +1,121 @@
# Translation of StatusNet - Activity to Russian (русский)
# Exported from translatewiki.net
#
# Author: Lockal
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:30+0000\n"
"Language-Team: Russian <https://translatewiki.net/wiki/Portal:ru>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ru\n"
"X-Message-Group: #out-statusnet-plugin-activity\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: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> присоединился к группе <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, fuzzy, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> начал следить за <a href=\"%2$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "%1$s (%2$s) начал следить за %3$s (%4$s)."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> перестал следить за <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "%1$s (%2$s) перестал следить за %3$s (%4$s)."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> добавил <a href=\"%3$s\">обновление %4$s</a> в "
"число любимых."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "%1$s (%2$s) добавил статус %3$s в число любимых (%4$s)."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"<a href=\"%1$s\">%2$s</a> убрал <a href=\"%3$s\">обновление %4$s</a> из "
"числа любимых."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "%1$s (%2$s) убрал статус %3$s из числа любимых (%4$s)."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "%1$s (%2$s) присоединился к группе %3$s (%4$s)."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr "<a href=\"%1$s\">%2$s</a> покинул группу <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "%1$s (%2$s) покинул группу %3$s (%4$s)."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr "Выдаёт уведомления, когда происходит социальная деятельность."

View File

@@ -0,0 +1,121 @@
# Translation of StatusNet - Activity to Tagalog (Tagalog)
# Exported from translatewiki.net
#
# Author: AnakngAraw
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Activity\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:30+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-01-30 18:15:05+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Text for "joined list" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group home URL, %4$s is a group name.
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> joined the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"Sumali si <a href=\"%1$s\">%2$s</a> sa pangkat na <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> started following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"Nagsimulang sundan ni <a href=\"%1$s\">%2$s</a> si <a href=\"%3$s\">%4$s</a>."
#. TRANS: Text for "started following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) started following %3$s (%4$s)."
msgstr "Nagsimulang sundan ni %1$s (%2$s) si %3$s (%4$s)."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a profile URL, %4$s is a profile name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> stopped following <a href=\"%3$s\">%4$s</a>."
msgstr ""
"Huminto si <a href=\"%1$s\">%2$s</a> sa pagsunod kay <a href=\"%3$s\">%4$s</"
"a>."
#. TRANS: Text for "stopped following" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a profile name, %4$s is a profile URL.
#, php-format
msgid "%1$s (%2$s) stopped following %3$s (%4$s)."
msgstr "Huminto si %1$s (%2$s) sa pagsunod kay %3$s (%4$s)."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> liked <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"Nagustuhan ni <a href=\"%1$s\">%2$s</a> ang <a href=\"%3$s\">pagsasapanahon "
"ni %4$s</a>."
#. TRANS: Text for "liked" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) liked %3$s's status (%4$s)."
msgstr "Nagustuhan ni %1$s (%2$s) ang katayuan ni %3$s (%4$s)."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a notice URL, %4$s is an author name.
#, php-format
msgid ""
"<a href=\"%1$s\">%2$s</a> stopped liking <a href=\"%3$s\">%4$s's update</a>."
msgstr ""
"Huminto sa paggusto si <a href=\"%1$s\">%2$s</a> kay <a href=\"%3$s\">%4$s's "
"update</a>."
#. TRANS: Text for "stopped liking" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is an author name, %4$s is a notice URL.
#, php-format
msgid "%1$s (%2$s) stopped liking %3$s's status (%4$s)."
msgstr "Huminto si %1$s (%2$s) sa paggusto ng katayuan ni %3$s (%4$s)."
#. TRANS: Text for "joined group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) joined the group %3$s (%4$s)."
msgstr "Sumali si %1$s (%2$s) sa pangkat na %3$s (%4$s)."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile URL, %2$s is a profile name,
#. TRANS: %3$s is a group URL, %4$s is a group name.
#, php-format
msgid "<a href=\"%1$s\">%2$s</a> left the group <a href=\"%3$s\">%4$s</a>."
msgstr ""
"Umalis si <a href=\"%1$s\">%2$s</a> mula sa pangkat na <a href=\"%3$s\">%4"
"$s</a>."
#. TRANS: Text for "left group" item in activity plugin.
#. TRANS: %1$s is a profile name, %2$s is a profile URL,
#. TRANS: %3$s is a group name, %4$s is a group URL.
#, php-format
msgid "%1$s (%2$s) left the group %3$s (%4$s)."
msgstr "Umalis si %1$s (%2$s) mula sa pangkat na %3$s (%4$s)."
#. TRANS: Plugin description.
msgid "Emits notices when social activities happen."
msgstr "Nagbubuga ng mga pabatid kapag nagaganap ang mga gawaing panlipunan."

View File

@@ -0,0 +1,89 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2011, StatusNet, Inc.
*
* Superclass for system event items
*
* 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 Activity
* @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);
}
/**
* NoticeListItemAdapter for system activities
*
* @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 SystemListItem extends NoticeListItemAdapter
{
/**
* Show the activity
*
* @return void
*/
function showNotice()
{
$out = $this->nli->out;
$out->elementStart('div', 'entry-title');
$this->showContent();
$out->elementEnd('div');
}
function showContent()
{
$notice = $this->nli->notice;
$out = $this->nli->out;
// FIXME: get the actual data on the leave
$out->elementStart('div', 'system-activity');
$out->raw($notice->rendered);
$out->elementEnd('div');
}
function showNoticeOptions()
{
if (Event::handle('StartShowNoticeOptions', array($this))) {
$user = common_current_user();
if (!empty($user)) {
$this->nli->out->elementStart('div', 'notice-options');
$this->showFaveForm();
$this->showReplyLink();
$this->nli->out->elementEnd('div');
}
Event::handle('EndShowNoticeOptions', array($this));
}
}
}

View File

@@ -0,0 +1,75 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2011, StatusNet, Inc.
*
* Unfollow list item
*
* 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 Activity
* @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);
}
/**
* NoticeListItemAdapter for join activities
*
* @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 UnfollowListItem extends SystemListItem
{
/**
* Show the join activity
*
* @return void
*/
function showNotice()
{
$out = $this->nli->out;
$out->elementStart('div', 'entry-title');
$this->showContent();
$out->elementEnd('div');
}
function showContent()
{
$notice = $this->nli->notice;
$out = $this->nli->out;
// FIXME: get the actual data on the leave
$out->elementStart('div', 'unfollow-activity');
$out->raw($notice->rendered);
$out->elementEnd('div');
}
}

View File

@@ -0,0 +1,293 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2011,2012, StatusNet, Inc.
*
* ActivitySpam Plugin
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2011,2012 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);
}
/**
* Check new notices with activity spam service.
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2011,2012 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class ActivitySpamPlugin extends Plugin
{
public $server = null;
public $hideSpam = false;
const REVIEWSPAM = 'ActivitySpamPlugin::REVIEWSPAM';
const TRAINSPAM = 'ActivitySpamPlugin::TRAINSPAM';
/**
* Initializer
*
* @return boolean hook value; true means continue processing, false means stop.
*/
function initialize()
{
$this->filter = new SpamFilter(common_config('activityspam', 'server'),
common_config('activityspam', 'consumerkey'),
common_config('activityspam', 'secret'));
$this->hideSpam = common_config('activityspam', 'hidespam');
// Let DB_DataObject find Spam_score
common_config_set('db', 'class_location',
common_config('db', 'class_location') .':'.dirname(__FILE__));
return true;
}
/**
* Database schema setup
*
* @see Schema
* @see ColumnDef
*
* @return boolean hook value; true means continue processing, false means stop.
*/
function onCheckSchema()
{
$schema = Schema::get();
$schema->ensureTable('spam_score', Spam_score::schemaDef());
Spam_score::upgrade();
return true;
}
/**
* Load related modules when needed
*
* @param string $cls Name of the class to be loaded
*
* @return boolean hook value; true means continue processing, false means stop.
*/
function onAutoload($cls)
{
$dir = dirname(__FILE__);
switch ($cls)
{
case 'TrainAction':
case 'SpamAction':
include_once $dir . '/' . strtolower(mb_substr($cls, 0, -6)) . '.php';
return false;
case 'Spam_score':
include_once $dir . '/'.$cls.'.php';
return false;
case 'SpamFilter':
case 'SpamNoticeStream':
case 'TrainSpamForm':
case 'TrainHamForm':
include_once $dir . '/'.strtolower($cls).'.php';
return false;
default:
return true;
}
}
/**
* When a notice is saved, check its spam score
*
* @param Notice $notice Notice that was just saved
*
* @return boolean hook value; true means continue processing, false means stop.
*/
function onEndNoticeSave($notice)
{
try {
$result = $this->filter->test($notice);
$score = Spam_score::saveNew($notice, $result);
$this->log(LOG_INFO, "Notice " . $notice->id . " has spam score " . $score->score);
} catch (Exception $e) {
// Log but continue
$this->log(LOG_ERR, $e->getMessage());
}
return true;
}
function onNoticeDeleteRelated($notice) {
$score = Spam_score::staticGet('notice_id', $notice->id);
if (!empty($score)) {
$score->delete();
}
return true;
}
function onUserRightsCheck($profile, $right, &$result) {
switch ($right) {
case self::REVIEWSPAM:
case self::TRAINSPAM:
$result = ($profile->hasRole(Profile_role::MODERATOR) || $profile->hasRole('modhelper'));
return false;
default:
return true;
}
}
function onGetSpamFilter(&$filter) {
$filter = $this->filter;
return false;
}
function onEndShowNoticeOptionItems($nli)
{
$profile = Profile::current();
if (!empty($profile) && $profile->hasRight(self::TRAINSPAM)) {
$notice = $nli->getNotice();
$out = $nli->getOut();
if (!empty($notice)) {
$score = Spam_score::staticGet('notice_id', $notice->id);
if (empty($score)) {
// If it's empty, we can train it.
$form = new TrainSpamForm($out, $notice);
$form->show();
} else if ($score->is_spam) {
$form = new TrainHamForm($out, $notice);
$form->show();
} else if (!$score->is_spam) {
$form = new TrainSpamForm($out, $notice);
$form->show();
}
}
}
return true;
}
/**
* Map URLs to actions
*
* @param Net_URL_Mapper $m path-to-action mapper
*
* @return boolean hook value; true means continue processing, false means stop.
*/
function onRouterInitialized($m)
{
$m->connect('main/train/spam',
array('action' => 'train', 'category' => 'spam'));
$m->connect('main/train/ham',
array('action' => 'train', 'category' => 'ham'));
$m->connect('main/spam',
array('action' => 'spam'));
return true;
}
function onEndShowStyles($action)
{
$action->element('style', null,
'.form-train-spam input.submit { background: url('.$this->path('icons/bullet_black.png').') no-repeat 0px 0px } ' . "\n" .
'.form-train-ham input.submit { background: url('.$this->path('icons/exclamation.png').') no-repeat 0px 0px } ');
return true;
}
function onEndPublicGroupNav($nav)
{
$user = common_current_user();
if (!empty($user) && $user->hasRight(self::REVIEWSPAM)) {
$nav->out->menuItem(common_local_url('spam'),
_m('MENU','Spam'),
// TRANS: Menu item title in search group navigation panel.
_('Notices marked as spam'),
$nav->actionName == 'spam',
'nav_timeline_spam');
}
return true;
}
function onPluginVersion(&$versions)
{
$versions[] = array('name' => 'ActivitySpam',
'version' => STATUSNET_VERSION,
'author' => 'Evan Prodromou',
'homepage' => 'http://status.net/wiki/Plugin:ActivitySpam',
'description' =>
_m('Test notices against the Activity Spam service.'));
return true;
}
function onEndNoticeInScope($notice, $profile, &$bResult)
{
if ($this->hideSpam) {
if ($bResult) {
$score = Spam_score::staticGet('notice_id', $notice->id);
if (!empty($score) && $score->is_spam) {
if (empty($profile) ||
($profile->id !== $notice->profile_id &&
!$profile->hasRight(self::REVIEWSPAM))) {
$bResult = false;
}
}
}
}
return true;
}
/**
* Pre-cache our spam scores if needed.
*/
function onEndNoticeListPrefill(&$notices, &$profiles, $avatarSize) {
if ($this->hideSpam) {
foreach ($notices as $notice) {
$ids[] = $notice->id;
}
Memcached_DataObject::multiGet('Spam_score', 'notice_id', $ids);
}
return true;
}
}

View File

@@ -0,0 +1,216 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2011, StatusNet, Inc.
*
* Score of a notice by activity spam service
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2011 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
exit(1);
}
/**
* Score of a notice per the activity spam service
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl.html AGPLv3
* @link http://status.net/
*
* @see DB_DataObject
*/
class Spam_score extends Managed_DataObject
{
const MAX_SCALE = 10000;
public $__table = 'spam_score'; // table name
public $notice_id; // int
public $score; // float
public $created; // datetime
/**
* Get an instance by key
*
* @param string $k Key to use to lookup (usually 'notice_id' for this class)
* @param mixed $v Value to lookup
*
* @return Spam_score object found, or null for no hits
*
*/
function staticGet($k, $v=null)
{
return Managed_DataObject::staticGet('Spam_score', $k, $v);
}
function saveNew($notice, $result) {
$score = new Spam_score();
$score->notice_id = $notice->id;
$score->score = $result->probability;
$score->is_spam = $result->isSpam;
$score->scaled = Spam_score::scale($score->score);
$score->created = common_sql_now();
$score->notice_created = $notice->created;
$score->insert();
self::blow('spam_score:notice_ids');
return $score;
}
function save($notice, $result) {
$orig = null;
$score = Spam_score::staticGet('notice_id', $notice->id);
if (empty($score)) {
$score = new Spam_score();
} else {
$orig = clone($score);
}
$score->notice_id = $notice->id;
$score->score = $result->probability;
$score->is_spam = $result->isSpam;
$score->scaled = Spam_score::scale($score->score);
$score->created = common_sql_now();
$score->notice_created = $notice->created;
if (empty($orig)) {
$score->insert();
} else {
$score->update($orig);
}
self::blow('spam_score:notice_ids');
return $score;
}
function delete()
{
self::blow('spam_score:notice_ids');
self::blow('spam_score:notice_ids;last');
parent::delete();
}
/**
* The One True Thingy that must be defined and declared.
*/
public static function schemaDef()
{
return array(
'description' => 'score of the notice per activityspam',
'fields' => array(
'notice_id' => array('type' => 'int',
'not null' => true,
'description' => 'notice getting scored'),
'score' => array('type' => 'double',
'not null' => true,
'description' => 'score for the notice (0.0, 1.0)'),
'scaled' => array('type' => 'int',
'description' => 'scaled score for the notice (0, 10000)'),
'is_spam' => array('type' => 'tinyint',
'description' => 'flag for spamosity'),
'created' => array('type' => 'datetime',
'not null' => true,
'description' => 'date this record was created'),
'notice_created' => array('type' => 'datetime',
'description' => 'date the notice was created'),
),
'primary key' => array('notice_id'),
'foreign keys' => array(
'spam_score_notice_id_fkey' => array('notice', array('notice_id' => 'id')),
),
'indexes' => array(
'spam_score_created_idx' => array('created'),
'spam_score_scaled_idx' => array('scaled'),
),
);
}
public static function upgrade()
{
Spam_score::upgradeScaled();
Spam_score::upgradeIsSpam();
Spam_score::upgradeNoticeCreated();
}
protected static function upgradeScaled()
{
$score = new Spam_score();
$score->whereAdd('scaled IS NULL');
if ($score->find()) {
while ($score->fetch()) {
$orig = clone($score);
$score->scaled = Spam_score::scale($score->score);
$score->update($orig);
}
}
}
protected static function upgradeIsSpam()
{
$score = new Spam_score();
$score->whereAdd('is_spam IS NULL');
if ($score->find()) {
while ($score->fetch()) {
$orig = clone($score);
$score->is_spam = ($score->score >= 0.90) ? 1 : 0;
$score->update($orig);
}
}
}
protected static function upgradeNoticeCreated()
{
$score = new Spam_score();
$score->whereAdd('notice_created IS NULL');
if ($score->find()) {
while ($score->fetch()) {
$notice = Notice::staticGet('id', $score->notice_id);
if (!empty($notice)) {
$orig = clone($score);
$score->notice_created = $notice->created;
$score->update($orig);
}
}
}
}
public static function scale($score)
{
$raw = round($score * Spam_score::MAX_SCALE);
return max(0, min(Spam_score::MAX_SCALE, $raw));
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 701 B

View File

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

View File

@@ -0,0 +1,26 @@
# Translation of StatusNet - ActivitySpam to German (Deutsch)
# Exported from translatewiki.net
#
# Author: PtM
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ActivitySpam\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:30+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-06-18 00:06:35+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgctxt "MENU"
msgid "Spam"
msgstr "Spam"
msgid "Test notices against the Activity Spam service."
msgstr "Nachrichten am Activity-Spam-Service testen"

View File

@@ -0,0 +1,26 @@
# Translation of StatusNet - ActivitySpam to Spanish (español)
# Exported from translatewiki.net
#
# Author: Armando-Martin
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ActivitySpam\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:30+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-06-18 00:06:35+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgctxt "MENU"
msgid "Spam"
msgstr "Spam"
msgid "Test notices against the Activity Spam service."
msgstr "Probar los avisos contra el servicio de actividad de spam."

View File

@@ -0,0 +1,26 @@
# Translation of StatusNet - ActivitySpam to French (français)
# Exported from translatewiki.net
#
# Author: Gomoko
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ActivitySpam\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:30+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-06-18 00:06:35+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
msgctxt "MENU"
msgid "Spam"
msgstr "Courrier polluant"
msgid "Test notices against the Activity Spam service."
msgstr "Avis de test à l'encontre du service d'activité du courrier polluant."

View File

@@ -0,0 +1,26 @@
# Translation of StatusNet - ActivitySpam to Galician (galego)
# Exported from translatewiki.net
#
# Author: Toliño
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ActivitySpam\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:30+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-06-18 00:06:35+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgctxt "MENU"
msgid "Spam"
msgstr "Spam"
msgid "Test notices against the Activity Spam service."
msgstr "Probar os avisos co servizo de actividade de spam."

View File

@@ -0,0 +1,26 @@
# Translation of StatusNet - ActivitySpam to Interlingua (interlingua)
# Exported from translatewiki.net
#
# Author: McDutchie
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ActivitySpam\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:30+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-06-18 00:06:35+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgctxt "MENU"
msgid "Spam"
msgstr "Spam"
msgid "Test notices against the Activity Spam service."
msgstr "Testar avisos contra le servicio Activity Spam."

View File

@@ -0,0 +1,27 @@
# Translation of StatusNet - ActivitySpam to Italian (italiano)
# Exported from translatewiki.net
#
# Author: GreenFox
# Author: Ximo17
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ActivitySpam\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:30+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-06-18 00:06:35+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgctxt "MENU"
msgid "Spam"
msgstr "Spam"
msgid "Test notices against the Activity Spam service."
msgstr "Avvisi di prova contro il servizio Spam Activity."

View File

@@ -0,0 +1,26 @@
# Translation of StatusNet - ActivitySpam to Macedonian (македонски)
# Exported from translatewiki.net
#
# Author: Bjankuloski06
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ActivitySpam\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:30+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-06-18 00:06:35+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n == 1 || n%10 == 1) ? 0 : 1;\n"
msgctxt "MENU"
msgid "Spam"
msgstr "Спам"
msgid "Test notices against the Activity Spam service."
msgstr "Испробување на забелешките со Службата за спам во активностите."

View File

@@ -0,0 +1,26 @@
# Translation of StatusNet - ActivitySpam to Dutch (Nederlands)
# Exported from translatewiki.net
#
# Author: Siebrand
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ActivitySpam\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:30+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-06-18 00:06:35+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgctxt "MENU"
msgid "Spam"
msgstr "Spam"
msgid "Test notices against the Activity Spam service."
msgstr "Mededelingen testen tegen de dienst Activity Spam."

View File

@@ -0,0 +1,26 @@
# Translation of StatusNet - ActivitySpam to Tagalog (Tagalog)
# Exported from translatewiki.net
#
# Author: AnakngAraw
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - ActivitySpam\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:30+0000\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2012-06-18 00:06:35+0000\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
msgctxt "MENU"
msgid "Spam"
msgstr "Manlulusob"
msgid "Test notices against the Activity Spam service."
msgstr "Mga pabatid na pangsubok laban sa palingkuran ng Gawain ng Manlulusob."

View File

@@ -0,0 +1,120 @@
<?php
/*
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2013 StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..'));
$shortoptions = 'i:n:a';
$longoptions = array('id=', 'nickname=', 'all');
$helptext = <<<END_OF_SILENCESPAMMER_HELP
silencespammer.php [options]
Users who post a lot of spam get silenced
-i --id ID of user to test and silence
-n --nickname nickname of the user to test and silence
-a --all All users
END_OF_SILENCESPAMMER_HELP;
require_once INSTALLDIR.'/scripts/commandline.inc';
function testAllUsers($filter, $minimum, $percent) {
$found = false;
$offset = 0;
$limit = 1000;
do {
$user = new User();
$user->orderBy('created');
$user->limit($offset, $limit);
$found = $user->find();
if ($found) {
while ($user->fetch()) {
try {
silencespammer($filter, $user, $minimum, $percent);
} catch (Exception $e) {
printfnq("ERROR testing user %s\n: %s", $user->nickname, $e->getMessage());
}
}
$offset += $found;
}
} while ($found > 0);
}
function silencespammer($filter, $user, $minimum, $percent) {
printfnq("Testing user %s\n", $user->nickname);
$profile = Profile::staticGet('id', $user->id);
if ($profile->isSilenced()) {
printfnq("Already silenced %s\n", $user->nickname);
return;
}
$cnt = $profile->noticeCount();
if ($cnt < $minimum) {
printfnq("Only %d notices posted (minimum %d); skipping\n", $cnt, $minimum);
return;
}
$ss = new Spam_score();
$ss->query(sprintf("SELECT count(*) as spam_count ".
"FROM notice join spam_score on notice.id = spam_score.notice_id ".
"WHERE notice.profile_id = %d AND spam_score.is_spam = 1", $profile->id));
while ($ss->fetch()) {
$spam_count = $ss->spam_count;
}
$spam_percent = ($spam_count * 100.0 / $cnt);
if ($spam_percent > $percent) {
printfnq("Silencing user %s (%d/%d = %0.2f%% spam)\n", $user->nickname, $spam_count, $cnt, $spam_percent);
try {
$profile->silence();
} catch(Exception $e) {
printfnq("Error: %s", $e->getMessage());
}
}
}
try {
$filter = null;
$minimum = 5;
$percent = 80;
Event::handle('GetSpamFilter', array(&$filter));
if (empty($filter)) {
throw new Exception(_("No spam filter."));
}
if (have_option('a', 'all')) {
testAllUsers($filter, $minimum, $percent);
} else {
$user = getUser();
silencespammer($filter, $user, $minimum, $percent);
}
} catch (Exception $e) {
print $e->getMessage()."\n";
exit(1);
}

View File

@@ -0,0 +1,105 @@
<?php
/*
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2012 StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..'));
$shortoptions = 'i:n:a';
$longoptions = array('id=', 'nickname=', 'all');
$helptext = <<<END_OF_TESTUSER_HELP
testuser.php [options]
Test user activities against the spam filter
-i --id ID of user to export
-n --nickname nickname of the user to export
-a --all All users
END_OF_TESTUSER_HELP;
require_once INSTALLDIR.'/scripts/commandline.inc';
function testAllUsers($filter) {
$found = false;
$offset = 0;
$limit = 1000;
do {
$user = new User();
$user->orderBy('created');
$user->limit($offset, $limit);
$found = $user->find();
if ($found) {
while ($user->fetch()) {
try {
testUser($filter, $user);
} catch (Exception $e) {
printfnq("ERROR testing user %s\n: %s", $user->nickname, $e->getMessage());
}
}
$offset += $found;
}
} while ($found > 0);
}
function testUser($filter, $user) {
printfnq("Testing user %s\n", $user->nickname);
$profile = Profile::staticGet('id', $user->id);
$str = new ProfileNoticeStream($profile, $profile);
$offset = 0;
$limit = 100;
do {
$notice = $str->getNotices($offset, $limit);
while ($notice->fetch()) {
try {
printfv("Testing notice %d...", $notice->id);
$result = $filter->test($notice);
Spam_score::save($notice, $result);
printfv("%s\n", ($result->isSpam) ? "SPAM" : "HAM");
} catch (Exception $e) {
printfnq("ERROR testing notice %d: %s\n", $notice->id, $e->getMessage());
}
}
$offset += $notice->N;
} while ($notice->N > 0);
}
try {
$filter = null;
Event::handle('GetSpamFilter', array(&$filter));
if (empty($filter)) {
throw new Exception(_("No spam filter."));
}
if (have_option('a', 'all')) {
testAllUsers($filter);
} else {
$user = getUser();
testUser($filter, $user);
}
} catch (Exception $e) {
print $e->getMessage()."\n";
exit(1);
}

View File

@@ -0,0 +1,81 @@
<?php
/*
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2012 StatusNet, Inc.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
define('INSTALLDIR', realpath(dirname(__FILE__) . '/../../..'));
$shortoptions = 'i:n:t:';
$longoptions = array('id=', 'nickname=', 'category=');
$helptext = <<<END_OF_TRAINUSER_HELP
trainuser.php [options]
Train user activities against the spam filter
-i --id ID of user to export
-n --nickname nickname of the user to export
-t --category Category; one of "spam" or "ham"
END_OF_TRAINUSER_HELP;
require_once INSTALLDIR.'/scripts/commandline.inc';
function trainUser($filter, $user, $category) {
printfnq("Training user %s\n", $user->nickname);
$profile = Profile::staticGet('id', $user->id);
$str = new ProfileNoticeStream($profile, $profile);
$offset = 0;
$limit = 100;
do {
$notice = $str->getNotices($offset, $limit);
while ($notice->fetch()) {
try {
printfv("Training notice %d...", $notice->id);
$filter->trainOnError($notice, $category);
$result = $filter->test($notice);
$score = Spam_score::save($notice, $result);
printfv("%s\n", ($result->isSpam) ? "SPAM" : "HAM");
} catch (Exception $e) {
printfnq("ERROR training notice %d\n: %s", $notice->id, $e->getMessage());
}
}
$offset += $notice->N;
} while ($notice->N > 0);
}
try {
$filter = null;
Event::handle('GetSpamFilter', array(&$filter));
if (empty($filter)) {
throw new Exception(_("No spam filter."));
}
$user = getUser();
$category = get_option_value('t', 'category');
if ($category !== SpamFilter::HAM &&
$category !== SpamFilter::SPAM) {
throw new Exception(_("No such category."));
}
trainUser($filter, $user, $category);
} catch (Exception $e) {
print $e->getMessage()."\n";
exit(1);
}

View File

@@ -0,0 +1,165 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2012, StatusNet, Inc.
*
* Stream of latest spam messages
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2012 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
// This check helps protect against security problems;
// your code file can't be executed directly from the web.
exit(1);
}
require_once INSTALLDIR.'/lib/noticelist.php';
/**
* SpamAction
*
* Shows the latest spam on the service
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2012 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class SpamAction extends Action
{
var $page = null;
var $notices = null;
function title() {
return _("Latest Spam");
}
/**
* For initializing members of the class.
*
* @param array $argarray misc. arguments
*
* @return boolean true
*/
function prepare($argarray)
{
parent::prepare($argarray);
$this->page = ($this->arg('page')) ? ($this->arg('page')+0) : 1;
// User must be logged in.
$user = common_current_user();
if (empty($user)) {
throw new ClientException(_("You must be logged in to review."), 403);
}
// User must have the right to review spam
if (!$user->hasRight(ActivitySpamPlugin::REVIEWSPAM)) {
throw new ClientException(_('You cannot review spam on this site.'), 403);
}
$stream = new SpamNoticeStream($user->getProfile());
$this->notices = $stream->getNotices(($this->page-1)*NOTICES_PER_PAGE,
NOTICES_PER_PAGE + 1);
if($this->page > 1 && $this->notices->N == 0) {
throw new ClientException(_('No such page.'), 404);
}
return true;
}
/**
* Handler method
*
* @param array $argarray is ignored since it's now passed in in prepare()
*
* @return void
*/
function handle($argarray=null)
{
parent::handle($args);
$this->showPage();
}
/**
* Fill the content area
*
* Shows a list of the notices in the public stream, with some pagination
* controls.
*
* @return void
*/
function showContent()
{
$nl = new NoticeList($this->notices, $this);
$cnt = $nl->show();
if ($cnt == 0) {
$this->showEmptyList();
}
$this->pagination($this->page > 1,
$cnt > NOTICES_PER_PAGE,
$this->page,
'spam');
}
function showEmptyList()
{
// TRANS: Text displayed for public feed when there are no public notices.
$message = _('This is the timeline of spam messages for %%site.name%% but none have been detected yet.');
$this->elementStart('div', 'guide');
$this->raw(common_markup_to_html($message));
$this->elementEnd('div');
}
/**
* Return true if read only.
*
* MAY override
*
* @param array $args other arguments
*
* @return boolean is read only action?
*/
function isReadOnly($args)
{
return true;
}
}

View File

@@ -0,0 +1,171 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2012, StatusNet, Inc.
*
* Spam filter class
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2012 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);
}
/**
* Spam filter class
*
* Local proxy for remote filter
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2012 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class SpamFilter extends OAuthClient {
const HAM = 'ham';
const SPAM = 'spam';
public $server;
function __construct($server, $consumerKey, $secret) {
parent::__construct($consumerKey, $secret);
$this->server = $server;
}
protected function toActivity($notice) {
// FIXME: need this to autoload ActivityStreamsMediaLink
$doc = new ActivityStreamJSONDocument();
$activity = $notice->asActivity(null);
return $activity;
}
public function test($notice) {
$activity = $this->toActivity($notice);
return $this->testActivity($activity);
}
public function testActivity($activity) {
$response = $this->postJSON($this->server . "/is-this-spam", $activity->asArray());
$result = json_decode($response->getBody());
return $result;
}
public function train($notice, $category) {
$activity = $this->toActivity($notice);
return $this->trainActivity($activity, $category);
}
public function trainActivity($activity, $category) {
switch ($category) {
case self::HAM:
$endpoint = '/this-is-ham';
break;
case self::SPAM:
$endpoint = '/this-is-spam';
break;
default:
throw new Exception("Unknown category: " + $category);
}
$response = $this->postJSON($this->server . $endpoint, $activity->asArray());
// We don't do much with the results
return true;
}
public function trainOnError($notice, $category) {
$activity = $this->toActivity($notice);
return $this->trainActivityOnError($activity, $category);
}
public function trainActivityOnError($activity, $category) {
$result = $this->testActivity($activity);
if (($category === self::SPAM && $result->isSpam) ||
($category === self::HAM && !$result->isSpam)) {
return true;
} else {
return $this->trainActivity($activity, $category);
}
}
function postJSON($url, $body)
{
$request = OAuthRequest::from_consumer_and_token($this->consumer,
$this->token,
'POST',
$url);
$request->sign_request($this->sha1_method,
$this->consumer,
$this->token);
$hclient = new HTTPClient($url);
$hclient->setConfig(array('connect_timeout' => 120,
'timeout' => 120,
'follow_redirects' => true,
'ssl_verify_peer' => false,
'ssl_verify_host' => false));
$hclient->setMethod(HTTP_Request2::METHOD_POST);
$hclient->setBody(json_encode($body));
$hclient->setHeader('Content-Type', 'application/json');
$hclient->setHeader($request->to_header());
// Twitter is strict about accepting invalid "Expect" headers
// No reason not to clear it still here -ESP
$hclient->setHeader('Expect', '');
try {
$response = $hclient->send();
$code = $response->getStatus();
if (!$response->isOK()) {
throw new OAuthClientException($response->getBody(), $code);
}
return $response;
} catch (Exception $e) {
throw new OAuthClientException($e->getMessage(), $e->getCode());
}
}
}

View File

@@ -0,0 +1,101 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2012, StatusNet, Inc.
*
* Spam notice stream
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2012 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);
}
/**
* Spam notice stream
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2012 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class SpamNoticeStream extends ScopingNoticeStream
{
function __construct($tag, $profile = -1)
{
if (is_int($profile) && $profile == -1) {
$profile = Profile::current();
}
parent::__construct(new CachingNoticeStream(new RawSpamNoticeStream(),
'spam_score:notice_ids'));
}
}
/**
* Raw stream of spammy notices
*
* @category Stream
* @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 RawSpamNoticeStream extends NoticeStream
{
function getNoticeIds($offset, $limit, $since_id, $max_id)
{
$ss = new Spam_score();
$ss->is_spam = 1;
$ss->selectAdd();
$ss->selectAdd('notice_id');
Notice::addWhereSinceId($ss, $since_id, 'notice_id');
Notice::addWhereMaxId($ss, $max_id, 'notice_id');
$ss->orderBy('notice_created DESC, notice_id DESC');
if (!is_null($offset)) {
$ss->limit($offset, $limit);
}
$ids = array();
if ($ss->find()) {
while ($ss->fetch()) {
$ids[] = $ss->notice_id;
}
}
return $ids;
}
}

View File

@@ -0,0 +1,155 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2012, StatusNet, Inc.
*
* Train a notice as spam
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2012 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);
}
/**
* Train a notice as spam
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2012 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
class TrainAction extends Action
{
protected $notice = null;
protected $filter = null;
protected $category = null;
/**
* For initializing members of the class.
*
* @param array $argarray misc. arguments
*
* @return boolean true
*/
function prepare($argarray)
{
parent::prepare($argarray);
// User must be logged in.
$user = common_current_user();
if (empty($user)) {
throw new ClientException(_("You must be logged in to train spam."), 403);
}
// User must have the right to review spam
if (!$user->hasRight(ActivitySpamPlugin::TRAINSPAM)) {
throw new ClientException(_('You cannot review spam on this site.'), 403);
}
$id = $this->trimmed('notice');
$this->notice = Notice::staticGet('id', $id);
if (empty($this->notice)) {
throw new ClientException(_("No such notice."));
}
$this->checkSessionToken();
$filter = null;
Event::handle('GetSpamFilter', array(&$filter));
if (empty($filter)) {
throw new ServerException(_("No spam filter configured."));
}
$this->filter = $filter;
$this->category = $this->trimmed('category');
if ($this->category !== SpamFilter::SPAM &&
$this->category !== SpamFilter::HAM)
{
throw new ClientException(_("No such category."));
}
return true;
}
/**
* Handler method
*
* @param array $argarray is ignored since it's now passed in in prepare()
*
* @return void
*/
function handle($argarray=null)
{
// Train
$this->filter->trainOnError($this->notice, $this->category);
// Re-test
$result = $this->filter->test($this->notice);
// Update or insert
$score = Spam_score::save($this->notice, $result);
// Show new toggle form
if ($this->category === SpamFilter::SPAM) {
$form = new TrainHamForm($this, $this->notice);
} else {
$form = new TrainSpamForm($this, $this->notice);
}
if ($this->boolean('ajax')) {
$this->startHTML('text/xml;charset=utf-8');
$this->elementStart('head');
// TRANS: Page title for page on which favorite notices can be unfavourited.
$this->element('title', null, _('Disfavor favorite.'));
$this->elementEnd('head');
$this->elementStart('body');
$form->show();
$this->elementEnd('body');
$this->elementEnd('html');
} else {
common_redirect(common_local_url('spam'), 303);
}
}
}

View File

@@ -0,0 +1,146 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2011, StatusNet, Inc.
*
* Toggle indicating spam, click to train as ham
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2011 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
// This check helps protect against security problems;
// your code file can't be executed directly from the web.
exit(1);
}
/**
* Form
*
* @category Spam
* @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 TrainHamForm extends Form {
var $notice = null;
function __construct($out, $notice) {
parent::__construct($out);
$this->notice = $notice;
}
/**
* Name of the form
*
* Sub-classes should overload this with the name of their form.
*
* @return void
*/
function formLegend()
{
return _("Train ham");
}
/**
* Visible or invisible data elements
*
* Display the form fields that make up the data of the form.
* Sub-classes should overload this to show their data.
*
* @return void
*/
function formData()
{
$this->hidden('notice', $this->notice->id);
}
/**
* Buttons for form actions
*
* Submit and cancel buttons (or whatever)
* Sub-classes should overload this to show their own buttons.
*
* @return void
*/
function formActions()
{
$this->submit('train-ham-submit-' . $this->notice->id,
_('Clear spam'),
'submit',
null,
_("Clear spam"));
}
/**
* ID of the form
*
* Should be unique on the page. Sub-classes should overload this
* to show their own IDs.
*
* @return int ID of the form
*/
function id()
{
return 'train-ham-' . $this->notice->id;
}
/**
* Action of the form.
*
* URL to post to. Should be overloaded by subclasses to give
* somewhere to post to.
*
* @return string URL to post to
*/
function action()
{
return common_local_url('train', array('category' => 'ham'));
}
/**
* Class of the form. May include space-separated list of multiple classes.
*
* If 'ajax' is included, the form will automatically be submitted with
* an 'ajax=1' parameter added, and the resulting form or error message
* will replace the form after submission.
*
* It's up to you to make sure that the target action supports this!
*
* @return string the form's class
*/
function formClass()
{
return 'form-train-ham ajax';
}
}

View File

@@ -0,0 +1,146 @@
<?php
/**
* StatusNet - the distributed open-source microblogging tool
* Copyright (C) 2011, StatusNet, Inc.
*
* Toggle indicating ham, click to train as spam
*
* PHP version 5
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Spam
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2011 StatusNet, Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html AGPL 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
// This check helps protect against security problems;
// your code file can't be executed directly from the web.
exit(1);
}
/**
* Form
*
* @category Spam
* @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 TrainSpamForm extends Form {
var $notice = null;
function __construct($out, $notice) {
parent::__construct($out);
$this->notice = $notice;
}
/**
* Name of the form
*
* Sub-classes should overload this with the name of their form.
*
* @return void
*/
function formLegend()
{
return _("Train spam");
}
/**
* Visible or invisible data elements
*
* Display the form fields that make up the data of the form.
* Sub-classes should overload this to show their data.
*
* @return void
*/
function formData()
{
$this->hidden('notice', $this->notice->id);
}
/**
* Buttons for form actions
*
* Submit and cancel buttons (or whatever)
* Sub-classes should overload this to show their own buttons.
*
* @return void
*/
function formActions()
{
$this->submit('train-spam-submit-' . $this->notice->id,
_('Train spam'),
'submit',
null,
_("Mark as spam"));
}
/**
* ID of the form
*
* Should be unique on the page. Sub-classes should overload this
* to show their own IDs.
*
* @return int ID of the form
*/
function id()
{
return 'train-spam-' . $this->notice->id;
}
/**
* Action of the form.
*
* URL to post to. Should be overloaded by subclasses to give
* somewhere to post to.
*
* @return string URL to post to
*/
function action()
{
return common_local_url('train', array('category' => 'spam'));
}
/**
* Class of the form. May include space-separated list of multiple classes.
*
* If 'ajax' is included, the form will automatically be submitted with
* an 'ajax=1' parameter added, and the resulting form or error message
* will replace the form after submission.
*
* It's up to you to make sure that the target action supports this!
*
* @return string the form's class
*/
function formClass()
{
return 'form-train-spam ajax';
}
}

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - Adsense to Belarusian (Taraškievica orthography) (Беларуская (тарашкевіца))
# Translation of StatusNet - Adsense to Belarusian (Taraškievica orthography) (беларуская (тарашкевіца))
# Exported from translatewiki.net
#
# Author: EugeneZelenko
@@ -10,15 +10,15 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Adsense\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:33+0000\n"
"Language-Team: Belarusian (Taraškievica orthography) <http://translatewiki."
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:31+0000\n"
"Language-Team: Belarusian (Taraškievica orthography) <https://translatewiki."
"net/wiki/Portal:be-tarask>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-27 13:25:53+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-12-03 10:22:41+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: be-tarask\n"
"X-Message-Group: #out-statusnet-plugin-adsense\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - Adsense to Breton (Brezhoneg)
# Translation of StatusNet - Adsense to Breton (brezhoneg)
# Exported from translatewiki.net
#
# Author: Y-M D
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Adsense\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:33+0000\n"
"Language-Team: Breton <http://translatewiki.net/wiki/Portal:br>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:31+0000\n"
"Language-Team: Breton <https://translatewiki.net/wiki/Portal:br>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-27 13:25:53+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-12-03 10:22:41+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: br\n"
"X-Message-Group: #out-statusnet-plugin-adsense\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - Adsense to Catalan (Català)
# Translation of StatusNet - Adsense to Catalan (català)
# Exported from translatewiki.net
#
# Author: Toniher
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Adsense\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:33+0000\n"
"Language-Team: Catalan <http://translatewiki.net/wiki/Portal:ca>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:31+0000\n"
"Language-Team: Catalan <https://translatewiki.net/wiki/Portal:ca>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-27 13:25:53+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-12-03 10:22:41+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: ca\n"
"X-Message-Group: #out-statusnet-plugin-adsense\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

View File

@@ -4,6 +4,7 @@
# Author: Fujnky
# Author: Giftpflanze
# Author: MF-Warburg
# Author: Marcel083
# Author: Michael
# Author: The Evil IP address
# --
@@ -13,14 +14,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Adsense\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:33+0000\n"
"Language-Team: German <http://translatewiki.net/wiki/Portal:de>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:31+0000\n"
"Language-Team: German <https://translatewiki.net/wiki/Portal:de>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-27 13:25:53+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-12-03 10:22:41+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: de\n"
"X-Message-Group: #out-statusnet-plugin-adsense\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -52,7 +53,6 @@ msgid "Client ID"
msgstr "Client-ID"
#. TRANS: Field title in AdSense administration panel.
#, fuzzy
msgid "Google client ID."
msgstr "Google-Client-ID"
@@ -61,7 +61,6 @@ msgid "Ad script URL"
msgstr "Skript-URL"
#. TRANS: Field title in AdSense administration panel.
#, fuzzy
msgid "Script URL (advanced)."
msgstr "Skript-URL (erweitert)"
@@ -78,9 +77,8 @@ msgid "Rectangle"
msgstr "Rechteck"
#. TRANS: Field title in AdSense administration panel.
#, fuzzy
msgid "Rectangle slot code."
msgstr "Rechteck"
msgstr "Rectangle-Slot-Code."
#. TRANS: Field label in AdSense administration panel.
msgid "Leaderboard"
@@ -99,12 +97,10 @@ msgid "Wide skyscraper slot code."
msgstr "Slotcode des weiten Hochhauses."
#. TRANS: Button text to save settings in AdSense administration panel.
#, fuzzy
msgctxt "BUTTON"
msgid "Save"
msgstr "Speichern"
#. TRANS: Button title to save settings in AdSense administration panel.
#, fuzzy
msgid "Save AdSense settings."
msgstr "AdSense-Einstellungen speichern"

View File

@@ -1,6 +1,8 @@
# Translation of StatusNet - Adsense to Spanish (Español)
# Translation of StatusNet - Adsense to Spanish (español)
# Exported from translatewiki.net
#
# Author: Armando-Martin
# Author: Erchache2000
# Author: Translationista
# --
# This file is distributed under the same license as the StatusNet package.
@@ -9,14 +11,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Adsense\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:33+0000\n"
"Language-Team: Spanish <http://translatewiki.net/wiki/Portal:es>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:31+0000\n"
"Language-Team: Spanish <https://translatewiki.net/wiki/Portal:es>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-27 13:25:53+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-12-03 10:22:41+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: es\n"
"X-Message-Group: #out-statusnet-plugin-adsense\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -26,7 +28,6 @@ msgid "AdSense configuration"
msgstr "Configuración de \"AdSense\""
#. TRANS: Menu item for site administration
#, fuzzy
msgctxt "MENU"
msgid "AdSense"
msgstr "AdSense"
@@ -49,7 +50,6 @@ msgid "Client ID"
msgstr "ID de cliente"
#. TRANS: Field title in AdSense administration panel.
#, fuzzy
msgid "Google client ID."
msgstr "ID de cliente de Google"
@@ -58,7 +58,6 @@ msgid "Ad script URL"
msgstr "URL del script del anuncio"
#. TRANS: Field title in AdSense administration panel.
#, fuzzy
msgid "Script URL (advanced)."
msgstr "URL del script (avanzado)"
@@ -67,7 +66,6 @@ msgid "Medium rectangle"
msgstr "Rectángulo mediano"
#. TRANS: Field title in AdSense administration panel.
#, fuzzy
msgid "Medium rectangle slot code."
msgstr "Código de espacio de rectángulo mediano"
@@ -76,7 +74,6 @@ msgid "Rectangle"
msgstr "Rectángulo"
#. TRANS: Field title in AdSense administration panel.
#, fuzzy
msgid "Rectangle slot code."
msgstr "Código de espacio de rectángulo"
@@ -85,26 +82,22 @@ msgid "Leaderboard"
msgstr "Clasificación"
#. TRANS: Field title in AdSense administration panel.
#, fuzzy
msgid "Leaderboard slot code."
msgstr "Código de espacio de clasificación"
msgstr "Código colocado en el panel de comandos"
#. TRANS: Field label in AdSense administration panel.
msgid "Skyscraper"
msgstr "Banderola rascacielos"
#. TRANS: Field title in AdSense administration panel.
#, fuzzy
msgid "Wide skyscraper slot code."
msgstr "Código de espacio de banderola rascacielos ancha"
msgstr "Código colocado en rectángulo (''banner'') vertical ancho"
#. TRANS: Button text to save settings in AdSense administration panel.
#, fuzzy
msgctxt "BUTTON"
msgid "Save"
msgstr "Guardar"
#. TRANS: Button title to save settings in AdSense administration panel.
#, fuzzy
msgid "Save AdSense settings."
msgstr "Guardar la configuración de AdSense"
msgstr "Guardar configuración de AdSense."

View File

@@ -0,0 +1,102 @@
# Translation of StatusNet - Adsense to Basque (euskara)
# Exported from translatewiki.net
#
# Author: Artsuaga
# Author: Unai Fdz. de Betoño
# --
# This file is distributed under the same license as the StatusNet package.
#
msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Adsense\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:31+0000\n"
"Language-Team: Basque <https://translatewiki.net/wiki/Portal:eu>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-12-03 10:22:41+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: eu\n"
"X-Message-Group: #out-statusnet-plugin-adsense\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Menu item title/tooltip
msgid "AdSense configuration"
msgstr "AdSense konfigurazioa"
#. TRANS: Menu item for site administration
msgctxt "MENU"
msgid "AdSense"
msgstr "AdSense"
#. TRANS: Plugin description.
msgid "Plugin to add Google AdSense to StatusNet sites."
msgstr "Google Adsense Statusnet guneetara gehitzeko plugina."
#. TRANS: Title of AdSense administrator panel.
msgctxt "TITLE"
msgid "AdSense"
msgstr "AdSense"
#. TRANS: Instructions for AdSense administrator panel.
msgid "AdSense settings for this StatusNet site"
msgstr "AdSense aukerak StatusNet gune hontarako"
#. TRANS: Field label in AdSense administration panel.
msgid "Client ID"
msgstr "ID bezeroa"
#. TRANS: Field title in AdSense administration panel.
msgid "Google client ID."
msgstr "Google bezero IDa."
#. TRANS: Field label in AdSense administration panel.
msgid "Ad script URL"
msgstr "Gehitu scriptaren URLa"
#. TRANS: Field title in AdSense administration panel.
msgid "Script URL (advanced)."
msgstr "Scriptaren URLa (aurreratua)."
#. TRANS: Field label in AdSense administration panel.
msgid "Medium rectangle"
msgstr "Laukizuzen ertaina"
#. TRANS: Field title in AdSense administration panel.
msgid "Medium rectangle slot code."
msgstr "Lauki ertaineko kodea."
#. TRANS: Field label in AdSense administration panel.
msgid "Rectangle"
msgstr "Laukizuzena"
#. TRANS: Field title in AdSense administration panel.
msgid "Rectangle slot code."
msgstr "Laukiko kodea."
#. TRANS: Field label in AdSense administration panel.
msgid "Leaderboard"
msgstr "Sailkapena"
#. TRANS: Field title in AdSense administration panel.
msgid "Leaderboard slot code."
msgstr "Sailkapeneko kodea."
#. TRANS: Field label in AdSense administration panel.
msgid "Skyscraper"
msgstr "Lauki bertikala"
#. TRANS: Field title in AdSense administration panel.
msgid "Wide skyscraper slot code."
msgstr "Lauki bertikaleko kodea."
#. TRANS: Button text to save settings in AdSense administration panel.
msgctxt "BUTTON"
msgid "Save"
msgstr "Gorde"
#. TRANS: Button title to save settings in AdSense administration panel.
msgid "Save AdSense settings."
msgstr "Gorde AdSense aukerak."

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - Adsense to French (Français)
# Translation of StatusNet - Adsense to French (français)
# Exported from translatewiki.net
#
# Author: Brunoperel
@@ -13,14 +13,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Adsense\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:33+0000\n"
"Language-Team: French <http://translatewiki.net/wiki/Portal:fr>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:31+0000\n"
"Language-Team: French <https://translatewiki.net/wiki/Portal:fr>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-27 13:25:53+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-12-03 10:22:41+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: fr\n"
"X-Message-Group: #out-statusnet-plugin-adsense\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"

View File

@@ -1,4 +1,4 @@
# Translation of StatusNet - Adsense to Galician (Galego)
# Translation of StatusNet - Adsense to Galician (galego)
# Exported from translatewiki.net
#
# Author: Toliño
@@ -9,14 +9,14 @@ msgid ""
msgstr ""
"Project-Id-Version: StatusNet - Adsense\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2011-05-05 20:48+0000\n"
"PO-Revision-Date: 2011-05-05 20:48:33+0000\n"
"Language-Team: Galician <http://translatewiki.net/wiki/Portal:gl>\n"
"POT-Creation-Date: 2012-06-30 11:07+0000\n"
"PO-Revision-Date: 2012-06-30 11:07:31+0000\n"
"Language-Team: Galician <https://translatewiki.net/wiki/Portal:gl>\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-POT-Import-Date: 2011-04-27 13:25:53+0000\n"
"X-Generator: MediaWiki 1.18alpha (r87509); Translate extension (2011-04-26)\n"
"X-Translation-Project: translatewiki.net at http://translatewiki.net\n"
"X-POT-Import-Date: 2011-12-03 10:22:41+0000\n"
"X-Generator: MediaWiki 1.20alpha (233fc08); Translate 2012-06-21\n"
"X-Translation-Project: translatewiki.net <https://translatewiki.net>\n"
"X-Language-Code: gl\n"
"X-Message-Group: #out-statusnet-plugin-adsense\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
@@ -26,14 +26,13 @@ msgid "AdSense configuration"
msgstr "Configuración de AdSense"
#. TRANS: Menu item for site administration
#, fuzzy
msgctxt "MENU"
msgid "AdSense"
msgstr "AdSense"
#. TRANS: Plugin description.
msgid "Plugin to add Google AdSense to StatusNet sites."
msgstr ""
msgstr "Complemento para engadir Google AdSense aos sitios de StatusNet."
#. TRANS: Title of AdSense administrator panel.
msgctxt "TITLE"
@@ -49,43 +48,40 @@ msgid "Client ID"
msgstr "Identificación do cliente"
#. TRANS: Field title in AdSense administration panel.
#, fuzzy
msgid "Google client ID."
msgstr "Identificación do cliente de Google"
msgstr "Identificación do cliente de Google."
#. TRANS: Field label in AdSense administration panel.
msgid "Ad script URL"
msgstr ""
msgstr "Enderezo URL da escritura do anuncio"
#. TRANS: Field title in AdSense administration panel.
msgid "Script URL (advanced)."
msgstr ""
msgstr "Enderezo URL da escritura (avanzado)."
#. TRANS: Field label in AdSense administration panel.
msgid "Medium rectangle"
msgstr ""
msgstr "Rectángulo mediano"
#. TRANS: Field title in AdSense administration panel.
msgid "Medium rectangle slot code."
msgstr ""
msgstr "Código disposto no rectángulo mediano."
#. TRANS: Field label in AdSense administration panel.
msgid "Rectangle"
msgstr "Rectángulo"
#. TRANS: Field title in AdSense administration panel.
#, fuzzy
msgid "Rectangle slot code."
msgstr "Rectángulo"
msgstr "Código disposto no rectángulo."
#. TRANS: Field label in AdSense administration panel.
msgid "Leaderboard"
msgstr "Taboleiro de logros"
#. TRANS: Field title in AdSense administration panel.
#, fuzzy
msgid "Leaderboard slot code."
msgstr "Taboleiro de logros"
msgstr "Código disposto no taboleiro de logros."
#. TRANS: Field label in AdSense administration panel.
msgid "Skyscraper"
@@ -93,15 +89,13 @@ msgstr "Rañaceos"
#. TRANS: Field title in AdSense administration panel.
msgid "Wide skyscraper slot code."
msgstr ""
msgstr "Código disposto no rañaceos."
#. TRANS: Button text to save settings in AdSense administration panel.
#, fuzzy
msgctxt "BUTTON"
msgid "Save"
msgstr "Gardar"
#. TRANS: Button title to save settings in AdSense administration panel.
#, fuzzy
msgid "Save AdSense settings."
msgstr "Gardar a configuración de AdSense"
msgstr "Gardar a configuración de AdSense."

Some files were not shown because too many files have changed in this diff Show More