1
0
Fork 0
mirror of https://github.com/wallabag/wallabag.git synced 2025-09-15 18:57:05 +00:00

Merge remote-tracking branch 'origin/master' into 2.2

# Conflicts:
#	.editorconfig
#	docs/de/index.rst
#	docs/de/user/import.rst
#	docs/en/index.rst
#	docs/en/user/configuration.rst
#	docs/en/user/import.rst
#	docs/fr/index.rst
#	docs/fr/user/import.rst
#	src/Wallabag/CoreBundle/Command/InstallCommand.php
#	src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.pt.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
#	src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
#	src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig
#	web/bundles/wallabagcore/themes/baggy/css/style.min.css
#	web/bundles/wallabagcore/themes/baggy/js/baggy.min.js
#	web/bundles/wallabagcore/themes/material/css/style.min.css
#	web/bundles/wallabagcore/themes/material/js/material.min.js
This commit is contained in:
Jeremy Benoist 2016-11-19 15:30:49 +01:00
commit 68003139e1
No known key found for this signature in database
GPG key ID: BCA73962457ACC3C
124 changed files with 2814 additions and 2573 deletions

View file

@ -72,6 +72,7 @@ class InstallCommand extends ContainerAwareCommand
protected function checkRequirements()
{
$this->defaultOutput->writeln('<info><comment>Step 1 of 4.</comment> Checking system requirements.</info>');
$doctrineManager = $this->getContainer()->get('doctrine')->getManager();
$rows = [];
@ -108,21 +109,39 @@ class InstallCommand extends ContainerAwareCommand
$rows[] = [$label, $status, $help];
// check MySQL & PostgreSQL version
$label = '<comment>Database version</comment>';
$status = '<info>OK!</info>';
$help = '';
// now check if MySQL isn't too old to handle utf8mb4
if ($conn->isConnected() && $conn->getDatabasePlatform() instanceof \Doctrine\DBAL\Platforms\MySqlPlatform) {
if ($conn->isConnected() && 'mysql' === $conn->getDatabasePlatform()->getName()) {
$version = $conn->query('select version()')->fetchColumn();
$minimalVersion = '5.5.4';
if (false === version_compare($version, $minimalVersion, '>')) {
$fulfilled = false;
$rows[] = [
'<comment>Database version</comment>',
'<error>ERROR!</error>',
'Your MySQL version ('.$version.') is too old, consider upgrading ('.$minimalVersion.'+).',
];
$status = '<error>ERROR!</error>';
$help = 'Your MySQL version ('.$version.') is too old, consider upgrading ('.$minimalVersion.'+).';
}
}
// testing if PostgreSQL > 9.1
if ($conn->isConnected() && 'postgresql' === $conn->getDatabasePlatform()->getName()) {
// return version should be like "PostgreSQL 9.5.4 on x86_64-apple-darwin15.6.0, compiled by Apple LLVM version 8.0.0 (clang-800.0.38), 64-bit"
$version = $doctrineManager->getConnection()->query('SELECT version();')->fetchColumn();
preg_match('/PostgreSQL ([0-9\.]+)/i', $version, $matches);
if (isset($matches[1]) & version_compare($matches[1], '9.2.0', '<')) {
$fulfilled = false;
$status = '<error>ERROR!</error>';
$help = 'PostgreSQL should be greater than 9.1 (actual version: '.$matches[1].')';
}
}
$rows[] = [$label, $status, $help];
foreach ($this->functionExists as $functionRequired) {
$label = '<comment>'.$functionRequired.'</comment>';
$status = '<info>OK!</info>';

View file

@ -39,6 +39,8 @@ class ConfigController extends Controller
$em->persist($config);
$em->flush();
$request->getSession()->set('_locale', $config->getLanguage());
// switch active theme
$activeTheme = $this->get('liip_theme.active_theme');
$activeTheme->setName($config->getTheme());

View file

@ -71,7 +71,7 @@ class Config
* @Assert\Range(
* min = 1,
* max = 100000,
* maxMessage = "validator.rss_limit_too_hight"
* maxMessage = "validator.rss_limit_too_high"
* )
*/
private $rssLimit;

View file

@ -13,7 +13,7 @@ use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
class EntryFilterType extends AbstractType
{
@ -23,13 +23,18 @@ class EntryFilterType extends AbstractType
/**
* Repository & user are used to get a list of language entries for this user.
*
* @param EntityRepository $entryRepository
* @param TokenStorage $token
* @param EntityRepository $entryRepository
* @param TokenStorageInterface $tokenStorage
*/
public function __construct(EntityRepository $entryRepository, TokenStorage $token)
public function __construct(EntityRepository $entryRepository, TokenStorageInterface $tokenStorage)
{
$this->repository = $entryRepository;
$this->user = $token->getToken()->getUser();
$this->user = $tokenStorage->getToken() ? $tokenStorage->getToken()->getUser() : null;
if (null === $this->user || !is_object($this->user)) {
return null;
}
}
public function buildForm(FormBuilderInterface $builder, array $options)

View file

@ -8,6 +8,7 @@ use Wallabag\CoreBundle\Entity\Entry;
use Wallabag\CoreBundle\Entity\Tag;
use Wallabag\CoreBundle\Tools\Utils;
use Wallabag\CoreBundle\Repository\TagRepository;
use Symfony\Component\HttpFoundation\File\MimeType\MimeTypeExtensionGuesser;
/**
* This kind of proxy class take care of getting the content from an url
@ -19,6 +20,7 @@ class ContentProxy
protected $tagger;
protected $logger;
protected $tagRepository;
protected $mimeGuesser;
public function __construct(Graby $graby, RuleBasedTagger $tagger, TagRepository $tagRepository, LoggerInterface $logger)
{
@ -26,6 +28,7 @@ class ContentProxy
$this->tagger = $tagger;
$this->logger = $logger;
$this->tagRepository = $tagRepository;
$this->mimeGuesser = new MimeTypeExtensionGuesser();
}
/**
@ -81,6 +84,11 @@ class ContentProxy
$entry->setPreviewPicture($content['open_graph']['og_image']);
}
// if content is an image define as a preview too
if (in_array($this->mimeGuesser->guess($content['content_type']), ['jpeg', 'jpg', 'gif', 'png'], true)) {
$entry->setPreviewPicture($content['url']);
}
try {
$this->tagger->tag($entry);
} catch (\Exception $e) {

View file

@ -5,16 +5,16 @@ namespace Wallabag\CoreBundle\Helper;
use Pagerfanta\Adapter\AdapterInterface;
use Pagerfanta\Pagerfanta;
use Symfony\Component\Routing\Router;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage;
use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
class PreparePagerForEntries
{
private $user;
private $router;
private $tokenStorage;
public function __construct(TokenStorage $token, Router $router)
public function __construct(TokenStorageInterface $tokenStorage, Router $router)
{
$this->user = $token->getToken()->getUser();
$this->tokenStorage = $tokenStorage;
$this->router = $router;
}
@ -26,8 +26,14 @@ class PreparePagerForEntries
*/
public function prepare(AdapterInterface $adapter, $page = 1)
{
$user = $this->tokenStorage->getToken() ? $this->tokenStorage->getToken()->getUser() : null;
if (null === $user || !is_object($user)) {
return null;
}
$entries = new Pagerfanta($adapter);
$entries->setMaxPerPage($this->user->getConfig()->getItemsPerPage());
$entries->setMaxPerPage($user->getConfig()->getItemsPerPage());
return $entries;
}

View file

@ -41,21 +41,6 @@ services:
arguments:
-
error_message: '%wallabag_core.fetching_error_message%'
http_client:
user_agents:
'lifehacker.com': 'PHP/5.2'
'gawker.com': 'PHP/5.2'
'deadspin.com': 'PHP/5.2'
'kotaku.com': 'PHP/5.2'
'jezebel.com': 'PHP/5.2'
'io9.com': 'PHP/5.2'
'jalopnik.com': 'PHP/5.2'
'gizmodo.com': 'PHP/5.2'
'.wikipedia.org': 'Mozilla/5.2'
'.fok.nl': 'Googlebot/2.1'
'getpocket.com': 'PHP/5.2'
'iansommerville.com': 'PHP/5.2'
'.slashdot.org': 'PHP/5.2'
calls:
- [ setLogger, [ "@logger" ] ]
tags:

View file

@ -76,6 +76,11 @@ config:
# redirect_current_page: 'To the current page'
pocket_consumer_key_label: Brugers nøgle til Pocket for at importere materialer
# android_configuration: Configure your Android application
# help_theme: "wallabag is customizable. You can choose your prefered theme here."
# help_items_per_page: "You can change the number of articles displayed on each page."
# help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article."
# help_language: "You can change the language of wallabag interface."
# help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account."
form_rss:
description: 'RSS-feeds fra wallabag gør det muligt at læse de artikler, der gemmes i wallabag, med din RSS-læser. Det kræver, at du genererer et token først.'
token_label: 'RSS-Token'
@ -93,6 +98,7 @@ config:
name_label: 'Navn'
email_label: 'Emailadresse'
# twoFactorAuthentication_label: 'Two factor authentication'
# help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email."
delete:
# title: Delete my account (a.k.a danger zone)
# description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
@ -106,6 +112,7 @@ config:
# entries: Remove ALL entries
# confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
form_password:
# description: "You can change your password here. Your new password should by at least 8 characters long."
old_password_label: 'Gammel adgangskode'
new_password_label: 'Ny adgangskode'
repeat_new_password_label: 'Gentag adgangskode'
@ -247,7 +254,7 @@ about:
getting_help:
documentation: 'Dokumentation'
bug_reports: 'Bugs'
support: '<a href="https://support.wallabag.org">På vor support-side</a> eller <a href="https://github.com/wallabag/wallabag/issues">på GitHub</a>'
support: '<a href="https://github.com/wallabag/wallabag/issues">på GitHub</a>'
helping:
description: 'wallabag er gratis og Open source. Du kan hjælpe os:'
by_contributing: 'ved at bidrage til projektet:'
@ -477,7 +484,7 @@ error:
flashes:
config:
notice:
config_saved: 'Opsætning gemt. Visse ændringer vil først fremgå ved næste login.'
config_saved: 'Opsætning gemt.'
password_updated: 'Adgangskode opdateret'
# password_not_updated_demo: "In demonstration mode, you can't change password for this user."
user_updated: 'Oplysninger opdateret'

View file

@ -76,6 +76,11 @@ config:
redirect_current_page: 'Zur aktuellen Seite'
pocket_consumer_key_label: Consumer-Key für Pocket, um Inhalte zu importieren
android_configuration: Konfiguriere deine Android Application
# help_theme: "wallabag is customizable. You can choose your prefered theme here."
# help_items_per_page: "You can change the number of articles displayed on each page."
# help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article."
# help_language: "You can change the language of wallabag interface."
# help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account."
form_rss:
description: 'Die RSS-Feeds von wallabag erlauben es dir, deine gespeicherten Artikel mit deinem bevorzugten RSS-Reader zu lesen. Vorher musst du jedoch einen Token erstellen.'
token_label: 'RSS-Token'
@ -93,6 +98,7 @@ config:
name_label: 'Name'
email_label: 'E-Mail-Adresse'
twoFactorAuthentication_label: 'Zwei-Faktor-Authentifizierung'
# help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email."
delete:
title: Lösche mein Konto (a.k.a Gefahrenzone)
description: Wenn du dein Konto löschst, werden ALL deine Artikel, ALL deine Tags, ALL deine Anmerkungen und dein Konto dauerhaft gelöscht (kann NICHT RÜCKGÄNGIG gemacht werden). Du wirst anschließend ausgeloggt.
@ -106,6 +112,7 @@ config:
entries: Entferne ALLE Einträge
confirm: Bist du wirklich sicher? (DIES KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN)
form_password:
# description: "You can change your password here. Your new password should by at least 8 characters long."
old_password_label: 'Altes Kennwort'
new_password_label: 'Neues Kennwort'
repeat_new_password_label: 'Neues Kennwort wiederholen'
@ -247,7 +254,7 @@ about:
getting_help:
documentation: 'Dokumentation'
bug_reports: 'Fehlerberichte'
support: '<a href="https://support.wallabag.org">Auf unserer Support-Webseite</a> oder <a href="https://github.com/wallabag/wallabag/issues">auf GitHub</a>'
support: '<a href="https://github.com/wallabag/wallabag/issues">auf GitHub</a>'
helping:
description: 'wallabag ist frei und Open Source. Du kannst uns helfen:'
by_contributing: 'indem du zu dem Projekt beiträgst:'
@ -477,7 +484,7 @@ error:
flashes:
config:
notice:
config_saved: 'Konfiguration gespeichert. Einige Einstellungen werden erst nach einer erneuten Anmeldung übernommen.'
config_saved: 'Konfiguration gespeichert.'
password_updated: 'Kennwort aktualisiert'
password_not_updated_demo: "Im Testmodus kannst du das Kennwort nicht ändern."
user_updated: 'Information aktualisiert'

View file

@ -76,6 +76,11 @@ config:
redirect_current_page: 'To the current page'
pocket_consumer_key_label: Consumer key for Pocket to import contents
android_configuration: Configure your Android application
help_theme: "wallabag is customizable. You can choose your prefered theme here."
help_items_per_page: "You can change the number of articles displayed on each page."
help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article."
help_language: "You can change the language of wallabag interface."
help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account."
form_rss:
description: 'RSS feeds provided by wallabag allow you to read your saved articles with your favourite RSS reader. You need to generate a token first.'
token_label: 'RSS token'
@ -93,6 +98,7 @@ config:
name_label: 'Name'
email_label: 'Email'
twoFactorAuthentication_label: 'Two factor authentication'
help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email."
delete:
title: Delete my account (a.k.a danger zone)
description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
@ -106,6 +112,7 @@ config:
entries: Remove ALL entries
confirm: Are you really sure? (THIS CAN'T BE UNDONE)
form_password:
description: "You can change your password here. Your new password should by at least 8 characters long."
old_password_label: 'Current password'
new_password_label: 'New password'
repeat_new_password_label: 'Repeat new password'
@ -247,7 +254,7 @@ about:
getting_help:
documentation: 'Documentation'
bug_reports: 'Bug reports'
support: '<a href="https://support.wallabag.org">On our support website</a> or <a href="https://github.com/wallabag/wallabag/issues">on GitHub</a>'
support: '<a href="https://github.com/wallabag/wallabag/issues">on GitHub</a>'
helping:
description: 'wallabag is free and open source. You can help us:'
by_contributing: 'by contributing to the project:'
@ -477,7 +484,7 @@ error:
flashes:
config:
notice:
config_saved: 'Config saved. Some parameters will be considered after disconnection.'
config_saved: 'Config saved.'
password_updated: 'Password updated'
password_not_updated_demo: "In demonstration mode, you can't change password for this user."
user_updated: 'Information updated'

View file

@ -76,6 +76,11 @@ config:
# redirect_current_page: 'To the current page'
# pocket_consumer_key_label: Consumer key for Pocket to import contents
# android_configuration: Configure your Android application
# help_theme: "wallabag is customizable. You can choose your prefered theme here."
# help_items_per_page: "You can change the number of articles displayed on each page."
# help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article."
# help_language: "You can change the language of wallabag interface."
# help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account."
form_rss:
description: 'Los feeds RSS de wallabag permiten leer los artículos guardados con su lector RSS favorito. Necesita generar un token primero'
token_label: 'RSS token'
@ -93,6 +98,7 @@ config:
name_label: 'Nombre'
email_label: 'Direccion e-mail'
twoFactorAuthentication_label: 'Autentificación de dos factores'
# help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email."
delete:
# title: Delete my account (a.k.a danger zone)
# description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
@ -106,6 +112,7 @@ config:
# entries: Remove ALL entries
# confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
form_password:
# description: "You can change your password here. Your new password should by at least 8 characters long."
old_password_label: 'Contraseña actual'
new_password_label: 'Nueva contraseña'
repeat_new_password_label: 'Confirmar la nueva contraseña'
@ -247,7 +254,7 @@ about:
getting_help:
documentation: 'Documentación'
bug_reports: 'Reporte de errores'
support: '<a href="https://support.wallabag.org">En nuestra web de apoyo website</a> o <a href="https://github.com/wallabag/wallabag/issues">en GitHub</a>'
support: '<a href="https://github.com/wallabag/wallabag/issues">en GitHub</a>'
helping:
description: 'wallabag es libre y gratuito. Usted puede ayudarnos :'
by_contributing: 'contribuyendo al proyecto :'
@ -477,7 +484,7 @@ error:
flashes:
config:
notice:
config_saved: 'Configuración guardada. Algunos parámetros serán recargados cuando se vuelva a conectar.'
config_saved: 'Configuración guardada.'
password_updated: 'Contraseña actualizada'
password_not_updated_demo: "En modo demo, no puede cambiar la contraseña del usuario."
user_updated: 'Su información personal ha sido actualizada'

View file

@ -76,6 +76,11 @@ config:
# redirect_current_page: 'To the current page'
pocket_consumer_key_label: کلید کاربری Pocket برای درون‌ریزی مطالب
# android_configuration: Configure your Android application
# help_theme: "wallabag is customizable. You can choose your prefered theme here."
# help_items_per_page: "You can change the number of articles displayed on each page."
# help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article."
# help_language: "You can change the language of wallabag interface."
# help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account."
form_rss:
description: 'با خوراک آر-اس-اس که wallabag در اختیارتان می‌گذارد، می‌توانید مقاله‌های ذخیره‌شده را در نرم‌افزار آر-اس-اس دلخواه خود بخوانید. برای این کار نخست باید یک کد بسازید.'
token_label: 'کد آر-اس-اس'
@ -93,6 +98,7 @@ config:
name_label: 'نام'
email_label: 'نشانی ایمیل'
twoFactorAuthentication_label: 'تأیید ۲مرحله‌ای'
# help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email."
delete:
# title: Delete my account (a.k.a danger zone)
# description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
@ -106,6 +112,7 @@ config:
# entries: Remove ALL entries
# confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
form_password:
# description: "You can change your password here. Your new password should by at least 8 characters long."
old_password_label: 'رمز قدیمی'
new_password_label: 'رمز تازه'
repeat_new_password_label: 'رمز تازه را دوباره بنویسید'
@ -247,7 +254,7 @@ about:
getting_help:
documentation: 'راهنما'
bug_reports: 'گزارش اشکال‌ها'
support: '<a href="https://support.wallabag.org">در وب‌گاه پشتیبانی</a> یا <a href="https://github.com/wallabag/wallabag/issues">روی GitHub</a>'
support: '<a href="https://github.com/wallabag/wallabag/issues">روی GitHub</a>'
helping:
description: 'wallabag رایگان، آزاد، و متن‌باز است. شما می‌توانید به ما کمک کنید:'
by_contributing: 'با مشارکت در پروژه:'
@ -477,7 +484,7 @@ error:
flashes:
config:
notice:
config_saved: 'پیکربندی ذخیره شد. برخی از تنظیمات پس از این که قطع شدید اعمال می‌شود.'
config_saved: 'پیکربندی ذخیره شد.'
password_updated: 'رمز به‌روز شد'
password_not_updated_demo: "در حالت نمایشی نمی‌توانید رمز کاربر را عوض کنید."
user_updated: 'اطلاعات به‌روز شد'

View file

@ -76,6 +76,11 @@ config:
redirect_current_page: 'À la page courante'
pocket_consumer_key_label: Clé dauthentification Pocket pour importer les données
android_configuration: Configurez votre application Android
help_theme: "L'affichage de wallabag est personnalisable. C'est ici que vous choisissez le thème que vous préférez."
help_items_per_page: "Vous pouvez définir le nombre d'articles affichés sur chaque page."
help_reading_speed: "wallabag calcule une durée de lecture pour chaque article. Vous pouvez définir ici, grâce à cette liste déroulante, si vous lisez plus ou moins vite. wallabag recalculera la durée de lecture de chaque article."
help_language: "Vous pouvez définir la langue de l'interface de wallabag."
help_pocket_consumer_key: "Nécessaire pour l'import depuis Pocket. Vous pouvez le créer depuis votre compte Pocket."
form_rss:
description: "Les flux RSS fournis par wallabag vous permettent de lire vos articles sauvegardés dans votre lecteur de flux préféré. Pour pouvoir les utiliser, vous devez dabord créer un jeton."
token_label: "Jeton RSS"
@ -93,6 +98,7 @@ config:
name_label: "Nom"
email_label: "Adresse courriel"
twoFactorAuthentication_label: "Double authentification"
help_twoFactorAuthentication: "Si vous activez 2FA, à chaque tentative de connexion à wallabag, vous recevrez un code par email."
delete:
title: Supprimer mon compte (attention danger !)
description: Si vous confirmez la suppression de votre compte, TOUS les articles, TOUS les tags, TOUTES les annotations et votre compte seront DÉFINITIVEMENT supprimé (c'est IRRÉVERSIBLE). Vous serez ensuite déconnecté.
@ -106,6 +112,7 @@ config:
entries: Supprimer TOUS les articles
confirm: Êtes-vous vraiment vraiment sûr ? (C'EST IRRÉVERSIBLE)
form_password:
description: "Vous pouvez changer ici votre mot de passe. Le mot de passe doit contenir au moins 8 caractères."
old_password_label: "Mot de passe actuel"
new_password_label: "Nouveau mot de passe"
repeat_new_password_label: "Confirmez votre nouveau mot de passe"
@ -247,7 +254,7 @@ about:
getting_help:
documentation: "Documentation"
bug_reports: "Rapport de bogue"
support: "<a href=\"https://support.wallabag.org\">Sur notre site de support</a> ou <a href=\"https://github.com/wallabag/wallabag/issues\">sur GitHub</a>"
support: "<a href=\"https://github.com/wallabag/wallabag/issues\">sur GitHub</a>"
helping:
description: "wallabag est gratuit et opensource. Vous pouvez nous aider :"
by_contributing: "en contribuant au projet :"
@ -477,7 +484,7 @@ error:
flashes:
config:
notice:
config_saved: "Les paramètres ont bien été mis à jour. Certains seront pris en compte après déconnexion."
config_saved: "Les paramètres ont bien été mis à jour."
password_updated: "Votre mot de passe a bien été mis à jour"
password_not_updated_demo: "En démo, vous ne pouvez pas changer le mot de passe de cet utilisateur."
user_updated: "Vos informations personnelles ont bien été mises à jour"
@ -490,7 +497,7 @@ flashes:
entries_reset: Articles supprimés
entry:
notice:
entry_already_saved: "Article déjà sauvergardé le %date%"
entry_already_saved: "Article déjà sauvegardé le %date%"
entry_saved: "Article enregistré"
entry_saved_failed: "Article enregistré mais impossible de récupérer le contenu"
entry_updated: "Article mis à jour"

View file

@ -76,6 +76,11 @@ config:
# redirect_current_page: 'To the current page'
pocket_consumer_key_label: Consumer key per Pocket per importare i contenuti
# android_configuration: Configure your Android application
# help_theme: "wallabag is customizable. You can choose your prefered theme here."
# help_items_per_page: "You can change the number of articles displayed on each page."
# help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article."
# help_language: "You can change the language of wallabag interface."
# help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account."
form_rss:
description: 'I feed RSS generati da wallabag ti permettono di leggere i tuoi contenuti salvati con il tuo lettore di RSS preferito. Prima, devi generare un token.'
token_label: 'RSS token'
@ -93,6 +98,7 @@ config:
name_label: 'Nome'
email_label: 'E-mail'
twoFactorAuthentication_label: 'Two factor authentication'
# help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email."
delete:
# title: Delete my account (a.k.a danger zone)
# description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
@ -106,6 +112,7 @@ config:
# entries: Remove ALL entries
# confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
form_password:
# description: "You can change your password here. Your new password should by at least 8 characters long."
old_password_label: 'Password corrente'
new_password_label: 'Nuova password'
repeat_new_password_label: 'Ripeti la nuova password'
@ -247,7 +254,7 @@ about:
getting_help:
documentation: 'Documentazione'
bug_reports: 'Bug reports'
support: '<a href="https://support.wallabag.org">Sul nostro sito di supporto</a> o <a href="https://github.com/wallabag/wallabag/issues">su GitHub</a>'
support: '<a href="https://github.com/wallabag/wallabag/issues">su GitHub</a>'
helping:
description: 'wallabag è gratuito opensource. Puoi aiutarci:'
by_contributing: 'per contribuire al progetto:'
@ -477,7 +484,7 @@ error:
flashes:
config:
notice:
config_saved: 'Configurazione salvata. Alcuni parametri verranno utilizzati dopo il logout/login.'
config_saved: 'Configurazione salvata.'
password_updated: 'Password aggiornata'
password_not_updated_demo: "In modalità demo, non puoi cambiare la password dell'utente."
user_updated: 'Informazioni aggiornate'

View file

@ -76,6 +76,11 @@ config:
# redirect_current_page: 'To the current page'
pocket_consumer_key_label: Clau d'autentificacion Pocket per importar las donadas
android_configuration: Configuratz vòstra aplicacion Android
# help_theme: "wallabag is customizable. You can choose your prefered theme here."
# help_items_per_page: "You can change the number of articles displayed on each page."
# help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article."
# help_language: "You can change the language of wallabag interface."
# help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account."
form_rss:
description: "Los fluxes RSS fornits per wallabag vos permeton de legir vòstres articles salvagardats dins vòstre lector de fluxes preferit. Per los poder emplegar, vos cal, d'en primièr crear un geton."
token_label: 'Geton RSS'
@ -93,6 +98,7 @@ config:
name_label: 'Nom'
email_label: 'Adreça de corrièl'
twoFactorAuthentication_label: 'Dobla autentificacion'
# help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email."
delete:
title: Suprimir mon compte (Mèfi zòna perilhosa)
description: Se confirmatz la supression de vòstre compte, TOTES vòstres articles, TOTAS vòstras etiquetas, TOTAS vòstras anotacions e vòstre compte seràn suprimits per totjorn. E aquò es IRREVERSIBLE. Puèi seretz desconnectat.
@ -106,6 +112,7 @@ config:
entries: Levar TOTES los articles
confirm: Sètz vertadièrament segur ? (ES IRREVERSIBLE)
form_password:
# description: "You can change your password here. Your new password should by at least 8 characters long."
old_password_label: 'Senhal actual'
new_password_label: 'Senhal novèl'
repeat_new_password_label: 'Confirmatz vòstre novèl senhal'
@ -247,7 +254,7 @@ about:
getting_help:
documentation: 'Documentacion'
bug_reports: 'Rapòrt de bugs'
support: "<a href=\"https://support.wallabag.org\">Sus nòstre site d'assisténcia</a> ou <a href=\"https://github.com/wallabag/wallabag/issues\">sur GitHub</a>"
support: "<a href=\"https://github.com/wallabag/wallabag/issues\">sur GitHub</a>"
helping:
description: 'wallabag es a gratuit e opensource. Nos podètz ajudar :'
by_contributing: 'en ajudant lo projècte :'
@ -477,7 +484,7 @@ error:
flashes:
config:
notice:
config_saved: 'Los paramètres son ben estats meses a jorn. Certans seràn aplicats aprèp desconnexion.'
config_saved: 'Los paramètres son ben estats meses a jorn.'
password_updated: 'Vòstre senhal es ben estat mes a jorn'
password_not_updated_demo: "En demostration, podètz pas cambiar lo senhal d'aqueste utilizaire."
user_updated: 'Vòstres informacions personnelas son ben estadas mesas a jorn'

View file

@ -76,6 +76,11 @@ config:
redirect_current_page: 'do bieżącej strony'
pocket_consumer_key_label: 'Klucz klienta Pocket do importu zawartości'
android_configuration: Skonfiguruj swoją androidową aplikację
# help_theme: "wallabag is customizable. You can choose your prefered theme here."
# help_items_per_page: "You can change the number of articles displayed on each page."
# help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article."
# help_language: "You can change the language of wallabag interface."
# help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account."
form_rss:
description: 'Kanały RSS prowadzone przez wallabag pozwalają Ci na czytanie twoich zapisanych artykułów w twoium ulubionym czytniku RSS. Musisz najpierw wynegenerować tokena.'
token_label: 'Token RSS'
@ -93,6 +98,7 @@ config:
name_label: 'Nazwa'
email_label: 'Adres email'
twoFactorAuthentication_label: 'Autoryzacja dwuetapowa'
# help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email."
delete:
title: Usuń moje konto (niebezpieczna strefa !)
description: Jeżeli usuniesz swoje konto, wszystkie twoje artykuły, tagi, adnotacje, oraz konto zostaną trwale usunięte (operacja jest NIEODWRACALNA). Następnie zostaniesz wylogowany.
@ -106,6 +112,7 @@ config:
entries: usuń WSZYTSTKIE wpisy
confirm: Jesteś pewien? (tej operacji NIE MOŻNA cofnąć)
form_password:
# description: "You can change your password here. Your new password should by at least 8 characters long."
old_password_label: 'Stare hasło'
new_password_label: 'Nowe hasło'
repeat_new_password_label: 'Powtórz nowe hasło'
@ -247,7 +254,7 @@ about:
getting_help:
documentation: 'Dokumentacja'
bug_reports: 'Raportuj błędy'
support: '<a href="https://support.wallabag.org">Na naszej stronie wsparcia technicznego</a> lub <a href="https://github.com/wallabag/wallabag/issues">na GitHubie</a>'
support: '<a href="https://github.com/wallabag/wallabag/issues">na GitHubie</a>'
helping:
description: 'wallabag jest darmowy i otwartoźródłowy. Możesz nam pomóc:'
by_contributing: 'przez przyłączenie się do projektu:'
@ -477,7 +484,7 @@ error:
flashes:
config:
notice:
config_saved: 'Konfiguracja zapisana. Niektóre parametry zostaną uznane po rozłączeniu'
config_saved: 'Konfiguracja zapisana.'
password_updated: 'Hasło zaktualizowane'
password_not_updated_demo: "In demonstration mode, you can't change password for this user."
user_updated: 'Informacje zaktualizowane'

View file

@ -76,6 +76,11 @@ config:
# redirect_current_page: 'To the current page'
pocket_consumer_key_label: 'Chave do consumidor do Pocket para importar conteúdo'
# android_configuration: Configure your Android application
# help_theme: "wallabag is customizable. You can choose your prefered theme here."
# help_items_per_page: "You can change the number of articles displayed on each page."
# help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article."
# help_language: "You can change the language of wallabag interface."
# help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account."
form_rss:
description: 'Feeds RSS providos pelo wallabag permitem que você leia seus artigos salvos em seu leitor de RSS favorito. Você precisa gerar um token primeiro.'
token_label: 'Token RSS'
@ -93,6 +98,7 @@ config:
name_label: 'Nome'
email_label: 'E-mail'
twoFactorAuthentication_label: 'Autenticação de dois passos'
# help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email."
delete:
# title: Delete my account (a.k.a danger zone)
# description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
@ -106,6 +112,7 @@ config:
# entries: Remove ALL entries
# confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
form_password:
# description: "You can change your password here. Your new password should by at least 8 characters long."
old_password_label: 'Senha atual'
new_password_label: 'Nova senha'
repeat_new_password_label: 'Repita a nova senha'
@ -247,7 +254,7 @@ about:
getting_help:
documentation: 'Documentação'
bug_reports: 'Informar bugs'
support: '<a href="https://support.wallabag.org">Em nosso site de suporte</a> ou <a href="https://github.com/wallabag/wallabag/issues">no GitHub</a>'
support: '<a href="https://github.com/wallabag/wallabag/issues">no GitHub</a>'
helping:
description: 'wallabag é livre e software livre. Você pode nos ajudar:'
by_contributing: 'contribuindo com o projeto:'
@ -477,7 +484,7 @@ error:
flashes:
config:
notice:
config_saved: 'Configiração salva. Alguns parâmetros podem ser considerados depois da desconexão.'
config_saved: 'Configiração salva.'
password_updated: 'Senha atualizada'
password_not_updated_demo: 'Em modo de demonstração, você não pode alterar a senha deste usuário.'
# user_updated: 'Information updated'

View file

@ -76,6 +76,11 @@ config:
# redirect_current_page: 'To the current page'
pocket_consumer_key_label: Cheie consumator pentru importarea contentului din Pocket
# android_configuration: Configure your Android application
# help_theme: "wallabag is customizable. You can choose your prefered theme here."
# help_items_per_page: "You can change the number of articles displayed on each page."
# help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article."
# help_language: "You can change the language of wallabag interface."
# help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account."
form_rss:
description: 'Feed-urile RSS oferite de wallabag îți permit să-ți citești articolele salvate în reader-ul tău preferat RSS.'
token_label: 'RSS-Token'
@ -93,6 +98,7 @@ config:
name_label: 'Nume'
email_label: 'E-mail'
# twoFactorAuthentication_label: 'Two factor authentication'
# help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email."
delete:
# title: Delete my account (a.k.a danger zone)
# description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
@ -106,6 +112,7 @@ config:
# entries: Remove ALL entries
# confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
form_password:
# description: "You can change your password here. Your new password should by at least 8 characters long."
old_password_label: 'Parola veche'
new_password_label: 'Parola nouă'
repeat_new_password_label: 'Repeat new password'
@ -247,7 +254,7 @@ about:
getting_help:
documentation: 'Documentație'
bug_reports: 'Bug-uri'
support: '<a href="https://support.wallabag.org">Pe site-ul nostru de suport</a> sau <a href="https://github.com/wallabag/wallabag/issues">pe GitHub</a>'
support: '<a href="https://github.com/wallabag/wallabag/issues">pe GitHub</a>'
helping:
description: 'wallabag este gratis și Open-Source. Cum ne poți ajuta:'
by_contributing: 'contribuind la proiect:'
@ -477,7 +484,7 @@ error:
flashes:
config:
notice:
config_saved: 'Configurație salvată. Unii parametrii vor fi considerați după deconectare.'
config_saved: 'Configurație salvată.'
password_updated: 'Parolă actualizată'
password_not_updated_demo: "In demonstration mode, you can't change password for this user."
user_updated: 'Informație actualizată'

View file

@ -76,6 +76,11 @@ config:
# redirect_current_page: 'To the current page'
# pocket_consumer_key_label: Consumer key for Pocket to import contents
# android_configuration: Configure your Android application
# help_theme: "wallabag is customizable. You can choose your prefered theme here."
# help_items_per_page: "You can change the number of articles displayed on each page."
# help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article."
# help_language: "You can change the language of wallabag interface."
# help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account."
form_rss:
description: 'wallabag RSS akışı kaydetmiş olduğunuz makalelerini favori RSS okuyucunuzda görüntülemenizi sağlar. Bunu yapabilmek için öncelikle belirteç (token) oluşturmalısınız.'
token_label: 'RSS belirteci (token)'
@ -93,6 +98,7 @@ config:
name_label: 'İsim'
email_label: 'E-posta'
twoFactorAuthentication_label: 'İki adımlı doğrulama'
# help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email."
delete:
# title: Delete my account (a.k.a danger zone)
# description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
@ -106,6 +112,7 @@ config:
# entries: Remove ALL entries
# confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
form_password:
# description: "You can change your password here. Your new password should by at least 8 characters long."
old_password_label: 'Eski şifre'
new_password_label: 'Yeni şifre'
repeat_new_password_label: 'Yeni şifrenin tekrarı'
@ -247,7 +254,7 @@ about:
getting_help:
documentation: 'Dokümantasyon'
bug_reports: 'Sorun bildir'
support: '<a href="https://support.wallabag.org">Destek internet sitesinde</a> ya da <a href="https://github.com/wallabag/wallabag/issues">GitHub üzerinde</a>'
support: '<a href="https://github.com/wallabag/wallabag/issues">GitHub üzerinde</a>'
helping:
description: 'wallabag açık kaynak kodlu ve ücretsizdir. Bize destek ol :'
by_contributing: 'projemize katkıda bulunun :'
@ -477,7 +484,7 @@ error:
flashes:
config:
notice:
config_saved: 'Yapılandırma ayarları kaydedildi. Bazı yapılandırmalar tekrar giriş yaptığınızda aktif olacaktır.'
config_saved: 'Yapılandırma ayarları kaydedildi.'
password_updated: 'Şifre güncellendi'
password_not_updated_demo: "In demonstration mode, you can't change password for this user."
user_updated: 'Bilgiler güncellendi'

View file

@ -3,4 +3,4 @@ validator:
password_too_short: 'Adgangskoden skal være mindst 8 tegn'
# password_wrong_value: 'Wrong value for your current password'
# item_per_page_too_high: 'This will certainly kill the app'
# rss_limit_too_hight: 'This will certainly kill the app'
# rss_limit_too_high: 'This will certainly kill the app'

View file

@ -3,4 +3,4 @@ validator:
password_too_short: 'Kennwort-Mindestlänge von acht Zeichen nicht erfüllt'
password_wrong_value: 'Falscher Wert für dein aktuelles Kennwort'
item_per_page_too_high: 'Dies wird die Anwendung möglicherweise beenden'
rss_limit_too_hight: 'Dies wird die Anwendung möglicherweise beenden'
rss_limit_too_high: 'Dies wird die Anwendung möglicherweise beenden'

View file

@ -3,4 +3,4 @@ validator:
password_too_short: 'Password should by at least 8 chars long'
password_wrong_value: 'Wrong value for your current password'
item_per_page_too_high: 'This will certainly kill the app'
rss_limit_too_hight: 'This will certainly kill the app'
rss_limit_too_high: 'This will certainly kill the app'

View file

@ -3,4 +3,4 @@ validator:
password_too_short: 'La contraseña debe tener al menos 8 carácteres'
password_wrong_value: 'Entrada equivocada para su contraseña actual'
item_per_page_too_high: 'Esto matará la aplicación'
rss_limit_too_hight: 'Esto matará la aplicación'
rss_limit_too_high: 'Esto matará la aplicación'

View file

@ -3,4 +3,4 @@ validator:
password_too_short: 'رمز شما باید ۸ حرف یا بیشتر باشد'
password_wrong_value: 'رمز فعلی را اشتباه وارد کرده‌اید'
item_per_page_too_high: 'با این تعداد برنامه به فنا می‌رود'
rss_limit_too_hight: 'با این تعداد برنامه به فنا می‌رود'
rss_limit_too_high: 'با این تعداد برنامه به فنا می‌رود'

View file

@ -3,4 +3,4 @@ validator:
password_too_short: "Le mot de passe doit contenir au moins 8 caractères"
password_wrong_value: "Votre mot de passe actuel est faux"
item_per_page_too_high: "Ça ne va pas plaire à lapplication"
rss_limit_too_hight: "Ça ne va pas plaire à lapplication"
rss_limit_too_high: "Ça ne va pas plaire à lapplication"

View file

@ -3,4 +3,4 @@ validator:
password_too_short: 'La password deve essere lunga almeno 8 caratteri'
password_wrong_value: 'Valore inserito per la password corrente errato'
item_per_page_too_high: 'Questo valore è troppo alto'
rss_limit_too_hight: 'Questo valore è troppo alto'
rss_limit_too_high: 'Questo valore è troppo alto'

View file

@ -3,4 +3,4 @@ validator:
password_too_short: 'Lo senhal deu aver almens 8 caractèrs'
password_wrong_value: 'Vòstre senhal actual es pas bon'
item_per_page_too_high: "Aquò li agradarà pas a l'aplicacion"
rss_limit_too_hight: "Aquò li agradarà pas a l'aplicacion"
rss_limit_too_high: "Aquò li agradarà pas a l'aplicacion"

View file

@ -3,4 +3,4 @@ validator:
password_too_short: 'Hasło powinno mieć minimum 8 znaków długości'
password_wrong_value: 'Twoje obecne hasło jest błędne'
item_per_page_too_high: 'To może spowodować problemy z aplikacją'
rss_limit_too_hight: 'To może spowodować problemy z aplikacją'
rss_limit_too_high: 'To może spowodować problemy z aplikacją'

View file

@ -3,4 +3,4 @@ validator:
password_too_short: 'A senha deve ter pelo menos 8 caracteres'
password_wrong_value: 'A senha atual informada está errada'
item_per_page_too_high: 'Certamente isso pode matar a aplicação'
rss_limit_too_hight: 'Certamente isso pode matar a aplicação'
rss_limit_too_high: 'Certamente isso pode matar a aplicação'

View file

@ -3,4 +3,4 @@ validator:
password_too_short: 'Parola ar trebui să conțină cel puțin 8 caractere'
# password_wrong_value: 'Wrong value for your current password'
# item_per_page_too_high: 'This will certainly kill the app'
# rss_limit_too_hight: 'This will certainly kill the app'
# rss_limit_too_high: 'This will certainly kill the app'

View file

@ -3,4 +3,4 @@ validator:
# password_too_short: 'Password should by at least 8 chars long'
# password_wrong_value: 'Wrong value for your current password'
# item_per_page_too_high: 'This will certainly kill the app'
# rss_limit_too_hight: 'This will certainly kill the app'
# rss_limit_too_high: 'This will certainly kill the app'

View file

@ -14,6 +14,9 @@
{{ form_errors(form.config.theme) }}
{{ form_widget(form.config.theme) }}
</div>
<a href="#" title="{{ 'config.form_settings.help_theme'|trans }}">
<i class="material-icons">live_help</i>
</a>
</fieldset>
<fieldset class="w500p inline">
@ -22,6 +25,9 @@
{{ form_errors(form.config.items_per_page) }}
{{ form_widget(form.config.items_per_page) }}
</div>
<a href="#" title="{{ 'config.form_settings.help_items_per_page'|trans }}">
<i class="material-icons">live_help</i>
</a>
</fieldset>
<fieldset class="w500p inline">
@ -34,6 +40,9 @@
<a href="http://www.myreadspeed.com/calculate/">myreadspeed</a>
</p>
</div>
<a href="#" title="{{ 'config.form_settings.help_reading_speed'|trans }}">
<i class="material-icons">live_help</i>
</a>
</fieldset>
<fieldset class="w500p inline">
@ -50,6 +59,9 @@
{{ form_errors(form.config.language) }}
{{ form_widget(form.config.language) }}
</div>
<a href="#" title="{{ 'config.form_settings.help_language'|trans }}">
<i class="material-icons">live_help</i>
</a>
</fieldset>
<fieldset class="w500p inline">
@ -62,10 +74,16 @@
<a href="https://getpocket.com/developer/docs/authentication">https://getpocket.com/developer/docs/authentication</a>
</p>
</div>
<a href="#" title="{{ 'config.form_settings.help_pocket_consumer_key'|trans }}">
<i class="material-icons">live_help</i>
</a>
</fieldset>
<fieldset class="w500p inline">
<div class="row">
<h3>{{ 'config.form_settings.android_configuration'|trans }}</h3>
<a href="wallabag://{{ app.user.username }}@{{ wallabag_url }}" >Touch here to prefill your Android application</a>
<br/>
<img id="androidQrcode" />
<script>
const imgBase64 = jrQrcode.getQrBase64('wallabag://{{ app.user.username }}@{{ wallabag_url }}');
@ -161,6 +179,9 @@
{{ form_errors(form.user.twoFactorAuthentication) }}
{{ form_widget(form.user.twoFactorAuthentication) }}
</div>
<a href="#" title="{{ 'config.form_user.help_twoFactorAuthentication'|trans }}">
<i class="material-icons">live_help</i>
</a>
</fieldset>
{% endif %}
@ -204,6 +225,10 @@
{{ form_start(form.pwd) }}
{{ form_errors(form.pwd) }}
<div class="row">
{{ 'config.form_password.description'|trans }}
</div>
<fieldset class="w500p inline">
<div class="row">
{{ form_label(form.pwd.old_password) }}

View file

@ -9,7 +9,17 @@
{% endblock %}
{% block content %}
{% include "WallabagCoreBundle:Entry:pager.html.twig" with {'entries': entries} %}
<div class="results">
<div class="nb-results">{{ 'entry.list.number_on_the_page'|transchoice(entries.count) }}</div>
<div class="pagination">
<i class="btn-clickable download-btn material-icons md-36">file_download</i>
<i class="btn-clickable filter-btn material-icons md-36">filter_list</i>
{% if entries.getNbPages > 1 %}
{{ pagerfanta(entries, 'twitter_bootstrap_translated', {'proximity': 1}) }}
{% endif %}
</div>
</div>
{% for entry in entries %}
<div id="entry-{{ entry.id|e }}" class="entry">
@ -24,6 +34,11 @@
{{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
{% endif %}
</span>
<span class="tool created-at">
<i class="tool icon icon-calendar" title="{{ 'entry.view.created_at'|trans }}">
{{ entry.createdAt|date('Y-m-d') }}
</i>
</span>
</div>
<ul class="tools links">
@ -50,6 +65,10 @@
</div>
{% endfor %}
{% if entries.getNbPages > 1 %}
{{ pagerfanta(entries, 'twitter_bootstrap_translated', {'proximity': 1}) }}
{% endif %}
<!-- Export -->
<aside id="download-form">
{% set currentRoute = app.request.attributes.get('_route') %}
@ -75,7 +94,7 @@
<!-- Filter -->
{% if form is not null %}
<div id="filters" class="">
<div id="filters">
<form method="get" action="{{ path('all') }}">
<h2>{{ 'entry.filters.title'|trans }}</h2>
<a href="javascript: void(null);" id="filter-form-close" class="close-button--popup close-button">&times;</a>

View file

@ -1,12 +0,0 @@
{% block pager %}
<div class="results">
<div class="nb-results">{{ 'entry.list.number_on_the_page'|transchoice(entries.count) }}</div>
<div class="pagination">
<i class="btn-clickable download-btn material-icons md-36">file_download</i>
<i class="btn-clickable filter-btn material-icons md-36">filter_list</i>
{% if entries.getNbPages > 1 %}
{{ pagerfanta(entries, 'twitter_bootstrap_translated', {'proximity': 1}) }}
{% endif %}
</div>
</div>
{% endblock %}

View file

@ -14,7 +14,9 @@
<header class="w600p center mbm">
<h1 class="logo">
{% block logo %}
<img width="100" height="100" src="{{ asset('bundles/wallabagcore/themes/_global/img/logo-w.png') }}" alt="wallabag logo" />
<a title="{{ 'menu.left.back_to_unread'|trans }}" href="{{ path('unread') }}">
<img width="100" height="100" src="{{ asset('bundles/wallabagcore/themes/_global/img/logo-w.png') }}" alt="wallabag logo" />
</a>
{% endblock %}
</h1>
</header>

View file

@ -24,23 +24,33 @@
{{ form_errors(form.config) }}
<div class="row">
<div class="input-field col s12">
<div class="input-field col s11">
{{ form_label(form.config.theme) }}
{{ form_errors(form.config.theme) }}
{{ form_widget(form.config.theme) }}
</div>
</div>
<div class="row">
<div class="input-field col s12">
{{ form_label(form.config.items_per_page) }}
{{ form_errors(form.config.items_per_page) }}
{{ form_widget(form.config.items_per_page) }}
<div class="input-field col s1">
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_theme'|trans }}">
<i class="material-icons">live_help</i>
</a>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<div class="input-field col s11">
{{ form_label(form.config.items_per_page) }}
{{ form_errors(form.config.items_per_page) }}
{{ form_widget(form.config.items_per_page) }}
</div>
<div class="input-field col s1">
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_items_per_page'|trans }}">
<i class="material-icons">live_help</i>
</a>
</div>
</div>
<div class="row">
<div class="input-field col s11">
{{ form_label(form.config.reading_speed) }}
{{ form_errors(form.config.reading_speed) }}
{{ form_widget(form.config.reading_speed) }}
@ -49,6 +59,11 @@
<a href="http://www.myreadspeed.com/calculate/">myreadspeed</a>
</p>
</div>
<div class="input-field col s1">
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_reading_speed'|trans }}">
<i class="material-icons">live_help</i>
</a>
</div>
</div>
<div class="row">
@ -60,15 +75,20 @@
</div>
<div class="row">
<div class="input-field col s12">
<div class="input-field col s11">
{{ form_label(form.config.language) }}
{{ form_errors(form.config.language) }}
{{ form_widget(form.config.language) }}
</div>
<div class="input-field col s1">
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_language'|trans }}">
<i class="material-icons">live_help</i>
</a>
</div>
</div>
<div class="row">
<div class="input-field col s12">
<div class="input-field col s11">
{{ form_label(form.config.pocket_consumer_key) }}
{{ form_errors(form.config.pocket_consumer_key) }}
{{ form_widget(form.config.pocket_consumer_key) }}
@ -77,6 +97,11 @@
<a href="https://getpocket.com/developer/docs/authentication">https://getpocket.com/developer/docs/authentication</a>
</p>
</div>
<div class="input-field col s1">
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_settings.help_pocket_consumer_key'|trans }}">
<i class="material-icons">live_help</i>
</a>
</div>
</div>
<div class="row">
@ -172,7 +197,7 @@
{% if twofactor_auth %}
<div class="row">
<div class="input-field col s12">
<div class="input-field col s11">
{{ 'config.form_user.two_factor_description'|trans }}
<br />
@ -181,6 +206,11 @@
{{ form_label(form.user.twoFactorAuthentication) }}
{{ form_errors(form.user.twoFactorAuthentication) }}
</div>
<div class="input-field col s1">
<a href="#" class="tooltipped" data-position="left" data-delay="50" data-tooltip="{{ 'config.form_user.help_twoFactorAuthentication'|trans }}">
<i class="material-icons">live_help</i>
</a>
</div>
</div>
{% endif %}
@ -221,6 +251,12 @@
{{ form_start(form.pwd) }}
{{ form_errors(form.pwd) }}
<div class="row">
<div class="input-field col s12">
{{ 'config.form_password.description'|trans }}
</div>
</div>
<div class="row">
<div class="input-field col s12">
{{ form_label(form.pwd.old_password) }}

View file

@ -0,0 +1,17 @@
<div class="card-action">
<span class="reading-time grey-text">
<i class="material-icons" title="{{ 'entry.list.reading_time'|trans }}">timer</i>
{{ entry.readingTime / app.user.config.readingSpeed|round }} min&nbsp;
<i class="material-icons hide-on-med-and-down" title="{{ 'entry.view.created_at'|trans }}">today</i>
<span class="hide-on-med-and-down">&nbsp;{{ entry.createdAt|date('Y-m-d') }}</span>
</span>
<ul class="tools right">
<li>
<a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text" href="{{ path('archive_entry', { 'id': entry.id }) }}"><i class="material-icons">{% if entry.isArchived == 0 %}done{% else %}redo{% endif %}</i></a>
<a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool grey-text" href="{{ path('star_entry', { 'id': entry.id }) }}"><i class="material-icons">{% if entry.isStarred == 0 %}star_border{% else %}star{% endif %}</i></a>
<a title="{{ 'entry.list.delete'|trans }}" class="tool grey-text delete" href="{{ path('delete_entry', { 'id': entry.id }) }}"><i class="material-icons">delete</i></a>
</li>
</ul>
</div>

View file

@ -0,0 +1,28 @@
<div class="card">
<div class="card-body">
<div class="card-fullimage">
<ul class="card-entry-labels">
{% for tag in entry.tags | slice(0, 3) %}
<li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
{% endfor %}
</ul>
<div class="preview activator" style="background-image: url({{ entry.previewPicture }})"></div>
</div>
<div class="card-content">
<span class="card-title dot-ellipsis dot-resize-update">
<a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | raw | striptags }}">
{{ entry.title | raw | striptags | truncate(80, true, '…') }}
</a>
</span>
<div class="original grey-text">
<a href="{{ entry.url|e }}" target="_blank" title="{{ entry.domainName|removeWww }}" class="tool original grey-text">
<span>{{ entry.domainName|removeWww }}</span>
</a>
</div>
</div>
</div>
{% include "@WallabagCore/themes/material/Entry/_card_actions.html.twig" with {'entry': entry} only %}
</div>

View file

@ -0,0 +1,26 @@
<div class="card">
<div class="card-body">
<div class="card-content">
<span class="card-title dot-ellipsis dot-resize-update">
<a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | raw | striptags }}">
{{ entry.title | raw | striptags | truncate(80, true, '…') }}
</a>
</span>
<div class="original grey-text">
<a href="{{ entry.url|e }}" target="_blank" title="{{ entry.domainName|removeWww }}" class="tool original grey-text">
<span>{{ entry.domainName|removeWww }}</span>
</a>
</div>
<p>{{ entry.content|striptags|slice(0, 250)|raw }}&hellip;</p>
<ul class="card-entry-labels-hidden">
{% for tag in entry.tags | slice(0, 2) %}
<li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
{% endfor %}
</ul>
</div>
</div>
{% include "@WallabagCore/themes/material/Entry/_card_actions.html.twig" with {'entry': entry} only %}
</div>

View file

@ -0,0 +1,47 @@
<div class="card">
<div class="card-body">
<div class="card-image waves-effect waves-block waves-light">
<ul class="card-entry-labels">
{% for tag in entry.tags | slice(0, 3) %}
<li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
{% endfor %}
</ul>
<div class="preview activator" style="background-image: url({{ entry.previewPicture }})"></div>
</div>
<div class="card-content">
<i class="grey-text text-darken-4 activator material-icons right">more_vert</i>
<span class="card-title dot-ellipsis dot-resize-update">
<a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | raw | striptags }}">
{{ entry.title| striptags | truncate(80, true, '…') | raw }}
</a>
</span>
<div class="original grey-text">
<a href="{{ entry.url|e }}" target="_blank" title="{{ entry.domainName|removeWww }}" class="tool original grey-text">
<span>{{ entry.domainName|removeWww }}</span>
</a>
</div>
</div>
</div>
<div class="card-reveal">
<i class="card-title activator grey-text text-darken-4 material-icons right">clear</i>
<span class="card-title">
<a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | raw | striptags }}">
{{ entry.title | raw | striptags | truncate(80, true, '…') }}
</a>
</span>
<p>{{ entry.content|striptags|slice(0, 250)|raw }}&hellip;</p>
<ul class="card-entry-labels-hidden">
{% for tag in entry.tags %}
<li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
{% endfor %}
</ul>
</div>
{% include "@WallabagCore/themes/material/Entry/_card_actions.html.twig" with {'entry': entry} only %}
</div>

View file

@ -9,93 +9,34 @@
{% endblock %}
{% block content %}
{% include "WallabagCoreBundle:Entry:pager.html.twig" with {'entries': entries} %}
<div class="results clearfix">
<div class="nb-results left">
{{ 'entry.list.number_on_the_page'|transchoice(entries.count) }}
</div>
{% if entries.getNbPages > 1 %}
{{ pagerfanta(entries, 'twitter_bootstrap_translated', {'proximity': 1}) }}
{% endif %}
</div>
<br />
<ul class="row data">
{% for entry in entries %}
<li id="entry-{{ entry.id|e }}" class="col l4 m6 s12">
<div class="card">
<div class="card-body">
{% if not entry.previewPicture is null %}
<div class="card-image waves-effect waves-block waves-light">
<ul class="card-entry-labels">
{% for tag in entry.tags | slice(0, 3) %}
<li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
{% endfor %}
</ul>
<div class="preview activator" style="background-image: url({{ entry.previewPicture }})"></div>
</div>
{% endif %}
<div class="card-content">
{% if not entry.previewPicture is null %}
<i class="card-title grey-text text-darken-4 activator material-icons right">more_vert</i>
{% endif %}
<span class="card-title dot-ellipsis dot-resize-update"><a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title|raw }}">{{ entry.title|striptags|raw }}</a></span>
<div class="estimatedTime grey-text">
<span class="tool reading-time">
{% set readingTime = entry.readingTime / app.user.config.readingSpeed %}
{% if readingTime > 0 %}
{{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime|round}) }}
{% else %}
{{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
{% endif %}
</span>
</div>
{% if entry.previewPicture is null %}
<p>{{ entry.content|striptags|slice(0, 300)|raw }}&hellip;</p>
<ul class="card-entry-labels-hidden">
{% for tag in entry.tags | slice(0, 2) %}
<li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
{% endfor %}
</ul>
{% endif %}
</div>
</div>
{% if not entry.previewPicture is null %}
<div class="card-reveal">
<i class="card-title grey-text text-darken-4 material-icons right">clear</i>
<span class="card-title"><a href="{{ path('view', { 'id': entry.id }) }}">{{ entry.title|raw }}</a></span>
<div class="estimatedTime grey-text">
<span class="tool reading-time">
{% if readingTime > 0 %}{{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime|round}) }}{% else %}{{ 'entry.list.reading_time_less_one_minute'|trans|raw }}{% endif %}
</span>
</div>
<p>{{ entry.content|striptags|slice(0, 300)|raw }}&hellip;</p>
<ul class="card-entry-labels-hidden">
{% for tag in entry.tags %}
<li><a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a></li>
{% endfor %}
</ul>
</div>
{% endif %}
<div class="card-action">
<span class="bold">
<a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.list.original_article'|trans }}: {{ entry.title|e }} - {{ entry.domainName|removeWww }}" class="tool original grey-text"><span>{{ entry.domainName|removeWww|truncate(18) }}</span></a>
</span>
<ul class="tools right">
<li>
<a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text" href="{{ path('archive_entry', { 'id': entry.id }) }}"><i class="material-icons">{% if entry.isArchived == 0 %}done{% else %}redo{% endif %}</i></a>
<a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool grey-text" href="{{ path('star_entry', { 'id': entry.id }) }}"><i class="material-icons">{% if entry.isStarred == 0 %}star_border{% else %}star{% endif %}</i></a>
<a title="{{ 'entry.list.delete'|trans }}" class="tool grey-text delete" href="{{ path('delete_entry', { 'id': entry.id }) }}"><i class="material-icons">delete</i></a>
</li>
</ul>
</div>
</div>
<li id="entry-{{ entry.id|e }}" class="col l3 m6 s12">
{% if entry.previewPicture is null %}
{% include "@WallabagCore/themes/material/Entry/_card_no_preview.html.twig" with {'entry': entry} only %}
{% elseif not entry.previewPicture is null and entry.mimetype starts with 'image/' %}
{% include "@WallabagCore/themes/material/Entry/_card_full_image.html.twig" with {'entry': entry} only %}
{% elseif not entry.previewPicture is null %}
{% include "@WallabagCore/themes/material/Entry/_card_preview.html.twig" with {'entry': entry} only %}
{% endif %}
</li>
{% endfor %}
</ul>
{% if entries.getNbPages > 1 %}
{{ pagerfanta(entries, 'twitter_bootstrap_translated', {'proximity': 1}) }}
{% endif %}
<!-- Export -->
<div id="export" class="side-nav fixed right-aligned">
{% set currentRoute = app.request.attributes.get('_route') %}

View file

@ -212,27 +212,38 @@
<h1>{{ entry.title|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1>
</header>
<aside>
{% set readingTime = entry.readingTime / app.user.config.readingSpeed %}
<i class="material-icons">timer</i>
<span class="link">
{% if readingTime > 0 %}
{{ 'entry.list.reading_time_minutes_short'|trans({'%readingTime%': readingTime|round}) }}
{% else %}
{{ 'entry.list.reading_time_less_one_minute_short'|trans|raw }}
{% endif %}
</span>
<i class="material-icons" title="{{ 'entry.view.created_at'|trans }}">today</i><span class="link">{{ entry.createdAt|date('Y-m-d') }}</span>
<a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool">
<i class="material-icons link">link</i> <span class="link">{{ entry.domainName|removeWww }}</span>
</a>
<span class="tool"><i class="material-icons link">comment</i></span> <span class="link">{{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}</span>
<div id="list">
{% for tag in entry.tags %}
<div class="chip">
<a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"><i class="material-icons">delete</i></a>
</div>
{% endfor %}
</div>
<ul class="tools">
<li>
{% set readingTime = entry.readingTime / app.user.config.readingSpeed %}
<i class="material-icons">timer</i>
{% if readingTime > 0 %}
{{ 'entry.list.reading_time_minutes_short'|trans({'%readingTime%': readingTime|round}) }}
{% else %}
{{ 'entry.list.reading_time_less_one_minute_short'|trans|raw }}
{% endif %}
</li>
<li>
<i class="material-icons" title="{{ 'entry.view.created_at'|trans }}">today</i>
{{ entry.createdAt|date('Y-m-d') }}
</li>
<li>
<i class="material-icons link">link</i>
<a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool">
{{ entry.domainName|removeWww }}
</a>
</li>
<li>
<i class="material-icons link">comment</i>
{{ 'entry.view.annotations_on_the_entry'|transchoice(entry.annotations | length) }}
</li>
<li id="list">
{% for tag in entry.tags %}
<div class="chip">
<a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{ tag.label }}</a> <a href="{{ path('remove_tag', { 'entry': entry.id, 'tag': tag.id }) }}"><i class="material-icons">delete</i></a>
</div>
{% endfor %}
</li>
</ul>
<div class="input-field nav-panel-add-tag" style="display: none">
{{ render(controller( "WallabagCoreBundle:Tag:addTagForm", { 'id': entry.id } )) }}

View file

@ -1,10 +0,0 @@
{% block pager %}
<div class="results clearfix">
<div class="nb-results left">
{{ 'entry.list.number_on_the_page'|transchoice(entries.count) }}
</div>
{% if entries.getNbPages > 1 %}
{{ pagerfanta(entries, 'twitter_bootstrap_translated', {'proximity': 1}) }}
{% endif %}
</div>
{% endblock %}

View file

@ -12,7 +12,7 @@
<div class="row">
<ul class="card-tag-labels">
{% for tag in tags %}
<li title="{{tag.label}} ({{ tag.nbEntries }})" id="tag-{{ tag.id }}" class="col l2 m2 s2">
<li title="{{tag.label}} ({{ tag.nbEntries }})" id="tag-{{ tag.id }}" class="col l2 m2 s5">
<a href="{{ path('tag_entries', {'slug': tag.slug}) }}">{{tag.label}} ({{ tag.nbEntries }})</a>
</li>
{% endfor %}

View file

@ -85,7 +85,7 @@
<div class="input-field nav-panel-buttom">
<ul>
<li class="bold">
<a title="{{ 'menu.top.add_new_entry'|trans }}" class="waves-effect" href="{{ path('new') }}" id="nav-btn-add">
<a class="waves-effect tooltipped" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.add_new_entry'|trans }}" href="{{ path('new') }}" id="nav-btn-add">
<i class="material-icons">add</i>
</a>
</li>
@ -95,12 +95,12 @@
</a>
</li>-->
<li id="button_filters">
<a title="{{ 'menu.top.filter_entries'|trans }}" href="#" data-activates="filters" class="nav-panel-menu button-collapse-right">
<a class="nav-panel-menu button-collapse-right tooltipped" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.filter_entries'|trans }}" href="#" data-activates="filters">
<i class="material-icons">filter_list</i>
</a>
</li>
<li id="button_export">
<a title="{{ 'menu.top.export'|trans }}" class="nav-panel-menu button-collapse-right" href="#" data-activates="export">
<a class="nav-panel-menu button-collapse-right tooltipped" data-position="bottom" data-delay="50" data-tooltip="{{ 'menu.top.export'|trans }}" href="#" data-activates="export">
<i class="material-icons">file_download</i>
</a>
</li>
@ -127,12 +127,12 @@
<div class="footer-copyright">
<div class="container">
<div class="row">
<div class="col s8">
<p>
<div class="col m12 l8 hide-on-small-only">
<p title="{{ display_stats() | raw | striptags }}">
{{ display_stats() }}
</p>
</div>
<div class="col s4">
<div class="col s12 l4">
<p>
{{ 'footer.wallabag.powered_by'|trans }} <a target="_blank" href="https://wallabag.org" class="grey-text text-lighten-4">wallabag</a>
<a class="grey-text text-lighten-4" href="{{ path('about') }}">{{ 'footer.wallabag.about'|trans|lower }}</a>