Merge pull-request and improve relative_time() to support translations

This commit is contained in:
Frédéric Guillot 2014-02-25 18:49:38 -05:00
commit 01c3175c1b
10 changed files with 90 additions and 7 deletions

View File

@ -73,7 +73,7 @@ return array(
'This subscription has been enabled successfully.' => 'L\'abonnement a été activé avec succès.', 'This subscription has been enabled successfully.' => 'L\'abonnement a été activé avec succès.',
'Unable to disable this subscription.' => 'Impossible de désactiver cet abonnement.', 'Unable to disable this subscription.' => 'Impossible de désactiver cet abonnement.',
'This subscription has been disabled successfully.' => 'L\'abonnement a été désactivé avec succès.', 'This subscription has been disabled successfully.' => 'L\'abonnement a été désactivé avec succès.',
'Do you really want to disable this subscription: "%s"?' => 'Voulez-vous vraiment désactiver cet abonnement : "%s" ?', 'Do you really want to disable this subscription: "%s"?' => 'Voulez-vous vraiment désactiver cet abonnement : « %s » ?',
'enable' => 'activer', 'enable' => 'activer',
'disable' => 'désactiver', 'disable' => 'désactiver',
'Subscription disabled' => 'Abonnement désactivé', 'Subscription disabled' => 'Abonnement désactivé',
@ -189,9 +189,21 @@ return array(
'The confirmation is required' => 'La confirmation est obligatoire', 'The confirmation is required' => 'La confirmation est obligatoire',
'Passwords doesn\'t match' => 'Les mots de passe ne sont pas identiques', 'Passwords doesn\'t match' => 'Les mots de passe ne sont pas identiques',
'Do you really want to remove these items from your history?' => 'Voulez-vous vraiment supprimer les éléments de votre historique ?', 'Do you really want to remove these items from your history?' => 'Voulez-vous vraiment supprimer les éléments de votre historique ?',
'Do you really want to remove this subscription: "%s"?' => 'Voulez-vous vraiment supprimer cet abonnement : "%s" ?', 'Do you really want to remove this subscription: "%s"?' => 'Voulez-vous vraiment supprimer cet abonnement : « %s » ?',
'Nothing to read, do you want to <a href="?action=refresh-all" data-action="refresh-all">update your subscriptions?</a>' => 'Nothing to read, do you want to <a href="?action=refresh-all" data-action="refresh-all">update your subscriptions?</a>' =>
'Il n\'y a rien à lire, voulez-vous <a href="?action=refresh-all" data-action="refresh-all">mettre à jour vos abonnements ?</a>', 'Il n\'y a rien à lire, voulez-vous <a href="?action=refresh-all" data-action="refresh-all">mettre à jour vos abonnements ?</a>',
'Show help' => 'Afficher l\'aide', 'Show help' => 'Afficher l\'aide',
'Close help' => 'Fermer l\'aide', 'Close help' => 'Fermer l\'aide',
'%d second ago' => 'Il y a %d seconde',
'%d seconds ago' => 'Il y a %d secondes',
'%d minute ago' => 'Il y a %d minute',
'%d minutes ago' => 'Il y a %d minutes',
'%d hour ago' => 'Il y a %d heure',
'%d hours ago' => 'Il y a %d heures',
'%d day ago' => 'Il y a %d jour',
'%d days ago' => 'Il y a %d jours',
'%d week ago' => 'Il y a %d semaine',
'%d weeks ago' => 'Il y a %d semaines',
'%d month ago' => 'Il y a %d mois',
'%d months ago' => 'Il y a %d mois',
); );

View File

@ -38,7 +38,8 @@
<?php if ($feed['last_checked']): ?> <?php if ($feed['last_checked']): ?>
<time class="feed-last-checked" id="last-checked-feed-<?= $feed['id'] ?>" data-after-update="<?= t('updated just now') ?>"> <time class="feed-last-checked" id="last-checked-feed-<?= $feed['id'] ?>" data-after-update="<?= t('updated just now') ?>">
<?= t('checked at').' '.dt('%e %B %Y %k:%M', $feed['last_checked']) ?> <?= t('updated' ) ?>
<span title="<?= dt('%e %B %Y %k:%M', $feed['last_checked']) ?>"><?= Helper\relative_time($feed['last_checked']) ?></span>
</time> </time>
<?php else: ?> <?php else: ?>
<span class="feed-last-checked" id="last-checked-feed-<?= $feed['id'] ?>" data-after-update="<?= t('now') ?>"> <span class="feed-last-checked" id="last-checked-feed-<?= $feed['id'] ?>" data-after-update="<?= t('now') ?>">
@ -88,4 +89,4 @@
<?php endforeach ?> <?php endforeach ?>
</section> </section>
<?php endif ?> <?php endif ?>

View File

@ -30,7 +30,7 @@
<?php endif ?> <?php endif ?>
</li> </li>
<li class="hide-mobile"> <li class="hide-mobile">
<?= dt('%e %B %Y %k:%M', $item['updated']) ?> <span title="<?= dt('%e %B %Y %k:%M', $item['updated']) ?>"><?= Helper\relative_time($item['updated']) ?></span>
</li> </li>
<li class="hide-mobile"> <li class="hide-mobile">
<a href="<?= $item['url'] ?>" id="original-<?= $item['id'] ?>" rel="noreferrer" target="_blank" data-item-id="<?= $item['id'] ?>"><?= t('original link') ?></a> <a href="<?= $item['url'] ?>" id="original-<?= $item['id'] ?>" rel="noreferrer" target="_blank" data-item-id="<?= $item['id'] ?>"><?= t('original link') ?></a>
@ -43,4 +43,4 @@
<?= \PicoTools\Template\load('bookmark_links', array('item' => $item, 'menu' => $menu, 'offset' => $offset, 'source' => '')) ?> <?= \PicoTools\Template\load('bookmark_links', array('item' => $item, 'menu' => $menu, 'offset' => $offset, 'source' => '')) ?>
<?= \PicoTools\Template\load('status_links', array('item' => $item, 'redirect' => $menu, 'offset' => $offset)) ?> <?= \PicoTools\Template\load('status_links', array('item' => $item, 'redirect' => $menu, 'offset' => $offset)) ?>
</ul> </ul>
</article> </article>

View File

@ -62,7 +62,7 @@
<a href="?action=feed-items&amp;feed_id=<?= $feed['id'] ?>"><?= Helper\escape($feed['title']) ?></a> <a href="?action=feed-items&amp;feed_id=<?= $feed['id'] ?>"><?= Helper\escape($feed['title']) ?></a>
</li> </li>
<li class="hide-mobile"> <li class="hide-mobile">
<?= dt('%e %B %Y %k:%M', $item['updated']) ?> <span title="<?= dt('%e %B %Y %k:%M', $item['updated']) ?>"><?= Helper\relative_time($item['updated']) ?></span>
</li> </li>
<?php if ($item['enclosure']): ?> <?php if ($item['enclosure']): ?>
<li> <li>

View File

@ -0,0 +1,9 @@
<?php
return array(
'test_url' => 'http://www.fastcodesign.com/3026548/exposure/peek-inside-the-worlds-forbidden-subway-tunnels',
'body' => array(
'//article[contains(@class, "body prose")]',
),
'strip' => array(
)
);

View File

@ -0,0 +1,9 @@
<?php
return array(
'test_url' => 'http://www.fastcoexist.com/3026114/take-a-seat-on-this-gates-funded-future-toilet-that-will-change-how-we-think-about-poop',
'body' => array(
'//article[contains(@class, "body prose")]',
),
'strip' => array(
)
);

View File

@ -0,0 +1,9 @@
<?php
return array(
'test_url' => 'http://www.fastcompany.com/3026712/fast-feed/elon-musk-an-apple-tesla-merger-is-very-unlikely',
'body' => array(
'//article[contains(@class, "body prose")]',
),
'strip' => array(
)
);

View File

@ -0,0 +1,9 @@
<?php
return array(
'test_url' => 'http://www.huffingtonpost.com/2014/02/20/centscere-social-media-syracuse_n_4823848.html',
'body' => array(
'//article[@class="content")]',
),
'strip' => array(
)
);

View File

@ -0,0 +1,10 @@
<?php
return array(
'test_url' => 'http://www.treehugger.com/uncategorized/top-ten-posts-week-bunnies-2.html',
'body' => array(
'//div[contains(@class, "promo-image")]',
'//div[contains(@id, "entry-body")]',
),
'strip' => array(
)
);

View File

@ -77,6 +77,30 @@ function in_list($id, array $listing)
return '?'; return '?';
} }
function relative_time($timestamp, $fallback_date_format = '%e %B %Y %k:%M')
{
$diff = time() - $timestamp;
if ($diff < 60) return \t('%d second'.($diff > 1 ? 's' : '').' ago', $diff);
$diff = floor($diff / 60);
if ($diff < 60) return \t('%d minute'.($diff > 1 ? 's' : '').' ago', $diff);
$diff = floor($diff / 60);
if ($diff < 24) return \t('%d hour'.($diff > 1 ? 's' : '').' ago', $diff);
$diff = floor($diff / 24);
if ($diff < 7) return \t('%d day'.($diff > 1 ? 's' : '').' ago', $diff);
$diff = floor($diff / 7);
if ($diff < 4) return \t('%d week'.($diff > 1 ? 's' : '').' ago', $diff);
$diff = floor($diff / 4);
if ($diff < 12) return \t('%d month'.($diff > 1 ? 's' : '').' ago', $diff);
return \dt($fallback_date_format, $timestamp);
}
function error_class(array $errors, $name) function error_class(array $errors, $name)
{ {
return ! isset($errors[$name]) ? '' : ' form-error'; return ! isset($errors[$name]) ? '' : ' form-error';