From 3d288eb170091c2679cac34ee09e850b56e46861 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Mon, 29 Sep 2014 18:26:28 -0400 Subject: Add percent of total on top 10 feeds --- app/views/stats/index.phtml | 2 ++ 1 file changed, 2 insertions(+) (limited to 'app/views/stats') diff --git a/app/views/stats/index.phtml b/app/views/stats/index.phtml index 412e77e16..31185fbe3 100644 --- a/app/views/stats/index.phtml +++ b/app/views/stats/index.phtml @@ -48,6 +48,7 @@ + @@ -56,6 +57,7 @@ + repartition['all_feeds']['total'] * 100, 1);?> -- cgit v1.2.3 From cd88414abcffd94cfce933cf578ecc640b691381 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Mon, 29 Sep 2014 18:54:03 -0400 Subject: Add an average per day for the 30 day period --- app/Controllers/statsController.php | 1 + app/Models/StatsDAO.php | 27 ++++++++++++++++++++++++--- app/Models/StatsDAOSQLite.php | 23 +++++++++++++++++++++++ app/views/stats/index.phtml | 16 +++++++++++++--- 4 files changed, 61 insertions(+), 6 deletions(-) (limited to 'app/views/stats') diff --git a/app/Controllers/statsController.php b/app/Controllers/statsController.php index 256543f37..3069be34d 100644 --- a/app/Controllers/statsController.php +++ b/app/Controllers/statsController.php @@ -21,6 +21,7 @@ class FreshRSS_stats_Controller extends Minz_ActionController { Minz_View::appendScript(Minz_Url::display('/scripts/flotr2.min.js?' . @filemtime(PUBLIC_PATH . '/scripts/flotr2.min.js'))); $this->view->repartition = $statsDAO->calculateEntryRepartition(); $this->view->count = $statsDAO->calculateEntryCount(); + $this->view->average = $statsDAO->calculateEntryAverage(); $this->view->feedByCategory = $statsDAO->calculateFeedByCategory(); $this->view->entryByCategory = $statsDAO->calculateEntryByCategory(); $this->view->topFeed = $statsDAO->calculateTopFeed(); diff --git a/app/Models/StatsDAO.php b/app/Models/StatsDAO.php index 40505ab3e..08dd4cd5c 100644 --- a/app/Models/StatsDAO.php +++ b/app/Models/StatsDAO.php @@ -79,6 +79,27 @@ SQL; return $this->convertToSerie($count); } + /** + * Calculates entry average per day on a 30 days period. + * + * @return integer + */ + public function calculateEntryAverage() { + $period = self::ENTRY_COUNT_PERIOD; + + // Get stats per day for the last 30 days + $sql = <<prefix}entry AS e +WHERE FROM_UNIXTIME(e.date, '%Y%m%d') BETWEEN DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -{$period} DAY), '%Y%m%d') AND DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y%m%d') +SQL; + $stm = $this->bd->prepare($sql); + $stm->execute(); + $res = $stm->fetch(PDO::FETCH_NAMED); + + return round($res['average'], 2); + } + /** * Initialize an array for the entry count. * @@ -160,7 +181,7 @@ SQL; public function calculateEntryAveragePerFeedPerHour($feed = null) { return $this->calculateEntryAveragePerFeedPerPeriod(1/24, $feed); } - + /** * Calculates the average number of article per day of week per feed * @@ -180,10 +201,10 @@ SQL; public function calculateEntryAveragePerFeedPerMonth($feed = null) { return $this->calculateEntryAveragePerFeedPerPeriod(30, $feed); } - + /** * Calculates the average number of article per feed - * + * * @param float $period number used to divide the number of day in the period * @param integer $feed id * @return integer diff --git a/app/Models/StatsDAOSQLite.php b/app/Models/StatsDAOSQLite.php index 3b1256de1..bb2336532 100644 --- a/app/Models/StatsDAOSQLite.php +++ b/app/Models/StatsDAOSQLite.php @@ -34,6 +34,29 @@ SQL; return $this->convertToSerie($count); } + /** + * Calculates entry average per day on a 30 days period. + * + * @return integer + */ + public function calculateEntryAverage() { + $period = self::ENTRY_COUNT_PERIOD; + + // Get stats per day for the last 30 days + $sql = <<prefix}entry AS e +WHERE strftime('%Y%m%d', e.date, 'unixepoch') + BETWEEN strftime('%Y%m%d', 'now', '-{$period} days') + AND strftime('%Y%m%d', 'now', '-1 day') +SQL; + $stm = $this->bd->prepare($sql); + $stm->execute(); + $res = $stm->fetch(PDO::FETCH_NAMED); + + return round($res['average'], 2); + } + protected function calculateEntryRepartitionPerFeedPerPeriod($period, $feed = null) { if ($feed) { $restrict = "WHERE e.id_feed = {$feed}"; diff --git a/app/views/stats/index.phtml b/app/views/stats/index.phtml index 31185fbe3..9b19cb560 100644 --- a/app/views/stats/index.phtml +++ b/app/views/stats/index.phtml @@ -93,12 +93,22 @@ function initStats() { return; } // Entry per day + var avg = []; + for (var i = -31; i <= 0; i++) { + avg.push([i, average?>]); + } Flotr.draw(document.getElementById('statsEntryPerDay'), - [count ?>], + [{ + data: count ?>, + bars: {horizontal: false, show: true} + },{ + data: avg, + lines: {show: true}, + label: average?> + }], { grid: {verticalLines: false}, - bars: {horizontal: false, show: true}, - xaxis: {noTicks: 6, showLabels: false, tickDecimals: 0}, + xaxis: {noTicks: 6, showLabels: false, tickDecimals: 0, min: -30.75, max: -0.25}, yaxis: {min: 0}, mouse: {relative: true, track: true, trackDecimals: 0, trackFormatter: function(obj) {return numberFormat(obj.y);}} }); -- cgit v1.2.3 From fc6a3c2fd223d3c723c534768238182c917a2318 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Mon, 29 Sep 2014 18:57:40 -0400 Subject: Add string delimiters for averages. Before, if the average was equal to 0, it was displayed on the graph but the label was not displayed. Now, the label is displayed. --- app/views/stats/index.phtml | 2 +- app/views/stats/repartition.phtml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'app/views/stats') diff --git a/app/views/stats/index.phtml b/app/views/stats/index.phtml index 9b19cb560..fa57a77c0 100644 --- a/app/views/stats/index.phtml +++ b/app/views/stats/index.phtml @@ -104,7 +104,7 @@ function initStats() { },{ data: avg, lines: {show: true}, - label: average?> + label: "average?>" }], { grid: {verticalLines: false}, diff --git a/app/views/stats/repartition.phtml b/app/views/stats/repartition.phtml index b425c1458..750a3ffdc 100644 --- a/app/views/stats/repartition.phtml +++ b/app/views/stats/repartition.phtml @@ -67,7 +67,7 @@ function initStats() { }, { data: avg_h, lines: {show: true}, - label: averageHour?>, + label: "averageHour?>", yaxis: 2 }], { @@ -96,7 +96,7 @@ function initStats() { }, { data: avg_dow, lines: {show: true}, - label: averageDayOfWeek?>, + label: "averageDayOfWeek?>", yaxis: 2 }], { @@ -126,7 +126,7 @@ function initStats() { }, { data: avg_m, lines: {show: true}, - label: averageMonth?>, + label: "averageMonth?>", yaxis: 2 }], { -- cgit v1.2.3 From a7bf7ced369a046b487ab1cd8b3819acc5ebdafe Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Wed, 1 Oct 2014 12:18:32 +0200 Subject: Fix links for feed management See https://github.com/marienfressinaud/FreshRSS/issues/646 --- app/Controllers/categoryController.php | 8 ++++---- app/Controllers/feedController.php | 16 +++++++++------- app/layout/aside_flux.phtml | 2 +- app/views/helpers/view/global_view.phtml | 2 +- app/views/helpers/view/normal_view.phtml | 2 +- app/views/helpers/view/reader_view.phtml | 2 +- app/views/stats/idle.phtml | 2 +- app/views/stats/repartition.phtml | 2 +- 8 files changed, 19 insertions(+), 17 deletions(-) (limited to 'app/views/stats') diff --git a/app/Controllers/categoryController.php b/app/Controllers/categoryController.php index 65fe631cc..2c99751a4 100644 --- a/app/Controllers/categoryController.php +++ b/app/Controllers/categoryController.php @@ -31,7 +31,7 @@ class FreshRSS_category_Controller extends Minz_ActionController { */ public function createAction() { $catDAO = new FreshRSS_CategoryDAO(); - $url_redirect = array('c' => 'configure', 'a' => 'categorize'); + $url_redirect = array('c' => 'subscription', 'a' => 'index'); if (Minz_Request::isPost()) { invalidateHttpCache(); @@ -71,7 +71,7 @@ class FreshRSS_category_Controller extends Minz_ActionController { */ public function updateAction() { $catDAO = new FreshRSS_CategoryDAO(); - $url_redirect = array('c' => 'configure', 'a' => 'categorize'); + $url_redirect = array('c' => 'subscription', 'a' => 'index'); if (Minz_Request::isPost()) { invalidateHttpCache(); @@ -113,7 +113,7 @@ class FreshRSS_category_Controller extends Minz_ActionController { $feedDAO = FreshRSS_Factory::createFeedDao(); $catDAO = new FreshRSS_CategoryDAO(); $default_category = $catDAO->getDefault(); - $url_redirect = array('c' => 'configure', 'a' => 'categorize'); + $url_redirect = array('c' => 'subscription', 'a' => 'index'); if (Minz_Request::isPost()) { invalidateHttpCache(); @@ -150,7 +150,7 @@ class FreshRSS_category_Controller extends Minz_ActionController { */ public function emptyAction() { $feedDAO = FreshRSS_Factory::createFeedDao(); - $url_redirect = array('c' => 'configure', 'a' => 'categorize'); + $url_redirect = array('c' => 'subscription', 'a' => 'index'); if (Minz_Request::isPost()) { invalidateHttpCache(); diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index 7ef427ac2..e4859b110 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -26,8 +26,8 @@ class FreshRSS_feed_Controller extends Minz_ActionController { if ($url === false) { Minz_Request::forward(array( - 'c' => 'configure', - 'a' => 'feed' + 'c' => 'subscription', + 'a' => 'index' ), true); } @@ -166,7 +166,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController { $feedDAO->rollBack (); } - Minz_Request::forward (array ('c' => 'configure', 'a' => 'feed', 'params' => $params), true); + Minz_Request::forward (array ('c' => 'subscription', 'a' => 'index', 'params' => $params), true); } else { // GET request so we must ask confirmation to user @@ -193,8 +193,8 @@ class FreshRSS_feed_Controller extends Minz_ActionController { Minz_Session::_param('notification', $notif); Minz_Request::forward(array( - 'c' => 'configure', - 'a' => 'feed', + 'c' => 'subscription', + 'a' => 'index', 'params' => array( 'id' => $feed->id() ) @@ -214,7 +214,9 @@ class FreshRSS_feed_Controller extends Minz_ActionController { ); Minz_Session::_param ('notification', $notif); invalidateHttpCache(); - Minz_Request::forward (array ('c' => 'configure', 'a' => 'feed', 'params' => array('id' => $id)), true); + Minz_Request::forward (array ('c' => 'subscription', + 'a' => 'index', + 'params' => array('id' => $id)), true); } } @@ -405,7 +407,7 @@ class FreshRSS_feed_Controller extends Minz_ActionController { if ($redirect_url) { Minz_Request::forward($redirect_url); } else { - Minz_Request::forward(array('c' => 'configure', 'a' => 'feed'), true); + Minz_Request::forward(array('c' => 'subscription', 'a' => 'index'), true); } } } diff --git a/app/layout/aside_flux.phtml b/app/layout/aside_flux.phtml index 341697103..a8ae2f424 100644 --- a/app/layout/aside_flux.phtml +++ b/app/layout/aside_flux.phtml @@ -89,7 +89,7 @@
  • loginOk) { ?>
  • -
  • +
  • conf->reading_confirm ? 'confirm' : ''; ?> diff --git a/app/views/helpers/view/global_view.phtml b/app/views/helpers/view/global_view.phtml index 72bcf4c73..5e4cad01a 100644 --- a/app/views/helpers/view/global_view.phtml +++ b/app/views/helpers/view/global_view.phtml @@ -48,6 +48,6 @@

    -

    +

    diff --git a/app/views/helpers/view/normal_view.phtml b/app/views/helpers/view/normal_view.phtml index 6d9789f8d..e469edf58 100644 --- a/app/views/helpers/view/normal_view.phtml +++ b/app/views/helpers/view/normal_view.phtml @@ -186,6 +186,6 @@ if (!empty($this->entries)) {

    -

    +

    diff --git a/app/views/helpers/view/reader_view.phtml b/app/views/helpers/view/reader_view.phtml index c80dca519..413094239 100644 --- a/app/views/helpers/view/reader_view.phtml +++ b/app/views/helpers/view/reader_view.phtml @@ -39,6 +39,6 @@ if (!empty($this->entries)) {

    -

    +

    diff --git a/app/views/stats/idle.phtml b/app/views/stats/idle.phtml index 6f3d4a117..75cba1081 100644 --- a/app/views/stats/idle.phtml +++ b/app/views/stats/idle.phtml @@ -25,7 +25,7 @@
  • - +
  • diff --git a/app/views/stats/repartition.phtml b/app/views/stats/repartition.phtml index b425c1458..dac47e189 100644 --- a/app/views/stats/repartition.phtml +++ b/app/views/stats/repartition.phtml @@ -24,7 +24,7 @@ feed) {?> - + -- cgit v1.2.3 From 65ab90d3c77085abe9eb259bd7780f648051d49d Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Sun, 5 Oct 2014 19:11:43 +0200 Subject: Coding style (views) See https://github.com/marienfressinaud/FreshRSS/issues/655 --- app/FreshRSS.php | 24 ++++++------- app/views/configure/display.phtml | 8 ++--- app/views/configure/sharing.phtml | 6 ++-- app/views/entry/bookmark.phtml | 16 ++++----- app/views/entry/read.phtml | 16 ++++----- app/views/helpers/feed/update.phtml | 40 ++++++++++----------- app/views/helpers/logs_pagination.phtml | 16 ++++----- app/views/helpers/view/global_view.phtml | 16 ++++----- app/views/helpers/view/normal_view.phtml | 60 ++++++++++++++++---------------- app/views/helpers/view/reader_view.phtml | 14 ++++---- app/views/helpers/view/rss_view.phtml | 14 ++++---- app/views/index/index.phtml | 18 +++++----- app/views/index/login.phtml | 2 +- app/views/index/logs.phtml | 14 ++++---- app/views/stats/index.phtml | 34 +++++++++--------- app/views/users/index.phtml | 2 +- 16 files changed, 150 insertions(+), 150 deletions(-) (limited to 'app/views/stats') diff --git a/app/FreshRSS.php b/app/FreshRSS.php index 16f64fd8b..61e8d83f0 100644 --- a/app/FreshRSS.php +++ b/app/FreshRSS.php @@ -88,7 +88,7 @@ class FreshRSS extends Minz_FrontController { try { $this->conf = new FreshRSS_Configuration($currentUser); - Minz_View::_param ('conf', $this->conf); + Minz_View::_param('conf', $this->conf); Minz_Session::_param('currentUser', $currentUser); } catch (Minz_Exception $me) { $loginOk = false; @@ -100,8 +100,8 @@ class FreshRSS extends Minz_FrontController { 'type' => 'bad', 'content' => 'Invalid configuration for user [' . $currentUser . ']!', ); - Minz_Session::_param ('notification', $notif); - Minz_Log::record ($notif['content'] . ' ' . $me->getMessage(), Minz_Log::WARNING); + Minz_Session::_param('notification', $notif); + Minz_Log::record($notif['content'] . ' ' . $me->getMessage(), Minz_Log::WARNING); Minz_Session::_param('currentUser', ''); } catch (Exception $e) { die($e->getMessage()); @@ -130,13 +130,13 @@ class FreshRSS extends Minz_FrontController { return $loginOk; } - private function loadParamsView () { - Minz_Session::_param ('language', $this->conf->language); + private function loadParamsView() { + Minz_Session::_param('language', $this->conf->language); Minz_Translate::init(); - $output = Minz_Request::param ('output', ''); + $output = Minz_Request::param('output', ''); if (($output === '') || ($output !== 'normal' && $output !== 'rss' && $output !== 'reader' && $output !== 'global')) { $output = $this->conf->view_mode; - Minz_Request::_param ('output', $output); + Minz_Request::_param('output', $output); } } @@ -161,7 +161,7 @@ class FreshRSS extends Minz_FrontController { switch (Minz_Configuration::authType()) { case 'form': if (!$loginOk) { - Minz_View::appendScript(Minz_Url::display ('/scripts/bcrypt.min.js?' . @filemtime(PUBLIC_PATH . '/scripts/bcrypt.min.js'))); + Minz_View::appendScript(Minz_Url::display('/scripts/bcrypt.min.js?' . @filemtime(PUBLIC_PATH . '/scripts/bcrypt.min.js'))); } break; case 'persona': @@ -173,11 +173,11 @@ class FreshRSS extends Minz_FrontController { Minz_View::appendScript(Minz_Url::display('/scripts/main.js?' . @filemtime(PUBLIC_PATH . '/scripts/main.js'))); } - private function loadNotifications () { - $notif = Minz_Session::param ('notification'); + private function loadNotifications() { + $notif = Minz_Session::param('notification'); if ($notif) { - Minz_View::_param ('notification', $notif); - Minz_Session::_param ('notification'); + Minz_View::_param('notification', $notif); + Minz_Session::_param('notification'); } } diff --git a/app/views/configure/display.phtml b/app/views/configure/display.phtml index 34239c7b2..1614bd56b 100644 --- a/app/views/configure/display.phtml +++ b/app/views/configure/display.phtml @@ -1,16 +1,16 @@ -partial ('aside_configure'); ?> +partial('aside_configure'); ?>
    - + -
    +
    ' data-advanced='
    diff --git a/app/views/entry/bookmark.phtml b/app/views/entry/bookmark.phtml index ab61fa206..c346d2c4c 100755 --- a/app/views/entry/bookmark.phtml +++ b/app/views/entry/bookmark.phtml @@ -1,16 +1,16 @@ Minz_Request::controllerName (), - 'a' => Minz_Request::actionName (), - 'params' => Minz_Request::params (), +$url = Minz_Url::display(array( + 'c' => Minz_Request::controllerName(), + 'a' => Minz_Request::actionName(), + 'params' => Minz_Request::params(), )); -echo json_encode (array ('url' => str_ireplace ('&', '&', $url), 'icon' => _i(Minz_Request::param ('is_favorite') ? 'non-starred' : 'starred'))); +echo json_encode(array('url' => str_ireplace('&', '&', $url), 'icon' => _i(Minz_Request::param('is_favorite') ? 'non-starred' : 'starred'))); diff --git a/app/views/entry/read.phtml b/app/views/entry/read.phtml index 0ef9df7eb..fabdec9e0 100755 --- a/app/views/entry/read.phtml +++ b/app/views/entry/read.phtml @@ -1,16 +1,16 @@ Minz_Request::controllerName (), - 'a' => Minz_Request::actionName (), - 'params' => Minz_Request::params (), +$url = Minz_Url::display(array( + 'c' => Minz_Request::controllerName(), + 'a' => Minz_Request::actionName(), + 'params' => Minz_Request::params(), )); -echo json_encode (array ('url' => str_ireplace ('&', '&', $url), 'icon' => _i(Minz_Request::param ('is_read') ? 'unread' : 'read'))); +echo json_encode(array('url' => str_ireplace('&', '&', $url), 'icon' => _i(Minz_Request::param('is_read') ? 'unread' : 'read'))); diff --git a/app/views/helpers/feed/update.phtml b/app/views/helpers/feed/update.phtml index 9235752c3..d79ef2666 100644 --- a/app/views/helpers/feed/update.phtml +++ b/app/views/helpers/feed/update.phtml @@ -1,28 +1,28 @@
    -

    feed->name (); ?>

    +

    feed->name(); ?>

    - +
    -

    feed->description (); ?>

    +

    feed->description(); ?>

    - feed->nbEntries (); ?> + feed->nbEntries(); ?> - feed->inError ()) { ?> + feed->inError()) { ?>

    - +
    - +
    @@ -35,8 +35,8 @@
    - - + +
    @@ -44,11 +44,11 @@
    - - + +
    - +
    @@ -56,8 +56,8 @@
    @@ -67,7 +67,7 @@
    @@ -78,7 +78,7 @@
    @@ -89,7 +89,7 @@
    @@ -129,12 +129,12 @@
    - +
    - feed->httpAuth (false); ?> + feed->httpAuth(false); ?>
    @@ -159,7 +159,7 @@
    - +
    diff --git a/app/views/helpers/logs_pagination.phtml b/app/views/helpers/logs_pagination.phtml index 191cfa8de..ad46279c7 100755 --- a/app/views/helpers/logs_pagination.phtml +++ b/app/views/helpers/logs_pagination.phtml @@ -1,7 +1,7 @@ nbPage > 1) { ?> @@ -9,14 +9,14 @@
  • currentPage > 1) { ?> - « + «
  • currentPage - 1; ?>
  • currentPage > 1) { ?> - +
  • @@ -24,7 +24,7 @@ 0 && $i <= $this->nbPage) { ?> currentPage) { ?> -
  • +
  • @@ -34,13 +34,13 @@ currentPage + 1; ?>
  • currentPage < $this->nbPage) { ?> - +
  • nbPage; ?>
  • currentPage < $this->nbPage) { ?> - » + »
  • diff --git a/app/views/helpers/view/global_view.phtml b/app/views/helpers/view/global_view.phtml index 0e553c957..2bac09d04 100644 --- a/app/views/helpers/view/global_view.phtml +++ b/app/views/helpers/view/global_view.phtml @@ -1,4 +1,4 @@ -partial ('nav_menu'); ?> +partial('nav_menu'); ?> entries)) { ?>
    @@ -13,21 +13,21 @@ } foreach ($this->cat_aside as $cat) { - $feeds = $cat->feeds (); - if (!empty ($feeds)) { + $feeds = $cat->feeds(); + if (!empty($feeds)) { ?>
      - nbNotRead (); ?> -
    • - ✇ - + nbNotRead(); ?> +
    • + ✇ + name(); ?>
    • diff --git a/app/views/helpers/view/normal_view.phtml b/app/views/helpers/view/normal_view.phtml index 66b79cd7f..109fad0eb 100644 --- a/app/views/helpers/view/normal_view.phtml +++ b/app/views/helpers/view/normal_view.phtml @@ -1,7 +1,7 @@ partial ('aside_flux'); -$this->partial ('nav_menu'); +$this->partial('aside_flux'); +$this->partial('nav_menu'); if (!empty($this->entries)) { $display_today = true; @@ -30,72 +30,72 @@ if (!empty($this->entries)) {
      - +
      entries as $item) { - if ($display_today && $item->isDay (FreshRSS_Days::TODAY, $this->today)) { + if ($display_today && $item->isDay(FreshRSS_Days::TODAY, $this->today)) { ?>
      currentName; ?>
      isDay (FreshRSS_Days::YESTERDAY, $this->today)) { + if ($display_yesterday && $item->isDay(FreshRSS_Days::YESTERDAY, $this->today)) { ?>
      currentName; ?>
      isDay (FreshRSS_Days::BEFORE_YESTERDAY, $this->today)) { + if ($display_others && $item->isDay(FreshRSS_Days::BEFORE_YESTERDAY, $this->today)) { ?>
      currentName; ?>
      + ?>
        loginOk) { if ($topline_read) { ?>
      • 'entry', 'a' => 'read', 'params' => array('id' => $item->id ())); + $arUrl = array('c' => 'entry', 'a' => 'read', 'params' => array('id' => $item->id())); if ($item->isRead()) { $arUrl['params']['is_read'] = 0; } ?>isRead () ? 'read' : 'unread'); ?>isRead() ? 'read' : 'unread'); ?>
      • 'entry', 'a' => 'bookmark', 'params' => array('id' => $item->id ())); + $arUrl = array('c' => 'entry', 'a' => 'bookmark', 'params' => array('id' => $item->id())); if ($item->isFavorite()) { $arUrl['params']['is_favorite'] = 0; } ?>isFavorite () ? 'starred' : 'non-starred'); ?>isFavorite() ? 'starred' : 'non-starred'); ?>
      • cat_aside, $item->feed ()); //We most likely already have the feed object in cache + $feed = FreshRSS_CategoryDAO::findFeed($this->cat_aside, $item->feed()); //We most likely already have the feed object in cache if ($feed == null) { $feed = $item->feed(true); if ($feed == null) { $feed = FreshRSS_Feed::example(); } } - ?>
      • ✇ name(); ?>
      • -
      • title (); ?>
      • -
      • date (); ?> 
      • - + ?>
      • ✇ name(); ?>
      • +
      • title(); ?>
      • +
      • date(); ?> 
      • +
      -

      title (); ?>

      +

      title(); ?>

      author(); echo $author != '' ? '
      ' . _t('by_author', $author) . '
      ' : '', @@ -106,32 +106,32 @@ if (!empty($this->entries)) { if ($this->loginOk) { if ($bottomline_read) { ?>
    • 'entry', 'a' => 'read', 'params' => array('id' => $item->id ())); + $arUrl = array('c' => 'entry', 'a' => 'read', 'params' => array('id' => $item->id())); if ($item->isRead()) { $arUrl['params']['is_read'] = 0; } ?>isRead () ? 'read' : 'unread'); ?>isRead() ? 'read' : 'unread'); ?>
    • 'entry', 'a' => 'bookmark', 'params' => array('id' => $item->id ())); + $arUrl = array('c' => 'entry', 'a' => 'bookmark', 'params' => array('id' => $item->id())); if ($item->isFavorite()) { $arUrl['params']['is_favorite'] = 0; } ?>isFavorite () ? 'starred' : 'non-starred'); ?>isFavorite() ? 'starred' : 'non-starred'); ?>
    • link ()); - $title = urlencode ($item->title () . ' · ' . $feed->name ()); + $link = urlencode($item->link()); + $title = urlencode($item->title() . ' · ' . $feed->name()); ?>
    • date (); ?>
    • date(); ?>
    @@ -181,7 +181,7 @@ if (!empty($this->entries)) { renderHelper('pagination'); ?>
    -partial ('nav_entries'); ?> +partial('nav_entries'); ?>
    diff --git a/app/views/helpers/view/reader_view.phtml b/app/views/helpers/view/reader_view.phtml index 368bf7fdc..894c71924 100644 --- a/app/views/helpers/view/reader_view.phtml +++ b/app/views/helpers/view/reader_view.phtml @@ -1,5 +1,5 @@ partial ('nav_menu'); +$this->partial('nav_menu'); if (!empty($this->entries)) { $lazyload = $this->conf->lazyload; @@ -9,17 +9,17 @@ if (!empty($this->entries)) {
    entries as $item) { ?> -
    +
    cat_aside, $item->feed ()); //We most likely already have the feed object in cache - if (empty($feed)) $feed = $item->feed (true); + $feed = FreshRSS_CategoryDAO::findFeed($this->cat_aside, $item->feed()); //We most likely already have the feed object in cache + if (empty($feed)) $feed = $item->feed(true); ?> - - ✇ name(); ?> + + ✇ name(); ?> -

    title (); ?>

    +

    title(); ?>

    author(); diff --git a/app/views/helpers/view/rss_view.phtml b/app/views/helpers/view/rss_view.phtml index fd8a8af63..e34b15ab1 100755 --- a/app/views/helpers/view/rss_view.phtml +++ b/app/views/helpers/view/rss_view.phtml @@ -6,22 +6,22 @@ rss_title); ?> GMT - + entries as $item) { ?> - <?php echo $item->title (); ?> - link (); ?> - author (); ?> + <?php echo $item->title(); ?> + link(); ?> + author(); ?> content (); + echo $item->content(); ?>]]> - date (true)); ?> - id (); ?> + date(true)); ?> + id(); ?> diff --git a/app/views/index/index.phtml b/app/views/index/index.phtml index 1ff36ca8e..5e935b81e 100644 --- a/app/views/index/index.phtml +++ b/app/views/index/index.phtml @@ -1,25 +1,25 @@ loginOk || Minz_Configuration::allowAnonymous()) { if ($output === 'normal') { - $this->renderHelper ('view/normal_view'); + $this->renderHelper('view/normal_view'); } elseif ($output === 'reader') { - $this->renderHelper ('view/reader_view'); + $this->renderHelper('view/reader_view'); } elseif ($output === 'global') { - $this->renderHelper ('view/global_view'); + $this->renderHelper('view/global_view'); } elseif ($output === 'rss') { - $this->renderHelper ('view/rss_view'); + $this->renderHelper('view/rss_view'); } else { - Minz_Request::_param ('output', 'normal'); + Minz_Request::_param('output', 'normal'); $output = 'normal'; - $this->renderHelper ('view/normal_view'); + $this->renderHelper('view/normal_view'); } } elseif ($output === 'rss') { // token has already been checked in the controller so we can show the view - $this->renderHelper ('view/rss_view'); + $this->renderHelper('view/rss_view'); } else { // Normally, it should not happen, but log it anyway - Minz_Log::record ('Something is wrong in ' . __FILE__ . ' line ' . __LINE__, Minz_Log::ERROR); + Minz_Log::record('Something is wrong in ' . __FILE__ . ' line ' . __LINE__, Minz_Log::ERROR); } diff --git a/app/views/index/login.phtml b/app/views/index/login.phtml index cc814deff..79fbe9d21 100644 --- a/app/views/index/login.phtml +++ b/app/views/index/login.phtml @@ -1 +1 @@ -res); ?> +res); ?> diff --git a/app/views/index/logs.phtml b/app/views/index/logs.phtml index 18629ed9e..101692daf 100644 --- a/app/views/index/logs.phtml +++ b/app/views/index/logs.phtml @@ -1,23 +1,23 @@
    - +

    -

    +

    - logsPaginator->items (); ?> + logsPaginator->items(); ?> - +
    - logsPaginator->render ('logs_pagination.phtml', 'page'); ?> + logsPaginator->render('logs_pagination.phtml', 'page'); ?> -
    date ())); ?>info (), ENT_NOQUOTES, 'UTF-8'); ?>
    +
    date())); ?>info(), ENT_NOQUOTES, 'UTF-8'); ?>
    - logsPaginator->render ('logs_pagination.phtml','page'); ?> + logsPaginator->render('logs_pagination.phtml','page'); ?>

    diff --git a/app/views/stats/index.phtml b/app/views/stats/index.phtml index fa57a77c0..ba4258b71 100644 --- a/app/views/stats/index.phtml +++ b/app/views/stats/index.phtml @@ -1,38 +1,38 @@ partial('aside_stats'); ?>
    - + -

    +

    -

    +

    - - + + - + - + - + - + @@ -41,14 +41,14 @@
    -

    +

     
    repartition['main_stream']['total']); ?> repartition['all_feeds']['total']); ?>
    repartition['main_stream']['read']); ?> repartition['all_feeds']['read']); ?>
    repartition['main_stream']['unread']); ?> repartition['all_feeds']['unread']); ?>
    repartition['main_stream']['favorite']); ?> repartition['all_feeds']['favorite']); ?>
    - - - - + + + + @@ -65,18 +65,18 @@
    -

    +

    -

    +

    -

    +

    diff --git a/app/views/users/index.phtml b/app/views/users/index.phtml index 517e302e5..95659f727 100644 --- a/app/views/users/index.phtml +++ b/app/views/users/index.phtml @@ -164,7 +164,7 @@
    + ', $user, ''; - } - ?> -
    - - -
    -
    - -
    -
    - - @@ -71,6 +50,26 @@ + + + + +
    + +
    + +
    +
    + +
    +
    + +
    +
    diff --git a/p/scripts/main.js b/p/scripts/main.js index 77e1e3f77..1e13ff16a 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -1086,7 +1086,7 @@ function init_share_observers() { } function init_stats_observers() { - $('#feed_select').on('change', function(e) { + $('.select-change').on('change', function(e) { redirect($(this).find(':selected').data('url')); }); } -- cgit v1.2.3 From 036240ab01999c8eff1b9b3a98a7313cf43f5836 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Thu, 30 Oct 2014 19:31:32 +0100 Subject: Fix coding style formatNumber and formatBytes --- app/views/configure/archiving.phtml | 4 ++-- app/views/stats/index.phtml | 20 ++++++++++---------- app/views/user/manage.phtml | 4 ++-- lib/lib_rss.php | 14 ++++++-------- 4 files changed, 20 insertions(+), 22 deletions(-) (limited to 'app/views/stats') diff --git a/app/views/configure/archiving.phtml b/app/views/configure/archiving.phtml index 410434599..7c2d79343 100644 --- a/app/views/configure/archiving.phtml +++ b/app/views/configure/archiving.phtml @@ -60,7 +60,7 @@
    - nb_total), formatBytes($this->size_user)); ?> + nb_total), format_bytes($this->size_user)); ?>
    @@ -68,7 +68,7 @@
    - size_total); ?> + size_total); ?>
    diff --git a/app/views/stats/index.phtml b/app/views/stats/index.phtml index ba4258b71..c75810850 100644 --- a/app/views/stats/index.phtml +++ b/app/views/stats/index.phtml @@ -18,23 +18,23 @@
    - - + + - - + + - - + + - - + +
    repartition['main_stream']['total']); ?>repartition['all_feeds']['total']); ?>repartition['main_stream']['total']); ?>repartition['all_feeds']['total']); ?>
    repartition['main_stream']['read']); ?>repartition['all_feeds']['read']); ?>repartition['main_stream']['read']); ?>repartition['all_feeds']['read']); ?>
    repartition['main_stream']['unread']); ?>repartition['all_feeds']['unread']); ?>repartition['main_stream']['unread']); ?>repartition['all_feeds']['unread']); ?>
    repartition['main_stream']['favorite']); ?>repartition['all_feeds']['favorite']); ?>repartition['main_stream']['favorite']); ?>repartition['all_feeds']['favorite']); ?>
    @@ -56,8 +56,8 @@ - - repartition['all_feeds']['total'] * 100, 1);?> + + repartition['all_feeds']['total'] * 100, 1);?> diff --git a/app/views/user/manage.phtml b/app/views/user/manage.phtml index 2bfd633a2..e46e02572 100644 --- a/app/views/user/manage.phtml +++ b/app/views/user/manage.phtml @@ -65,8 +65,8 @@

    nb_articles), - formatBytes($this->size_user)); ?>

    + format_number($this->nb_articles), + format_bytes($this->size_user)); ?>

    diff --git a/lib/lib_rss.php b/lib/lib_rss.php index 3648a4582..317c6852f 100644 --- a/lib/lib_rss.php +++ b/lib/lib_rss.php @@ -56,16 +56,14 @@ function checkUrl($url) { } } -function formatNumber($n, $precision = 0) { - return str_replace(' ', ' ', //Espace insécable //TODO: remplacer par une espace _fine_ insécable - number_format($n, $precision, '.', ' ')); //number_format does not seem to be Unicode-compatible -} function format_number($n, $precision = 0) { - // TODO: coding style, prefer THIS function. Remove formatNumber. - return formatNumber($n, $precision); + // number_format does not seem to be Unicode-compatible + return str_replace(' ', ' ', //Espace insécable //TODO: remplacer par une espace _fine_ insécable + number_format($n, $precision, '.', ' ') + ); } -function formatBytes($bytes, $precision = 2, $system = 'IEC') { +function format_bytes($bytes, $precision = 2, $system = 'IEC') { if ($system === 'IEC') { $base = 1024; $units = array('B', 'KiB', 'MiB', 'GiB', 'TiB'); @@ -77,7 +75,7 @@ function formatBytes($bytes, $precision = 2, $system = 'IEC') { $pow = $bytes === 0 ? 0 : floor(log($bytes) / log($base)); $pow = min($pow, count($units) - 1); $bytes /= pow($base, $pow); - return formatNumber($bytes, $precision) . ' ' . $units[$pow]; + return format_number($bytes, $precision) . ' ' . $units[$pow]; } function timestamptodate ($t, $hour = true) { -- cgit v1.2.3 From 39d2a26cf0cbdf9238ba7a43c812225565f094b1 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Thu, 30 Oct 2014 20:00:25 +0100 Subject: Fix bug in stats/index.phtml --- app/views/stats/index.phtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app/views/stats') diff --git a/app/views/stats/index.phtml b/app/views/stats/index.phtml index c75810850..1300cb2c7 100644 --- a/app/views/stats/index.phtml +++ b/app/views/stats/index.phtml @@ -23,7 +23,7 @@ - repartition['main_stream']['read']); ?> + repartition['main_stream']['read']); ?> repartition['all_feeds']['read']); ?> -- cgit v1.2.3 From 38cf7a109ee80cc03edfd420b641676ecd1dfae6 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Sat, 8 Nov 2014 09:26:01 -0500 Subject: Add more info in article repartition page I added the same information than on the main stat page (total, read, unread and favorite) on the repartition page. Some refactoring was needed. --- app/Controllers/statsController.php | 1 + app/Models/StatsDAO.php | 48 ++++++++++++++++++++----------------- app/views/stats/repartition.phtml | 17 +++++++++++++ 3 files changed, 44 insertions(+), 22 deletions(-) (limited to 'app/views/stats') diff --git a/app/Controllers/statsController.php b/app/Controllers/statsController.php index 18fbca6df..578df9434 100644 --- a/app/Controllers/statsController.php +++ b/app/Controllers/statsController.php @@ -117,6 +117,7 @@ class FreshRSS_stats_Controller extends Minz_ActionController { $this->view->feed = $feedDAO->searchById($id); $this->view->days = $statsDAO->getDays(); $this->view->months = $statsDAO->getMonths(); + $this->view->repartition = $statsDAO->calculateEntryRepartitionPerFeed($id); $this->view->repartitionHour = $statsDAO->calculateEntryRepartitionPerFeedPerHour($id); $this->view->averageHour = $statsDAO->calculateEntryAveragePerFeedPerHour($id); $this->view->repartitionDayOfWeek = $statsDAO->calculateEntryRepartitionPerFeedPerDayOfWeek($id); diff --git a/app/Models/StatsDAO.php b/app/Models/StatsDAO.php index 283d5dcb1..0ca251228 100644 --- a/app/Models/StatsDAO.php +++ b/app/Models/StatsDAO.php @@ -6,18 +6,36 @@ class FreshRSS_StatsDAO extends Minz_ModelPdo { /** * Calculates entry repartition for all feeds and for main stream. + * + * @return array + */ + public function calculateEntryRepartition() { + return array( + 'main_stream' => $this->calculateEntryRepartitionPerFeed(null, true), + 'all_feeds' => $this->calculateEntryRepartitionPerFeed(null, false), + ); + } + + /** + * Calculates entry repartition for the selection. * The repartition includes: * - total entries * - read entries * - unread entries * - favorite entries * - * @return type + * @param null|integer $feed feed id + * @param boolean $only_main + * @return array */ - public function calculateEntryRepartition() { - $repartition = array(); - - // Generates the repartition for the main stream of entry + public function calculateEntryRepartitionPerFeed($feed = null, $only_main = false) { + $filter = ''; + if ($only_main) { + $filter .= 'AND f.priority = 10'; + } + if (!is_null($feed)) { + $filter .= "AND e.id_feed = {$feed}"; + } $sql = <<prefix}entry AS e , {$this->prefix}feed AS f WHERE e.id_feed = f.id -AND f.priority = 10 -SQL; - $stm = $this->bd->prepare($sql); - $stm->execute(); - $res = $stm->fetchAll(PDO::FETCH_ASSOC); - $repartition['main_stream'] = $res[0]; - - // Generates the repartition for all entries - $sql = <<prefix}entry AS e +{$filter} SQL; $stm = $this->bd->prepare($sql); $stm->execute(); $res = $stm->fetchAll(PDO::FETCH_ASSOC); - $repartition['all_feeds'] = $res[0]; - return $repartition; + return $res[0]; } /** @@ -179,7 +183,7 @@ SQL; * @return integer */ public function calculateEntryAveragePerFeedPerHour($feed = null) { - return $this->calculateEntryAveragePerFeedPerPeriod(1/24, $feed); + return $this->calculateEntryAveragePerFeedPerPeriod(1 / 24, $feed); } /** diff --git a/app/views/stats/repartition.phtml b/app/views/stats/repartition.phtml index 32268a546..85a750bd0 100644 --- a/app/views/stats/repartition.phtml +++ b/app/views/stats/repartition.phtml @@ -29,6 +29,23 @@ +
    + + + + + + + + + + + + + +
    repartition['total']; ?>repartition['read']; ?>repartition['unread']; ?>repartition['favorite']; ?>
    +
    +

    averageHour); ?>

    -- cgit v1.2.3 From c4f6709a296dd7cd76bdd6507004fccf3da1de53 Mon Sep 17 00:00:00 2001 From: Alexis Degrugillier Date: Sat, 8 Nov 2014 10:04:43 -0500 Subject: Small format fix --- app/views/stats/repartition.phtml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'app/views/stats') diff --git a/app/views/stats/repartition.phtml b/app/views/stats/repartition.phtml index 85a750bd0..4ea71cfb5 100644 --- a/app/views/stats/repartition.phtml +++ b/app/views/stats/repartition.phtml @@ -38,10 +38,10 @@ - repartition['total']; ?> - repartition['read']; ?> - repartition['unread']; ?> - repartition['favorite']; ?> + repartition['total']; ?> + repartition['read']; ?> + repartition['unread']; ?> + repartition['favorite']; ?>
    -- cgit v1.2.3 From f43b2737065c0fdb2759839d0179ac6730c1bd54 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Thu, 11 Dec 2014 16:10:39 +0100 Subject: Update i18n for statistics --- app/Controllers/statsController.php | 2 +- app/Models/StatsDAO.php | 2 +- app/i18n/en/admin.php | 27 +++++++++++ app/i18n/en/gen.php | 88 +++++++++++++++--------------------- app/i18n/fr/admin.php | 27 +++++++++++ app/i18n/fr/gen.php | 89 +++++++++++++++---------------------- app/layout/aside_stats.phtml | 6 +-- app/views/stats/idle.phtml | 16 +++---- app/views/stats/index.phtml | 34 +++++++------- app/views/stats/repartition.phtml | 22 ++++----- 10 files changed, 167 insertions(+), 146 deletions(-) (limited to 'app/views/stats') diff --git a/app/Controllers/statsController.php b/app/Controllers/statsController.php index 578df9434..4a597ae7d 100644 --- a/app/Controllers/statsController.php +++ b/app/Controllers/statsController.php @@ -15,7 +15,7 @@ class FreshRSS_stats_Controller extends Minz_ActionController { Minz_Error::error(403); } - Minz_View::prependTitle(_t('stats') . ' · '); + Minz_View::prependTitle(_t('admin.stats.title') . ' · '); } /** diff --git a/app/Models/StatsDAO.php b/app/Models/StatsDAO.php index 255a2b1ff..80caccc49 100644 --- a/app/Models/StatsDAO.php +++ b/app/Models/StatsDAO.php @@ -418,7 +418,7 @@ SQL; */ private function convertToTranslatedJson($data = array()) { $translated = array_map(function($a) { - return _t($a); + return _t('gen.date.' . $a); }, $data); return json_encode($translated); diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index cf8d8bd00..3ac36a914 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -87,9 +87,36 @@ return array( ), ), 'stats' => array( + '_' => 'Statistics', + 'all_feeds' => 'All feeds', + 'category' => 'Category', + 'entry_count' => 'Entry count', + 'entry_per_category' => 'Entries per category', + 'entry_per_day' => 'Entries per day (last 30 days)', + 'entry_per_day_of_week' => 'Per day of week (average: %.2f messages)', + 'entry_per_hour' => 'Per hour (average: %.2f messages)', + 'entry_per_month' => 'Per month (average: %.2f messages)', + 'entry_repartition' => 'Entries repartition', + 'feed' => 'Feed', + 'feed_per_category' => 'Feeds per category', 'idle' => 'Idle feeds', 'main' => 'Main statistics', + 'main_stream' => 'Main stream', + 'menu' => array( + 'idle' => 'Idle feeds', + 'main' => 'Main statistics', + 'repartition' => 'Articles repartition', + ), + 'no_idle' => 'There is no idle feed!', + 'number_articles' => '%d articles', + 'percent_of_total' => '%% of total', 'repartition' => 'Articles repartition', + 'status_favorites' => 'Favourites', + 'status_read' => 'Read', + 'status_total' => 'Total', + 'status_unread' => 'Unread', + 'title' => 'Statistics', + 'top_feed' => 'Top ten feeds', ), 'users' => array( 'articles_and_size' => '%s articles (%s)', diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 18e63a335..17fef12c7 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -5,6 +5,7 @@ return array( 'back_to_rss_feeds' => '← Go back to your RSS feeds', 'disable' => 'Disable', 'enable' => 'Enable', + 'filter' => 'Filtrer', 'manage' => 'Manage', 'remove' => 'Remove', ), @@ -25,10 +26,45 @@ return array( 'Nov' => '\\N\\o\\v\\e\\m\\b\\e\\r', 'Oct' => '\\O\\c\\t\\o\\b\\e\\r', 'Sep' => '\\S\\e\\p\\t\\e\\m\\b\\e\\r', + 'apr' => 'apr', + 'april' => 'Apr', + 'aug' => 'aug', + 'august' => 'Aug', 'before_yesterday' => 'Before yesterday', + 'dec' => 'dec', + 'december' => 'Dec', + 'feb' => 'feb', + 'february' => 'Feb', 'format_date' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y', 'format_date_hour' => '%s j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\> Y \\a\\t H\\:i', + 'fri' => 'Fri', + 'jan' => 'jan', + 'january' => 'Jan', + 'jul' => 'jul', + 'july' => 'Jul', + 'jun' => 'jun', + 'june' => 'Jun', + 'last_3_month' => 'Last three months', + 'last_6_month' => 'Last six months', + 'last_month' => 'Last month', + 'last_week' => 'Last week', + 'last_year' => 'Last year', + 'mar' => 'mar', + 'march' => 'Mar', + 'may' => 'May', + 'mon' => 'Mon', + 'nov' => 'nov', + 'november' => 'Nov', + 'oct' => 'oct', + 'october' => 'Oct', + 'sat' => 'Sat', + 'sep' => 'sep', + 'september' => 'Sep', + 'sun' => 'Sun', + 'thu' => 'Thu', 'today' => 'Today', + 'tue' => 'Tue', + 'wed' => 'Wed', 'yesterday' => 'Yesterday', ), 'js' => array( @@ -83,13 +119,10 @@ return array( 'administration' => 'Manage', 'advanced' => 'Advanced', 'after_onread' => 'After “mark all as read”,', - 'all_feeds' => 'All feeds', 'allow_anonymous' => 'Allow anonymous reading of the articles of the default user (%s)', 'allow_anonymous_refresh' => 'Allow anonymous refresh of the articles', 'already_subscribed' => 'You have already subscribed to %s', 'api_enabled' => 'Allow API access (required for mobile apps)', - 'apr' => 'apr', - 'april' => 'Apr', 'archiving_configuration_help' => 'More options are available in the individual stream settings', 'article' => 'Article', 'article_icons' => 'Article icons', @@ -102,8 +135,6 @@ return array( 'articles_to_display' => 'Articles to display', 'ask_empty' => 'Clear?', 'attention' => 'Attention!', - 'aug' => 'aug', - 'august' => 'Aug', 'auth_form' => 'Web form (traditional, requires JavaScript)', 'auth_form_not_set' => 'A problem occured during authentication system configuration. Please retry later.', 'auth_form_set' => 'Form is now your default authentication system.', @@ -169,8 +200,6 @@ return array( 'current_user' => 'Current user', 'damn' => 'Damn!', 'data_is_ok' => 'Permissions on data directory are good', - 'dec' => 'dec', - 'december' => 'Dec', 'default_category' => 'Uncategorized', 'default_user' => 'Username of the default user (maximum 16 alphanumeric characters)', 'default_view' => 'Default view', @@ -190,8 +219,6 @@ return array( 'export_opml' => 'Export list of feeds (OPML)', 'export_starred' => 'Export your favourites', 'favicons_is_ok' => 'Permissions on favicons directory are good', - 'feb' => 'feb', - 'february' => 'Feb', 'feed' => 'Feed', 'feed_actualized' => '%s has been updated', 'feed_added' => 'RSS feed %s has been added', @@ -219,7 +246,6 @@ return array( 'fix_errors_before' => 'Fix errors before skip to the next step.', 'focus_search' => 'Access search box', 'freshrss_installation' => 'Installation · FreshRSS', - 'fri' => 'Fri', 'general_conf_is_ok' => 'General configuration has been saved.', 'general_configuration' => 'General configuration', 'help' => 'Display documentation', @@ -242,40 +268,25 @@ return array( 'invalid_login' => 'Login is invalid', 'invalid_url' => 'URL %s is invalid', 'is_admin' => 'is administrator', - 'jan' => 'jan', - 'january' => 'Jan', 'javascript_for_shortcuts' => 'JavaScript must be enabled in order to use shortcuts', 'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled', 'javascript_should_be_activated' => 'JavaScript must be enabled', - 'jul' => 'jul', - 'july' => 'Jul', 'jump_next' => 'jump to next unread sibling (feed or category)', - 'jun' => 'jun', - 'june' => 'Jun', 'keep_history' => 'Minimum number of articles to keep', 'keep_logged_in' => 'Keep me logged in (1 month)', 'language' => 'Language', 'language_defined' => 'Language has been defined.', - 'last_3_month' => 'Last three months', - 'last_6_month' => 'Last six months', 'last_article' => 'Skip to the last article', - 'last_month' => 'Last month', - 'last_week' => 'Last week', - 'last_year' => 'Last year', 'log_is_ok' => 'Permissions on logs directory are good', 'login_configuration' => 'Login', 'login_persona_problem' => 'Connection problem with Persona?', 'login_required' => 'Login required:', 'login_with_persona' => 'Login with Persona', - 'mar' => 'mar', - 'march' => 'Mar', 'mark_cat_read' => 'Mark category as read', 'mark_favorite' => 'Mark as favourite', 'mark_feed_read' => 'Mark feed as read', - 'may' => 'May', 'minz_is_nok' => 'You lack the Minz framework. You should execute build.sh script or download it on Github and install in %s directory the content of its /lib directory.', 'minz_is_ok' => 'You have the Minz framework', - 'mon' => 'Mon', 'month' => 'months', 'more_information' => 'More information', 'n_entries_deleted' => '%d articles have been deleted', @@ -296,13 +307,8 @@ return array( 'not_read' => '%d unread', 'not_reads' => '%d unread', 'not_yet_implemented' => 'Not yet implemented', - 'nov' => 'nov', - 'november' => 'Nov', - 'number_articles' => '%d articles', 'number_divided_when_reader' => 'Divided by 2 in the reading view.', 'number_feeds' => '%d feeds', - 'oct' => 'oct', - 'october' => 'Oct', 'ok' => 'Ok!', 'oops' => 'Oops!', 'optimization_complete' => 'Optimization complete', @@ -360,13 +366,10 @@ return array( 'refresh' => 'Refresh', 'retrieve_truncated_feeds' => 'Retrieves truncated RSS feeds (attention, requires more time!)', 'rss_feed_management' => 'RSS feeds management', - 'sat' => 'Sat', 'save' => 'Save', 'scroll' => 'while scrolling', 'seconds_(0_means_no_timeout)' => 'seconds (0 means no timeout)', 'see_on_website' => 'See on original website', - 'sep' => 'sep', - 'september' => 'Sep', 'share_name' => 'Share name to display', 'share_url' => 'Share URL to use', 'sharing_management' => 'Sharing options management', @@ -381,32 +384,14 @@ return array( 'show_in_all_flux' => 'Show in main stream', 'sort_order' => 'Sort order', 'starred_list' => 'List of favourite articles', - 'stats_entry_count' => 'Entry count', - 'stats_entry_per_category' => 'Entries per category', - 'stats_entry_per_day' => 'Entries per day (last 30 days)', - 'stats_entry_per_day_of_week' => 'Per day of week (average: %.2f messages)', - 'stats_entry_per_hour' => 'Per hour (average: %.2f messages)', - 'stats_entry_per_month' => 'Per month (average: %.2f messages)', - 'stats_entry_repartition' => 'Entries repartition', - 'stats_feed_per_category' => 'Feeds per category', - 'stats_no_idle' => 'There is no idle feed!', - 'stats_percent_of_total' => '%% of total', - 'stats_top_feed' => 'Top ten feeds', - 'status_favorites' => 'Favourites', - 'status_read' => 'Read', - 'status_total' => 'Total', - 'status_unread' => 'Unread', 'steps' => 'Steps', 'sticky_post' => 'Stick the article to the top when opened', 'submit' => 'Submit', - 'sun' => 'Sun', 'theme' => 'Theme', 'this_is_the_end' => 'This is the end', - 'thu' => 'Thu', 'top_line' => 'Top line', 'truncate' => 'Delete all articles', 'ttl' => 'Do not automatically refresh more often than', - 'tue' => 'Tue', 'unsafe_autologin' => 'Allow unsafe automatic login using the format: ', 'update_apply' => 'Apply', 'update_can_apply' => 'An update is available.', @@ -431,7 +416,6 @@ return array( 'users_list' => 'List of users', 'version_update' => 'Update', 'website_url' => 'Website URL', - 'wed' => 'Wed', 'width_large' => 'Large', 'width_medium' => 'Medium', 'width_no_limit' => 'No limit', diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php index 3d7201439..1e9eb03af 100644 --- a/app/i18n/fr/admin.php +++ b/app/i18n/fr/admin.php @@ -87,9 +87,36 @@ return array( ), ), 'stats' => array( + '_' => 'Statistiques', + 'all_feeds' => 'Tous les flux', + 'category' => 'Catégorie', + 'entry_count' => 'Nombre d’articles', + 'entry_per_category' => 'Articles par catégorie', + 'entry_per_day' => 'Nombre d’articles par jour (30 derniers jours)', + 'entry_per_day_of_week' => 'Par jour de la semaine (moyenne : %.2f messages)', + 'entry_per_hour' => 'Par heure (moyenne : %.2f messages)', + 'entry_per_month' => 'Par mois (moyenne : %.2f messages)', + 'entry_repartition' => 'Répartition des articles', + 'feed' => 'Flux', + 'feed_per_category' => 'Flux par catégorie', 'idle' => 'Flux inactifs', 'main' => 'Statistiques principales', + 'main_stream' => 'Flux principal', + 'menu' => array( + 'idle' => 'Flux inactifs', + 'main' => 'Statistiques principales', + 'repartition' => 'Répartition des articles', + ), + 'no_idle' => 'Il n’y a aucun flux inactif !', + 'number_articles' => '%d articles', + 'percent_of_total' => '%% du total', 'repartition' => 'Répartition des articles', + 'status_favorites' => 'favoris', + 'status_read' => 'lus', + 'status_total' => 'total', + 'status_unread' => 'non lus', + 'title' => 'Statistiques', + 'top_feed' => 'Les dix plus gros flux', ), 'users' => array( 'articles_and_size' => '%s articles (%s)', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index e7c1c0d09..af595c20b 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -5,6 +5,7 @@ return array( 'back_to_rss_feeds' => '← Retour à vos flux RSS', 'disable' => 'Désactiver', 'enable' => 'Activer', + 'filter' => 'Filtrer', 'manage' => 'Gérer', 'remove' => 'Supprimer', ), @@ -25,10 +26,45 @@ return array( 'Nov' => '\\n\\o\\v\\e\\m\\b\\r\\e', 'Oct' => '\\o\\c\\t\\o\\b\\r\\e', 'Sep' => '\\s\\e\\p\\t\\e\\m\\b\\r\\e', + 'apr' => 'avr.', + 'april' => 'avril', + 'aug' => 'août', + 'august' => 'août', 'before_yesterday' => 'À partir d’avant-hier', + 'dec' => 'déc.', + 'december' => 'décembre', + 'feb' => 'fév.', + 'february' => 'février', + 'fri' => 'ven.', + 'jan' => 'jan.', + 'january' => 'janvier', + 'jul' => 'jui.', + 'july' => 'juillet', + 'jun' => 'juin', + 'june' => 'juin', 'format_date' => 'j %s Y', 'format_date_hour' => 'j %s Y \\à H\\:i', + 'last_3_month' => 'Depuis les trois derniers mois', + 'last_6_month' => 'Depuis les six derniers mois', + 'last_month' => 'Depuis le mois dernier', + 'last_week' => 'Depuis la semaine dernière', + 'last_year' => 'Depuis l’année dernière', + 'mar' => 'mar.', + 'march' => 'mars', + 'may' => 'mai.', + 'mon' => 'lun.', + 'nov' => 'nov.', + 'november' => 'novembre', + 'oct' => 'oct.', + 'october' => 'octobre', + 'sat' => 'sam.', + 'sep' => 'sep.', + 'september' => 'septembre', + 'sun' => 'dim.', + 'thu' => 'jeu.', 'today' => 'Aujourd’hui', + 'tue' => 'mar.', + 'wed' => 'mer.', 'yesterday' => 'Hier', ), 'js' => array( @@ -71,7 +107,6 @@ return array( '_' => 'Titre', 'authentication' => 'Authentification', 'check_install' => 'Vérification de l’installation', - 'global_view' => 'Vue globale', 'user_management' => 'Gestion des utilisateurs', 'user_profile' => 'Profil', ), @@ -84,13 +119,10 @@ return array( 'administration' => 'Gérer', 'advanced' => 'Avancé', 'after_onread' => 'Après “marquer tout comme lu”,', - 'all_feeds' => 'Tous les flux', 'allow_anonymous' => 'Autoriser la lecture anonyme des articles de l’utilisateur par défaut (%s)', 'allow_anonymous_refresh' => 'Autoriser le rafraîchissement anonyme des flux', 'already_subscribed' => 'Vous êtes déjà abonné à %s', 'api_enabled' => 'Autoriser l’accès par API (nécessaire pour les applis mobiles)', - 'apr' => 'avr.', - 'april' => 'avril', 'archiving_configuration_help' => 'D’autres options sont disponibles dans la configuration individuelle des flux.', 'article' => 'Article', 'article_icons' => 'Icônes d’article', @@ -103,8 +135,6 @@ return array( 'articles_to_display' => 'Articles à afficher', 'ask_empty' => 'Vider ?', 'attention' => 'Attention !', - 'aug' => 'août', - 'august' => 'août', 'auth_form' => 'Formulaire (traditionnel, requiert JavaScript)', 'auth_form_not_set' => 'Un problème est survenu lors de la configuration de votre système d’authentification. Veuillez réessayer plus tard.', 'auth_form_set' => 'Le formulaire est désormais votre système d’authentification.', @@ -170,8 +200,6 @@ return array( 'current_user' => 'Utilisateur actuel', 'damn' => 'Arf !', 'data_is_ok' => 'Les droits sur le répertoire de data sont bons', - 'dec' => 'déc.', - 'december' => 'décembre', 'default_category' => 'Sans catégorie', 'default_user' => 'Nom de l’utilisateur par défaut (16 caractères alphanumériques maximum)', 'default_view' => 'Vue par défaut', @@ -191,8 +219,6 @@ return array( 'export_opml' => 'Exporter la liste des flux (OPML)', 'export_starred' => 'Exporter les favoris', 'favicons_is_ok' => 'Les droits sur le répertoire des favicons sont bons', - 'feb' => 'fév.', - 'february' => 'février', 'feed' => 'Flux', 'feed_actualized' => '%s a été mis à jour.', 'feed_added' => 'Le flux %s a bien été ajouté.', @@ -220,7 +246,6 @@ return array( 'fix_errors_before' => 'Veuillez corriger les erreurs avant de passer à l’étape suivante.', 'focus_search' => 'Accéder à la recherche', 'freshrss_installation' => 'Installation · FreshRSS', - 'fri' => 'ven.', 'general_conf_is_ok' => 'La configuration générale a été enregistrée.', 'general_configuration' => 'Configuration générale', 'help' => 'Afficher la documentation', @@ -243,40 +268,25 @@ return array( 'invalid_login' => 'L’identifiant est invalide !', 'invalid_url' => 'L’url %s est invalide.', 'is_admin' => 'est administrateur', - 'jan' => 'jan.', - 'january' => 'janvier', 'javascript_for_shortcuts' => 'Le JavaScript doit être activé pour pouvoir profiter des raccourcis.', 'javascript_is_better' => 'FreshRSS est plus agréable à utiliser avec JavaScript activé', 'javascript_should_be_activated' => 'Le JavaScript doit être activé.', - 'jul' => 'jui.', - 'july' => 'juillet', 'jump_next' => 'sauter au prochain voisin non lu (flux ou catégorie)', - 'jun' => 'juin', - 'june' => 'juin', 'keep_history' => 'Nombre minimum d’articles à conserver', 'keep_logged_in' => 'Rester connecté (1 mois)', 'language' => 'Langue', 'language_defined' => 'La langue a bien été définie.', - 'last_3_month' => 'Depuis les trois derniers mois', - 'last_6_month' => 'Depuis les six derniers mois', 'last_article' => 'Passer au dernier article', - 'last_month' => 'Depuis le mois dernier', - 'last_week' => 'Depuis la semaine dernière', - 'last_year' => 'Depuis l’année dernière', 'log_is_ok' => 'Les droits sur le répertoire des logs sont bons', 'login_configuration' => 'Identification', 'login_persona_problem' => 'Problème de connexion à Persona ?', 'login_required' => 'Accès protégé par mot de passe :', 'login_with_persona' => 'Connexion avec Persona', - 'mar' => 'mar.', - 'march' => 'mars', 'mark_cat_read' => 'Marquer la catégorie comme lue', 'mark_favorite' => 'Mettre en favori', 'mark_feed_read' => 'Marquer le flux comme lu', - 'may' => 'mai.', 'minz_is_nok' => 'Vous ne disposez pas de la librairie Minz. Vous devriez exécuter le script build.sh ou bien la télécharger sur Github et installer dans le répertoire %s le contenu de son répertoire /lib.', 'minz_is_ok' => 'Vous disposez du framework Minz', - 'mon' => 'lun.', 'month' => 'mois', 'more_information' => 'Plus d’informations', 'n_entries_deleted' => '%d articles ont été supprimés.', @@ -297,13 +307,8 @@ return array( 'not_read' => '%d non lu', 'not_reads' => '%d non lus', 'not_yet_implemented' => 'Pas encore implémenté', - 'nov' => 'nov.', - 'november' => 'novembre', - 'number_articles' => '%d articles', 'number_divided_when_reader' => 'Divisé par 2 dans la vue de lecture.', 'number_feeds' => '%d flux', - 'oct' => 'oct.', - 'october' => 'octobre', 'ok' => 'Ok !', 'oops' => 'Oups !', 'optimization_complete' => 'Optimisation terminée.', @@ -361,13 +366,10 @@ return array( 'refresh' => 'Actualisation', 'retrieve_truncated_feeds' => 'Permet de récupérer les flux tronqués (attention, demande plus de temps !)', 'rss_feed_management' => 'Gestion des flux RSS', - 'sat' => 'sam.', 'save' => 'Enregistrer', 'scroll' => 'au défilement de la page', 'seconds_(0_means_no_timeout)' => 'secondes (0 signifie aucun timeout ) ', 'see_on_website' => 'Voir sur le site d’origine', - 'sep' => 'sep.', - 'september' => 'septembre', 'share_name' => 'Nom du partage à afficher', 'share_url' => 'URL du partage à utiliser', 'sharing_management' => 'Gestion des options de partage', @@ -382,32 +384,14 @@ return array( 'show_in_all_flux' => 'Afficher dans le flux principal', 'sort_order' => 'Ordre de tri', 'starred_list' => 'Liste des articles favoris', - 'stats_entry_count' => 'Nombre d’articles', - 'stats_entry_per_category' => 'Articles par catégorie', - 'stats_entry_per_day' => 'Nombre d’articles par jour (30 derniers jours)', - 'stats_entry_per_day_of_week' => 'Par jour de la semaine (moyenne : %.2f messages)', - 'stats_entry_per_hour' => 'Par heure (moyenne : %.2f messages)', - 'stats_entry_per_month' => 'Par mois (moyenne : %.2f messages)', - 'stats_entry_repartition' => 'Répartition des articles', - 'stats_feed_per_category' => 'Flux par catégorie', - 'stats_no_idle' => 'Il n’y a aucun flux inactif !', - 'stats_percent_of_total' => '%% du total', - 'stats_top_feed' => 'Les dix plus gros flux', - 'status_favorites' => 'favoris', - 'status_read' => 'lus', - 'status_total' => 'total', - 'status_unread' => 'non lus', 'steps' => 'Étapes', 'sticky_post' => 'Aligner l’article en haut quand il est ouvert', 'submit' => 'Valider', - 'sun' => 'dim.', 'theme' => 'Thème', 'this_is_the_end' => 'This is the end', - 'thu' => 'jeu.', 'top_line' => 'Ligne du haut', 'truncate' => 'Supprimer tous les articles', 'ttl' => 'Ne pas automatiquement rafraîchir plus souvent que', - 'tue' => 'mar.', 'unsafe_autologin' => 'Autoriser les connexions automatiques non-sûres au format : ', 'update_apply' => 'Appliquer la mise à jour', 'update_can_apply' => 'Une mise à jour est disponible.', @@ -432,7 +416,6 @@ return array( 'users_list' => 'Liste des utilisateurs', 'version_update' => 'Mise à jour', 'website_url' => 'URL du site', - 'wed' => 'mer.', 'width_large' => 'Large', 'width_medium' => 'Moyenne', 'width_no_limit' => 'Pas de limite', diff --git a/app/layout/aside_stats.phtml b/app/layout/aside_stats.phtml index 559087df1..4bdaf7165 100644 --- a/app/layout/aside_stats.phtml +++ b/app/layout/aside_stats.phtml @@ -1,12 +1,12 @@ diff --git a/app/views/stats/idle.phtml b/app/views/stats/idle.phtml index 75cba1081..bfee4366c 100644 --- a/app/views/stats/idle.phtml +++ b/app/views/stats/idle.phtml @@ -1,9 +1,9 @@ partial('aside_stats'); ?>
    - + -

    +

    -

    +

    @@ -24,13 +24,13 @@
    • - - - + + +
    • - () + ()
    @@ -42,7 +42,7 @@ if ($nothing) { ?>

    - +

    diff --git a/app/views/stats/index.phtml b/app/views/stats/index.phtml index 1300cb2c7..c13c5d26c 100644 --- a/app/views/stats/index.phtml +++ b/app/views/stats/index.phtml @@ -1,38 +1,38 @@ partial('aside_stats'); ?>
    - + -

    +

    -

    +

    - - + + - + - + - + - + @@ -41,14 +41,14 @@
    -

    +

     
    repartition['main_stream']['total']); ?> repartition['all_feeds']['total']); ?>
    repartition['main_stream']['read']); ?> repartition['all_feeds']['read']); ?>
    repartition['main_stream']['unread']); ?> repartition['all_feeds']['unread']); ?>
    repartition['main_stream']['favorite']); ?> repartition['all_feeds']['favorite']); ?>
    - - - - + + + + @@ -65,18 +65,18 @@
    -

    +

    -

    +

    -

    +

    diff --git a/app/views/stats/repartition.phtml b/app/views/stats/repartition.phtml index 4ea71cfb5..b20d9bbd0 100644 --- a/app/views/stats/repartition.phtml +++ b/app/views/stats/repartition.phtml @@ -1,12 +1,12 @@ partial('aside_stats'); ?>
    - + -

    +

    - - - - + + + + @@ -47,17 +47,17 @@
    -

    averageHour); ?>

    +

    averageHour); ?>

    -

    averageDayOfWeek); ?>

    +

    averageDayOfWeek); ?>

    -

    averageMonth); ?>

    +

    averageMonth); ?>

    -- cgit v1.2.3 From cad4259e627a016a44e48395b242f973c1e4d502 Mon Sep 17 00:00:00 2001 From: Marien Fressinaud Date: Thu, 11 Dec 2014 17:26:01 +0100 Subject: Fix i18n for subscription pages --- app/Controllers/subscriptionController.php | 8 ++-- app/i18n/en/admin.php | 2 +- app/i18n/en/feedback.php | 4 ++ app/i18n/en/gen.php | 62 +++++++----------------- app/i18n/en/index.php | 5 -- app/i18n/en/sub.php | 38 ++++++++++++++- app/i18n/fr/admin.php | 2 +- app/i18n/fr/feedback.php | 6 ++- app/i18n/fr/gen.php | 62 +++++++----------------- app/i18n/fr/index.php | 5 -- app/i18n/fr/sub.php | 38 ++++++++++++++- app/layout/aside_feed.phtml | 10 ++-- app/layout/nav_menu.phtml | 4 +- app/views/helpers/feed/update.phtml | 76 +++++++++++++++--------------- app/views/stats/idle.phtml | 2 +- app/views/subscription/index.phtml | 38 +++++++-------- 16 files changed, 188 insertions(+), 174 deletions(-) (limited to 'app/views/stats') diff --git a/app/Controllers/subscriptionController.php b/app/Controllers/subscriptionController.php index 67b95eba6..1ed2b6bbf 100644 --- a/app/Controllers/subscriptionController.php +++ b/app/Controllers/subscriptionController.php @@ -29,7 +29,7 @@ class FreshRSS_subscription_Controller extends Minz_ActionController { public function indexAction() { Minz_View::appendScript(Minz_Url::display('/scripts/category.js?' . @filemtime(PUBLIC_PATH . '/scripts/category.js'))); - Minz_View::prependTitle(_t('subscription_management') . ' · '); + Minz_View::prependTitle(_t('sub.title') . ' · '); $id = Minz_Request::param('id'); if ($id !== false) { @@ -74,7 +74,7 @@ class FreshRSS_subscription_Controller extends Minz_ActionController { $this->view->feed = $this->view->feeds[$id]; - Minz_View::prependTitle(_t('rss_feed_management') . ' · ' . $this->view->feed->name() . ' · '); + Minz_View::prependTitle(_t('sub.title.feed_management') . ' · ' . $this->view->feed->name() . ' · '); if (Minz_Request::isPost()) { $user = Minz_Request::param('http_user', ''); @@ -106,9 +106,9 @@ class FreshRSS_subscription_Controller extends Minz_ActionController { $this->view->feed->_category($cat); $this->view->feed->faviconPrepare(); - Minz_Request::good(_t('feed_updated'), array('c' => 'subscription', 'params' => array('id' => $id))); + Minz_Request::good(_t('feedback.sub.feed_updated'), array('c' => 'subscription', 'params' => array('id' => $id))); } else { - Minz_Request::bad(_t('error_occurred_update'), array('c' => 'subscription')); + Minz_Request::bad(_t('feedback.sub.error_occurred'), array('c' => 'subscription')); } } } diff --git a/app/i18n/en/admin.php b/app/i18n/en/admin.php index 3ac36a914..2dac57d91 100644 --- a/app/i18n/en/admin.php +++ b/app/i18n/en/admin.php @@ -108,7 +108,7 @@ return array( 'repartition' => 'Articles repartition', ), 'no_idle' => 'There is no idle feed!', - 'number_articles' => '%d articles', + 'number_entries' => '%d articles', 'percent_of_total' => '%% of total', 'repartition' => 'Articles repartition', 'status_favorites' => 'Favourites', diff --git a/app/i18n/en/feedback.php b/app/i18n/en/feedback.php index b3866f1dc..2eae1d839 100644 --- a/app/i18n/en/feedback.php +++ b/app/i18n/en/feedback.php @@ -8,6 +8,10 @@ return array( 'logout' => array( 'success' => 'You are disconnected', ), + 'sub' => array( + 'error_occurred' => 'Feed cannot be updated', + 'feed_updated' => 'Feed has been updated', + ), 'user_profile' => array( 'updated' => 'Your profile has been modified', ), diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 17fef12c7..a3c409c31 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -2,12 +2,19 @@ return array( 'action' => array( + 'actualize' => 'Actualize', 'back_to_rss_feeds' => '← Go back to your RSS feeds', + 'cancel' => 'Cancel', 'disable' => 'Disable', + 'empty' => 'Empty', 'enable' => 'Enable', 'filter' => 'Filtrer', 'manage' => 'Manage', + 'mark_read' => 'Mark as read', 'remove' => 'Remove', + 'see_website' => 'See website', + 'submit' => 'Submit', + 'truncate' => 'Delete all articles', ), 'auth' => array( 'login' => 'Login', @@ -103,8 +110,18 @@ return array( 'nothing_to_load' => 'There are no more articles', 'previous' => 'Previous', ), + 'short' => array( + 'attention' => 'Attention!', + 'blank_to_disable' => 'Leave blank to disable', + 'by_default' => 'By default', + 'damn' => 'Damn!', + 'no' => 'No', + 'ok' => 'Ok!', + 'oops' => 'Oops!', + 'or' => 'or', + 'yes' => 'Yes', + ), 'title' => array( - '_' => 'Title', 'authentication' => 'Authentication', 'check_install' => 'Installation checking', 'user_management' => 'Manage users', @@ -112,12 +129,7 @@ return array( ), 'freshrss' => 'FreshRSS', 'access_denied' => 'You don’t have permission to access this page', - 'access_protected_feeds' => 'Connection allows to access HTTP protected RSS feeds', 'activate_sharing' => 'Activate sharing', - 'add_category' => 'Add a category', - 'add_rss_feed' => 'Add a RSS feed', - 'administration' => 'Manage', - 'advanced' => 'Advanced', 'after_onread' => 'After “mark all as read”,', 'allow_anonymous' => 'Allow anonymous reading of the articles of the default user (%s)', 'allow_anonymous_refresh' => 'Allow anonymous refresh of the articles', @@ -133,8 +145,6 @@ return array( 'articles' => 'articles', 'articles_per_page' => 'Number of articles per page', 'articles_to_display' => 'Articles to display', - 'ask_empty' => 'Clear?', - 'attention' => 'Attention!', 'auth_form' => 'Web form (traditional, requires JavaScript)', 'auth_form_not_set' => 'A problem occured during authentication system configuration. Please retry later.', 'auth_form_set' => 'Form is now your default authentication system.', @@ -159,20 +169,16 @@ return array( 'bdd_conf_is_ok' => 'Database configuration has been saved.', 'bdd_configuration' => 'Database configuration', 'bdd_type' => 'Type of database', - 'blank_to_disable' => 'Leave blank to disable', 'bottom_line' => 'Bottom line', 'by' => 'by', - 'by_default' => 'By default', 'by_email' => 'By email', 'by_feed' => 'by feed', 'cache_is_ok' => 'Permissions on cache directory are good', 'can_not_be_deleted' => 'Cannot be deleted', - 'cancel' => 'Cancel', 'categories' => 'Categories', 'categories_management' => 'Categories management', 'categories_updated' => 'Categories have been updated', 'categorize' => 'Store in a category', - 'category' => 'Category', 'category_created' => 'Category %s has been created.', 'category_deleted' => 'Category has been deleted.', 'category_emptied' => 'Category has been emptied', @@ -192,18 +198,15 @@ return array( 'content_width' => 'Content width', 'create' => 'Create', 'create_user' => 'Create new user', - 'css_path_on_website' => 'Articles CSS path on original website', 'ctype_is_nok' => 'You lack a required library for character type checking (php-ctype)', 'ctype_is_ok' => 'You have the required library for character type checking (ctype)', 'curl_is_nok' => 'You lack cURL (php5-curl package)', 'curl_is_ok' => 'You have version %s of cURL', 'current_user' => 'Current user', - 'damn' => 'Damn!', 'data_is_ok' => 'Permissions on data directory are good', 'default_category' => 'Uncategorized', 'default_user' => 'Username of the default user (maximum 16 alphanumeric characters)', 'default_view' => 'Default view', - 'delete' => 'Delete', 'delete_articles_every' => 'Remove articles after', 'display_articles_unfolded' => 'Show articles unfolded by default', 'display_categories_unfolded' => 'Show categories folded by default', @@ -212,7 +215,6 @@ return array( 'dom_is_nok' => 'You lack a required library to browse the DOM (php-xml package)', 'dom_is_ok' => 'You have the required library to browse the DOM', 'error_occurred' => 'An error occurred', - 'error_occurred_update' => 'Nothing was changed', 'explain_token' => 'Allows to access RSS output of the default user without authentication.
    %s?output=rss&token=%s', 'export' => 'Export', 'export_no_zip_extension' => 'Zip extension is not present on your server. Please try to export files one by one.', @@ -223,20 +225,13 @@ return array( 'feed_actualized' => '%s has been updated', 'feed_added' => 'RSS feed %s has been added', 'feed_deleted' => 'Feed has been deleted', - 'feed_description' => 'Description', - 'feed_empty' => 'This feed is empty. Please verify that it is still maintained.', - 'feed_in_error' => 'This feed has encountered a problem. Please verify that it is always reachable then actualize it.', 'feed_list' => 'List of %s articles', 'feed_not_added' => '%s could not be added', - 'feed_updated' => 'Feed has been updated', - 'feed_url' => 'Feed URL', - 'feed_validator' => 'Check the validity of the feed', 'feeds' => 'Feeds', 'feeds_actualized' => 'RSS feeds have been updated', 'feeds_imported' => 'Your feeds have been imported and will now be updated', 'feeds_imported_with_errors' => 'Your feeds have been imported but some errors occurred', 'feeds_marked_read' => 'Feeds have been marked as read', - 'feeds_moved_category_deleted' => 'When you delete a category, their feeds are automatically classified under %s.', 'file_cannot_be_uploaded' => 'File cannot be uploaded!', 'file_is_nok' => 'Check permissions on %s directory. HTTP server must have rights to write into', 'file_to_import' => 'File to import
    (OPML, Json or Zip)', @@ -253,14 +248,10 @@ return array( 'host' => 'Host', 'html5_notif_timeout' => 'HTML5 notification timeout', 'http_auth' => 'HTTP (for advanced users with HTTPS)', - 'http_authentication' => 'HTTP Authentication', - 'http_password' => 'HTTP password', 'http_referer_is_nok' => 'Please check that you are not altering your HTTP REFERER.', 'http_referer_is_ok' => 'Your HTTP REFERER is known and corresponds to your server.', - 'http_username' => 'HTTP username', 'img_with_lazyload' => 'Use "lazy load" mode to load pictures', 'import' => 'Import', - 'informations' => 'Information', 'install_not_deleted' => 'Something went wrong; you must delete the file %s manually.', 'installation_is_ok' => 'The installation process was successful.
    The final step will now attempt to delete any file and database backup created during the update process.
    You may choose to skip this step by deleting ./data/do-install.txt manually.', 'installation_step' => 'Installation — step %d · FreshRSS', @@ -272,13 +263,11 @@ return array( 'javascript_is_better' => 'FreshRSS is more pleasant with JavaScript enabled', 'javascript_should_be_activated' => 'JavaScript must be enabled', 'jump_next' => 'jump to next unread sibling (feed or category)', - 'keep_history' => 'Minimum number of articles to keep', 'keep_logged_in' => 'Keep me logged in (1 month)', 'language' => 'Language', 'language_defined' => 'Language has been defined.', 'last_article' => 'Skip to the last article', 'log_is_ok' => 'Permissions on logs directory are good', - 'login_configuration' => 'Login', 'login_persona_problem' => 'Connection problem with Persona?', 'login_required' => 'Login required:', 'login_with_persona' => 'Login with Persona', @@ -291,11 +280,9 @@ return array( 'more_information' => 'More information', 'n_entries_deleted' => '%d articles have been deleted', 'n_feeds_actualized' => '%d feeds have been updated', - 'new_category' => 'New category', 'next_article' => 'Skip to the next article', 'next_page' => 'Skip to the next page', 'next_step' => 'Go to the next step', - 'no' => 'No', 'no_feed_actualized' => 'No RSS feed has been updated', 'no_feed_to_refresh' => 'There is no feed to refresh…', 'no_query' => 'You haven’t created any user query yet.', @@ -309,12 +296,9 @@ return array( 'not_yet_implemented' => 'Not yet implemented', 'number_divided_when_reader' => 'Divided by 2 in the reading view.', 'number_feeds' => '%d feeds', - 'ok' => 'Ok!', - 'oops' => 'Oops!', 'optimization_complete' => 'Optimization complete', 'optimize_bdd' => 'Optimize database', 'optimize_todo_sometimes' => 'To do occasionally to reduce the size of the database', - 'or' => 'or', 'page_not_found' => 'You are looking for a page which doesn’t exist', 'password' => 'Password', 'password_api' => 'Password API
    (e.g., for mobile apps)', @@ -363,10 +347,6 @@ return array( 'query_state_15' => 'Display all articles', 'random_string' => 'Random string', 'reading_confirm' => 'Display a confirmation dialog on “mark all as read” actions', - 'refresh' => 'Refresh', - 'retrieve_truncated_feeds' => 'Retrieves truncated RSS feeds (attention, requires more time!)', - 'rss_feed_management' => 'RSS feeds management', - 'save' => 'Save', 'scroll' => 'while scrolling', 'seconds_(0_means_no_timeout)' => 'seconds (0 means no timeout)', 'see_on_website' => 'See on original website', @@ -381,17 +361,13 @@ return array( 'shortcuts_updated' => 'Shortcuts have been updated', 'show_adaptive' => 'Adjust showing', 'show_all_articles' => 'Show all articles', - 'show_in_all_flux' => 'Show in main stream', 'sort_order' => 'Sort order', 'starred_list' => 'List of favourite articles', 'steps' => 'Steps', 'sticky_post' => 'Stick the article to the top when opened', - 'submit' => 'Submit', 'theme' => 'Theme', 'this_is_the_end' => 'This is the end', 'top_line' => 'Top line', - 'truncate' => 'Delete all articles', - 'ttl' => 'Do not automatically refresh more often than', 'unsafe_autologin' => 'Allow unsafe automatic login using the format: ', 'update_apply' => 'Apply', 'update_can_apply' => 'An update is available.', @@ -415,12 +391,10 @@ return array( 'users' => 'Users', 'users_list' => 'List of users', 'version_update' => 'Update', - 'website_url' => 'Website URL', 'width_large' => 'Large', 'width_medium' => 'Medium', 'width_no_limit' => 'No limit', 'width_thin' => 'Thin', - 'yes' => 'Yes', 'your_diaspora_pod' => 'Your Diaspora* pod', 'your_shaarli' => 'Your Shaarli', 'your_wallabag' => 'Your wallabag', diff --git a/app/i18n/en/index.php b/app/i18n/en/index.php index 338f589ed..a1a276feb 100644 --- a/app/i18n/en/index.php +++ b/app/i18n/en/index.php @@ -35,17 +35,13 @@ return array( ), 'menu' => array( 'about' => 'About FreshRSS', - 'actualize' => 'Actualize', 'add_query' => 'Add a query', 'before_one_day' => 'Before one day', 'before_one_week' => 'Before one week', 'favorites' => 'Favourites (%s)', - 'filter' => 'Filter', 'global_view' => 'Global view', 'main_stream' => 'Main stream', - 'manage' => 'Manage', 'mark_all_read' => 'Mark all as read', - 'mark_read' => 'Mark as read', 'newer_first' => 'Newer first', 'non-starred' => 'Show all but favorites', 'normal_view' => 'Normal view', @@ -55,7 +51,6 @@ return array( 'reader_view' => 'Reading view', 'rss_view' => 'RSS feed', 'search_short' => 'Search', - 'see_website' => 'See website', 'starred' => 'Show only favorites', 'stats' => 'Statistics', 'subscription' => 'Subscriptions management', diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php index d915a18a7..b8bc3d33d 100644 --- a/app/i18n/en/sub.php +++ b/app/i18n/en/sub.php @@ -1,15 +1,49 @@ array( + 'category' => array( + '_' => 'Category', + 'add' => 'Add a category', + 'empty' => 'Empty category', + 'new' => 'New category', 'over_max' => 'You have reached your limit of categories (%d)', ), - 'feeds' => array( + 'feed' => array( + 'add' => 'Add a RSS feed', + 'advanced' => 'Advanced', + 'archiving' => 'Archivage', + 'auth' => array( + 'configuration' => 'Login', + 'help' => 'Connection allows to access HTTP protected RSS feeds', + 'http' => 'HTTP Authentication', + 'password' => 'HTTP password', + 'username' => 'HTTP username', + ), + 'css_help' => 'Retrieves truncated RSS feeds (attention, requires more time!)', + 'css_path' => 'Articles CSS path on original website', + 'description' => 'Description', + 'empty' => 'This feed is empty. Please verify that it is still maintained.', + 'error' => 'This feed has encountered a problem. Please verify that it is always reachable then actualize it.', + 'in_main_stream' => 'Show in main stream', + 'informations' => 'Information', + 'keep_history' => 'Minimum number of articles to keep', + 'moved_category_deleted' => 'When you delete a category, their feeds are automatically classified under %s.', + 'number_entries' => '%d articles', 'over_max' => 'You have reached your limit of feeds (%d)', + 'stats' => 'Statistics', + 'title' => 'Title', + 'ttl' => 'Do not automatically refresh more often than', + 'url' => 'Feed URL', + 'validator' => 'Check the validity of the feed', + 'website' => 'Website URL', ), 'menu' => array( 'bookmark' => 'Subscribe (FreshRSS bookmark)', 'import_export' => 'Import / export', 'subscription_management' => 'Subscriptions management', ), + 'title' => array( + '_' => 'Subscriptions management', + 'feed_management' => 'RSS feeds management', + ), ); diff --git a/app/i18n/fr/admin.php b/app/i18n/fr/admin.php index 1e9eb03af..3132458b9 100644 --- a/app/i18n/fr/admin.php +++ b/app/i18n/fr/admin.php @@ -108,7 +108,7 @@ return array( 'repartition' => 'Répartition des articles', ), 'no_idle' => 'Il n’y a aucun flux inactif !', - 'number_articles' => '%d articles', + 'number_entries' => '%d articles', 'percent_of_total' => '%% du total', 'repartition' => 'Répartition des articles', 'status_favorites' => 'favoris', diff --git a/app/i18n/fr/feedback.php b/app/i18n/fr/feedback.php index f4bb7cccf..98d3c3eb2 100644 --- a/app/i18n/fr/feedback.php +++ b/app/i18n/fr/feedback.php @@ -2,12 +2,16 @@ return array( 'login' => array( - 'error' => 'L’identifiant est invalide !', + 'error' => 'L’identifiant est invalide', 'success' => 'Vous êtes désormais connecté', ), 'logout' => array( 'success' => 'Vous avez été déconnecté', ), + 'sub' => array( + 'error_occurred' => 'Le flux n’a pas pu être modifié', + 'feed_updated' => 'Le flux a été mis à jour', + ), 'user_profile' => array( 'updated' => 'Votre profil a été mis à jour', ), diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index af595c20b..9d663680c 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -2,12 +2,19 @@ return array( 'action' => array( + 'actualize' => 'Actualiser', 'back_to_rss_feeds' => '← Retour à vos flux RSS', + 'cancel' => 'Annuler', 'disable' => 'Désactiver', + 'empty' => 'Vider', 'enable' => 'Activer', 'filter' => 'Filtrer', 'manage' => 'Gérer', + 'mark_read' => 'Marquer comme lu', 'remove' => 'Supprimer', + 'see_website' => 'Voir le site', + 'truncate' => 'Supprimer tous les articles', + 'submit' => 'Valider', ), 'auth' => array( 'login' => 'Connexion', @@ -103,8 +110,18 @@ return array( 'nothing_to_load' => 'Fin des articles', 'previous' => 'Précédent', ), + 'short' => array( + 'attention' => 'Attention !', + 'blank_to_disable' => 'Laissez vide pour désactiver', + 'by_default' => 'Par défaut', + 'damn' => 'Arf !', + 'no' => 'Non', + 'ok' => 'Ok !', + 'oops' => 'Oups !', + 'or' => 'ou', + 'yes' => 'Oui', + ), 'title' => array( - '_' => 'Titre', 'authentication' => 'Authentification', 'check_install' => 'Vérification de l’installation', 'user_management' => 'Gestion des utilisateurs', @@ -112,12 +129,7 @@ return array( ), 'freshrss' => 'FreshRSS', 'access_denied' => 'Vous n’avez pas le droit d’accéder à cette page !', - 'access_protected_feeds' => 'La connexion permet d’accéder aux flux protégés par une authentification HTTP.', 'activate_sharing' => 'Activer le partage', - 'add_category' => 'Ajouter une catégorie', - 'add_rss_feed' => 'Ajouter un flux RSS', - 'administration' => 'Gérer', - 'advanced' => 'Avancé', 'after_onread' => 'Après “marquer tout comme lu”,', 'allow_anonymous' => 'Autoriser la lecture anonyme des articles de l’utilisateur par défaut (%s)', 'allow_anonymous_refresh' => 'Autoriser le rafraîchissement anonyme des flux', @@ -133,8 +145,6 @@ return array( 'articles' => 'articles', 'articles_per_page' => 'Nombre d’articles par page', 'articles_to_display' => 'Articles à afficher', - 'ask_empty' => 'Vider ?', - 'attention' => 'Attention !', 'auth_form' => 'Formulaire (traditionnel, requiert JavaScript)', 'auth_form_not_set' => 'Un problème est survenu lors de la configuration de votre système d’authentification. Veuillez réessayer plus tard.', 'auth_form_set' => 'Le formulaire est désormais votre système d’authentification.', @@ -159,20 +169,16 @@ return array( 'bdd_conf_is_ok' => 'La configuration de la base de données a été enregistrée.', 'bdd_configuration' => 'Base de données', 'bdd_type' => 'Type de base de données', - 'blank_to_disable' => 'Laissez vide pour désactiver', 'bottom_line' => 'Ligne du bas', 'by' => 'par', - 'by_default' => 'Par défaut', 'by_email' => 'Par courriel', 'by_feed' => 'par flux', 'cache_is_ok' => 'Les droits sur le répertoire de cache sont bons', 'can_not_be_deleted' => 'Ne peut pas être supprimée.', - 'cancel' => 'Annuler', 'categories' => 'Catégories', 'categories_management' => 'Gestion des catégories', 'categories_updated' => 'Les catégories ont été mises à jour.', 'categorize' => 'Ranger dans une catégorie', - 'category' => 'Catégorie', 'category_created' => 'La catégorie %s a été créée.', 'category_deleted' => 'La catégorie a été supprimée.', 'category_emptied' => 'La catégorie a été vidée.', @@ -192,18 +198,15 @@ return array( 'content_width' => 'Largeur du contenu', 'create' => 'Créer', 'create_user' => 'Créer un nouvel utilisateur', - 'css_path_on_website' => 'Sélecteur CSS des articles sur le site d’origine', 'ctype_is_nok' => 'Il manque une librairie pour la vérification des types de caractères (php-ctype)', 'ctype_is_ok' => 'Vous disposez du nécessaire pour la vérification des types de caractères (ctype)', 'curl_is_nok' => 'Vous ne disposez pas de cURL (paquet php5-curl)', 'curl_is_ok' => 'Vous disposez de cURL dans sa version %s', 'current_user' => 'Utilisateur actuel', - 'damn' => 'Arf !', 'data_is_ok' => 'Les droits sur le répertoire de data sont bons', 'default_category' => 'Sans catégorie', 'default_user' => 'Nom de l’utilisateur par défaut (16 caractères alphanumériques maximum)', 'default_view' => 'Vue par défaut', - 'delete' => 'Supprimer', 'delete_articles_every' => 'Supprimer les articles après', 'display' => 'Affichage', 'display_articles_unfolded' => 'Afficher les articles dépliés par défaut', @@ -212,7 +215,6 @@ return array( 'dom_is_nok' => 'Il manque une librairie pour parcourir le DOM (paquet php-xml)', 'dom_is_ok' => 'Vous disposez du nécessaire pour parcourir le DOM', 'error_occurred' => 'Une erreur est survenue !', - 'error_occurred_update' => 'Rien n’a été modifié !', 'explain_token' => 'Permet d’accéder à la sortie RSS de l’utilisateur par défaut sans besoin de s’authentifier.
    %s?output=rss&token=%s', 'export' => 'Exporter', 'export_no_zip_extension' => 'L’extension Zip n’est pas présente sur votre serveur. Veuillez essayer d’exporter les fichiers un par un.', @@ -223,20 +225,13 @@ return array( 'feed_actualized' => '%s a été mis à jour.', 'feed_added' => 'Le flux %s a bien été ajouté.', 'feed_deleted' => 'Le flux a été supprimé.', - 'feed_description' => 'Description', - 'feed_empty' => 'Ce flux est vide. Veuillez vérifier qu’il est toujours maintenu.', - 'feed_in_error' => 'Ce flux a rencontré un problème. Veuillez vérifier qu’il est toujours accessible puis actualisez-le.', 'feed_list' => 'Liste des articles de %s', 'feed_not_added' => '%s n’a pas pu être ajouté.', - 'feed_updated' => 'Le flux a été mis à jour.', - 'feed_url' => 'URL du flux', - 'feed_validator' => 'Vérifier la valididé du flux', 'feeds' => 'Flux', 'feeds_actualized' => 'Les flux ont été mis à jour.', 'feeds_imported' => 'Vos flux ont été importés et vont maintenant être actualisés.', 'feeds_imported_with_errors' => 'Vos flux ont été importés mais des erreurs sont survenues.', 'feeds_marked_read' => 'Les flux ont été marqués comme lus.', - 'feeds_moved_category_deleted' => 'Lors de la suppression d’une catégorie, ses flux seront automatiquement classés dans %s.', 'file_cannot_be_uploaded' => 'Le fichier ne peut pas être téléchargé !', 'file_is_nok' => 'Veuillez vérifier les droits sur le répertoire %s. Le serveur HTTP doit être capable d’écrire dedans', 'file_to_import' => 'Fichier à importer
    (OPML, Json ou Zip)', @@ -253,14 +248,10 @@ return array( 'host' => 'Hôte', 'html5_notif_timeout' => 'Temps d’affichage de la notification HTML5', 'http_auth' => 'HTTP (pour utilisateurs avancés avec HTTPS)', - 'http_authentication' => 'Authentification HTTP', - 'http_password' => 'Mot de passe HTTP', 'http_referer_is_nok' => 'Veuillez vérifier que vous ne modifiez pas votre HTTP REFERER.', 'http_referer_is_ok' => 'Le HTTP REFERER est connu et semble correspondre à votre serveur.', - 'http_username' => 'Identifiant HTTP', 'img_with_lazyload' => 'Utiliser le mode “chargement différé” pour les images', 'import' => 'Importer', - 'informations' => 'Informations', 'install_not_deleted' => 'Quelque chose s’est mal passé, vous devez supprimer le fichier %s à la main.', 'installation_is_ok' => 'L’installation s’est bien passée.
    La dernière étape va maintenant tenter de supprimer les fichiers ainsi que d’éventuelles copies de base de données créés durant le processus de mise à jour.
    Vous pouvez choisir de sauter cette étape en supprimant ./data/do-install.txt manuellement.', 'installation_step' => 'Installation — étape %d · FreshRSS', @@ -272,13 +263,11 @@ return array( 'javascript_is_better' => 'FreshRSS est plus agréable à utiliser avec JavaScript activé', 'javascript_should_be_activated' => 'Le JavaScript doit être activé.', 'jump_next' => 'sauter au prochain voisin non lu (flux ou catégorie)', - 'keep_history' => 'Nombre minimum d’articles à conserver', 'keep_logged_in' => 'Rester connecté (1 mois)', 'language' => 'Langue', 'language_defined' => 'La langue a bien été définie.', 'last_article' => 'Passer au dernier article', 'log_is_ok' => 'Les droits sur le répertoire des logs sont bons', - 'login_configuration' => 'Identification', 'login_persona_problem' => 'Problème de connexion à Persona ?', 'login_required' => 'Accès protégé par mot de passe :', 'login_with_persona' => 'Connexion avec Persona', @@ -291,11 +280,9 @@ return array( 'more_information' => 'Plus d’informations', 'n_entries_deleted' => '%d articles ont été supprimés.', 'n_feeds_actualized' => '%d flux ont été mis à jour.', - 'new_category' => 'Nouvelle catégorie', 'next_article' => 'Passer à l’article suivant', 'next_page' => 'Passer à la page suivante', 'next_step' => 'Passer à l’étape suivante', - 'no' => 'Non', 'no_feed_actualized' => 'Aucun flux n’a pu être mis à jour.', 'no_feed_to_refresh' => 'Il n’y a aucun flux à actualiser…', 'no_query' => 'Vous n’avez pas encore créé de filtre.', @@ -309,12 +296,9 @@ return array( 'not_yet_implemented' => 'Pas encore implémenté', 'number_divided_when_reader' => 'Divisé par 2 dans la vue de lecture.', 'number_feeds' => '%d flux', - 'ok' => 'Ok !', - 'oops' => 'Oups !', 'optimization_complete' => 'Optimisation terminée.', 'optimize_bdd' => 'Optimiser la base de données', 'optimize_todo_sometimes' => 'À faire de temps en temps pour réduire la taille de la BDD', - 'or' => 'ou', 'page_not_found' => 'La page que vous cherchez n’existe pas !', 'password' => 'Mot de passe', 'password_api' => 'Mot de passe API
    (ex. : pour applis mobiles)', @@ -363,10 +347,6 @@ return array( 'query_state_15' => 'Afficher tous les articles', 'random_string' => 'Chaîne aléatoire', 'reading_confirm' => 'Afficher une confirmation lors des actions “marquer tout comme lu”', - 'refresh' => 'Actualisation', - 'retrieve_truncated_feeds' => 'Permet de récupérer les flux tronqués (attention, demande plus de temps !)', - 'rss_feed_management' => 'Gestion des flux RSS', - 'save' => 'Enregistrer', 'scroll' => 'au défilement de la page', 'seconds_(0_means_no_timeout)' => 'secondes (0 signifie aucun timeout ) ', 'see_on_website' => 'Voir sur le site d’origine', @@ -381,17 +361,13 @@ return array( 'shortcuts_updated' => 'Les raccourcis ont été mis à jour.', 'show_adaptive' => 'Adapter l’affichage', 'show_all_articles' => 'Afficher tous les articles', - 'show_in_all_flux' => 'Afficher dans le flux principal', 'sort_order' => 'Ordre de tri', 'starred_list' => 'Liste des articles favoris', 'steps' => 'Étapes', 'sticky_post' => 'Aligner l’article en haut quand il est ouvert', - 'submit' => 'Valider', 'theme' => 'Thème', 'this_is_the_end' => 'This is the end', 'top_line' => 'Ligne du haut', - 'truncate' => 'Supprimer tous les articles', - 'ttl' => 'Ne pas automatiquement rafraîchir plus souvent que', 'unsafe_autologin' => 'Autoriser les connexions automatiques non-sûres au format : ', 'update_apply' => 'Appliquer la mise à jour', 'update_can_apply' => 'Une mise à jour est disponible.', @@ -415,12 +391,10 @@ return array( 'users' => 'Utilisateurs', 'users_list' => 'Liste des utilisateurs', 'version_update' => 'Mise à jour', - 'website_url' => 'URL du site', 'width_large' => 'Large', 'width_medium' => 'Moyenne', 'width_no_limit' => 'Pas de limite', 'width_thin' => 'Fine', - 'yes' => 'Oui', 'your_diaspora_pod' => 'Votre pod Diaspora*', 'your_shaarli' => 'Votre Shaarli', 'your_wallabag' => 'Votre wallabag', diff --git a/app/i18n/fr/index.php b/app/i18n/fr/index.php index bcc95a72f..0156d4cae 100644 --- a/app/i18n/fr/index.php +++ b/app/i18n/fr/index.php @@ -35,17 +35,13 @@ return array( ), 'menu' => array( 'about' => 'À propos de FreshRSS', - 'actualize' => 'Actualiser', 'add_query' => 'Créer un filtre', 'before_one_day' => 'Antérieurs à 1 jour', 'before_one_week' => 'Antérieurs à 1 semaine', 'favorites' => 'Favoris (%s)', - 'filter' => 'Filtrer', 'global_view' => 'Vue globale', 'main_stream' => 'Flux principal', - 'manage' => 'Gérer', 'mark_all_read' => 'Tout marquer comme lu', - 'mark_read' => 'Marquer comme lu', 'newer_first' => 'Plus récents en premier', 'non-starred' => 'Afficher tout sauf les favoris', 'normal_view' => 'Vue normale', @@ -55,7 +51,6 @@ return array( 'reader_view' => 'Vue lecture', 'rss_view' => 'Flux RSS', 'search_short' => 'Rechercher', - 'see_website' => 'Voir le site', 'starred' => 'Afficher les favoris', 'stats' => 'Statistiques', 'subscription' => 'Gestion des abonnements', diff --git a/app/i18n/fr/sub.php b/app/i18n/fr/sub.php index 7bb52b113..9d7317db7 100644 --- a/app/i18n/fr/sub.php +++ b/app/i18n/fr/sub.php @@ -1,15 +1,49 @@ array( + 'category' => array( + '_' => 'Catégorie', + 'add' => 'Ajouter une catégorie', + 'empty' => 'Catégorie vide', + 'new' => 'Nouvelle catégorie', 'over_max' => 'Vous avez atteint votre limite de catégories (%d)', ), - 'feeds' => array( + 'feed' => array( + 'add' => 'Ajouter un flux RSS', + 'advanced' => 'Avancé', + 'archiving' => 'Archivage', + 'auth' => array( + 'configuration' => 'Identification', + 'help' => 'La connexion permet d’accéder aux flux protégés par une authentification HTTP.', + 'http' => 'Authentification HTTP', + 'password' => 'Mot de passe HTTP', + 'username' => 'Identifiant HTTP', + ), + 'css_help' => 'Permet de récupérer les flux tronqués (attention, demande plus de temps !)', + 'css_path' => 'Sélecteur CSS des articles sur le site d’origine', + 'description' => 'Description', + 'empty' => 'Ce flux est vide. Veuillez vérifier qu’il est toujours maintenu.', + 'error' => 'Ce flux a rencontré un problème. Veuillez vérifier qu’il est toujours accessible puis actualisez-le.', + 'in_main_stream' => 'Afficher dans le flux principal', + 'informations' => 'Informations', + 'keep_history' => 'Nombre minimum d’articles à conserver', + 'moved_category_deleted' => 'Lors de la suppression d’une catégorie, ses flux seront automatiquement classés dans %s.', + 'number_entries' => '%d articles', 'over_max' => 'Vous avez atteint votre limite de flux (%d)', + 'stats' => 'Statistiques', + 'title' => 'Titre', + 'ttl' => 'Ne pas automatiquement rafraîchir plus souvent que', + 'url' => 'URL du flux', + 'validator' => 'Vérifier la valididé du flux', + 'website' => 'URL du site', ), 'menu' => array( 'bookmark' => 'S’abonner (bookmark FreshRSS)', 'import_export' => 'Importer / exporter', 'subscription_management' => 'Gestion des abonnements', ), + 'title' => array( + '_' => 'Gestion des abonnements', + 'feed_management' => 'Gestion des flux RSS', + ), ); diff --git a/app/layout/aside_feed.phtml b/app/layout/aside_feed.phtml index ca220dcd4..a39aea327 100644 --- a/app/layout/aside_feed.phtml +++ b/app/layout/aside_feed.phtml @@ -74,21 +74,21 @@
    repartition['total']; ?>