52 Commits

Autor SHA1 Mensagem Data
Diogo Cordeiro ebe07c81b1 [MODULES] Allow to delete third party plugins 2019-08-21 10:55:52 +01:00
Diogo Cordeiro 83e58c001d [MODULES] Allow to upload third party plugins
Fixed some bugs
2019-08-21 10:55:52 +01:00
Diogo Cordeiro b55ccf631d [MODULES] List all available plugins and allow enabling them via UI
Yet another revision of the Admin Plugin Management tool
2019-08-21 10:55:52 +01:00
Diogo Cordeiro 353ef7073c [DOCUMENTATION][DEVELOPERS][PLUGINS] Some updates to Plugins doc 2019-08-21 10:55:52 +01:00
Diogo Cordeiro 96ca511d08 [TagCloud] Add Readme 2019-08-21 10:55:52 +01:00
Diogo Cordeiro 1960d6a861 [SearchSub][README] No longer is a default plugin since 8614cd77 2019-08-21 10:55:52 +01:00
Diogo Cordeiro c0fe67c246 [SamplePlugin] Review and update with the latest GNU social best practices 2019-08-21 10:55:52 +01:00
Diogo Cordeiro f7d18df4d3 [ConversationTree] Format the plugin, add strict typing and fix docblocks 2019-08-21 10:55:52 +01:00
Diogo Cordeiro ac8dbcc399 [OfflineBackup] Fix plugin 2019-08-21 10:55:52 +01:00
Diogo Cordeiro 58a52076c3 [PLUGINS] Removed OpenX as the service doesn't exist anymore 2019-08-21 10:55:52 +01:00
Diogo Cordeiro cc7b640d7e [GroupFavorited] Fix plugin 2019-08-21 10:55:52 +01:00
Diogo Cordeiro d11393c939 [ExtendedProfile] Hide 'Extra fields' from profile when no field was created by the sysadmin 2019-08-21 10:55:52 +01:00
Diogo Cordeiro 68d1dcddee [ExtendedProfile] Allow to delete custom profile field 2019-08-21 10:55:51 +01:00
Diogo Cordeiro b17ab7018d [Plugins] Incorporated GNUsocialExtendedProfile as part of ExtendedProfile
Also improved a lot of the plugin and made things in a way it would make sense
2019-08-21 10:55:51 +01:00
Diogo Cordeiro 55102c3399 [GNUsocialProfileExtensions] Fixed plugin 2019-08-21 10:55:51 +01:00
Diogo Cordeiro 97af61f0ac [PLUGINS] Removed GNUsocial{Photo, Photos, Video} as we don't need them anymore 2019-08-21 10:55:51 +01:00
Diogo Cordeiro 2c0fff43ef [PLUGINS] Removed GeoURL as the service doesn't exist anymore 2019-08-21 10:55:51 +01:00
Diogo Cordeiro 6e6424a900 [ForceGroup] Modernized plugin and improved documentation 2019-08-21 10:54:39 +01:00
Diogo Cordeiro 2138d9edf9 [DEFAULT] Add 'DirectionDetector' as a default plugin 2019-08-21 10:54:39 +01:00
Diogo Cordeiro 0cb481be79 [ChooseTheme] Fixed plugin 2019-08-21 10:54:39 +01:00
Diogo Cordeiro 21f7be5617 [BlankAd] Fixed plugin 2019-08-21 10:54:39 +01:00
Diogo Cordeiro 6cad795435 [Awesomeness] Fixed plugin 2019-08-21 10:54:39 +01:00
Diogo Cordeiro a989c2f513 [DEFAULT] Add 'AccountManager' as a default plugin 2019-08-21 10:54:39 +01:00
Diogo Cordeiro c2a38927a9 [CORE] Core modules shouldn't show up in version action 2019-08-21 10:54:38 +01:00
Diogo Cordeiro 65e5c25b78 [CORE] Refactor Plugin API to Module API 2019-08-21 10:54:38 +01:00
Diogo Cordeiro 74c0e15db9 [PLUGIN API] Bug fixes and improvements 2019-08-21 10:50:19 +01:00
Diogo Cordeiro 6368d25cf5 [CORE] Move plugin superclasses from /lib/ to /lib/modules/ 2019-08-21 10:50:19 +01:00
Diogo Cordeiro 40743d875f [CORE] Move core plugins to a new modules directory
For reference (raised by rozzin in IRC):

* http://foldoc.org/module
* http://foldoc.org/library
* http://foldoc.org/plugin

As noted by XRevan86, modules are not necessarily non-essential.
As we will keep the modules directory in GS root [therefore, near to
plugins/], it is evidenced the difference between both.

This is a simple yet fundamental structural change. It doesn't change
functionality but makes clearer the way we understand GNU social's
internals.
2019-08-21 10:50:19 +01:00
Miguel Dantas 9a30478ebc [Embed] Added support for inline images 2019-08-21 10:50:18 +01:00
tenma f98dc17a82 Merge branch 'nightly' of tenma/gnu-social into nightly 2019-08-20 23:54:51 +00:00
tenma 052447fcca [DirectMessage] Major plugin rework
This commit does the necessary rework to store private messages
as Notices and to support Federation. The plugin's README presents
some more detail about the changes and future work that is still
required to do.
2019-08-21 00:46:47 +01:00
tenma 9653038a6a [CORE][ROUTES] Update urlmapper to search dynamic routes before static ones when generating URLs.
This solves the problem of routes that differ only in having
or not $_GET params. The ones not having params (static) were
being matched first during URL generation.
2019-08-21 00:46:47 +01:00
tenma 7aafeb1e9d [CORE] Add new Notice scope for private messaging
Notice:
- Add MESSAGE_SCOPE scope

lib/*.stream:
- Filter out notices with MESSAGE_SCOPE scope
2019-08-21 00:46:44 +01:00
Miguel Dantas eb28eb3d3f [Embed] Added support for inline images 2019-08-19 19:48:32 +01:00
Miguel Dantas a2b163911b [Embed] Only resize thumbnail if it's bigger than the desired size 2019-08-19 01:41:46 +01:00
Diogo Cordeiro 6866f95387 [DOCUMENTATION] Add release notes
Update CHANGELOG and re-add TODO
2019-08-17 22:22:58 +01:00
Diogo Cordeiro cb963e26bd Merge branch 'activitypub' into nightly 2019-08-15 22:33:41 +01:00
Diogo Cordeiro 9a928ea81c [ActivityPub] Move models from 'classes' to 'lib/models' 2019-08-15 21:54:28 +01:00
tenma 8ef3ac850f [ActivityPub] Fix WebFinger event subscription
ActivityPubPlugin:
- remove reference to the first argument of onEndWebFingerProfileLinks, no need
as it is an object
2019-08-15 21:54:28 +01:00
tenma d0628cb57d [ActivityPub] Fix handling of Delete Activity
inbox_handler:
- Call stronger validation method for Delete Activity objects
- Take into account mixed object in handle_delete

Activitypub_delete:
- Add validation method for Delete Activity objects
2019-08-15 21:54:28 +01:00
Diogo Cordeiro 006fa93601 [ActivityPub] This is the first release of the plugin 2019-08-15 21:54:27 +01:00
tenma 7e64ddbee6 [ActivityPub] Use queues for notice distribution
ActivityPubPlugin:
- Change event-based notice distribution to queues logic

ActivityPub/lib:
- Add queue handler class activitypubqueuehandler.php

Misc:
- Add documentation for the (Start/End)InitializeQueueManager events
2019-08-15 21:54:27 +01:00
tenma ab3839d35c [OStatus] Fix notice enqueue
OStatusPlugin:
- Enqueue in the last position, as it should be. No need to worry about
the OMB comment, this protocol no longer have queue handlers that could
cause a conflict.
2019-08-15 21:54:27 +01:00
tenma adf52a849e [ActivityPub] Ensuring federation with other software
ActivityPubPlugin:
- Prevent sending a Delete for an Announce

Activitypub_announce:
- Update announce_to_array to add id, to and cc information to the retrieved object

Activitypub_follow:
- Add id to the arguments of follow_to_array, useful for Accept-Follow activities

Activitypub_notice:
- Fix notice validation, url isn't a MUST

Activitypub_inbox_handler:
- Make handle_follow use the received activity id for the later Accept-Follow

Activitypub_postman:
- Fix call to the updated announce_to_array
- Fix successive unnecessary calls to ActivityPubPlugin::actor_uri()
2019-08-15 21:54:27 +01:00
brunoccast 811614fb0f [ActivityPub] Fix notice creation
Activitypub_notice:
- Perform url test, use id when missing.
2019-08-15 21:54:27 +01:00
brunoccast af11a62ecb [ActivityPub] Routes
ActivityPubPlugin:
- Update routes to properly use the updated URLMapper
2019-08-15 21:54:27 +01:00
brunoccast 04df34b0ec [ActivityPub] Ensuring notice deletion
ActivityPubPlugin:
- Minor onDeleteOwnNotice rewrite

Activitypub_inbox_handler:
- Add deletion check to incoming notice

Activitypub_postman:
- Call the correct getUrl function
2019-08-15 21:54:27 +01:00
brunoccast 752fff3330 [ActivityPub] Ensuring Notice Favor/Disfavor
ActivityPubPlugin:
- Minor re-write of favor/disfavor event handlers

Activitypub_postman:
like/undo-like:
- fix proper getUrl() call
misc:
- make all activities accumulate errors (may be needed later) and log some information about it
2019-08-15 21:54:27 +01:00
brunoccast 9b1cabd3b7 [ActivityPub] Ensuring notice distribution
ActivityPubPlugin:
- Fix of accepted activity verbs to include SHARES
- Add attention profiles to delivery when announcing

Activitypub_notice:
- New local function to retrieve original URL
- Removal of unnecessary 'Atom*' attributes
- Small fix to the ensuring of actor profile

Activitypub_profile:
- New local function to fetch AP profiles from a collection

Activitypub_postman:
- Fix url passed in the announce activity
2019-08-15 21:54:27 +01:00
brunoccast 8dec67e00f [ActivityPub] Caching of Following/Followers interactions and collections
Follow interaction:
- Fixed mini-bug where the subscriber profile was being used as the subscribed
- Updated cache subscription-related values in both instances
- Tested and working with local GS instances

Unfollow interaction:
- Updated cache subscription-related values in both instances
- Tested and working with local GS instances

Followers/Following collections:
- Now returning ActivityPub profiles only
- Stored collections in cache

Misc:
- Fix bug concerning the retrieval of public/private-key after in-function generation
2019-08-15 21:54:27 +01:00
brunoccast 5b08487de9 [ActivityPub] Routes
ActivityPubPlugin:
- Update routes to properly use URLMapper
- Minor updates
2019-08-15 21:54:27 +01:00
Diogo Cordeiro 97e7aabeb4 [CORE] Add ActivityPub plugin
This is not the same as the one in https://notabug.org/diogo/gnu-social-activitypub-plugin
Differences to the first "release"
-> Doesn't use guzzle nor has any composer dependencies
-> Supports HTTP Signatures
-> Has basic l10n/i18n
-> Some minor bug fixes
2019-08-15 21:54:27 +01:00
16410 arquivos alterados com 104333 adições e 1191583 exclusões
+7 -6
Ver Arquivo
@@ -12,16 +12,16 @@ Load and Storage:
- New media handling system
- GS is now structurely divided in includes and public
- OEmbed upgraded to Embed plugin (Now we provide Open Graph information too)
- Added support for PostgreSQL
- Added Redis based caching and queues
- Improved memcached support
Federation:
- Added ActivityPub support
- RemoteFollow: Remote follow ActivityPub and OStatus remote actors via the click of a button
- ActorLists: Allow to create collections of Actors and to interact with them - supports both OStatus and ActivityPub
- The Free Network: Automagically migrate internal remote profiles between Free Network protocols
- Enabled the search box to import remote notices and profiles
- Improvements on Nodeinfo (and new route)
- Add ActivityPub support
- OstatusSub: Remote follow OS and AP profiles via OStatusSub
- ActorLists: Allow to create collections of Actors and to interact with them - supports both OS and AP
- The Free Network: Automagically migrate internal remote profiles between Free Network protocols (check Nodeinfo)
- Enable the search box to import remote notices and profiles
General:
- Composer was integrated
@@ -29,6 +29,7 @@ General:
Modules:
- Restored built-in plugins
- New modules system: core plugins and plugins physically separated
- Refactored of Plugin API to better illustrate the idea of modules
- Bug fixes of core modules logic
- Improved plugin management tool (now all available plugins are shown and third party can be uploaded and deleted)
+2 -1
Ver Arquivo
@@ -46,7 +46,7 @@ Additional Contributors
* Blaine Cook
* Henry Story
* Melvin Carvalho
* Stéphane Bérubé
* chimo
* Akio
* Maiyannah Bishop
* Bob Mottram
@@ -55,6 +55,7 @@ Additional Contributors
* Moonman
* Normandy
* Verius
* Alexei Sorokin
* Daniel Supernault
Credits for StatusNet
@@ -1,7 +1,7 @@
GNU social Coding Style
===========================
Please comply with [PSR-12](https://www.php-fig.org/psr/psr-12/) and the following standard when working on GNU social
Please comply with [PSR-2](https://www.php-fig.org/psr/psr-2/) and the following standard when working on GNU social
if you want your patches accepted and modules included in supported releases.
If you see code which doesn't comply with the below, please fix it :)
@@ -118,7 +118,7 @@ Some short hands are evil:
Naming conventions
-------------------------------------------------------------------------------
Respect PSR-12 first.
Respect PSR2 first.
- Classes use PascalCase (e.g. MyClass).
- Functions/Methods use camelCase (e.g. myFunction).
@@ -145,29 +145,11 @@ Also, whereever possible, avoid ambiguous terms. For example, don't use text
as a term for a variable. Call back to "contents" above.
Arrays
-------------------------------------------------------------------------------
Even though PSR-12 doesn't specifically specify rules for array formatting, it
is in the spirit of it to have every array element on a new line like is done
for function and class method arguments and condition expressions, if there is
more than one element.
In this case, even the last element should end on a comma, to ease later
element addition.
$foo = ['first' => 'unu'];
$bar = [
'first' => 'once',
'second' => 'twice',
'third' => 'thrice',
];
Comparisons
-------------------------------------------------------------------------------
Always use symbol based comparison operators (&&, ||) instead of text based
operators (and, or) in an "if" clause as they are evaluated in different order
and at different speeds.
This is will prevent any confusion or strange results.
operators (AND, OR) as they are evaluated in different orders and at different
speeds. This is will prevent any confusion or strange results.
Use English
+1 -14
Ver Arquivo
@@ -1447,7 +1447,7 @@ CreateFileImageThumbnailSource: Hook to create image thumbnail source from a Fil
StartResizeImageFile: Hook to resize an image and output it to a file. No matching End event yet.
- $imagefile: ImageFile object we're resizing.
- $outpath: string with output filepath
- $outpath: string with output filepath
- $box: array with size ('width', 'height') and boundary box('x', 'y', 'w', 'h').
FillImageFileMetadata: Get more metadata about the ImageFile if it is perhaps not a real local file
@@ -1496,16 +1496,3 @@ StartDocNav: Before outputting the docs Nav
EndDocNav: After outputting the docs Nav
- $nav: The DoclNav widget
StartNoticeSearch: Before finding notices that match the given query
- string $query: The text query
StartNoticeSearchShowResults: Before displaying notices matching the query
- $out: HTMLOutputter used to output
- $query: The text query
- $notices: Array of DB notice objects
EndNoticeSearchShowResults: After displaying notices matching the query
- $out: HTMLOutputter used to output
- $query: The text query
- $notices: Array of DB notice objects
+9 -9
Ver Arquivo
@@ -6,7 +6,7 @@ SamplePlugin.php
Each plugin requires a main class to interact with the GNU social system.
The main class usually extends the Plugin class that comes with GNU social.
The main class usually extends the Module class that comes with GNU social.
The class has standard-named methods that will be called when certain events
happen in the code base. These methods have names like 'onX' where X is an
@@ -53,14 +53,14 @@ addPlugin('Sample');
Third Party Plugins must be installed in `local/plugins/{$name}/{$pluginclass}.php`
Here, `{$name}` is the name of the plugin, like 'Sample', and `{$pluginclass}`
is the name of the main class, like 'SamplePlugin'. Plugins that are part of
is the name of the main class, like 'SampleModule'. Plugins that are part of
the main GNU social distribution go in 'plugins' and third-party or local ones
go in 'local'.
Simple plugins can be implemented as a single plugin. Others are more complex
and require additional plugins; these should use their own directory, like
Simple plugins can be implemented as a single module. Others are more complex
and require additional modules; these should use their own directory, like
'local/plugins/{$name}/'. All files related to the plugin, including images,
JavaScript, CSS, external libraries or PHP plugins should go in the plugin
JavaScript, CSS, external libraries or PHP modules should go in the plugin
directory.
Plugin Configuration
@@ -144,10 +144,10 @@ public function onCheckSchema(): bool
}
```
Load related plugins when needed
Load related modules when needed
--------------------------------
Most non-trivial plugins will require extra plugins to do their work. Typically
Most non-trivial plugins will require extra modules to do their work. Typically
these include data classes, action classes, widget classes, or external libraries.
This method receives a class name and loads the PHP file related to that class.
@@ -217,11 +217,11 @@ public function onEndPrimaryNav($action): bool
return true;
}
public function onPluginVersion(&$versions): bool
public function onModuleVersion(&$versions): array
{
$versions[] = [
'name' => 'Sample',
'version' => GNUSOCIAL_VERSION,
'version' => PLUGIN_VERSION,
'author' => 'Brion Vibber, Evan Prodromou',
'homepage' => 'http://example.org/plugin',
'rawdescription' =>
@@ -0,0 +1,116 @@
<?php
// This file is part of GNU social - https://www.gnu.org/software/social
//
// GNU social is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// GNU social is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with GNU social. If not, see <http://www.gnu.org/licenses/>.
/**
* StatusNet, the distributed open-source microblogging tool
*
* Module to add additional awesomenss to StatusNet
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Module
* @package StatusNet
* @author Jeroen De Dauw <jeroendedauw@gmail.com>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
defined('GNUSOCIAL') || die();
/**
* Fun sample plugin: tweaks input data and adds a 'Cornify' widget to sidebar.
*
* @category Module
* @package GNUsocial
* @author Jeroen De Dauw <jeroendedauw@gmail.com>
* @copyright 2019 Free Software Foundation, Inc http://www.fsf.org
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
*/
class AwesomenessModule extends Module
{
const PLUGIN_VERSION = '13.37.42';
public function onModuleVersion(array &$versions)
{
$versions[] = [
'name' => 'Awesomeness',
'version' => self::PLUGIN_VERSION,
'author' => 'Jeroen De Dauw',
'homepage' => 'https://git.gnu.io/gnu/gnu-social/tree/master/plugins/Awesomeness',
// TRANS: Module description for a sample plugin.
'rawdescription' => _m('The Awesomeness plugin adds additional awesomeness ' .
'to a GNU social installation.')
];
return true;
}
/**
* Add the conrnify button
*
* @param Action $action the current action
*
* @return void
*/
public function onEndShowSections(Action $action)
{
$action->elementStart('div', ['id' => 'cornify_section',
'class' => 'section']);
$action->raw(
<<<EOT
<a href="https://www.cornify.com" onclick="cornify_add();return false;">
<img src="https://www.cornify.com/assets/cornify.gif" width="61" height="16" border="0" alt="Cornify" />
</a>
EOT
);
$action->elementEnd('div');
}
public function onEndShowScripts(Action $action)
{
$action->script($this->path('js/cornify.js'));
}
/**
* Hook for new-notice form processing to take our HTML goodies;
* won't affect API posting etc.
*
* @param NewNoticeAction $action
* @param User $user
* @param string $content
* @param array $options
* @return bool hook return
*/
public function onStartSaveNewNoticeWeb($action, $user, &$content, &$options)
{
$content = htmlspecialchars($content);
$options['rendered'] = preg_replace("/(^|\s|-)((?:awesome|awesomeness)[\?!\.\,]?)(\s|$)/i", " <b>$2</b> ", $content);
}
}
@@ -1,90 +0,0 @@
<?php
// This file is part of GNU social - https://www.gnu.org/software/social
//
// GNU social is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// GNU social is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero General Public License
// along with GNU social. If not, see <http://www.gnu.org/licenses/>.
defined('GNUSOCIAL') || die();
/**
* Fun sample plugin: tweaks input data and adds a 'Cornify' widget to sidebar.
*
* @category Plugin
* @package GNUsocial
* @author Jeroen De Dauw <jeroendedauw@gmail.com>
* @copyright 2019 Free Software Foundation, Inc http://www.fsf.org
* @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later
*/
class AwesomenessPlugin extends Plugin
{
const PLUGIN_VERSION = '13.37.42';
public function onPluginVersion(array &$versions): bool
{
$versions[] = [
'name' => 'Awesomeness',
'version' => self::PLUGIN_VERSION,
'author' => 'Jeroen De Dauw',
'homepage' => GNUSOCIAL_ENGINE_REPO_URL . 'tree/master/plugins/Awesomeness',
// TRANS: Plugin description for a sample plugin.
'rawdescription' => _m('The Awesomeness plugin adds additional awesomeness ' .
'to a GNU social installation.')
];
return true;
}
/**
* Add the conrnify button
*
* @param Action $action the current action
*
* @return void
*/
public function onEndShowSections(Action $action)
{
$action->elementStart('div', ['id' => 'cornify_section',
'class' => 'section']);
$action->raw(
<<<EOT
<a href="https://www.cornify.com" onclick="cornify_add();return false;">
<img src="https://www.cornify.com/assets/cornify.gif" width="61" height="16" border="0" alt="Cornify" />
</a>
EOT
);
$action->elementEnd('div');
}
public function onEndShowScripts(Action $action)
{
$action->script($this->path('js/cornify.js'));
}
/**
* Hook for new-notice form processing to take our HTML goodies;
* won't affect API posting etc.
*
* @param NewNoticeAction $action
* @param User $user
* @param string $content
* @param array $options
* @return bool hook return
*/
public function onStartSaveNewNoticeWeb($action, $user, &$content, &$options)
{
$content = htmlspecialchars($content);
$options['rendered'] = preg_replace("/(^|\s|-)((?:awesome|awesomeness)[\?!\.\,]?)(\s|$)/i", " <b>$2</b> ", $content);
}
}
@@ -17,8 +17,8 @@ msgstr ""
"Language: af\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ar_EG\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ast\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: be@tarask\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: bn_IN\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: br\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: GNU social\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2015-02-02 17:47+0100\n"
"PO-Revision-Date: 2019-08-21 14:01+0100\n"
"PO-Revision-Date: 2015-02-06 15:02+0000\n"
"Last-Translator: digitaldreamer <digitaldreamer@email.cz>\n"
"Language-Team: German (http://www.transifex.com/gnu-social/gnu-social/language/de/)\n"
"MIME-Version: 1.0\n"
@@ -17,9 +17,9 @@ msgstr ""
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
msgstr "Das Awesomeness-Plugin fügt zusätzliche Großartigkeit zu einer GNU social-Installation hinzu."
msgstr "Das Awesomeness-Module fügt zusätzliche Großartigkeit zu einer GNU social-Installation hinzu."
@@ -17,8 +17,8 @@ msgstr ""
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -18,8 +18,8 @@ msgstr ""
"Language: en_GB\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: eo\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -18,8 +18,8 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: eu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: fa\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: fur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: gl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: he\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: hsb\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: hy_AM\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ia\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -18,8 +18,8 @@ msgstr ""
"Language: io\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: is\n"
"Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ka\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ko\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ksh\n"
"Plural-Forms: nplurals=3; plural=(n==0) ? 0 : (n==1) ? 1 : 2;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: lb\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: lt\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: lv\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: mg\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: mk\n"
"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ml\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ms\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: my\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: nb\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ne\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: nn\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: pl\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -18,8 +18,8 @@ msgstr ""
"Language: pt_BR\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ro_RO\n"
"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: sr\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -18,8 +18,8 @@ msgstr ""
"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ta\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: te\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: tl\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: uk\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: ur_PK\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: vi\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: zh\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -17,8 +17,8 @@ msgstr ""
"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description for a sample plugin.
#: AwesomenessPlugin.php:55
#. TRANS: Module description for a sample plugin.
#: AwesomenessModule.php:55
msgid ""
"The Awesomeness plugin adds additional awesomeness to a GNU social "
"installation."
@@ -0,0 +1,132 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Module for testing ad layout
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Ads
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2010 StatusNet Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
exit(1);
}
/**
* Module for testing ad layout
*
* This plugin uses the UAPModule framework to output ad content. However,
* its ad content is just images with one red pixel stretched to the
* right size. It's mostly useful for debugging theme layout.
*
* To use this plugin, set the parameter for the ad size you want to use
* to true (or anything non-null). For example, to make a leaderboard:
*
* addPlugin('BlankAd', array('leaderboard' => true));
*
* @category Module
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*
* @seeAlso Location
*/
class BlankAdModule extends UAPModule
{
const PLUGIN_VERSION = '2.0.0';
/**
* Show a medium rectangle 'ad'
*
* @param Action $action Action being shown
*
* @return void
*/
protected function showMediumRectangle($action)
{
$action->element('img',
array('width' => 300,
'height' => 250,
'src' => $this->path('redpixel.png')),
'');
}
/**
* Show a rectangle 'ad'
*
* @param Action $action Action being shown
*
* @return void
*/
protected function showRectangle($action)
{
$action->element('img',
array('width' => 180,
'height' => 150,
'src' => $this->path('redpixel.png')),
'');
}
/**
* Show a wide skyscraper ad
*
* @param Action $action Action being shown
*
* @return void
*/
protected function showWideSkyscraper($action)
{
$action->element('img',
array('width' => 160,
'height' => 600,
'src' => $this->path('redpixel.png')),
'');
}
/**
* Show a leaderboard ad
*
* @param Action $action Action being shown
*
* @return void
*/
protected function showLeaderboard($action)
{
$action->element('img',
array('width' => 728,
'height' => 90,
'src' => $this->path('redpixel.png')),
'');
}
function onModuleVersion(array &$versions)
{
$versions[] = array('name' => 'BlankAd',
'version' => self::PLUGIN_VERSION,
'author' => 'Evan Prodromou',
'homepage' => 'https://git.gnu.io/gnu/gnu-social/tree/master/plugins/BlankAdModule',
'rawdescription' =>
// TRANS: Module description.
_m('Module for testing ad layout.'));
return true;
}
}
@@ -1,132 +0,0 @@
<?php
/**
* StatusNet, the distributed open-source microblogging tool
*
* Plugin for testing ad layout
*
* PHP version 5
*
* LICENCE: This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @category Ads
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @copyright 2010 StatusNet Inc.
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*/
if (!defined('STATUSNET')) {
exit(1);
}
/**
* Plugin for testing ad layout
*
* This plugin uses the UAPPlugin framework to output ad content. However,
* its ad content is just images with one red pixel stretched to the
* right size. It's mostly useful for debugging theme layout.
*
* To use this plugin, set the parameter for the ad size you want to use
* to true (or anything non-null). For example, to make a leaderboard:
*
* addPlugin('BlankAd', array('leaderboard' => true));
*
* @category Plugin
* @package StatusNet
* @author Evan Prodromou <evan@status.net>
* @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
* @link http://status.net/
*
* @seeAlso Location
*/
class BlankAdPlugin extends UAPPlugin
{
const PLUGIN_VERSION = '2.0.0';
/**
* Show a medium rectangle 'ad'
*
* @param Action $action Action being shown
*
* @return void
*/
protected function showMediumRectangle($action)
{
$action->element('img',
array('width' => 300,
'height' => 250,
'src' => $this->path('redpixel.png')),
'');
}
/**
* Show a rectangle 'ad'
*
* @param Action $action Action being shown
*
* @return void
*/
protected function showRectangle($action)
{
$action->element('img',
array('width' => 180,
'height' => 150,
'src' => $this->path('redpixel.png')),
'');
}
/**
* Show a wide skyscraper ad
*
* @param Action $action Action being shown
*
* @return void
*/
protected function showWideSkyscraper($action)
{
$action->element('img',
array('width' => 160,
'height' => 600,
'src' => $this->path('redpixel.png')),
'');
}
/**
* Show a leaderboard ad
*
* @param Action $action Action being shown
*
* @return void
*/
protected function showLeaderboard($action)
{
$action->element('img',
array('width' => 728,
'height' => 90,
'src' => $this->path('redpixel.png')),
'');
}
public function onPluginVersion(array &$versions): bool
{
$versions[] = array('name' => 'BlankAd',
'version' => self::PLUGIN_VERSION,
'author' => 'Evan Prodromou',
'homepage' => GNUSOCIAL_ENGINE_REPO_URL . 'tree/master/plugins/BlankAdPlugin',
'rawdescription' =>
// TRANS: Plugin description.
_m('Plugin for testing ad layout.'));
return true;
}
}
@@ -1,6 +1,6 @@
Plugin for testing ad layout
Module for testing ad layout
This plugin uses the UAPPlugin framework to output ad content. However,
This plugin uses the UAPModule framework to output ad content. However,
its ad content is just images with one red pixel stretched to the
right size. It's mostly useful for debugging theme layout.
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:129
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:129
msgid "Module for testing ad layout."
msgstr ""
@@ -17,7 +17,7 @@ msgstr ""
"Language: af\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr ""
@@ -17,7 +17,7 @@ msgstr ""
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr ""
@@ -17,7 +17,7 @@ msgstr ""
"Language: ar_EG\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr ""
@@ -17,7 +17,7 @@ msgstr ""
"Language: ast\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr "Complementu pa probar la maquetación de publicidad."
@@ -17,7 +17,7 @@ msgstr ""
"Language: be@tarask\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr "Дапаўненьне для праверкі рэклямных модуляў."
@@ -17,7 +17,7 @@ msgstr ""
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr ""
@@ -17,7 +17,7 @@ msgstr ""
"Language: bn_IN\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr ""
@@ -17,7 +17,7 @@ msgstr ""
"Language: br\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr "Astenn da arnodiñ doare pajennaozañ ar bruderezh."
@@ -17,7 +17,7 @@ msgstr ""
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr ""
@@ -17,7 +17,7 @@ msgstr ""
"Language: cs\n"
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr ""
@@ -17,7 +17,7 @@ msgstr ""
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr ""
@@ -17,7 +17,7 @@ msgstr ""
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr "Plugin zum Testen von Werbungs-Layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr "Module zum Testen von Werbungs-Layout."
@@ -17,7 +17,7 @@ msgstr ""
"Language: el\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr ""
@@ -18,7 +18,7 @@ msgstr ""
"Language: en_GB\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
msgstr "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr "Module for testing ad layout."
@@ -17,7 +17,7 @@ msgstr ""
"Language: eo\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr ""
@@ -18,7 +18,7 @@ msgstr ""
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr "Complemento para probar la maquetación de publicidad."
@@ -17,7 +17,7 @@ msgstr ""
"Language: eu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr "Iragarkien maketatzea probatzeko plugina."
@@ -17,7 +17,7 @@ msgstr ""
"Language: fa\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr ""
@@ -17,7 +17,7 @@ msgstr ""
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr "Liitännäinen mainosten asettelun testausta varten."
@@ -17,7 +17,7 @@ msgstr ""
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr "Extension pour tester la mise en forme des publicités."
@@ -17,7 +17,7 @@ msgstr ""
"Language: fur\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr ""
@@ -17,7 +17,7 @@ msgstr ""
"Language: gl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr "Complemento para probar o deseño dos anuncios."
@@ -17,7 +17,7 @@ msgstr ""
"Language: he\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr "תוסף לבדיקת פריסת הפרסומות."
@@ -17,7 +17,7 @@ msgstr ""
"Language: hsb\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. TRANS: Plugin description.
#: BlankAdPlugin.php:128
msgid "Plugin for testing ad layout."
#. TRANS: Module description.
#: BlankAdModule.php:128
msgid "Module for testing ad layout."
msgstr ""

Alguns arquivos não foram exibidos porque demasiados arquivos foram alterados neste diff Mostrar Mais