forked from wallabag/wallabag
Merge remote-tracking branch 'origin/master' into 2.5.0
This commit is contained in:
32
src/Wallabag/ApiBundle/Controller/ConfigRestController.php
Normal file
32
src/Wallabag/ApiBundle/Controller/ConfigRestController.php
Normal file
@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace Wallabag\ApiBundle\Controller;
|
||||
|
||||
use JMS\Serializer\SerializationContext;
|
||||
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
|
||||
use Symfony\Component\HttpFoundation\JsonResponse;
|
||||
|
||||
class ConfigRestController extends WallabagRestController
|
||||
{
|
||||
/**
|
||||
* Retrieve configuration for current user.
|
||||
*
|
||||
* @ApiDoc()
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function getConfigAction()
|
||||
{
|
||||
$this->validateAuthentication();
|
||||
|
||||
$json = $this->get('jms_serializer')->serialize(
|
||||
$this->getUser()->getConfig(),
|
||||
'json',
|
||||
SerializationContext::create()->setGroups(['config_api'])
|
||||
);
|
||||
|
||||
return (new JsonResponse())
|
||||
->setJson($json)
|
||||
->setStatusCode(JsonResponse::HTTP_OK);
|
||||
}
|
||||
}
|
||||
@ -32,3 +32,8 @@ user:
|
||||
type: rest
|
||||
resource: "WallabagApiBundle:UserRest"
|
||||
name_prefix: api_
|
||||
|
||||
config:
|
||||
type: rest
|
||||
resource: "WallabagApiBundle:ConfigRest"
|
||||
name_prefix: api_
|
||||
|
||||
@ -41,7 +41,7 @@ class TagAllCommand extends ContainerAwareCommand
|
||||
|
||||
$entries = $tagger->tagAllForUser($user);
|
||||
|
||||
$io->text('Persist entries... ');
|
||||
$io->text('Persist ' . \count($entries) . ' entries... ');
|
||||
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
foreach ($entries as $entry) {
|
||||
|
||||
@ -43,6 +43,16 @@ class ConfigController extends Controller
|
||||
$configForm->handleRequest($request);
|
||||
|
||||
if ($configForm->isSubmitted() && $configForm->isValid()) {
|
||||
// force theme to material to avoid using baggy
|
||||
if ('baggy' === $config->getTheme()) {
|
||||
$config->setTheme('material');
|
||||
|
||||
$this->addFlash(
|
||||
'notice',
|
||||
'Baggy is deprecated, forced to Material theme.'
|
||||
);
|
||||
}
|
||||
|
||||
$em->persist($config);
|
||||
$em->flush();
|
||||
|
||||
|
||||
@ -8,7 +8,9 @@ use Pagerfanta\Exception\OutOfRangeCurrentPageException;
|
||||
use Pagerfanta\Pagerfanta;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
|
||||
use Wallabag\CoreBundle\Entity\Tag;
|
||||
@ -88,8 +90,19 @@ class FeedController extends Controller
|
||||
*
|
||||
* @return \Symfony\Component\HttpFoundation\Response
|
||||
*/
|
||||
public function showTagsFeedAction(User $user, Tag $tag, $page)
|
||||
public function showTagsFeedAction(Request $request, User $user, Tag $tag, $page)
|
||||
{
|
||||
$sort = $request->query->get('sort', 'created');
|
||||
|
||||
$sorts = [
|
||||
'created' => 'createdAt',
|
||||
'updated' => 'updatedAt',
|
||||
];
|
||||
|
||||
if (!isset($sorts[$sort])) {
|
||||
throw new BadRequestHttpException(sprintf('Sort "%s" is not available.', $sort));
|
||||
}
|
||||
|
||||
$url = $this->generateUrl(
|
||||
'tag_feed',
|
||||
[
|
||||
@ -102,7 +115,8 @@ class FeedController extends Controller
|
||||
|
||||
$entriesByTag = $this->get('wallabag_core.entry_repository')->findAllByTagId(
|
||||
$user->getId(),
|
||||
$tag->getId()
|
||||
$tag->getId(),
|
||||
$sorts[$sort]
|
||||
);
|
||||
|
||||
$pagerAdapter = new ArrayAdapter($entriesByTag);
|
||||
@ -137,11 +151,28 @@ class FeedController extends Controller
|
||||
'domainName' => $this->getParameter('domain_name'),
|
||||
'version' => $this->getParameter('wallabag_core.version'),
|
||||
'tag' => $tag->getSlug(),
|
||||
'updated' => $this->prepareFeedUpdatedDate($entries, $sort),
|
||||
],
|
||||
new Response('', 200, ['Content-Type' => 'application/atom+xml'])
|
||||
);
|
||||
}
|
||||
|
||||
private function prepareFeedUpdatedDate(Pagerfanta $entries, $sort = 'created')
|
||||
{
|
||||
$currentPageResults = $entries->getCurrentPageResults();
|
||||
|
||||
if (isset($currentPageResults[0])) {
|
||||
$firstEntry = $currentPageResults[0];
|
||||
if ('created' === $sort) {
|
||||
return $firstEntry->getCreatedAt();
|
||||
}
|
||||
|
||||
return $firstEntry->getUpdatedAt();
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Global method to retrieve entries depending on the given type
|
||||
* It returns the response to be send.
|
||||
@ -202,6 +233,7 @@ class FeedController extends Controller
|
||||
'user' => $user->getUsername(),
|
||||
'domainName' => $this->getParameter('domain_name'),
|
||||
'version' => $this->getParameter('wallabag_core.version'),
|
||||
'updated' => $this->prepareFeedUpdatedDate($entries),
|
||||
],
|
||||
new Response('', 200, ['Content-Type' => 'application/atom+xml'])
|
||||
);
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace Wallabag\CoreBundle\Controller;
|
||||
|
||||
use Doctrine\ORM\QueryBuilder;
|
||||
use Pagerfanta\Adapter\ArrayAdapter;
|
||||
use Pagerfanta\Exception\OutOfRangeCurrentPageException;
|
||||
use Sensio\Bundle\FrameworkExtraBundle\Configuration\ParamConverter;
|
||||
@ -190,4 +191,35 @@ class TagController extends Controller
|
||||
|
||||
return $this->redirect($redirectUrl);
|
||||
}
|
||||
|
||||
/**
|
||||
* Tag search results with the current search term.
|
||||
*
|
||||
* @Route("/tag/search/{filter}", name="tag_this_search")
|
||||
*
|
||||
* @return \Symfony\Component\HttpFoundation\Response
|
||||
*/
|
||||
public function tagThisSearchAction($filter, Request $request)
|
||||
{
|
||||
$currentRoute = $request->query->has('currentRoute') ? $request->query->get('currentRoute') : '';
|
||||
|
||||
/** @var QueryBuilder $qb */
|
||||
$qb = $this->get('wallabag_core.entry_repository')->getBuilderForSearchByUser($this->getUser()->getId(), $filter, $currentRoute);
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
||||
$entries = $qb->getQuery()->getResult();
|
||||
|
||||
foreach ($entries as $entry) {
|
||||
$this->get('wallabag_core.tags_assigner')->assignTagsToEntry(
|
||||
$entry,
|
||||
$filter
|
||||
);
|
||||
|
||||
$em->persist($entry);
|
||||
}
|
||||
|
||||
$em->flush();
|
||||
|
||||
return $this->redirect($this->get('wallabag_core.helper.redirect')->to($request->headers->get('referer'), '', true));
|
||||
}
|
||||
}
|
||||
|
||||
@ -45,7 +45,7 @@ class ConfigFixtures extends Fixture implements DependentFixtureInterface
|
||||
$emptyConfig = new Config($this->getReference('empty-user'));
|
||||
$emptyConfig->setTheme('material');
|
||||
$emptyConfig->setItemsPerPage(10);
|
||||
$emptyConfig->setReadingSpeed(200);
|
||||
$emptyConfig->setReadingSpeed(100);
|
||||
$emptyConfig->setLanguage('en');
|
||||
$emptyConfig->setPocketConsumerKey(null);
|
||||
$emptyConfig->setActionMarkAsRead(0);
|
||||
|
||||
@ -43,6 +43,20 @@ class TaggingRuleFixtures extends Fixture implements DependentFixtureInterface
|
||||
|
||||
$manager->persist($tr4);
|
||||
|
||||
$tr5 = new TaggingRule();
|
||||
$tr5->setRule('readingTime <= 5');
|
||||
$tr5->setTags(['shortread']);
|
||||
$tr5->setConfig($this->getReference('empty-config'));
|
||||
|
||||
$manager->persist($tr5);
|
||||
|
||||
$tr6 = new TaggingRule();
|
||||
$tr6->setRule('readingTime > 5');
|
||||
$tr6->setTags(['longread']);
|
||||
$tr6->setConfig($this->getReference('empty-config'));
|
||||
|
||||
$manager->persist($tr6);
|
||||
|
||||
$manager->flush();
|
||||
}
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ namespace Wallabag\CoreBundle\Entity;
|
||||
|
||||
use Doctrine\Common\Collections\ArrayCollection;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use JMS\Serializer\Annotation\Groups;
|
||||
use Symfony\Component\Validator\Constraints as Assert;
|
||||
use Wallabag\UserBundle\Entity\User;
|
||||
|
||||
@ -29,6 +30,8 @@ class Config
|
||||
* @ORM\Column(name="id", type="integer")
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue(strategy="AUTO")
|
||||
*
|
||||
* @Groups({"config_api"})
|
||||
*/
|
||||
private $id;
|
||||
|
||||
@ -50,6 +53,8 @@ class Config
|
||||
* maxMessage = "validator.item_per_page_too_high"
|
||||
* )
|
||||
* @ORM\Column(name="items_per_page", type="integer", nullable=false)
|
||||
*
|
||||
* @Groups({"config_api"})
|
||||
*/
|
||||
private $itemsPerPage;
|
||||
|
||||
@ -58,6 +63,8 @@ class Config
|
||||
*
|
||||
* @Assert\NotBlank()
|
||||
* @ORM\Column(name="language", type="string", nullable=false)
|
||||
*
|
||||
* @Groups({"config_api"})
|
||||
*/
|
||||
private $language;
|
||||
|
||||
@ -65,6 +72,8 @@ class Config
|
||||
* @var string
|
||||
*
|
||||
* @ORM\Column(name="feed_token", type="string", nullable=true)
|
||||
*
|
||||
* @Groups({"config_api"})
|
||||
*/
|
||||
private $feedToken;
|
||||
|
||||
@ -77,6 +86,8 @@ class Config
|
||||
* max = 100000,
|
||||
* maxMessage = "validator.feed_limit_too_high"
|
||||
* )
|
||||
*
|
||||
* @Groups({"config_api"})
|
||||
*/
|
||||
private $feedLimit;
|
||||
|
||||
@ -84,6 +95,8 @@ class Config
|
||||
* @var float
|
||||
*
|
||||
* @ORM\Column(name="reading_speed", type="float", nullable=true)
|
||||
*
|
||||
* @Groups({"config_api"})
|
||||
*/
|
||||
private $readingSpeed;
|
||||
|
||||
@ -98,6 +111,8 @@ class Config
|
||||
* @var int
|
||||
*
|
||||
* @ORM\Column(name="action_mark_as_read", type="integer", nullable=true, options={"default" = 0})
|
||||
*
|
||||
* @Groups({"config_api"})
|
||||
*/
|
||||
private $actionMarkAsRead;
|
||||
|
||||
@ -105,6 +120,8 @@ class Config
|
||||
* @var int
|
||||
*
|
||||
* @ORM\Column(name="list_mode", type="integer", nullable=true)
|
||||
*
|
||||
* @Groups({"config_api"})
|
||||
*/
|
||||
private $listMode;
|
||||
|
||||
|
||||
@ -24,7 +24,13 @@ class ConfigType extends AbstractType
|
||||
$this->themes = array_combine(
|
||||
$themes,
|
||||
array_map(function ($s) {
|
||||
return ucwords(strtolower(str_replace('-', ' ', $s)));
|
||||
$cleanTheme = ucwords(strtolower(str_replace('-', ' ', $s)));
|
||||
|
||||
if ('Baggy' === $cleanTheme) {
|
||||
$cleanTheme = 'Baggy (DEPRECATED)';
|
||||
}
|
||||
|
||||
return $cleanTheme;
|
||||
}, $themes)
|
||||
);
|
||||
|
||||
|
||||
@ -236,7 +236,9 @@ class ContentProxy
|
||||
return $rawText;
|
||||
}
|
||||
|
||||
return iconv('UTF-8', 'UTF-8//IGNORE', $rawText);
|
||||
mb_substitute_character('none');
|
||||
|
||||
return mb_convert_encoding($rawText, 'UTF-8', 'UTF-8');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -188,6 +188,10 @@ class DownloadImages
|
||||
imagesavealpha($im, true);
|
||||
imagepng($im, $localPath, ceil(self::REGENERATE_PICTURES_QUALITY / 100 * 9));
|
||||
$this->logger->debug('DownloadImages: Re-creating png');
|
||||
break;
|
||||
case 'webp':
|
||||
imagewebp($im, $localPath, self::REGENERATE_PICTURES_QUALITY);
|
||||
$this->logger->debug('DownloadImages: Re-creating webp');
|
||||
}
|
||||
|
||||
imagedestroy($im);
|
||||
@ -333,6 +337,7 @@ class DownloadImages
|
||||
'jpeg' => "\xFF\xD8\xFF",
|
||||
'gif' => 'GIF',
|
||||
'png' => "\x89\x50\x4e\x47\x0d\x0a",
|
||||
'webp' => "\x52\x49\x46\x46",
|
||||
];
|
||||
$bytes = substr((string) $res->getBody(), 0, 8);
|
||||
|
||||
@ -346,7 +351,7 @@ class DownloadImages
|
||||
$this->logger->debug('DownloadImages: Checking extension (alternative)', ['ext' => $ext]);
|
||||
}
|
||||
|
||||
if (!\in_array($ext, ['jpeg', 'jpg', 'gif', 'png'], true)) {
|
||||
if (!\in_array($ext, ['jpeg', 'jpg', 'gif', 'png', 'webp'], true)) {
|
||||
$this->logger->error('DownloadImages: Processed image with not allowed extension. Skipping: ' . $imagePath);
|
||||
|
||||
return false;
|
||||
|
||||
@ -161,8 +161,8 @@ class EntriesExport
|
||||
*/
|
||||
|
||||
$book->setTitle($this->title);
|
||||
// Not needed, but included for the example, Language is mandatory, but EPub defaults to "en". Use RFC3066 Language codes, such as "en", "da", "fr" etc.
|
||||
$book->setLanguage($this->language);
|
||||
// EPub specification requires BCP47-compliant languages, thus we replace _ with -
|
||||
$book->setLanguage(str_replace('_', '-', $this->language));
|
||||
$book->setDescription('Some articles saved on my wallabag');
|
||||
|
||||
$book->setAuthor($this->author, $this->author);
|
||||
@ -527,6 +527,8 @@ class EntriesExport
|
||||
*/
|
||||
private function getSanitizedFilename()
|
||||
{
|
||||
return preg_replace('/[^A-Za-z0-9\- \']/', '', iconv('utf-8', 'us-ascii//TRANSLIT', $this->title));
|
||||
$transliterator = \Transliterator::createFromRules(':: Any-Latin; :: Latin-ASCII; :: NFD; :: [:Nonspacing Mark:] Remove; :: NFC;', \Transliterator::FORWARD);
|
||||
|
||||
return preg_replace('/[^A-Za-z0-9\- \']/', '', $transliterator->transliterate($this->title));
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,8 +35,10 @@ class RuleBasedTagger
|
||||
{
|
||||
$rules = $this->getRulesForUser($entry->getUser());
|
||||
|
||||
$clonedEntry = $this->fixEntry($entry);
|
||||
|
||||
foreach ($rules as $rule) {
|
||||
if (!$this->rulerz->satisfies($entry, $rule->getRule())) {
|
||||
if (!$this->rulerz->satisfies($clonedEntry, $rule->getRule())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -61,14 +63,22 @@ class RuleBasedTagger
|
||||
public function tagAllForUser(User $user)
|
||||
{
|
||||
$rules = $this->getRulesForUser($user);
|
||||
$entries = [];
|
||||
$entriesToUpdate = [];
|
||||
$tagsCache = [];
|
||||
|
||||
foreach ($rules as $rule) {
|
||||
$qb = $this->entryRepository->getBuilderForAllByUser($user->getId());
|
||||
$entries = $this->rulerz->filter($qb, $rule->getRule());
|
||||
$entries = $this->entryRepository
|
||||
->getBuilderForAllByUser($user->getId())
|
||||
->getQuery()
|
||||
->getResult();
|
||||
|
||||
foreach ($entries as $entry) {
|
||||
$clonedEntry = $this->fixEntry($entry);
|
||||
|
||||
foreach ($rules as $rule) {
|
||||
if (!$this->rulerz->satisfies($clonedEntry, $rule->getRule())) {
|
||||
continue;
|
||||
}
|
||||
|
||||
foreach ($entries as $entry) {
|
||||
foreach ($rule->getTags() as $label) {
|
||||
// avoid new tag duplicate by manually caching them
|
||||
if (!isset($tagsCache[$label])) {
|
||||
@ -78,11 +88,13 @@ class RuleBasedTagger
|
||||
$tag = $tagsCache[$label];
|
||||
|
||||
$entry->addTag($tag);
|
||||
|
||||
$entriesToUpdate[] = $entry;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $entries;
|
||||
return $entriesToUpdate;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -114,4 +126,15 @@ class RuleBasedTagger
|
||||
{
|
||||
return $user->getConfig()->getTaggingRules();
|
||||
}
|
||||
|
||||
/**
|
||||
* Update reading time on the fly to match the proper words per minute from the user.
|
||||
*/
|
||||
private function fixEntry(Entry $entry)
|
||||
{
|
||||
$clonedEntry = clone $entry;
|
||||
$clonedEntry->setReadingTime($entry->getReadingTime() / $entry->getUser()->getConfig()->getReadingSpeed() * 200);
|
||||
|
||||
return $clonedEntry;
|
||||
}
|
||||
}
|
||||
|
||||
@ -385,9 +385,9 @@ class EntryRepository extends EntityRepository
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function findAllByTagId($userId, $tagId)
|
||||
public function findAllByTagId($userId, $tagId, $sort = 'createdAt')
|
||||
{
|
||||
return $this->getSortedQueryBuilderByUser($userId)
|
||||
return $this->getSortedQueryBuilderByUser($userId, $sort)
|
||||
->innerJoin('e.tags', 't')
|
||||
->andWhere('t.id = :tagId')->setParameter('tagId', $tagId)
|
||||
->getQuery()
|
||||
|
||||
@ -163,7 +163,7 @@ config:
|
||||
meaning: Význam
|
||||
variables_available_description: 'Pro vytvoření pravidel štítkování mohou být použity následující proměnné a operátory:'
|
||||
variables_available_title: Které proměnné a operátory mohu pro psaní pravidel použít?
|
||||
how_to_use_them_description: 'Předpokládejme, že chcete označit nové položky štítkem jako je « <i>krátké čtení</i> », pokud je doba čtení kratší než 3 minuty.<br />V takovém případě byste měli do pole <i>Pravidlo</i> zadat « readingTime <= 3 » a do pole <i>Štítky</i> zadat « <i>krátké čtení</i> ».<br />Několik štítků současně lze přidat jejich oddělením čárkou: « <i>krátké čtení, musím přečíst</i> »<br />Složitá pravidla lze zapsat pomocí předdefinovaných operátorů: if « <i>readingTime >= 5 AND domainName = "github.com"</i> » pak označit štítkem jako « <i>dlouhé čtení, GitHub</i> »'
|
||||
how_to_use_them_description: 'Předpokládejme, že chcete označit nové položky štítkem jako je « <i>krátké čtení</i> », pokud je doba čtení kratší než 3 minuty.<br />V takovém případě byste měli do pole <i>Pravidlo</i> zadat « readingTime <= 3 » a do pole <i>Štítky</i> zadat « <i>krátké čtení</i> ».<br />Několik štítků současně lze přidat jejich oddělením čárkou: « <i>krátké čtení, musím přečíst</i> »<br />Složitá pravidla lze zapsat pomocí předdefinovaných operátorů: if « <i>readingTime >= 5 AND domainName = "www.php.net"</i> » pak označit štítkem jako « <i>dlouhé čtení, php</i> »'
|
||||
how_to_use_them_title: Jak je použiji?
|
||||
tagging_rules_definition_description: Jsou to pravidla používaná programem wallabag k automatickému označování nových položek štítkem. <br />Pokaždé, když je přidána nová položky, všechna pravidla štítkování budou použita k přidání štítků, které jste nakonfigurovali, čímž vám ušetří potíže s ručním označováním vašich položek.
|
||||
tagging_rules_definition_title: Co znamenají „pravidla štítkování“?
|
||||
|
||||
@ -150,7 +150,7 @@ config:
|
||||
tagging_rules_definition_title: Was bedeuten die „Tagging-Regeln“?
|
||||
tagging_rules_definition_description: Dies sind Regeln von wallabag, um neu hinzugefügte Einträge automatisch zu taggen.<br />Jedes Mal, wenn ein neuer Eintrag hinzugefügt wird, werden die Tagging-Regeln angewandt. Dies erleichtert dir die Arbeit, deine Einträge manuell zu kategorisieren.
|
||||
how_to_use_them_title: Wie nutze ich sie?
|
||||
how_to_use_them_description: 'Nehmen wir an, du möchtest deine Einträge als „<i>schnell lesbar</i>“ markiert, wenn die Lesezeit kürzer als drei Minuten ist.<br />In diesem Fall solltest du „readingTime <= 3“ in das Feld <i>Regel</i> und „<i>schnell lesbar</i>“ in das Feld <i>Tags</i> schreiben.<br />Mehrere Tags können gleichzeitig hinzugefügt werden, indem sie durch ein Komma getrennt werden: „<i>schnell lesbar, interessant</i>“.<br />Komplexe Regeln können durch vordefinierte Operatoren geschrieben werden: wenn „<i>readingTime >= 5 AND domainName = "github.com"</i>“ dann tagge als „<i>länger lesen, GitHub</i>“'
|
||||
how_to_use_them_description: 'Nehmen wir an, du möchtest deine Einträge als „<i>schnell lesbar</i>“ markiert, wenn die Lesezeit kürzer als drei Minuten ist.<br />In diesem Fall solltest du „readingTime <= 3“ in das Feld <i>Regel</i> und „<i>schnell lesbar</i>“ in das Feld <i>Tags</i> schreiben.<br />Mehrere Tags können gleichzeitig hinzugefügt werden, indem sie durch ein Komma getrennt werden: „<i>schnell lesbar, interessant</i>“.<br />Komplexe Regeln können durch vordefinierte Operatoren geschrieben werden: wenn „<i>readingTime >= 5 AND domainName = "www.php.net"</i>“ dann tagge als „<i>länger lesen, php</i>“'
|
||||
variables_available_title: Welche Variablen und Operatoren kann ich benutzen, um Regeln zu schreiben?
|
||||
variables_available_description: 'Die folgenden Variablen und Operatoren können genutzt werden, um Tagging-Regeln zu erstellen:'
|
||||
meaning: Bedeutung
|
||||
|
||||
@ -158,7 +158,7 @@ config:
|
||||
tagging_rules_definition_title: What does “tagging rules” mean?
|
||||
tagging_rules_definition_description: They are rules used by wallabag to automatically tag new entries.<br />Each time a new entry is added, all the tagging rules will be used to add the tags you configured, thus saving you the trouble of manually classifying your entries.
|
||||
how_to_use_them_title: How do I use them?
|
||||
how_to_use_them_description: 'Let us assume you want to tag new entries as « <i>short reading</i> » when the reading time is under 3 minutes.<br />In that case, you should put « readingTime <= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them with a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime >= 5 AND domainName = "github.com"</i> » then tag as « <i>long reading, GitHub </i> »'
|
||||
how_to_use_them_description: 'Let us assume you want to tag new entries as « <i>short reading</i> » when the reading time is under 3 minutes.<br />In that case, you should put « readingTime <= 3 » in the <i>Rule</i> field and « <i>short reading</i> » in the <i>Tags</i> field.<br />Several tags can added simultaneously by separating them with a comma: « <i>short reading, must read</i> »<br />Complex rules can be written by using predefined operators: if « <i>readingTime >= 5 AND domainName = "www.php.net"</i> » then tag as « <i>long reading, php</i> »'
|
||||
variables_available_title: Which variables and operators can I use to write rules?
|
||||
variables_available_description: 'The following variables and operators can be used to create tagging rules:'
|
||||
meaning: Meaning
|
||||
@ -241,6 +241,7 @@ entry:
|
||||
delete: Delete
|
||||
export_title: Export
|
||||
show_same_domain: Show articles with the same domain
|
||||
assign_search_tag: Assign this search as a tag to each result
|
||||
filters:
|
||||
title: Filters
|
||||
status_label: Status
|
||||
|
||||
@ -157,7 +157,7 @@ config:
|
||||
tagging_rules_definition_title: '¿Qué significa «reglas de etiquetado»?'
|
||||
tagging_rules_definition_description: 'Son las reglas usadas por wallabag para etiquetar automáticamente los nuevos artículos.<br />Cada vez que un artículo es añadido, todas las reglas de etiquetado automático serán usadas para etiquetarlo, ayudándote a clasificar automáticamente tus artículos.'
|
||||
how_to_use_them_title: '¿Cómo se utilizan?'
|
||||
how_to_use_them_description: 'Supongamos que quiere etiquetar los artículos nuevos como « <i>lectura corta</i> » cuando el tiempo de lectura sea menos de 3 minutos.<br /> En este caso, debe poner « readingTime <= 3 » en el campo <i>Regla</i> y « <i>lectura corta</i> » en el campo <i>Etiquetas</i>.<br />Se pueden añadir varias etiquetas al mismo tiempo separadas por comas: « <i>lectura corta, lectura obligada</i> »<br />Se pueden escribir reglas complejas utilizando los operadores predefinidos: si « <i>readingTime >= 5 AND domainName = "github.com"</i> » entonces etiqueta como « <i>lectura larga, GitHub </i> »'
|
||||
how_to_use_them_description: 'Supongamos que quiere etiquetar los artículos nuevos como « <i>lectura corta</i> » cuando el tiempo de lectura sea menos de 3 minutos.<br /> En este caso, debe poner « readingTime <= 3 » en el campo <i>Regla</i> y « <i>lectura corta</i> » en el campo <i>Etiquetas</i>.<br />Se pueden añadir varias etiquetas al mismo tiempo separadas por comas: « <i>lectura corta, lectura obligada</i> »<br />Se pueden escribir reglas complejas utilizando los operadores predefinidos: si « <i>readingTime >= 5 AND domainName = "www.php.net"</i> » entonces etiqueta como « <i>lectura larga, php</i> »'
|
||||
variables_available_title: '¿Qué variables y operadores se pueden utilizar para escribir las reglas?'
|
||||
variables_available_description: 'Las siguientes variables y operadores se pueden utilizar para crear reglas de etiquetado:'
|
||||
meaning: 'Significado'
|
||||
|
||||
@ -158,7 +158,7 @@ config:
|
||||
tagging_rules_definition_title: Que signifient les règles d'étiquetage automatiques ?
|
||||
tagging_rules_definition_description: Ce sont des règles utilisées par wallabag pour classer automatiquement vos nouveaux articles.<br />À chaque fois qu’un nouvel article est ajouté, toutes les règles d'étiquetage automatiques seront utilisées afin d’ajouter les tags que vous avez configurés, vous épargnant ainsi l’effort de classifier vos articles manuellement.
|
||||
how_to_use_them_title: Comment les utiliser ?
|
||||
how_to_use_them_description: 'Imaginons que voulez attribuer aux nouveaux articles l''étiquette « <i>lecture courte</i> » lorsque le temps de lecture est inférieur à 3 minutes.<br />Dans ce cas, vous devriez mettre « readingTime <= 3 » dans le champ <i>Règle</i> et « <i>lecture courte</i> » dans le champ <i>Tag</i>.<br />Plusieurs tags peuvent être ajoutés simultanément en les séparant par des virgules : « <i>lecture courte, à lire</i> »<br />Des règles complexes peuvent être créées en utilisant des opérateurs prédéfinis: si « <i>readingTime >= 5 AND domainName = "github.com"</i> » alors attribuer les étiquettes « <i>lecture longue, GitHub</i> »'
|
||||
how_to_use_them_description: 'Imaginons que voulez attribuer aux nouveaux articles l''étiquette « <i>lecture courte</i> » lorsque le temps de lecture est inférieur à 3 minutes.<br />Dans ce cas, vous devriez mettre « readingTime <= 3 » dans le champ <i>Règle</i> et « <i>lecture courte</i> » dans le champ <i>Tag</i>.<br />Plusieurs tags peuvent être ajoutés simultanément en les séparant par des virgules : « <i>lecture courte, à lire</i> »<br />Des règles complexes peuvent être créées en utilisant des opérateurs prédéfinis: si « <i>readingTime >= 5 AND domainName = "www.php.net"</i> » alors attribuer les étiquettes « <i>lecture longue, php</i> »'
|
||||
variables_available_title: Quelles variables et opérateurs puis-je utiliser pour écrire des règles ?
|
||||
variables_available_description: 'Les variables et opérateurs suivants peuvent être utilisés pour écrire des règles d''étiquetage automatiques :'
|
||||
meaning: Signification
|
||||
|
||||
@ -203,7 +203,7 @@ config:
|
||||
title: PMF
|
||||
form_rules:
|
||||
faq:
|
||||
how_to_use_them_description: 'Demos por feito que queres etiquetar as novas entradas con « <i>lectura rápida</i> » cando o tempo de lectura non supera os 3 minutos.<br />Neste caso, tes que poñer « TempodeLectura <= 3 » no campo da <i>Regra</i> e « <i>lectura rápida</i> » no campo da <i>Etiqueta</i> .<br />Podes engadir varias etiquetas ó mesmo tempo separándoas cunha vírgula: « <i>lectura rápida, teño que ler</i> »<br />Pódense establecer regras complexas usando os operadores predefinidos: se o « <i>readingTime >= 5 AND domainName = "github.com"</i> » entón etiquetar como « <i>lectura longa, GitHub </i> »'
|
||||
how_to_use_them_description: 'Demos por feito que queres etiquetar as novas entradas con « <i>lectura rápida</i> » cando o tempo de lectura non supera os 3 minutos.<br />Neste caso, tes que poñer « TempodeLectura <= 3 » no campo da <i>Regra</i> e « <i>lectura rápida</i> » no campo da <i>Etiqueta</i> .<br />Podes engadir varias etiquetas ó mesmo tempo separándoas cunha vírgula: « <i>lectura rápida, teño que ler</i> »<br />Pódense establecer regras complexas usando os operadores predefinidos: se o « <i>readingTime >= 5 AND domainName = "www.php.net"</i> » entón etiquetar como « <i>lectura longa, php</i> »'
|
||||
operator_description:
|
||||
notmatches: 'Comproba que o <i>obxecto</i> non contén a <i>busca</i> (non dif. maiúsculas).<br />Exemplo: <code>título non contén "saúde"</code>'
|
||||
matches: 'Comproba que un <i>obxecto</i> concorda coa <i>busca</i> (dif. maius.-minus.).<br />Exemplo: <code>título contén "saúde"</code>'
|
||||
@ -312,7 +312,7 @@ config:
|
||||
table_method: Método
|
||||
googleTwoFactor_label: Usando app OTP (usa unha app como andOTP, FreeOTP, Authy ou Google Authenticator, para obter o código único)
|
||||
emailTwoFactor_label: Utilizando email (recibirás código por email)
|
||||
login_label: Conexión (non se pode cambiar
|
||||
login_label: Identificador (non se pode cambiar)
|
||||
email_label: Email
|
||||
name_label: Nome
|
||||
two_factor_description: Se activas o segundo factor de autenticación recibirás un email cun código en cada nova conexión que aínda non verificases.
|
||||
@ -391,11 +391,11 @@ security:
|
||||
login:
|
||||
cancel: Cancelar
|
||||
password: Contrasinal
|
||||
username: Nome de usuaria
|
||||
register: Abre unha conta
|
||||
submit: Conectar
|
||||
username: Identificador
|
||||
register: Crea unha conta
|
||||
submit: Acceder
|
||||
forgot_password: Esqueceches o contrasinal?
|
||||
keep_logged_in: Manterme conectada
|
||||
keep_logged_in: Manter a sesión
|
||||
page_title: Benvida a wallabag!
|
||||
import:
|
||||
wallabag_v2:
|
||||
@ -530,7 +530,7 @@ developer:
|
||||
paragraph_7: Esta chamada devolverá todas as entradas do teu usuario.
|
||||
paragraph_6: 'O access_token é útil para chamar ao punto de acceso da API. Por exemplo:'
|
||||
paragraph_5: 'A API responderá con algo semellante a:'
|
||||
paragraph_4: 'Agora, crea o token (substitúe client_id, client_secret, username e password cos valores axeitados):'
|
||||
paragraph_4: 'Agora, crea o token (substitúe client_id, client_secret, identificador e contrasinal cos valores axeitados):'
|
||||
paragraph_3: Para crear este token, tes que <a href="%link%">crear un novo cliente</a>.
|
||||
paragraph_2: Precisas un token para comunicarte entre a túa app de terceiros e a API de wallabag.
|
||||
paragraph_1: As seguintes ordes fan uso da <a href="https://github.com/jkbrzt/httpie">biblioteca HTTPie</a>. Comproba que está instalada no teu sistema antes de utilizala.
|
||||
@ -660,7 +660,7 @@ site_credential:
|
||||
save: Gardar
|
||||
password_label: Contrasinal
|
||||
host_label: Servidor (subdominio.exemplo.org, .exemplo.org, etc.)
|
||||
username_label: Conectar
|
||||
username_label: Identificador
|
||||
list:
|
||||
create_new_one: Crear unha nova credencial
|
||||
no: Non
|
||||
@ -673,7 +673,7 @@ site_credential:
|
||||
page_title: Xestión das credenciais do sitio
|
||||
user:
|
||||
search:
|
||||
placeholder: Filtrar por nome de usuaria ou email
|
||||
placeholder: Filtrar por identificador ou email
|
||||
form:
|
||||
back_to_list: Volver á lista
|
||||
delete_confirm: Tes a certeza?
|
||||
@ -681,14 +681,14 @@ user:
|
||||
save: Gardar
|
||||
twofactor_google_label: Segundo factor de autenticación por app OTP
|
||||
twofactor_email_label: Segundo factor de autenticación por email
|
||||
last_login_label: Última conexión
|
||||
last_login_label: Último acceso
|
||||
enabled_label: Activado
|
||||
email_label: Email
|
||||
plain_password_label: ????
|
||||
repeat_new_password_label: Repetir o novo contrasinal
|
||||
password_label: Contrasinal
|
||||
name_label: Nome
|
||||
username_label: Nome de usuaria
|
||||
username_label: Identificador
|
||||
list:
|
||||
create_new_one: Crear nova usuaria
|
||||
no: Non
|
||||
|
||||
@ -176,7 +176,7 @@ config:
|
||||
title: ČPP
|
||||
meaning: Značenje
|
||||
variables_available_title: Koje varijable i operateri mogu koristiti za pisanje pravila?
|
||||
how_to_use_them_description: 'Pretpostavimo da želiš označiti nove zapise kao <i>kratko čitanje</i> kad je vrijeme čitanja manje od 3 minute.<br />U tom slučaju, postavi „readingTime <= 3” u polju <i>Pravilo</i> i <i>kratko čitanje</i> u polju <i>Oznake</i>.<br />Moguće je dodati više oznaka istovremeno, odvajajući ih zarezom: „<i>kratko čitanje, moram čitati</i>”<br />Složena pravila mogu se napisati pomoću unaprijed definiranih operatora: ako „<i>readingTime >= 5 AND domainName = "github.com"</i>”, onda označi kao „<i>dugo čitanje, GitHub </i>”'
|
||||
how_to_use_them_description: 'Pretpostavimo da želiš označiti nove zapise kao <i>kratko čitanje</i> kad je vrijeme čitanja manje od 3 minute.<br />U tom slučaju, postavi „readingTime <= 3” u polju <i>Pravilo</i> i <i>kratko čitanje</i> u polju <i>Oznake</i>.<br />Moguće je dodati više oznaka istovremeno, odvajajući ih zarezom: „<i>kratko čitanje, moram čitati</i>”<br />Složena pravila mogu se napisati pomoću unaprijed definiranih operatora: ako „<i>readingTime >= 5 AND domainName = "www.php.net"</i>”, onda označi kao „<i>dugo čitanje, php</i>”'
|
||||
delete_rule_label: ukloni
|
||||
edit_rule_label: uredi
|
||||
if_label: ako
|
||||
|
||||
@ -129,7 +129,7 @@ config:
|
||||
tagging_rules_definition_title: A „címkézési szabályok” mit jelent?
|
||||
tagging_rules_definition_description: Ezek olyan szabályok amiket a Wallabag használ arra, hogy automatikusan felcímkézze az új bejegyzéseket.<br />Minden egyes alkalommal, amikor egy újabb bejegyzés hozzáadásra kerül, minden címkézési szabály fel lesz használva a beállított címkék hozzáadására, így mentve meg attól a problémától, hogy kézzel osztályozza a bejegyzéseit.
|
||||
how_to_use_them_title: Hogyan használhatom ezeket?
|
||||
how_to_use_them_description: 'Tételezzük fel, hogy szeretné az új bejegyzéseket úgy címkézni mint « <i>rövid olvasnivaló</i> », ha az elolvasási idejük 3 perc alatt van.<br />Ebben az esetben ezt írja be a <i>Szabály</i> mezőbe: « readingTime <= 3 », a <i>Címkék</i> mezőbe pedig: « <i>rövid olvasnivaló</i> ».<br />Több címke is hozzáadható egyszerre, ha vesszővel elválasztja őket: « <i>rövid olvasnivaló, el kell olvasni</i> »<br />Összetett szabályok írhatók előre definiált operátorok használatával: ha « <i>readingTime >= 5 AND domainName = "github.com"</i> » akkor címkézd meg mint « <i>hosszú olvasnivaló, GitHub</i> »'
|
||||
how_to_use_them_description: 'Tételezzük fel, hogy szeretné az új bejegyzéseket úgy címkézni mint « <i>rövid olvasnivaló</i> », ha az elolvasási idejük 3 perc alatt van.<br />Ebben az esetben ezt írja be a <i>Szabály</i> mezőbe: « readingTime <= 3 », a <i>Címkék</i> mezőbe pedig: « <i>rövid olvasnivaló</i> ».<br />Több címke is hozzáadható egyszerre, ha vesszővel elválasztja őket: « <i>rövid olvasnivaló, el kell olvasni</i> »<br />Összetett szabályok írhatók előre definiált operátorok használatával: ha « <i>readingTime >= 5 AND domainName = "www.php.net"</i> » akkor címkézd meg mint « <i>hosszú olvasnivaló, php</i> »'
|
||||
variables_available_title: Milyen változókat és operátorokat használhatok a szabályok írásához?
|
||||
variables_available_description: 'A következő változók és operátorok használhatók címkézési szabályok létrehozásához:'
|
||||
meaning: Jelentés
|
||||
|
||||
@ -140,7 +140,7 @@ config:
|
||||
tagging_rules_definition_title: Cosa significa «regole di etichettatura»?
|
||||
tagging_rules_definition_description: Sono regole utilizzate da wallabag per etichettare automaticamente i contenuti.<br />Ogni volta che viene aggiunto un contenuto, tutte le regole di etichettatura vengono utilizzate per aggiungere le etichette configurate, risparmiandoti il lavoro di classificare i contenuti manualmente.
|
||||
how_to_use_them_title: Come si usano?
|
||||
how_to_use_them_description: 'Diciamo che vuoi etichettare un contenuto come « <i>lettura veloce</i> » quando il tempo di lettura è inferiore ai 3 minuti.<br />In questo case, devi mettere « readingTime <= 3 » nel campo <i>Regola</i> e « <i>lettura veloce</i> » nel campo <i>Etichette</i>.<br />Molte etichette si possono aggiungere contemporanemente separandole con una virgola: « <i>lettura veloce, da leggere</i> »<br />Regole complesse possono essere scritte utilizzando gli operatori predefiniti: se « <i>readingTime >= 5 AND domainName = "github.com"</i> » allora etichetta « <i>lettura lunga, GitHub </i> »'
|
||||
how_to_use_them_description: 'Diciamo che vuoi etichettare un contenuto come « <i>lettura veloce</i> » quando il tempo di lettura è inferiore ai 3 minuti.<br />In questo case, devi mettere « readingTime <= 3 » nel campo <i>Regola</i> e « <i>lettura veloce</i> » nel campo <i>Etichette</i>.<br />Molte etichette si possono aggiungere contemporanemente separandole con una virgola: « <i>lettura veloce, da leggere</i> »<br />Regole complesse possono essere scritte utilizzando gli operatori predefiniti: se « <i>readingTime >= 5 AND domainName = "www.php.net"</i> » allora etichetta « <i>lettura lunga, php</i> »'
|
||||
variables_available_title: Quali operatori e variabili posso utilizzare per scrivere delle regole?
|
||||
variables_available_description: 'I seguenti operatori e variabili posso essere utilizzati per scrivere regole di etichettatura:'
|
||||
meaning: Significato
|
||||
|
||||
@ -165,7 +165,7 @@ config:
|
||||
notmatches: <i>対象</i>が<i>検索</i>と一致しないことをテストする(大文字小文字の区別なし)。<br />例:<code>title notmatches "football"</code>
|
||||
matches: <i>対象</i>が<i>検索</i>と一致するかテストする(大文字小文字の区別なし)。<br />例:<code>title matches "football"</code>
|
||||
tagging_rules_definition_description: wallabag ではルールを使用することで新しい記事へ自動的にタグ付けする事ができます。<br />新しい記事が追加されるたびに、あなたが設定したすべてのタグ付けルールを使用してタグが追加されるので、記事を手動で分類する手間が省けます。
|
||||
how_to_use_them_description: 'あなたは読了時間が3分以下の時に新しい記事へ « <i>短い文章</i> » のタグ付けをしたいとします。<br />この場合、<i>ルール</i>に « readingTime <= 3 »と<i>タグ</i>に « <i>短い文章</i> » を設定します。<br />コンマで区切ることにより複数のタグを追加することができます: « <i>短い文章, 必読</i> »<br />演算子を使用することにより複雑なルールを書くことができます: もし « <i>readingTime >= 5 AND domainName = "github.com"</i> »ならばタグ付け « <i>長い文章, GitHub </i> »'
|
||||
how_to_use_them_description: 'あなたは読了時間が3分以下の時に新しい記事へ « <i>短い文章</i> » のタグ付けをしたいとします。<br />この場合、<i>ルール</i>に « readingTime <= 3 »と<i>タグ</i>に « <i>短い文章</i> » を設定します。<br />コンマで区切ることにより複数のタグを追加することができます: « <i>短い文章, 必読</i> »<br />演算子を使用することにより複雑なルールを書くことができます: もし « <i>readingTime >= 5 AND domainName = "www.php.net"</i> »ならばタグ付け « <i>長い文章, php</i> »'
|
||||
delete_rule_label: 削除
|
||||
export: エクスポート
|
||||
import_submit: インポート
|
||||
|
||||
@ -400,7 +400,7 @@ config:
|
||||
title: 문서 제목
|
||||
label: 변수
|
||||
tagging_rules_definition_description: wallabag 에서 자동으로 새 문서에 태그를 지정하는 데 사용하는 규칙입니다. <br /> 태그 지정 규칙이 새 문서가 추가 될 때마다 태그를 구성하는 데 사용되므로, 수동으로 분류하는 수고를 덜 수 있습니다.
|
||||
how_to_use_them_description: '읽기 시간이 3 분 미만인 경우 «<i> 짧은 읽기 </i>» 와 같은 새 기사에 태그를 지정한다고 가정합니다. <br />이 경우 <i> 규칙</i> 을 입력해야합니다. <i>태그</i> 필드에 « readingTime <= 3 » 을 입력하고 « <i>짧은 읽기</i>» 를 입력하십시오. <br /> 여러 태그를 쉼표로구분하여 한 번에 추가 할 수 있습니다: « <i> 짧은 읽기, 반드시 읽기</i> » <br /> 사전 정의 된 연산자를 사용하여 복잡한 규칙을 작성할 수 있습니다: 만약 « <i>readingTime >= 5 AND domainName = "github .com"</i> » 다음으로 태그 «<i> 긴 읽기, GitHub </i>»'
|
||||
how_to_use_them_description: '읽기 시간이 3 분 미만인 경우 «<i> 짧은 읽기 </i>» 와 같은 새 기사에 태그를 지정한다고 가정합니다. <br />이 경우 <i> 규칙</i> 을 입력해야합니다. <i>태그</i> 필드에 « readingTime <= 3 » 을 입력하고 « <i>짧은 읽기</i>» 를 입력하십시오. <br /> 여러 태그를 쉼표로구분하여 한 번에 추가 할 수 있습니다: « <i> 짧은 읽기, 반드시 읽기</i> » <br /> 사전 정의 된 연산자를 사용하여 복잡한 규칙을 작성할 수 있습니다: 만약 « <i>readingTime >= 5 AND domainName = "www.php.net"</i> » 다음으로 태그 «<i> 긴 읽기, php</i>»'
|
||||
operator_description:
|
||||
and: 하나의 규칙 그리고 다른 규칙
|
||||
or: 하나의 규칙 또는 다른 규칙
|
||||
|
||||
@ -102,7 +102,7 @@ config:
|
||||
how_to_use_them_title: Hoe gebruik is ze?
|
||||
tagging_rules_definition_title: Wat betekend "label regels"?
|
||||
title: FAQ
|
||||
how_to_use_them_description: 'Laten we aannemen dat u nieuwe vermeldingen wilt labelen als « <i>korte lezing</i> » wanneer de leestijd minder dan 3 minuten bedraagt.<br />In dat geval moet u « readingTime <= 3 » in het <i>Regelveld</i> en « <i>korte lezing</i> » in het <i>Labels</i> veld.<br />Meerdere labels kunnen tegelijkertijd worden toegevoegd door ze te scheiden met een komma:« <i>korte lezing, belangrijk</i> »<br />Complexe regels kunnen worden geschreven met behulp van vooraf gedefinieerde operators: if « <i>readingTime >= 5 AND domainName = "github.com"</i> » label dan als« <i>lange lezing, GitHub </i> »'
|
||||
how_to_use_them_description: 'Laten we aannemen dat u nieuwe vermeldingen wilt labelen als « <i>korte lezing</i> » wanneer de leestijd minder dan 3 minuten bedraagt.<br />In dat geval moet u « readingTime <= 3 » in het <i>Regelveld</i> en « <i>korte lezing</i> » in het <i>Labels</i> veld.<br />Meerdere labels kunnen tegelijkertijd worden toegevoegd door ze te scheiden met een komma:« <i>korte lezing, belangrijk</i> »<br />Complexe regels kunnen worden geschreven met behulp van vooraf gedefinieerde operators: if « <i>readingTime >= 5 AND domainName = "www.php.net"</i> » label dan als« <i>lange lezing, php</i> »'
|
||||
tags_label: Labels
|
||||
rule_label: Regel
|
||||
edit_rule_label: wijzig
|
||||
|
||||
@ -136,7 +136,7 @@ config:
|
||||
tagging_rules_definition_title: Qué significa las règlas d'etiquetas automaticas ?
|
||||
tagging_rules_definition_description: Son de règlas utilizadas per wallabag per classar automaticament vòstres novèls articles.<br />Cada còp qu'un novèl article es apondut, totas las règlas d'etiquetas automaticas seràn utilizadas per ajustar d'etiquetas qu'avètz configuradas, en vos esparnhant l'esfòrç de classificar vòstres articles manualament.
|
||||
how_to_use_them_title: Cossí las utilizar ?
|
||||
how_to_use_them_description: Imaginem que volètz atribuir als novèls article l'etiqueta « <i>lectura corta</i> » quand lo temps per legir es inferior a 3 minutas.<br />Dins aquel cas, deuriatz metre « readingTime <= 3 » dins lo camp <i>Règla</i> e « <i>lectura corta</i> » dins lo camp <i>Etiqueta</i>.<br />Mai d'una etiquetas pòdon èsser apondudas simultanèament ne las separant amb de virgulas : « <i>lectura corta, per ligir</i> »<br />De règlas complèxas pòdon èsser creadas n'emplegant d'operators predefinits : se « <i>readingTime >= 5 AND domainName = "github.com"</i> » alara atribuir las etiquetas « <i>lectura longa, github </i> »
|
||||
how_to_use_them_description: Imaginem que volètz atribuir als novèls article l'etiqueta « <i>lectura corta</i> » quand lo temps per legir es inferior a 3 minutas.<br />Dins aquel cas, deuriatz metre « readingTime <= 3 » dins lo camp <i>Règla</i> e « <i>lectura corta</i> » dins lo camp <i>Etiqueta</i>.<br />Mai d'una etiquetas pòdon èsser apondudas simultanèament ne las separant amb de virgulas : « <i>lectura corta, per ligir</i> »<br />De règlas complèxas pòdon èsser creadas n'emplegant d'operators predefinits : se « <i>readingTime >= 5 AND domainName = "www.php.net"</i> » alara atribuir las etiquetas « <i>lectura longa, php</i> »
|
||||
variables_available_title: Quinas variablas e operators pòdi utilizar per escriure de règlas ?
|
||||
variables_available_description: "Las variablas e operators seguents pòdon èsser utilizats per escriure de règlas d'etiquetas automaticas :"
|
||||
meaning: Significacion
|
||||
|
||||
@ -150,7 +150,7 @@ config:
|
||||
tagging_rules_definition_title: Co oznaczają « reguły tagowania » ?
|
||||
tagging_rules_definition_description: Istnieją reguły używane przez wallabag służące do automatycznego tagowania nowych wpisów.<br />Za każdym razem kiedy dodasz nowy wpis, zostaną użyte wszystkie skonfigurowane przez ciebie reguły. Dzięki temu unikniesz konieczności ręcznego ich klasyfikowania.
|
||||
how_to_use_them_title: Jak ich użyć?
|
||||
how_to_use_them_description: 'Załóżmy, że chcesz otagować nowe wpisy jako « <i>krótki tekst</i> » jeżeli czas czytania wynosi mniej niż 3 minuty.<br />W tym przypadku powinieneś umieścić « czasCzytania <= 3 » w polu <i>Reguła</i> i « <i>krótki tekst</i> » w polu <i>Tags</i> .<br />Wiele tagów może zostać dodanych jednocześnie rozdzielając je przecinkami: « <i>do szybkiego przeczytania, koniecznie przeczytać</i> »<br />Kompleksowe reguły mogą być napisane przy użyciu operatorów: jeżeli « <i>czasCzytania >= 5 I nazwaDomeny = "github.com"</i> » wtedy otaguj jako « <i>dłuższy tekst, GitHub </i> »'
|
||||
how_to_use_them_description: 'Załóżmy, że chcesz otagować nowe wpisy jako « <i>krótki tekst</i> » jeżeli czas czytania wynosi mniej niż 3 minuty.<br />W tym przypadku powinieneś umieścić « czasCzytania <= 3 » w polu <i>Reguła</i> i « <i>krótki tekst</i> » w polu <i>Tags</i> .<br />Wiele tagów może zostać dodanych jednocześnie rozdzielając je przecinkami: « <i>do szybkiego przeczytania, koniecznie przeczytać</i> »<br />Kompleksowe reguły mogą być napisane przy użyciu operatorów: jeżeli « <i>czasCzytania >= 5 I nazwaDomeny = "www.php.net"</i> » wtedy otaguj jako « <i>dłuższy tekst, php</i> »'
|
||||
variables_available_title: Jakich zmiennych i operatorów mogę użyć przy pisaniu reguł?
|
||||
variables_available_description: 'Następujące zmienne i operatory mogą być użyte przy tworzeniu reguł tagowania:'
|
||||
meaning: Znaczenie
|
||||
|
||||
@ -111,7 +111,7 @@ config:
|
||||
tagging_rules_definition_title: 'O que as « regras de tags » significam?'
|
||||
tagging_rules_definition_description: 'São regras usadas pelo Wallabag para automaticamente adicionar tags em novos artigos.<br />Cada vez que um novo artigo é adicionado, todas as regras de tags podem ser usadas para adicionar as tags que você configurou, ajudando-o com o problema de classificar manualmente seus artigos.'
|
||||
how_to_use_them_title: 'Como eu as utilizo?'
|
||||
how_to_use_them_description: 'Vamos dizer que você deseja adicionar a tag « <i>leitura rápida</i> » quando o tempo de leitura for menor que 3 minutos.<br />Neste caso, você deve « readingTime <= 3 » no campo <i>Regra</i> e « <i>leitura rápida</i> » no campo <i>Tags</i>.<br />Diversas tags podem ser adicionadas simultâneamente separando-as com vírgula: « <i>leitura rápida, precisa ser lido</i> »<br />Regras complexas podem ser escritas usando os seguintes operadores pré-definidos: if « <i>readingTime >= 5 AND domainName = "github.com"</i> » então adicione a tag « <i>leitura longa, github </i> »'
|
||||
how_to_use_them_description: 'Vamos dizer que você deseja adicionar a tag « <i>leitura rápida</i> » quando o tempo de leitura for menor que 3 minutos.<br />Neste caso, você deve « readingTime <= 3 » no campo <i>Regra</i> e « <i>leitura rápida</i> » no campo <i>Tags</i>.<br />Diversas tags podem ser adicionadas simultâneamente separando-as com vírgula: « <i>leitura rápida, precisa ser lido</i> »<br />Regras complexas podem ser escritas usando os seguintes operadores pré-definidos: if « <i>readingTime >= 5 AND domainName = "www.php.net"</i> » então adicione a tag « <i>leitura longa, php</i> »'
|
||||
variables_available_title: 'Quais variáveis e operadores eu posso usar para escrever regras?'
|
||||
variables_available_description: 'As seguintes variáveis e operadores podem ser usados para criar regras de tags:'
|
||||
meaning: ''
|
||||
|
||||
@ -150,7 +150,7 @@ config:
|
||||
tagging_rules_definition_title: 'Что значит "правила тегирования"?'
|
||||
tagging_rules_definition_description: 'Правила, по которым wallabag автоматически добавит теги для новых записей.<br />Каждый раз, при добавлении новых записей, будут проставляться теги к записям, согласно настроенным правилам тегирования, это избавит Вас от необходимости проставлять теги для каждой записи вручную.'
|
||||
how_to_use_them_title: 'Как мне их использовать?'
|
||||
how_to_use_them_description: 'Предположим, вы хотите пометить новые записи как "<i>короткая</i>", когда на чтение уйдет меньше 3 минут.<br />В этом случае, установите " readingTime <= 3 " в поле <i>Правила</i> и "<i>короткая</i>" в поле <i>Теги</i>.<br />Несколько тегов могут добавляться одновременно, разделяя их запятой: "<i>короткая, прочитать обязательно</i>" <br />Сложные правила могут быть записаны с использованием предопределенных операторов: если "<i>readingTime >= 5 AND domainName = \"github.com\"</i> " тогда тег будет "<i>долго читать, GitHub </i>"'
|
||||
how_to_use_them_description: 'Предположим, вы хотите пометить новые записи как "<i>короткая</i>", когда на чтение уйдет меньше 3 минут.<br />В этом случае, установите " readingTime <= 3 " в поле <i>Правила</i> и "<i>короткая</i>" в поле <i>Теги</i>.<br />Несколько тегов могут добавляться одновременно, разделяя их запятой: "<i>короткая, прочитать обязательно</i>" <br />Сложные правила могут быть записаны с использованием предопределенных операторов: если "<i>readingTime >= 5 AND domainName = \"www.php.net\"</i> " тогда тег будет "<i>долго читать, php</i>"'
|
||||
variables_available_title: 'Какие переменные и операторы я могу использовать для написания правил?'
|
||||
variables_available_description: 'Следующие переменные и операторы могут использоваться для создания правил тегов:'
|
||||
meaning: 'Смысл'
|
||||
|
||||
@ -124,7 +124,7 @@ config:
|
||||
tagging_rules_definition_title: 'ข้อบังคับการแท็กคืออะไร?'
|
||||
tagging_rules_definition_description: 'การใช้ข้อบังคับโดย Wallabag ไปแท็กรายการใหม่อัตโนมัติ <br />แต่ละช่วงรายการใหม่จะเป็นการเพิ่ม, การแท็กข้อบังคับทั้งหมดจะใช้การเพิ่มแท็กที่คุณกำหนดค่า, ดังนั้นการบันทึกของคุณจะเป็นปัญหาในการจัดหมวดหมู่ของรายการของคุณ'
|
||||
how_to_use_them_title: 'ฉันจะใช้ได้อย่างไร?'
|
||||
how_to_use_them_description: 'การสมมติที่คุณต้องการแท็กรายการใหม่ไปยัง « <i>การอ่านแบบสั้น</i> » เมื่ออ่านในช่วง 3 นาที <br />ในกรณีนี้, คุณควรใส่ « readingTime <= 3 » ภายใน <i>ข้อบังคับ</i> ของพื่นที่และ « <i>การอ่านแบบสั้น</i> » ภายใน <i>แท็ก</i> ของพื้นที่<br />ในหลายแท็กสามารถเพิ่มได้พร้อมกันโดยแบ่งกับ comma: « <i>การอ่านแบบสั้น, ต้องอ่าน</i> »<br />ข้อบังคับที่ซับซ้อนสามารถเขียนโดยการใช้การดำเนินการที่กำหนดไว้ก่อน: ถ้า « <i>readingTime >= 5 AND domainName = "github.com"</i> » ดังนั้นแท็กไปยัง « <i>การอ่านแบบยาว, github </i> »'
|
||||
how_to_use_them_description: 'การสมมติที่คุณต้องการแท็กรายการใหม่ไปยัง « <i>การอ่านแบบสั้น</i> » เมื่ออ่านในช่วง 3 นาที <br />ในกรณีนี้, คุณควรใส่ « readingTime <= 3 » ภายใน <i>ข้อบังคับ</i> ของพื่นที่และ « <i>การอ่านแบบสั้น</i> » ภายใน <i>แท็ก</i> ของพื้นที่<br />ในหลายแท็กสามารถเพิ่มได้พร้อมกันโดยแบ่งกับ comma: « <i>การอ่านแบบสั้น, ต้องอ่าน</i> »<br />ข้อบังคับที่ซับซ้อนสามารถเขียนโดยการใช้การดำเนินการที่กำหนดไว้ก่อน: ถ้า « <i>readingTime >= 5 AND domainName = "www.php.net"</i> » ดังนั้นแท็กไปยัง « <i>การอ่านแบบยาว, php</i> »'
|
||||
variables_available_title: 'ตัวแปรและตัวดำเนินการสามารถให้ใช้การเขียนข้อบังคับได้ที่ไหน?'
|
||||
variables_available_description: 'การติดตามตัวแปรและตัวดำเนินการสามารถใช้การสร้างข้อบังคับแท็ก:'
|
||||
meaning: 'ความหมาย'
|
||||
|
||||
@ -164,7 +164,7 @@ config:
|
||||
matches: '<i>konu</i>nun <i>arama</i> kriterine (büyük küçük harf duyarsız) eşleştiğini test eder.<br />Örnek: <code>title matches "futbol"</code>'
|
||||
notmatches: '<i>konu</i>nun <i>arama</i> kriterine (büyük küçük harf duyarsız) eşleşmediğini test eder.<br />Örnek: <code>title nonmatches "futbol"</code>'
|
||||
tagging_rules_definition_description: Bunlar wallabag'in yeni makaleleri otomatik olarak etiketleyebilmesi için tanımlanmış kurallardır.<br />Her yeni makale eklendiğinde, ayarladığınız tüm etiket kuralları kullanılarak makaleniz etiketlenecektir. Bu sayede her bir makaleyi tek tek etiketlemekle uğraşmanız gerekmeyecek.
|
||||
how_to_use_them_description: 'Örneğin, 3 dakikadan kısa okuma süresi olan yeni makaleleri « <i>kısa okumalar</i>» etiketi ile etiketlemek istiyorsunuz diyelim.<br />Bu durumda, <i>Kural</i> alanına « readingTime < = 3 » değeri, ve de <i>Etiketler</i> alanına da <i>kısa okumalar</i> değerini girmelisiniz.<br /> Eğer birden fazla etiket tanımlamak istiyorsanız arasına virgül koyabilirsiniz: « <i>kısa okumalar, mutlaka oku</i> »<br />Daha kompleks kurallar önden tanımlanmış operatörlerle girilebilir: Eğer « <i> readingTime > = AND domainName = "github.com"</i> » ise, o zaman « <i>uzun okumalar, GitHub</i> » gibi girebilirsiniz'
|
||||
how_to_use_them_description: 'Örneğin, 3 dakikadan kısa okuma süresi olan yeni makaleleri « <i>kısa okumalar</i>» etiketi ile etiketlemek istiyorsunuz diyelim.<br />Bu durumda, <i>Kural</i> alanına « readingTime < = 3 » değeri, ve de <i>Etiketler</i> alanına da <i>kısa okumalar</i> değerini girmelisiniz.<br /> Eğer birden fazla etiket tanımlamak istiyorsanız arasına virgül koyabilirsiniz: « <i>kısa okumalar, mutlaka oku</i> »<br />Daha kompleks kurallar önden tanımlanmış operatörlerle girilebilir: Eğer « <i> readingTime > = AND domainName = "www.php.net"</i> » ise, o zaman « <i>uzun okumalar, php</i> » gibi girebilirsiniz'
|
||||
if_label: eğer
|
||||
then_tag_as_label: ise, şu şekilde etiketle
|
||||
delete_rule_label: sil
|
||||
|
||||
@ -160,7 +160,7 @@ config:
|
||||
tagging_rules_definition_title: '“标签规则”是什么意思?'
|
||||
tagging_rules_definition_description: '它们是 wallabag 用来给新项目自动打上标签的规则。<br />每当一个新项目被添加进来,所有标签规则都会作用于这个项目,为它打上你配置好的标签,免去你手动分类的麻烦。'
|
||||
how_to_use_them_title: '我该怎么使用它们?'
|
||||
how_to_use_them_description: '假设你想要将一个阅读时间短于 3 分钟的新项目标记为“ <i>短阅读</i> ”。<br /> 你应该在 <i>规则</i> 区域输入“readingTime <= 3”,并在 <i>标签</i> 区域输入“<i>短阅读</i>”。<br /> 可以同时添加数个标签,只需要用半角逗号来隔开它们,如:“<i>短阅读, 必读</i>”<br /> 可以使用预定义的操作符来编写复杂的规则,如:如果“ <i>readingTime >= 5 AND domainName ="github.com"</i>”则标记为“<i>长阅读, github</i>”'
|
||||
how_to_use_them_description: '假设你想要将一个阅读时间短于 3 分钟的新项目标记为“ <i>短阅读</i> ”。<br /> 你应该在 <i>规则</i> 区域输入“readingTime <= 3”,并在 <i>标签</i> 区域输入“<i>短阅读</i>”。<br /> 可以同时添加数个标签,只需要用半角逗号来隔开它们,如:“<i>短阅读, 必读</i>”<br /> 可以使用预定义的操作符来编写复杂的规则,如:如果“ <i>readingTime >= 5 AND domainName ="www.php.net"</i>”则标记为“<i>长阅读, php</i>”'
|
||||
variables_available_title: '我可以使用哪些变量和操作符来编写规则?'
|
||||
variables_available_description: '可以使用以下变量和操作符来编写标签规则:'
|
||||
meaning: '含义'
|
||||
@ -253,6 +253,7 @@ entry:
|
||||
toogle_as_star: '添加到收藏'
|
||||
delete: '删除'
|
||||
export_title: '导出'
|
||||
assign_search_tag: 将此搜索作为标签分配给每个结果
|
||||
filters:
|
||||
title: '筛选器'
|
||||
status_label: '状态'
|
||||
|
||||
@ -57,6 +57,11 @@
|
||||
{% endblock %}
|
||||
|
||||
{% block messages %}
|
||||
<div style="margin-top: 10px; color: #e01a15; border-left: 20px #e01a15 solid; padding-left: 10px; border-bottom: 6px #e01a15 solid; border-bottom-left-radius: 10px;">
|
||||
<h3>⚠️ You are using the Baggy theme which is now deprecated.</h3>
|
||||
<p>It will be removed in the next version. You can use the Material theme by <a href="{{ path('config') }}">updating the theme config</a>.</p>
|
||||
</div>
|
||||
|
||||
{% for flashMessage in app.session.flashbag.get('notice') %}
|
||||
<div class="messages success">
|
||||
<a href="#" class="closeMessage">×</a>
|
||||
|
||||
@ -11,8 +11,8 @@
|
||||
<title>wallabag — {{type}} {{ tag }} feed</title>
|
||||
<subtitle type="html">Atom feed for entries tagged with {{ tag }}</subtitle>
|
||||
{% endif %}
|
||||
{% if entries | length > 0 %}
|
||||
<updated>{{ (entries | first).createdAt | date('c') }}</updated> {# Indicates the last time the feed was modified in a significant way. #}
|
||||
{% if updated %}
|
||||
<updated>{{ updated | date('c') }}</updated> {# Indicates the last time the feed was modified in a significant way. #}
|
||||
{% endif %}
|
||||
<link rel="self" type="application/atom+xml" href="{{ app.request.uri }}"/>
|
||||
{% if entries.hasPreviousPage %}
|
||||
|
||||
@ -9,10 +9,16 @@
|
||||
|
||||
<ul class="tools right">
|
||||
<li>
|
||||
<a title="{{ 'entry.list.show_same_domain'|trans }}" class="tool grey-text" href="{{ path('same_domain', { 'id': entry.id }) }}"><i class="material-icons">language</i></a>
|
||||
<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 %}unarchive{% 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 }}" onclick="return confirm('{{ 'entry.confirm.delete'|trans|escape('js') }}')" class="tool grey-text delete" href="{{ path('delete_entry', { 'id': entry.id }) }}"><i class="material-icons">delete</i></a>
|
||||
<a title="{{ 'entry.list.show_same_domain'|trans }}" class="tool grey-text" href="{{ path('same_domain', { 'id': entry.id }) }}" data-action="same_domain" data-entry-id="{{ entry.id }}"><i class="material-icons">language</i></a>
|
||||
</li>
|
||||
<li>
|
||||
<a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool grey-text" href="{{ path('archive_entry', { 'id': entry.id }) }}" data-action="archived" data-entry-id="{{ entry.id }}"><i class="material-icons">{% if entry.isArchived == 0 %}done{% else %}unarchive{% endif %}</i></a>
|
||||
</li>
|
||||
<li>
|
||||
<a title="{{ 'entry.list.toogle_as_star'|trans }}" class="tool grey-text" href="{{ path('star_entry', { 'id': entry.id }) }}" data-action="star" data-entry-id="{{ entry.id }}"><i class="material-icons">{% if entry.isStarred == 0 %}star_border{% else %}star{% endif %}</i></a>
|
||||
</li>
|
||||
<li>
|
||||
<a title="{{ 'entry.list.delete'|trans }}" data-action-confirm="{{ 'entry.confirm.delete'|trans }}" class="tool grey-text delete" href="{{ path('delete_entry', { 'id': entry.id }) }}" data-action="delete" data-entry-id="{{ entry.id }}"><i class="material-icons">delete</i></a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<div class="card{% if currentRoute in routes and entry.isArchived %} archived{% endif %}">
|
||||
<div class="card entry-card{% if currentRoute in routes and entry.isArchived %} archived{% endif %}">
|
||||
<div class="card-body">
|
||||
<div class="card-fullimage">
|
||||
<ul class="card-entry-labels">
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<div class="card{% if currentRoute in routes and entry.isArchived %} archived{% endif %}">
|
||||
<div class="card entry-card{% if currentRoute in routes and entry.isArchived %} archived{% endif %}">
|
||||
<div class="card-body">
|
||||
<div class="card-image waves-effect waves-block waves-light">
|
||||
<ul class="card-entry-labels">
|
||||
|
||||
@ -34,14 +34,14 @@
|
||||
{% include "@WallabagCore/themes/common/Entry/_feed_link.html.twig" %}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if currentRoute == 'search' %}<div><a href="{{ path('tag_this_search', {'filter': searchTerm, 'currentRoute': app.request.get('currentRoute') }) }}" title="{{ 'entry.list.assign_search_tag'|trans }}">{{ 'entry.list.assign_search_tag'|trans }}</a></div>{% endif %}
|
||||
{% if entries.getNbPages > 1 %}
|
||||
{{ pagerfanta(entries, 'twitter_bootstrap_translated', {'proximity': 1}) }}
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<ul class="{% if listMode == 1 %}collection{% else %}row data{% endif %}">
|
||||
|
||||
<li class="mass-buttons">
|
||||
{% if listMode == 1 %}
|
||||
<div class="mass-buttons">
|
||||
{% if entries.count > 0 and listMode == 1 %}
|
||||
<span>
|
||||
<input id="selectAll" type="checkbox" data-toggle="[data-js='entry-checkbox']" data-js="checkboxes-toggle" />
|
||||
@ -53,10 +53,13 @@
|
||||
<button class="btn cyan darken-1" type="submit" name="delete" onclick="return confirm('{{ 'entry.confirm.delete_entries'|trans|escape('js') }}')" title="{{ 'entry.list.delete'|trans }}"><i class="material-icons">delete</i></button>
|
||||
</span>
|
||||
{% endif %}
|
||||
</li>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<ol class="entries {% if listMode == 1 %}collection{% else %}row entries-row data{% endif %}">
|
||||
|
||||
{% for entry in entries %}
|
||||
<li id="entry-{{ entry.id|e }}" class="entry col {% if listMode == 0 %}l3 m6{% else %}collection-item{% endif %} s12">
|
||||
<li id="entry-{{ entry.id|e }}" class="{% if listMode != 0 %}col collection-item{% endif %} s12" data-entry-id="{{ entry.id|e }}" data-test="entry">
|
||||
{% if listMode == 1 %}
|
||||
{% include "@WallabagCore/themes/material/Entry/_card_list.html.twig" with {'entry': entry, 'currentRoute': currentRoute, 'routes': entriesWithArchivedClassRoutes} only %}
|
||||
{% elseif not entry.previewPicture is null and entry.mimetype starts with 'image/' %}
|
||||
@ -66,7 +69,7 @@
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</ol>
|
||||
</form>
|
||||
|
||||
{% if entries.getNbPages > 1 %}
|
||||
|
||||
@ -1,12 +0,0 @@
|
||||
{% trans_default_domain 'FOSUserBundle' %}
|
||||
|
||||
{{ form_start(form, { 'action': path('fos_user_change_password'), 'attr': { 'class': 'fos_user_change_password' } }) }}
|
||||
<div class="card-content">
|
||||
<div class="row">
|
||||
{{ form_widget(form) }}
|
||||
<div>
|
||||
<input type="submit" value="{{ 'change_password.submit'|trans }}" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@ -1,11 +0,0 @@
|
||||
{% extends "FOSUserBundle::layout.html.twig" %}
|
||||
|
||||
{% trans_default_domain 'FOSUserBundle' %}
|
||||
|
||||
{% block fos_user_content %}
|
||||
<div class="card-content">
|
||||
<div class="row">
|
||||
<p>{{ 'registration.check_email'|trans({'%email%': user.email}) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock fos_user_content %}
|
||||
@ -1,17 +0,0 @@
|
||||
{% extends "FOSUserBundle::layout.html.twig" %}
|
||||
|
||||
{% trans_default_domain 'FOSUserBundle' %}
|
||||
|
||||
{% block fos_user_content %}
|
||||
<div class="card-content">
|
||||
<div class="row">
|
||||
<p>{{ 'registration.confirmed'|trans({'%username%': user.username}) }}</p>
|
||||
{% if targetUrl %}
|
||||
<p><a href="{{ targetUrl }}">{{ 'registration.back'|trans }}</a></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="card-action center">
|
||||
<a href="{{ path('homepage') }}" class="waves-effect waves-light btn">{{ 'security.register.go_to_account'|trans({},'messages') }}</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock fos_user_content %}
|
||||
@ -1,44 +0,0 @@
|
||||
{% trans_default_domain 'FOSUserBundle' %}
|
||||
|
||||
{{ form_start(form, {'method': 'post', 'action': path('fos_user_registration_register'), 'attr': {'class': 'fos_user_registration_register'}}) }}
|
||||
<div class="card-content">
|
||||
<div class="row">
|
||||
{{ form_widget(form._token) }}
|
||||
|
||||
{% for flashMessage in app.session.flashbag.get('notice') %}
|
||||
<span class="black-text"><p>{{ flashMessage }}</p></span>
|
||||
{% endfor %}
|
||||
|
||||
<div class="input-field col s12">
|
||||
{{ form_errors(form.email) }}
|
||||
{{ form_label(form.email) }}
|
||||
{{ form_widget(form.email) }}
|
||||
</div>
|
||||
|
||||
<div class="input-field col s12">
|
||||
{{ form_errors(form.username) }}
|
||||
{{ form_label(form.username) }}
|
||||
{{ form_widget(form.username) }}
|
||||
</div>
|
||||
|
||||
<div class="input-field col s12">
|
||||
{{ form_errors(form.plainPassword.first) }}
|
||||
{{ form_label(form.plainPassword.first) }}
|
||||
{{ form_widget(form.plainPassword.first) }}
|
||||
</div>
|
||||
|
||||
<div class="input-field col s12">
|
||||
{{ form_errors(form.plainPassword.second) }}
|
||||
{{ form_label(form.plainPassword.second) }}
|
||||
{{ form_widget(form.plainPassword.second) }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-action center">
|
||||
<a href="{{ path('fos_user_security_login') }}" class="waves-effect waves-light grey btn">{{ 'security.login.submit'|trans }}</a>
|
||||
<button class="btn waves-effect waves-light" type="submit" name="send">
|
||||
{{ 'registration.submit'|trans({}, 'FOSUserBundle') }}
|
||||
<i class="material-icons right">send</i>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
@ -1,11 +0,0 @@
|
||||
{% extends "FOSUserBundle::layout.html.twig" %}
|
||||
|
||||
{% trans_default_domain 'FOSUserBundle' %}
|
||||
|
||||
{% block fos_user_content %}
|
||||
<div class="card-content">
|
||||
<div class="row">
|
||||
<p>{{ 'resetting.check_email'|trans({'%tokenLifetime%': tokenLifetime}) }}</p>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock fos_user_content %}
|
||||
@ -1,30 +0,0 @@
|
||||
{% trans_default_domain 'FOSUserBundle' %}
|
||||
|
||||
<form action="{{ path('fos_user_resetting_send_email') }}" method="POST" class="fos_user_resetting_request">
|
||||
<div class="card-content">
|
||||
<div class="row">
|
||||
<p>{{ 'security.resetting.description'|trans({}, "messages") }}</p>
|
||||
|
||||
{% for flashMessage in app.session.flashbag.get('notice') %}
|
||||
<span class="black-text"><p>{{ flashMessage }}</p></span>
|
||||
{% endfor %}
|
||||
|
||||
{% if invalid_username is defined %}
|
||||
<p>{{ 'resetting.request.invalid_username'|trans({'%username%': invalid_username}) }}</p>
|
||||
{% endif %}
|
||||
|
||||
<div class="input-field col s12">
|
||||
<label for="username">{{ 'resetting.request.username'|trans }}</label>
|
||||
<input type="text" id="username" name="username" required="required" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-action center">
|
||||
<a href="{{ path('fos_user_security_login') }}" class="waves-effect waves-light grey btn">
|
||||
{{ 'security.login.submit'|trans({}, "messages") }}
|
||||
</a>
|
||||
<button class="btn waves-effect waves-light" type="submit" name="send">
|
||||
{{ 'resetting.request.submit'|trans }}
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
@ -1,15 +0,0 @@
|
||||
{% trans_default_domain 'FOSUserBundle' %}
|
||||
|
||||
{{ form_start(form, { 'action': path('fos_user_resetting_reset', {'token': token}), 'attr': { 'class': 'fos_user_resetting_reset' } }) }}
|
||||
<div class="card-content">
|
||||
<div class="row">
|
||||
{{ form_widget(form) }}
|
||||
</div>
|
||||
<div class="card-action center">
|
||||
<button class="btn waves-effect waves-light" type="submit" name="send">
|
||||
{{ 'resetting.reset.submit'|trans }}
|
||||
<i class="material-icons right">send</i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@ -1,48 +0,0 @@
|
||||
{% extends "FOSUserBundle::layout.html.twig" %}
|
||||
|
||||
{% block fos_user_content %}
|
||||
<form action="{{ path('fos_user_security_check') }}" method="post" name="loginform">
|
||||
<div class="card-content">
|
||||
|
||||
{% if error %}
|
||||
<script>Materialize.toast('{{ error.messageKey|trans(error.messageData, 'security') }}', 4000)</script>
|
||||
{% endif %}
|
||||
|
||||
{% for flashMessage in app.session.flashbag.get('notice') %}
|
||||
<script>Materialize.toast('{{ flashMessage }}')</script>
|
||||
{% endfor %}
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="input-field col s12">
|
||||
<label for="username">{{ 'security.login.username'|trans }}</label>
|
||||
<input type="text" id="username" name="_username" value="{{ last_username }}" autofocus />
|
||||
</div>
|
||||
|
||||
<div class="input-field col s12">
|
||||
<label for="password">{{ 'security.login.password'|trans }}</label>
|
||||
<input type="password" id="password" name="_password" />
|
||||
</div>
|
||||
|
||||
<div class="input-field col s12">
|
||||
<input type="checkbox" id="remember_me" name="_remember_me" checked />
|
||||
<label for="remember_me">{{ 'security.login.keep_logged_in'|trans }}</label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-action center">
|
||||
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}" />
|
||||
{% if registration_enabled %}
|
||||
<a href="{{ path('fos_user_registration_register') }}" class="waves-effect waves-light grey btn">{{ 'security.login.register'|trans }}</a>
|
||||
{% endif %}
|
||||
<button class="btn waves-effect waves-light" type="submit" name="send">
|
||||
{{ 'security.login.submit'|trans }}
|
||||
<i class="material-icons right">send</i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-action center">
|
||||
<a href="{{ path('fos_user_resetting_request') }}">{{ 'security.login.forgot_password'|trans }}</a>
|
||||
</div>
|
||||
</form>
|
||||
{% endblock fos_user_content %}
|
||||
@ -1,28 +0,0 @@
|
||||
{% extends "WallabagCoreBundle::layout.html.twig" %}
|
||||
|
||||
{% block title %}{{ 'security.login.page_title'|trans }}{% endblock %}
|
||||
|
||||
{% block body_class %}login{% endblock %}
|
||||
|
||||
{% block menu %}{% endblock %}
|
||||
{% block messages %}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<main class="valign-wrapper">
|
||||
<div class="valign row">
|
||||
<div class="card sw">
|
||||
<div class="center"><img src="{{ asset('img/logo-wallabag.svg') }}" class="typo-logo" alt="wallabag logo" /></div>
|
||||
{% block fos_user_content %}
|
||||
{% endblock fos_user_content %}
|
||||
</div>
|
||||
<div class="center">
|
||||
<a href="{{ path('changeLocale', {'language': 'de'}) }}">Deutsch</a> –
|
||||
<a href="{{ path('changeLocale', {'language': 'en'}) }}">English</a> –
|
||||
<a href="{{ path('changeLocale', {'language': 'fr'}) }}">Français</a>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
{% endblock %}
|
||||
|
||||
{% block footer %}
|
||||
{% endblock %}
|
||||
@ -6,8 +6,4 @@ use Symfony\Component\HttpKernel\Bundle\Bundle;
|
||||
|
||||
class WallabagUserBundle extends Bundle
|
||||
{
|
||||
public function getParent()
|
||||
{
|
||||
return 'FOSUserBundle';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user