clean up 2021

This commit is contained in:
Jean-Christian Denis 2021-08-27 22:09:31 +02:00
parent d6be467e63
commit 6857691733
11 changed files with 539 additions and 459 deletions

31
CHANGELOG.md Normal file
View file

@ -0,0 +1,31 @@
topWriter x.x - xxxx.xx.xx
* literal rank of writer depending of num of com
topWriter 0.8 - 2021.08.27
- clean up (PSR2, short array, ...)
- update widget class
- fix translations
- update license
topWriter 0.7 - 25-04-2015 - Pierre Van Glabeke
- Modification url support
topWriter 0.6 - 23-01-2015 - Pierre Van Glabeke
- Modifications locales pour widget
topWriter 0.5 - 19-01-2015 - Pierre Van Glabeke
- Compatibilité dc2.7
topWriter 0.4 - 2013-11-12
- Switch to Dotclear 2.6
- Add widget options
- Use plural forms
topWriter 0.3 - 2010-10-06
- Switched to DC 2.2
- Fixed list order (thanks to Atv')
topWriter 0.2 - 2009-08-10
- Fixed php 5.3 compatibility
- Fixed PostGreSQL compatibility
- Added option to exclude post authors from comment list

View file

@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE GNU GENERAL PUBLIC LICENSE
Version 2, June 1991 Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc., <http://fsf.org/> Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed. of this license document, but changing it is not allowed.
@ -290,8 +290,8 @@ to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found. the "copyright" line and a pointer to where the full notice is found.
{description} <one line to give the program's name and a brief idea of what it does.>
Copyright (C) {year} {fullname} Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
@ -329,7 +329,7 @@ necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker. `Gnomovision' (which makes passes at compilers) written by James Hacker.
{signature of Ty Coon}, 1 April 1989 <signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice Ty Coon, President of Vice
This General Public License does not permit incorporating your program into This General Public License does not permit incorporating your program into
@ -337,4 +337,3 @@ proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. Public License instead of this License.

View file

@ -1,22 +1,34 @@
# README # README
## WHAT IS POSTINFOWIDGET ? ## WHAT IS TOPWRITER ?
postInfoWidget "Entry information list" is a plugin for the open-source "Top writer" is a plugin for the open-source
web publishing software called Dotclear. web publishing software called Dotclear.
Show entry details in a widget. Show most active contributor on a widget.
## REQUIREMENTS ## REQUIREMENTS
postInfoWidget requires: topWriter requires:
* permissions to manage widgets * permissions to manage widgets
* Dotclear 2.6 * Dotclear 2.6
## USAGE ## USAGE
First install postInfoWidget, manualy from a zip package or from First install topWriter, manualy from a zip package or from
Dotaddict repository. (See Dotclear's documentation to know how do this) Dotaddict repository. (See Dotclear's documentation to know how do this)
Add and configure "Entry information list" from widgets manager. Add and configure "Top writer" from widgets manager.
There are two widget: entries and comments.
## MORE
* License : GNU GPL v2
* Source & contribution : [GitHub Page](https://github.com/JcDenis/topWriter)
* Packages & details: [Dotaddict Page](https://plugins.dotaddict.org/dc2/details/topWriter)
## CONTRIBUTORS
* Jean-Chirstian Denis
* Pierre Van Glabeke

View file

@ -3,7 +3,7 @@
# #
# This file is part of topWriter, a plugin for Dotclear 2. # This file is part of topWriter, a plugin for Dotclear 2.
# #
# Copyright (c) 2009-2015 Jean-Christian Denis and contributors # Copyright (c) 2009-2021 Jean-Christian Denis and contributors
# #
# Licensed under the GPL version 2.0 license. # Licensed under the GPL version 2.0 license.
# A copy of this license is available in LICENSE file or at # A copy of this license is available in LICENSE file or at
@ -12,7 +12,6 @@
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_CONTEXT_ADMIN')) { if (!defined('DC_CONTEXT_ADMIN')) {
return null; return null;
} }

View file

@ -3,7 +3,7 @@
# #
# This file is part of topWriter, a plugin for Dotclear 2. # This file is part of topWriter, a plugin for Dotclear 2.
# #
# Copyright (c) 2009-2015 Jean-Christian Denis and contributors # Copyright (c) 2009-2021 Jean-Christian Denis and contributors
# #
# Licensed under the GPL version 2.0 license. # Licensed under the GPL version 2.0 license.
# A copy of this license is available in LICENSE file or at # A copy of this license is available in LICENSE file or at
@ -12,24 +12,20 @@
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_RC_PATH')) { if (!defined('DC_RC_PATH')) {
return null; return null;
} }
$this->registerModule( $this->registerModule(
/* Name */ 'topWriter',
"topWriter", 'Ranking of the most prolific writers and/or commentators',
/* Description*/ 'Jean-Christian Denis, Pierre Van Glabeke',
"Ranking of the most prolific writers and/or commentators", '0.8',
/* Author */ [
"Jean-Christian Denis, Pierre Van Glabeke",
/* Version */
'0.7',
array(
'permissions' => 'admin', 'permissions' => 'admin',
'type' => 'plugin', 'type' => 'plugin',
'dc_min' => '2.6', 'dc_min' => '2.19',
'support' => 'http://forum.dotclear.org/viewtopic.php?pid=333002#p333002', 'support' => 'http://forum.dotclear.org/viewtopic.php?pid=333002#p333002',
'details' => 'http://plugins.dotaddict.org/dc2/details/topWriter' 'details' => 'http://plugins.dotaddict.org/dc2/details/topWriter',
) 'repository' => 'https://raw.githubusercontent.com/JcDenis/topWriter/master/dcstore.xml'
]
); );

View file

@ -3,7 +3,7 @@
# #
# This file is part of topWriter, a plugin for Dotclear 2. # This file is part of topWriter, a plugin for Dotclear 2.
# #
# Copyright (c) 2009-2015 Jean-Christian Denis and contributors # Copyright (c) 2009-2021 Jean-Christian Denis and contributors
# #
# Licensed under the GPL version 2.0 license. # Licensed under the GPL version 2.0 license.
# A copy of this license is available in LICENSE file or at # A copy of this license is available in LICENSE file or at
@ -12,7 +12,6 @@
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_RC_PATH')) { if (!defined('DC_RC_PATH')) {
return null; return null;
} }

View file

@ -3,7 +3,7 @@
# #
# This file is part of topWriter, a plugin for Dotclear 2. # This file is part of topWriter, a plugin for Dotclear 2.
# #
# Copyright (c) 2009-2015 Jean-Christian Denis and contributors # Copyright (c) 2009-2021 Jean-Christian Denis and contributors
# #
# Licensed under the GPL version 2.0 license. # Licensed under the GPL version 2.0 license.
# A copy of this license is available in LICENSE file or at # A copy of this license is available in LICENSE file or at
@ -12,160 +12,131 @@
# -- END LICENSE BLOCK ------------------------------------ # -- END LICENSE BLOCK ------------------------------------
if (!defined('DC_RC_PATH')) { if (!defined('DC_RC_PATH')) {
return null; return null;
} }
$core->addBehavior('initWidgets', array('topWriterWidget', 'init')); $core->addBehavior('initWidgets', ['topWriterWidget', 'init']);
class topWriterWidget class topWriterWidget
{ {
public static function init($w) public static function init($w)
{ {
#Top comments widget #Top comments widget
$w->create( $w
->create(
'topcom', 'topcom',
__('Top Writer: top comments'), __('Top Writer: top comments'),
array('topWriterWidget', 'topCom'), ['topWriterWidget', 'topCom'],
null, null,
__('List users who write more comments') __('List users who write more comments')
); )
$w->topcom->setting( ->addTitle(__('Top comments'))
'title', ->setting(
__('Title:'),
__('Top comments'),
'text'
);
$w->topcom->setting(
'text', 'text',
__('Text:'), __('Text:'),
'%author% (%count%)', '%author% (%count%)',
'text' 'text'
); )
$w->topcom->setting( ->setting(
'period', 'period',
__('Period:'), __('Period:'),
'year', 'year',
'combo', 'combo',
array( [
__('day') => 'day', __('day') => 'day',
__('week') => 'week', __('week') => 'week',
__('month') => 'month', __('month') => 'month',
__('year') => 'year', __('year') => 'year',
__('from begining') => '' __('from begining') => ''
]
) )
); ->setting(
$w->topcom->setting(
'sort', 'sort',
__('Sort:'), __('Sort:'),
'desc', 'desc',
'combo', 'combo',
array( [
__('Ascending') => 'asc', __('Ascending') => 'asc',
__('Descending') => 'desc' __('Descending') => 'desc'
]
) )
); ->setting(
$w->topcom->setting(
'limit', 'limit',
__('Limit:'), __('Limit:'),
'10', '10',
'text' 'text'
); )
$w->topcom->setting( ->setting(
'exclude', 'exclude',
__('Exclude post writer from list'), __('Exclude post writer from list'),
0, 0,
'check' 'check'
);
$w->topcom->setting(
'homeonly',
__('Display on:'),
0,
'combo',
array(
__('All pages') => 0,
__('Home page only') => 1,
__('Except on home page') => 2
) )
); ->addHomeOnly()
$w->topcom->setting('content_only',__('Content only'),0,'check'); ->addContentOnly()
$w->topcom->setting('class',__('CSS class:'),''); ->addClass()
$w->topcom->setting('offline',__('Offline'),0,'check'); ->addOffline();
#Top entries widget #Top entries widget
$w->create( $w
->create(
'toppost', 'toppost',
__('Top Writer: top entries'), __('Top Writer: top entries'),
array('topWriterWidget', 'topPost'), ['topWriterWidget', 'topPost'],
null, null,
__('List users who write more posts') __('List users who write more posts')
); )
$w->toppost->setting( ->addTitle(__('Top entries'))
'title', ->setting(
__('Title:'),
__('Top entries'),
'text'
);
$w->toppost->setting(
'text', 'text',
__('Text:'), __('Text:'),
'%author% (%count%)', '%author% (%count%)',
'text' 'text'
); )
$w->toppost->setting( ->setting(
'period', 'period',
__('Period:'), __('Period:'),
'year', 'year',
'combo', 'combo',
array( [
__('day') => 'day', __('day') => 'day',
__('week') => 'week', __('week') => 'week',
__('month') => 'month', __('month') => 'month',
__('year') => 'year', __('year') => 'year',
__('from begining') => '' __('from begining') => ''
]
) )
); ->setting(
$w->toppost->setting(
'sort', 'sort',
__('Sort:'),'desc', __('Sort:'),'desc',
'combo', 'combo',
array( [
__('Ascending') => 'asc', __('Ascending') => 'asc',
__('Descending') => 'desc' __('Descending') => 'desc'
]
) )
); ->setting(
$w->toppost->setting(
'limit', 'limit',
__('Limit:'), __('Limit:'),
'10', '10',
'text' 'text'
);
$w->toppost->setting(
'homeonly',
__('Display on:'),
0,
'combo',
array(
__('All pages') => 0,
__('Home page only') => 1,
__('Except on home page') => 2
) )
); ->addHomeOnly()
$w->toppost->setting('content_only',__('Content only'),0,'check'); ->addContentOnly()
$w->toppost->setting('class',__('CSS class:'),''); ->addClass()
$w->toppost->setting('offline',__('Offline'),0,'check'); ->addOffline();
} }
public static function topCom($w) public static function topCom($w)
{ {
global $core; global $core;
if ($w->offline) if ($w->offline) {
return; return null;
}
if ($w->homeonly == 1 && $core->url->type != 'default' if (($w->homeonly == 1 && !$core->url->isHome($core->url->type))
|| $w->homeonly == 2 && $core->url->type == 'default' || ($w->homeonly == 2 && $core->url->isHome($core->url->type))) {
) {
return null; return null;
} }
@ -195,7 +166,6 @@ class topWriterWidget
$rs = $core->con->select($req); $rs = $core->con->select($req);
if ($rs->isEmpty()) { if ($rs->isEmpty()) {
return null; return null;
} }
@ -218,48 +188,50 @@ class topWriterWidget
if ($user->comment_site) { if ($user->comment_site) {
$author = '<a href="' . $user->comment_site . '" title="' . $author = '<a href="' . $user->comment_site . '" title="' .
__('Author link') . '">' . $user->comment_author . '</a>'; __('Author link') . '">' . $user->comment_author . '</a>';
} } else {
else {
$author = $user->comment_author; $author = $user->comment_author;
} }
$author = '<span class="topcomments-author">' . $author . '</span>'; $author = '<span class="topcomments-author">' . $author . '</span>';
if ($rs->count == 0) { if ($rs->count == 0) {
$count = __('no comment'); $count = __('no comments');
} } else {
else {
$count = sprintf(__('one comment', '%s comments', $rs->count), $rs->count); $count = sprintf(__('one comment', '%s comments', $rs->count), $rs->count);
} }
$content .= '<li>'.str_replace( $content .= sprintf(
array('%rank%', '%author%', '%count%'), '<li>%s</li>',
array($rank, $author, $count), str_replace(
['%rank%', '%author%', '%count%'],
[$rank, $author, $count],
$w->text $w->text
).'</li>'; )
);
} }
if ($i < 1) { if ($i < 1) {
return null; return null;
} }
$res = return $w->renderDiv(
$w->content_only,
'topcomments ' . $w->class,
'',
($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '') . ($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '') .
'<ul>'.$content.'</ul>'; sprintf('<ul>%s</ul>', $content)
);
return $w->renderDiv($w->content_only,'topcomments '.$w->class,'',$res);
} }
public static function topPost($w) public static function topPost($w)
{ {
global $core; global $core;
if ($w->offline) if ($w->offline) {
return; return null;
}
if ($w->homeonly == 1 && $core->url->type != 'default' if (($w->homeonly == 1 && !$core->url->isHome($core->url->type))
|| $w->homeonly == 2 && $core->url->type == 'default' || ($w->homeonly == 2 && $core->url->isHome($core->url->type))) {
) {
return null; return null;
} }
@ -275,7 +247,6 @@ class topWriterWidget
$core->con->limit(abs((integer) $w->limit))); $core->con->limit(abs((integer) $w->limit)));
if ($rs->isEmpty()) { if ($rs->isEmpty()) {
return null; return null;
} }
@ -286,8 +257,12 @@ class topWriterWidget
"SELECT * FROM " . $core->prefix . "user WHERE user_id='" . $rs->user_id . "' " "SELECT * FROM " . $core->prefix . "user WHERE user_id='" . $rs->user_id . "' "
); );
$author = dcUtils::getUserCN($user->user_id,$user->user_name, $author = dcUtils::getUserCN(
$user->user_firstname,$user->user_displayname); $user->user_id,
$user->user_name,
$user->user_firstname,
$user->user_displayname
);
if (empty($author)) { if (empty($author)) {
continue; continue;
@ -309,29 +284,32 @@ class topWriterWidget
$author = '<span class="topentries-author">' . $author . '</span>'; $author = '<span class="topentries-author">' . $author . '</span>';
if ($rs->count == 0) { if ($rs->count == 0) {
$count = __('no post'); $count = __('no entries');
} } else {
else { $count = sprintf(__('one entry', '%s entries', $rs->count), $rs->count);
$count = sprintf(__('one post', '%s posts', $rs->count), $rs->count);
} }
$content .= '<li>'.str_replace( $content .= sprintf(
array('%rank%', '%author%', '%count%'), '<li>%s</li>',
array($rank, $author, $count), str_replace(
['%rank%', '%author%', '%count%'],
[$rank, $author, $count],
$w->text $w->text
).'</li>'; )
);
} }
if ($i < 1) { if ($i < 1) {
return null; return null;
} }
$res = return $w->renderDiv(
$w->content_only,
'topentries ' . $w->class,
'',
($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '') . ($w->title ? $w->renderTitle(html::escapeHTML($w->title)) : '') .
'<ul>'.$content.'</ul>'; sprintf('<ul>%s</ul>', $content)
);
return $w->renderDiv($w->content_only,'topentries '.$w->class,'',$res);
} }
private static function period($t, $p) private static function period($t, $p)
@ -339,25 +317,21 @@ class topWriterWidget
$pat = '%Y-%m-%d %H:%M:%S'; $pat = '%Y-%m-%d %H:%M:%S';
switch($p) { switch($p) {
case 'day': case 'day':
return return
"AND $t > TIMESTAMP '" . dt::str($pat, time() - 3600*24) . "' "; "AND $t > TIMESTAMP '" . dt::str($pat, time() - 3600*24) . "' ";
break; break;
case 'week': case 'week':
return return
"AND $t > TIMESTAMP '" . dt::str($pat, time() - 3600*24*7) . "' "; "AND $t > TIMESTAMP '" . dt::str($pat, time() - 3600*24*7) . "' ";
break; break;
case 'month': case 'month':
return return
"AND $t > TIMESTAMP '" . dt::str($pat, time() - 3600*24*30) . "' "; "AND $t > TIMESTAMP '" . dt::str($pat, time() - 3600*24*30) . "' ";
break; break;
case 'year': case 'year':
return return
"AND $t > TIMESTAMP '" . dt::str($pat, time() - 3600*24*30*12) . "' "; "AND $t > TIMESTAMP '" . dt::str($pat, time() - 3600*24*30*12) . "' ";
break; break;

View file

@ -1,25 +0,0 @@
topWriter x.x - xxxx-xx-xx
* literal rank of writer depending of num of com
topWriter 0.7 - 25-04-2015 - Pierre Van Glabeke
* Modification url support
topWriter 0.6 - 23-01-2015 - Pierre Van Glabeke
* Modifications locales pour widget
topWriter 0.5 - 19-01-2015 - Pierre Van Glabeke
* Compatibilité dc2.7
topWriter 0.4 - 2013-11-12
* Switch to Dotclear 2.6
* Add widget options
* Use plural forms
topWriter 0.3 - 2010-10-06
* Switched to DC 2.2
* Fixed list order (thanks to Atv')
topWriter 0.2 - 2009-08-10
* Fixed php 5.3 compatibility
* Fixed PostGreSQL compatibility
* Added option to exclude post authors from comment list

13
dcstore.xml Normal file
View file

@ -0,0 +1,13 @@
<modules xmlns:da="http://dotaddict.org/da/">
<module id="topWriter">
<name>topWriter</name>
<version>0.8</version>
<author>Jean-Christian Denis, Pierre Van Glabeke</author>
<desc>Ranking of the most prolific writers and/or commentators</desc>
<file>https://github.com/JcDenis/topWriter/releases/download/v0.8/plugin-topWriter.zip</file>
<da:dcmin>2.19</da:dcmin>
<da:details>http://plugins.dotaddict.org/dc2/details/topWriter</da:details>
<da:section></da:section>
<da:support>http://forum.dotclear.org/viewtopic.php?pid=333002#p333002</da:support>
</module>
</modules>

75
locales/fr/main.lang.php Normal file
View file

@ -0,0 +1,75 @@
<?php
// Language: Français
// Module: topWriter - 0.8
// Date: 2021-08-27 20:05:38
// Translated with dcTranslater - 2021.08.18
#_widgets.php:28
$GLOBALS['__l10n']['Top Writer: top comments'] = 'Top Writer : top commentaires';
#_widgets.php:31
$GLOBALS['__l10n']['List users who write more comments'] = 'Liste les utilisateurs qui ont écrit le plus de commentaires';
#_widgets.php:33
$GLOBALS['__l10n']['Top comments'] = 'Top commentaires';
#_widgets.php:42
#_widgets.php:98
$GLOBALS['__l10n']['Period:'] = 'Période :';
#_widgets.php:46
#_widgets.php:102
$GLOBALS['__l10n']['day'] = 'jour';
#_widgets.php:47
#_widgets.php:103
$GLOBALS['__l10n']['week'] = 'semaine';
#_widgets.php:48
#_widgets.php:104
$GLOBALS['__l10n']['month'] = 'mois';
#_widgets.php:49
#_widgets.php:105
$GLOBALS['__l10n']['year'] = 'année';
#_widgets.php:50
#_widgets.php:106
$GLOBALS['__l10n']['from begining'] = 'depuis le début';
#_widgets.php:65
#_widgets.php:120
$GLOBALS['__l10n']['Limit:'] = 'Limite :';
#_widgets.php:71
$GLOBALS['__l10n']['Exclude post writer from list'] = 'Exclure de la liste les auteurs de billets';
#_widgets.php:84
$GLOBALS['__l10n']['Top Writer: top entries'] = 'Top Writer : top billets';
#_widgets.php:87
$GLOBALS['__l10n']['List users who write more posts'] = 'Liste les utilisateurs qui ont écrit le plus de billets';
#_widgets.php:89
$GLOBALS['__l10n']['Top entries'] = 'Top billets';
#_widgets.php:190
#_widgets.php:282
$GLOBALS['__l10n']['Author link'] = 'Lien vers l\'auteur';
#_widgets.php:278
$GLOBALS['__l10n']['Author posts'] = 'Billets de l\'auteur';
#_widgets.php:287
$GLOBALS['__l10n']['no entries'] = 'aucun billet';
$GLOBALS['__l10n']['Ranking of the most prolific writers and/or commentators'] = 'Classement des plus prolifiques rédacteurs et/ou commentateurs';
$GLOBALS['__l10n']['one entries'] = 'un billet';
$GLOBALS['__l10n']['%s entries'] = '%s billets';
$GLOBALS['__l10n']['un comment'] = 'un commentaire';
$GLOBALS['__l10n']['%s comments'] = '%s commentaires';

View file

@ -1,101 +1,108 @@
# Language: Français
# Module: topWriter - 0.8
# Date: 2021-08-27 20:05:38
# Translated with translater 2021.08.18
msgid "" msgid ""
msgstr "" msgstr ""
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Project-Id-Version: topWriter 0.4\n" "Project-Id-Version: topWriter 0.8\n"
"POT-Creation-Date: \n" "POT-Creation-Date: \n"
"PO-Revision-Date: 2013-11-12T17:15:44+00:00\n" "PO-Revision-Date: 2021-08-27T20:05:38+00:00\n"
"Last-Translator: Jean-Christian Denis\n" "Last-Translator: Jean-Christian Denis\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: _widgets.php:26 #: _widgets.php:28
msgid "Top Writer: top comments" msgid "Top Writer: top comments"
msgstr "Top Writer : top commentaires" msgstr "Top Writer : top commentaires"
#: _widgets.php:34 #: _widgets.php:31
msgid "Top comments"
msgstr "Top commentaires"
#: _widgets.php:29
msgid "List users who write more posts"
msgstr "Liste les utilisateurs qui ont écrit le plus de billets"
#: _widgets.php:45
#: _widgets.php:122
msgid "Period:"
msgstr "Période :"
#: _widgets.php:49
#: _widgets.php:126
msgid "day"
msgstr "jour"
#: _widgets.php:50
#: _widgets.php:127
msgid "week"
msgstr "semaine"
#: _widgets.php:51
#: _widgets.php:128
msgid "month"
msgstr "mois"
#: _widgets.php:52
#: _widgets.php:129
msgid "year"
msgstr "année"
#: _widgets.php:53
#: _widgets.php:130
msgid "from begining"
msgstr "depuis le début"
#: _widgets.php:68
#: _widgets.php:144
msgid "Limit:"
msgstr "Limite :"
#: _widgets.php:74
msgid "Exclude post writer from list"
msgstr "Exclure de la liste les auteurs de billets"
#: _widgets.php:99
msgid "Top Writer: top entries"
msgstr "Top Writer : top billets"
#: _widgets.php:111
msgid "Top entries"
msgstr "Top billets"
#: _widgets.php:106
msgid "List users who write more comments" msgid "List users who write more comments"
msgstr "Liste les utilisateurs qui ont écrit le plus de commentaires" msgstr "Liste les utilisateurs qui ont écrit le plus de commentaires"
#: _widgets.php:230 #: _widgets.php:33
#: _widgets.php:318 msgid "Top comments"
msgstr "Top commentaires"
#: _widgets.php:42
#: _widgets.php:98
msgid "Period:"
msgstr "Période :"
#: _widgets.php:46
#: _widgets.php:102
msgid "day"
msgstr "jour"
#: _widgets.php:47
#: _widgets.php:103
msgid "week"
msgstr "semaine"
#: _widgets.php:48
#: _widgets.php:104
msgid "month"
msgstr "mois"
#: _widgets.php:49
#: _widgets.php:105
msgid "year"
msgstr "année"
#: _widgets.php:50
#: _widgets.php:106
msgid "from begining"
msgstr "depuis le début"
#: _widgets.php:65
#: _widgets.php:120
msgid "Limit:"
msgstr "Limite :"
#: _widgets.php:71
msgid "Exclude post writer from list"
msgstr "Exclure de la liste les auteurs de billets"
#: _widgets.php:84
msgid "Top Writer: top entries"
msgstr "Top Writer : top billets"
#: _widgets.php:87
msgid "List users who write more posts"
msgstr "Liste les utilisateurs qui ont écrit le plus de billets"
#: _widgets.php:89
msgid "Top entries"
msgstr "Top billets"
#: _widgets.php:190
#: _widgets.php:282
msgid "Author link" msgid "Author link"
msgstr "Lien vers l'auteur" msgstr "Lien vers l'auteur"
#: _widgets.php:244 #: _widgets.php:278
msgid "one comment"
msgid_plural "%s comments"
msgstr[0] "un commentaire"
msgstr[1] "%s commentaires"
#: _widgets.php:314
msgid "Author posts" msgid "Author posts"
msgstr "Billets de l'auteur" msgstr "Billets de l'auteur"
#: _widgets.php:323 #: _widgets.php:287
msgid "no post" msgid "no entries"
msgstr "pas de billet" msgstr "aucun billet"
#: _widgets.php:326
msgid "one post"
msgid_plural "%s posts"
msgstr[0] "un billet"
msgstr[1] "%s billets"
msgid "Ranking of the most prolific writers and/or commentators" msgid "Ranking of the most prolific writers and/or commentators"
msgstr "Classement des plus prolifiques rédacteurs et/ou commentateurs" msgstr "Classement des plus prolifiques rédacteurs et/ou commentateurs"
msgid "one entries"
msgstr "un billet"
msgid "%s entries"
msgstr "%s billets"
msgid "un comment"
msgstr "un commentaire"
msgid "%s comments"
msgstr "%s commentaires"