aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--app/DoctrineMigrations/Version20170719231144.php103
-rw-r--r--app/DoctrineMigrations/Version20170824113337.php63
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.de.yml72
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.oc.yml2
-rw-r--r--src/Wallabag/ApiBundle/Controller/EntryRestController.php4
-rw-r--r--src/Wallabag/CoreBundle/Controller/EntryController.php1
-rw-r--r--src/Wallabag/CoreBundle/Entity/Entry.php47
-rw-r--r--src/Wallabag/CoreBundle/Entity/Tag.php2
-rw-r--r--src/Wallabag/CoreBundle/Helper/TagsAssigner.php2
-rw-r--r--src/Wallabag/CoreBundle/Repository/EntryRepository.php11
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.de.yml180
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml110
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/validators.oc.yml4
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig2
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig2
-rw-r--r--src/Wallabag/UserBundle/Resources/translations/wallabag_user.oc.yml4
-rw-r--r--tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php5
-rw-r--r--tests/Wallabag/CoreBundle/Controller/TagControllerTest.php6
-rw-r--r--tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php2
-rw-r--r--tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php2
20 files changed, 423 insertions, 201 deletions
diff --git a/app/DoctrineMigrations/Version20170719231144.php b/app/DoctrineMigrations/Version20170719231144.php
new file mode 100644
index 00000000..0f5fa75a
--- /dev/null
+++ b/app/DoctrineMigrations/Version20170719231144.php
@@ -0,0 +1,103 @@
1<?php
2
3namespace Application\Migrations;
4
5use Doctrine\DBAL\Migrations\AbstractMigration;
6use Doctrine\DBAL\Schema\Schema;
7use Symfony\Component\DependencyInjection\ContainerAwareInterface;
8use Symfony\Component\DependencyInjection\ContainerInterface;
9
10/**
11 * Changed tags to lowercase.
12 */
13class Version20170719231144 extends AbstractMigration implements ContainerAwareInterface
14{
15 /**
16 * @var ContainerInterface
17 */
18 private $container;
19
20 public function setContainer(ContainerInterface $container = null)
21 {
22 $this->container = $container;
23 }
24
25 /**
26 * @param Schema $schema
27 */
28 public function up(Schema $schema)
29 {
30 $this->skipIf($this->connection->getDatabasePlatform()->getName() === 'sqlite', 'Migration can only be executed safely on \'mysql\' or \'postgresql\'.');
31
32 // Find tags which need to be merged
33 $dupTags = $this->connection->query('
34 SELECT LOWER(label)
35 FROM ' . $this->getTable('tag') . '
36 GROUP BY LOWER(label)
37 HAVING COUNT(*) > 1'
38 );
39 $dupTags->execute();
40
41 foreach ($dupTags->fetchAll() as $duplicates) {
42 $label = $duplicates['LOWER(label)'];
43
44 // Retrieve all duplicate tags for a given tag
45 $tags = $this->connection->query('
46 SELECT id
47 FROM ' . $this->getTable('tag') . "
48 WHERE LOWER(label) = '" . $label . "'
49 ORDER BY id ASC"
50 );
51 $tags->execute();
52
53 $first = true;
54 $newId = null;
55 $ids = [];
56
57 foreach ($tags->fetchAll() as $tag) {
58 // Ignore the first tag as we use it as the new reference tag
59 if ($first) {
60 $first = false;
61 $newId = $tag['id'];
62 } else {
63 $ids[] = $tag['id'];
64 }
65 }
66
67 // Just in case...
68 if (count($ids) > 0) {
69 // Merge tags
70 $this->addSql('
71 UPDATE ' . $this->getTable('entry_tag') . '
72 SET tag_id = ' . $newId . '
73 WHERE tag_id IN (' . implode(',', $ids) . ')'
74 );
75
76 // Delete unused tags
77 $this->addSql('
78 DELETE FROM ' . $this->getTable('tag') . '
79 WHERE id IN (' . implode(',', $ids) . ')'
80 );
81 }
82 }
83
84 // Iterate over all tags to lowercase them
85 $this->addSql('
86 UPDATE ' . $this->getTable('tag') . '
87 SET label = LOWER(label)'
88 );
89 }
90
91 /**
92 * @param Schema $schema
93 */
94 public function down(Schema $schema)
95 {
96 throw new SkipMigrationException('Too complex ...');
97 }
98
99 private function getTable($tableName)
100 {
101 return $this->container->getParameter('database_table_prefix') . $tableName;
102 }
103}
diff --git a/app/DoctrineMigrations/Version20170824113337.php b/app/DoctrineMigrations/Version20170824113337.php
new file mode 100644
index 00000000..7393d683
--- /dev/null
+++ b/app/DoctrineMigrations/Version20170824113337.php
@@ -0,0 +1,63 @@
1<?php
2
3namespace Application\Migrations;
4
5use Doctrine\DBAL\Migrations\AbstractMigration;
6use Doctrine\DBAL\Schema\Schema;
7use Symfony\Component\DependencyInjection\ContainerAwareInterface;
8use Symfony\Component\DependencyInjection\ContainerInterface;
9
10/**
11 * Add starred_at column and set its value to updated_at for is_starred entries.
12 */
13class Version20170824113337 extends AbstractMigration implements ContainerAwareInterface
14{
15 /**
16 * @var ContainerInterface
17 */
18 private $container;
19
20 public function setContainer(ContainerInterface $container = null)
21 {
22 $this->container = $container;
23 }
24
25 /**
26 * @param Schema $schema
27 */
28 public function up(Schema $schema)
29 {
30 $entryTable = $schema->getTable($this->getTable('entry'));
31
32 $this->skipIf($entryTable->hasColumn('starred_at'), 'It seems that you already played this migration.');
33
34 $entryTable->addColumn('starred_at', 'datetime', [
35 'notnull' => false,
36 ]);
37 }
38
39 public function postUp(Schema $schema)
40 {
41 $entryTable = $schema->getTable($this->getTable('entry'));
42 $this->skipIf(!$entryTable->hasColumn('starred_at'), 'Unable to add starred_at colum');
43
44 $this->connection->executeQuery('UPDATE ' . $this->getTable('entry') . ' SET starred_at = updated_at WHERE is_starred = true');
45 }
46
47 /**
48 * @param Schema $schema
49 */
50 public function down(Schema $schema)
51 {
52 $entryTable = $schema->getTable($this->getTable('entry'));
53
54 $this->skipIf(!$entryTable->hasColumn('starred_at'), 'It seems that you already played this migration.');
55
56 $entryTable->dropColumn('starred_at');
57 }
58
59 private function getTable($tableName)
60 {
61 return $this->container->getParameter('database_table_prefix') . $tableName;
62 }
63}
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.de.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.de.yml
index f57db303..a066c8e3 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.de.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.de.yml
@@ -1,36 +1,36 @@
1# settings_changed: Configuration updated 1settings_changed: 'Konfiguration aktualisiert'
2download_pictures: Bilder auf den Server herunterladen 2download_pictures: 'Bilder auf den Server herunterladen'
3carrot: Teilen zu Carrot aktivieren 3carrot: 'Teilen zu Carrot aktivieren'
4diaspora_url: Diaspora-URL, sofern der Service aktiviert ist 4diaspora_url: 'Diaspora-URL, sofern der Service aktiviert ist'
5export_epub: ePUB-Export aktivieren 5export_epub: 'ePUB-Export aktivieren'
6export_mobi: mobi-Export aktivieren 6export_mobi: 'mobi-Export aktivieren'
7export_pdf: PDF-Export aktivieren 7export_pdf: 'PDF-Export aktivieren'
8export_csv: CSV-Export aktivieren 8export_csv: 'CSV-Export aktivieren'
9export_json: JSON-Export aktivieren 9export_json: 'JSON-Export aktivieren'
10export_txt: TXT-Export aktivieren 10export_txt: 'TXT-Export aktivieren'
11export_xml: XML-Export aktivieren 11export_xml: 'XML-Export aktivieren'
12import_with_rabbitmq: Aktiviere RabbitMQ, um Artikel asynchron zu importieren 12import_with_rabbitmq: 'Aktiviere RabbitMQ, um Artikel asynchron zu importieren'
13import_with_redis: Aktiviere Redis, um Artikel asynchron zu importieren 13import_with_redis: 'Aktiviere Redis, um Artikel asynchron zu importieren'
14shaarli_url: Shaarli-URL, sofern der Service aktiviert ist 14shaarli_url: 'Shaarli-URL, sofern der Service aktiviert ist'
15share_diaspora: Teilen zu Diaspora aktiveren 15share_diaspora: 'Teilen zu Diaspora aktiveren'
16share_mail: Teilen via E-Mail aktiveren 16share_mail: 'Teilen via E-Mail aktiveren'
17share_shaarli: Teilen zu Shaarli aktiveren 17share_shaarli: 'Teilen zu Shaarli aktiveren'
18share_scuttle: Teilen zu Scuttle aktiveren 18share_twitter: 'Teilen zu Twitter aktiveren'
19share_twitter: Teilen zu Twitter aktiveren 19share_unmark: 'Teilen zu Unmark.it aktiveren'
20share_unmark: Teilen zu Unmark.it aktiveren 20show_printlink: 'Link anzeigen, um den Inhalt auszudrucken'
21show_printlink: Link anzeigen, um den Inhalt auszudrucken 21wallabag_support_url: 'Support-URL für wallabag'
22wallabag_support_url: Support-URL r wallabag 22wallabag_url: 'URL von *deiner* wallabag-Instanz'
23entry: "Artikel" 23entry: 'Artikel'
24export: "Export" 24export: 'Export'
25import: "Import" 25import: 'Import'
26misc: "Verschiedenes" 26misc: 'Verschiedenes'
27modify_settings: "Übernehmen" 27modify_settings: 'Übernehmen'
28piwik_host: Host deiner Webseite in Piwik (ohne http:// oder https://) 28piwik_host: 'Host deiner Webseite in Piwik (ohne http:// oder https://)'
29piwik_site_id: ID deiner Webseite in Piwik 29piwik_site_id: 'ID deiner Webseite in Piwik'
30piwik_enabled: Piwik aktivieren 30piwik_enabled: 'Piwik aktivieren'
31demo_mode_enabled: "Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)" 31demo_mode_enabled: 'Test-Modus aktivieren? (nur für die öffentliche wallabag-Demo genutzt)'
32demo_mode_username: "Test-Benutzer" 32demo_mode_username: 'Test-Benutzer'
33share_public: Erlaube eine öffentliche URL für Einträge 33share_public: 'Erlaube eine öffentliche URL für Einträge'
34# download_images_enabled: Download images locally 34download_images_enabled: 'Bilder lokal herunterladen'
35# restricted_access: Enable authentication for websites with paywall 35restricted_access: 'Authentifizierung für Webseiten mit Paywall aktivieren'
36# api_user_registration: Enable user to be registered using the API 36api_user_registration: 'Registrierung eines Benutzers über die API ermöglichen'
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.oc.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.oc.yml
index 0861d59c..fb163ce7 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.oc.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.oc.yml
@@ -12,7 +12,7 @@ export_xml: Activar l'expòrt XML
12import_with_rabbitmq: Activar RabbitMQ per importar de donadas de manièra asincròna 12import_with_rabbitmq: Activar RabbitMQ per importar de donadas de manièra asincròna
13import_with_redis: Activar Redis per importar de donadas de manièra asincròna 13import_with_redis: Activar Redis per importar de donadas de manièra asincròna
14shaarli_url: URL de Shaarli, se lo servici Shaarli es activat 14shaarli_url: URL de Shaarli, se lo servici Shaarli es activat
15share_diaspora: Activar lo partatge cap a Diaspora 15share_diaspora: Activar lo partatge cap a Diaspora*
16share_mail: Activar lo partatge per corrièl 16share_mail: Activar lo partatge per corrièl
17share_shaarli: Activar lo partatge cap a Shaarli 17share_shaarli: Activar lo partatge cap a Shaarli
18share_scuttle: Activar lo partatge cap a Scuttle 18share_scuttle: Activar lo partatge cap a Scuttle
diff --git a/src/Wallabag/ApiBundle/Controller/EntryRestController.php b/src/Wallabag/ApiBundle/Controller/EntryRestController.php
index bc1b6f92..6db97731 100644
--- a/src/Wallabag/ApiBundle/Controller/EntryRestController.php
+++ b/src/Wallabag/ApiBundle/Controller/EntryRestController.php
@@ -361,7 +361,7 @@ class EntryRestController extends WallabagRestController
361 } 361 }
362 362
363 if (null !== $data['isStarred']) { 363 if (null !== $data['isStarred']) {
364 $entry->setStarred((bool) $data['isStarred']); 364 $entry->updateStar((bool) $data['isStarred']);
365 } 365 }
366 366
367 if (!empty($data['tags'])) { 367 if (!empty($data['tags'])) {
@@ -464,7 +464,7 @@ class EntryRestController extends WallabagRestController
464 } 464 }
465 465
466 if (null !== $data['isStarred']) { 466 if (null !== $data['isStarred']) {
467 $entry->setStarred((bool) $data['isStarred']); 467 $entry->updateStar((bool) $data['isStarred']);
468 } 468 }
469 469
470 if (!empty($data['tags'])) { 470 if (!empty($data['tags'])) {
diff --git a/src/Wallabag/CoreBundle/Controller/EntryController.php b/src/Wallabag/CoreBundle/Controller/EntryController.php
index 3dcfbebe..b0b74c38 100644
--- a/src/Wallabag/CoreBundle/Controller/EntryController.php
+++ b/src/Wallabag/CoreBundle/Controller/EntryController.php
@@ -333,6 +333,7 @@ class EntryController extends Controller
333 $this->checkUserAction($entry); 333 $this->checkUserAction($entry);
334 334
335 $entry->toggleStar(); 335 $entry->toggleStar();
336 $entry->updateStar($entry->isStarred());
336 $this->getDoctrine()->getManager()->flush(); 337 $this->getDoctrine()->getManager()->flush();
337 338
338 $message = 'flashes.entry.notice.entry_unstarred'; 339 $message = 'flashes.entry.notice.entry_unstarred';
diff --git a/src/Wallabag/CoreBundle/Entity/Entry.php b/src/Wallabag/CoreBundle/Entity/Entry.php
index 61d01bdc..4367902e 100644
--- a/src/Wallabag/CoreBundle/Entity/Entry.php
+++ b/src/Wallabag/CoreBundle/Entity/Entry.php
@@ -143,6 +143,15 @@ class Entry
143 private $publishedBy; 143 private $publishedBy;
144 144
145 /** 145 /**
146 * @var \DateTime
147 *
148 * @ORM\Column(name="starred_at", type="datetime", nullable=true)
149 *
150 * @Groups({"entries_for_user", "export_all"})
151 */
152 private $starredAt = null;
153
154 /**
146 * @ORM\OneToMany(targetEntity="Wallabag\AnnotationBundle\Entity\Annotation", mappedBy="entry", cascade={"persist", "remove"}) 155 * @ORM\OneToMany(targetEntity="Wallabag\AnnotationBundle\Entity\Annotation", mappedBy="entry", cascade={"persist", "remove"})
147 * @ORM\JoinTable 156 * @ORM\JoinTable
148 * 157 *
@@ -476,6 +485,44 @@ class Entry
476 } 485 }
477 486
478 /** 487 /**
488 * @return \DateTime|null
489 */
490 public function getStarredAt()
491 {
492 return $this->starredAt;
493 }
494
495 /**
496 * @param \DateTime|null $starredAt
497 *
498 * @return Entry
499 */
500 public function setStarredAt($starredAt = null)
501 {
502 $this->starredAt = $starredAt;
503
504 return $this;
505 }
506
507 /**
508 * update isStarred and starred_at fields.
509 *
510 * @param bool $isStarred
511 *
512 * @return Entry
513 */
514 public function updateStar($isStarred = false)
515 {
516 $this->setStarred($isStarred);
517 $this->setStarredAt(null);
518 if ($this->isStarred()) {
519 $this->setStarredAt(new \DateTime());
520 }
521
522 return $this;
523 }
524
525 /**
479 * @return ArrayCollection<Annotation> 526 * @return ArrayCollection<Annotation>
480 */ 527 */
481 public function getAnnotations() 528 public function getAnnotations()
diff --git a/src/Wallabag/CoreBundle/Entity/Tag.php b/src/Wallabag/CoreBundle/Entity/Tag.php
index c19023af..a6dc8c50 100644
--- a/src/Wallabag/CoreBundle/Entity/Tag.php
+++ b/src/Wallabag/CoreBundle/Entity/Tag.php
@@ -78,7 +78,7 @@ class Tag
78 */ 78 */
79 public function setLabel($label) 79 public function setLabel($label)
80 { 80 {
81 $this->label = $label; 81 $this->label = mb_convert_case($label, MB_CASE_LOWER);
82 82
83 return $this; 83 return $this;
84 } 84 }
diff --git a/src/Wallabag/CoreBundle/Helper/TagsAssigner.php b/src/Wallabag/CoreBundle/Helper/TagsAssigner.php
index a2fb0b9a..0bfe5c57 100644
--- a/src/Wallabag/CoreBundle/Helper/TagsAssigner.php
+++ b/src/Wallabag/CoreBundle/Helper/TagsAssigner.php
@@ -45,7 +45,7 @@ class TagsAssigner
45 } 45 }
46 46
47 foreach ($tags as $label) { 47 foreach ($tags as $label) {
48 $label = trim($label); 48 $label = trim(mb_convert_case($label, MB_CASE_LOWER));
49 49
50 // avoid empty tag 50 // avoid empty tag
51 if (0 === strlen($label)) { 51 if (0 === strlen($label)) {
diff --git a/src/Wallabag/CoreBundle/Repository/EntryRepository.php b/src/Wallabag/CoreBundle/Repository/EntryRepository.php
index eb5e3205..ecc159fc 100644
--- a/src/Wallabag/CoreBundle/Repository/EntryRepository.php
+++ b/src/Wallabag/CoreBundle/Repository/EntryRepository.php
@@ -65,7 +65,7 @@ class EntryRepository extends EntityRepository
65 public function getBuilderForStarredByUser($userId) 65 public function getBuilderForStarredByUser($userId)
66 { 66 {
67 return $this 67 return $this
68 ->getBuilderByUser($userId) 68 ->getBuilderByUser($userId, 'starredAt', 'desc')
69 ->andWhere('e.isStarred = true') 69 ->andWhere('e.isStarred = true')
70 ; 70 ;
71 } 71 }
@@ -401,15 +401,16 @@ class EntryRepository extends EntityRepository
401 /** 401 /**
402 * Return a query builder to used by other getBuilderFor* method. 402 * Return a query builder to used by other getBuilderFor* method.
403 * 403 *
404 * @param int $userId 404 * @param int $userId
405 * @param string $sortBy
406 * @param string $direction
405 * 407 *
406 * @return QueryBuilder 408 * @return QueryBuilder
407 */ 409 */
408 private function getBuilderByUser($userId) 410 private function getBuilderByUser($userId, $sortBy = 'createdAt', $direction = 'desc')
409 { 411 {
410 return $this->createQueryBuilder('e') 412 return $this->createQueryBuilder('e')
411 ->andWhere('e.user = :userId')->setParameter('userId', $userId) 413 ->andWhere('e.user = :userId')->setParameter('userId', $userId)
412 ->orderBy('e.createdAt', 'desc') 414 ->orderBy(sprintf('e.%s', $sortBy), $direction);
413 ;
414 } 415 }
415} 416}
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
index 48f8a535..360bf571 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
@@ -32,7 +32,7 @@ menu:
32 save_link: 'Link speichern' 32 save_link: 'Link speichern'
33 back_to_unread: 'Zurück zu ungelesenen Artikeln' 33 back_to_unread: 'Zurück zu ungelesenen Artikeln'
34 users_management: 'Benutzerverwaltung' 34 users_management: 'Benutzerverwaltung'
35 # site_credentials: 'Site credentials' 35 site_credentials: 'Zugangsdaten'
36 top: 36 top:
37 add_new_entry: 'Neuen Artikel hinzufügen' 37 add_new_entry: 'Neuen Artikel hinzufügen'
38 search: 'Suche' 38 search: 'Suche'
@@ -47,7 +47,7 @@ footer:
47 social: 'Soziales' 47 social: 'Soziales'
48 powered_by: 'angetrieben von' 48 powered_by: 'angetrieben von'
49 about: 'Über' 49 about: 'Über'
50 stats: Seit %user_creation% hast du %nb_archives% Artikel gelesen. Das sind ungefähr %per_day% pro Tag! 50 stats: 'Seit %user_creation% hast du %nb_archives% Artikel gelesen. Das sind ungefähr %per_day% pro Tag!'
51 51
52config: 52config:
53 page_title: 'Einstellungen' 53 page_title: 'Einstellungen'
@@ -75,9 +75,9 @@ config:
75 label: 'Wohin soll nach dem Gelesenmarkieren eines Artikels weitergeleitet werden?' 75 label: 'Wohin soll nach dem Gelesenmarkieren eines Artikels weitergeleitet werden?'
76 redirect_homepage: 'Zur Homepage' 76 redirect_homepage: 'Zur Homepage'
77 redirect_current_page: 'Zur aktuellen Seite' 77 redirect_current_page: 'Zur aktuellen Seite'
78 pocket_consumer_key_label: Consumer-Key für Pocket, um Inhalte zu importieren 78 pocket_consumer_key_label: 'Consumer-Key für Pocket, um Inhalte zu importieren'
79 android_configuration: Konfiguriere deine Android Application 79 android_configuration: 'Konfiguriere deine Android-App'
80 # android_instruction: "Touch here to prefill your Android application" 80 android_instruction: "Klicke hier, um deine Android-App auszufüllen"
81 help_theme: "wallabag ist anpassbar. Du kannst dein bevorzugtes Theme hier auswählen." 81 help_theme: "wallabag ist anpassbar. Du kannst dein bevorzugtes Theme hier auswählen."
82 help_items_per_page: "Du kannst die Nummer von Artikeln pro Seite anpassen." 82 help_items_per_page: "Du kannst die Nummer von Artikeln pro Seite anpassen."
83 help_reading_speed: "wallabag berechnet eine Lesezeit pro Artikel. Hier kannst du definieren, ob du ein schneller oder langsamer Leser bist. wallabag wird die Lesezeiten danach neu berechnen." 83 help_reading_speed: "wallabag berechnet eine Lesezeit pro Artikel. Hier kannst du definieren, ob du ein schneller oder langsamer Leser bist. wallabag wird die Lesezeiten danach neu berechnen."
@@ -94,7 +94,7 @@ config:
94 unread: 'Ungelesene' 94 unread: 'Ungelesene'
95 starred: 'Favoriten' 95 starred: 'Favoriten'
96 archive: 'Archivierte' 96 archive: 'Archivierte'
97 # all: 'All' 97 all: 'Alle'
98 rss_limit: 'Anzahl der Einträge pro Feed' 98 rss_limit: 'Anzahl der Einträge pro Feed'
99 form_user: 99 form_user:
100 two_factor_description: "Wenn du die Zwei-Faktor-Authentifizierung aktivierst, erhältst du eine E-Mail mit einem Code bei jeder nicht vertrauenswürdigen Verbindung" 100 two_factor_description: "Wenn du die Zwei-Faktor-Authentifizierung aktivierst, erhältst du eine E-Mail mit einem Code bei jeder nicht vertrauenswürdigen Verbindung"
@@ -103,18 +103,18 @@ config:
103 twoFactorAuthentication_label: 'Zwei-Faktor-Authentifizierung' 103 twoFactorAuthentication_label: 'Zwei-Faktor-Authentifizierung'
104 help_twoFactorAuthentication: "Wenn du 2FA aktivierst, wirst du bei jedem Login einen Code per E-Mail bekommen." 104 help_twoFactorAuthentication: "Wenn du 2FA aktivierst, wirst du bei jedem Login einen Code per E-Mail bekommen."
105 delete: 105 delete:
106 title: Lösche mein Konto (a.k.a Gefahrenzone) 106 title: 'Lösche mein Konto (a.k.a Gefahrenzone)'
107 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. 107 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.'
108 confirm: Bist du wirklich sicher? (DIES KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN) 108 confirm: 'Bist du wirklich sicher? (DIES KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN)'
109 button: Lösche mein Konto 109 button: 'Lösche mein Konto'
110 reset: 110 reset:
111 title: Zurücksetzen (a.k.a Gefahrenzone) 111 title: 'Zurücksetzen (a.k.a Gefahrenzone)'
112 description: Beim Nutzen der folgenden Schaltflächenhast du die Möglichkeit, einige Informationen von deinem Konto zu entfernen. Sei dir bewusst, dass dies NICHT RÜCKGÄNGIG zu machen ist. 112 description: 'Beim Nutzen der folgenden Schaltflächenhast du die Möglichkeit, einige Informationen von deinem Konto zu entfernen. Sei dir bewusst, dass dies NICHT RÜCKGÄNGIG zu machen ist.'
113 annotations: Entferne ALLE Annotationen 113 annotations: 'Entferne ALLE Annotationen'
114 tags: Entferne ALLE Tags 114 tags: 'Entferne ALLE Tags'
115 entries: Entferne ALLE Einträge 115 entries: 'Entferne ALLE Einträge'
116 archived: Entferne ALLE archivierten Einträge 116 archived: 'Entferne ALLE archivierten Einträge'
117 confirm: Bist du wirklich sicher? (DIES KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN) 117 confirm: 'Bist du wirklich sicher? (DIES KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN)'
118 form_password: 118 form_password:
119 description: "Hier kannst du dein Kennwort ändern. Dieses sollte mindestens acht Zeichen enthalten." 119 description: "Hier kannst du dein Kennwort ändern. Dieses sollte mindestens acht Zeichen enthalten."
120 old_password_label: 'Altes Kennwort' 120 old_password_label: 'Altes Kennwort'
@@ -178,7 +178,7 @@ entry:
178 number_of_tags: '{1}und ein anderer Tag|]1,Inf[und %count% andere Tags' 178 number_of_tags: '{1}und ein anderer Tag|]1,Inf[und %count% andere Tags'
179 reading_time_minutes_short: '%readingTime% min' 179 reading_time_minutes_short: '%readingTime% min'
180 reading_time_less_one_minute_short: '&lt; 1 min' 180 reading_time_less_one_minute_short: '&lt; 1 min'
181 original_article: 'Original' 181 original_article: 'Originalartikel'
182 toogle_as_read: 'Gelesen-Status ändern' 182 toogle_as_read: 'Gelesen-Status ändern'
183 toogle_as_star: 'Favoriten-Status ändern' 183 toogle_as_star: 'Favoriten-Status ändern'
184 delete: 'Löschen' 184 delete: 'Löschen'
@@ -191,8 +191,8 @@ entry:
191 unread_label: 'Ungelesene' 191 unread_label: 'Ungelesene'
192 preview_picture_label: 'Vorschaubild vorhanden' 192 preview_picture_label: 'Vorschaubild vorhanden'
193 preview_picture_help: 'Vorschaubild' 193 preview_picture_help: 'Vorschaubild'
194 # is_public_label: 'Has a public link' 194 is_public_label: 'Hat einen öffentlichen Link'
195 # is_public_help: 'Public link' 195 is_public_help: 'Öffentlicher Link'
196 language_label: 'Sprache' 196 language_label: 'Sprache'
197 http_status_label: 'HTTP-Status' 197 http_status_label: 'HTTP-Status'
198 reading_time: 198 reading_time:
@@ -228,7 +228,7 @@ entry:
228 label: 'Probleme?' 228 label: 'Probleme?'
229 description: 'Erscheint dieser Artikel falsch?' 229 description: 'Erscheint dieser Artikel falsch?'
230 edit_title: 'Titel ändern' 230 edit_title: 'Titel ändern'
231 original_article: 'original' 231 original_article: 'Originalartikel'
232 annotations_on_the_entry: '{0} Keine Anmerkungen|{1} Eine Anmerkung|]1,Inf[ %count% Anmerkungen' 232 annotations_on_the_entry: '{0} Keine Anmerkungen|{1} Eine Anmerkung|]1,Inf[ %count% Anmerkungen'
233 created_at: 'Erstellungsdatum' 233 created_at: 'Erstellungsdatum'
234 published_at: 'Erscheinungsdatum' 234 published_at: 'Erscheinungsdatum'
@@ -246,10 +246,10 @@ entry:
246 url_label: 'URL' 246 url_label: 'URL'
247 save_label: 'Speichern' 247 save_label: 'Speichern'
248 public: 248 public:
249 shared_by_wallabag: "Dieser Artikel wurde von %username% mittels <a href='%wallabag_instance%'>wallabag</a> geteilt" 249 shared_by_wallabag: 'Dieser Artikel wurde von %username% mittels <a href="%wallabag_instance%">wallabag</a> geteilt'
250 confirm: 250 confirm:
251 delete: "Bist du sicher, dass du diesen Artikel löschen möchtest?" 251 delete: 'Bist du sicher, dass du diesen Artikel löschen möchtest?'
252 delete_tag: "Bist du sicher, dass du diesen Tag vom Artikel entfernen möchtest?" 252 delete_tag: 'Bist du sicher, dass du diesen Tag vom Artikel entfernen möchtest?'
253 253
254about: 254about:
255 page_title: 'Über' 255 page_title: 'Über'
@@ -307,32 +307,32 @@ howto:
307 bookmarklet: 307 bookmarklet:
308 description: 'Ziehe diesen Link in deine Lesezeichenleiste:' 308 description: 'Ziehe diesen Link in deine Lesezeichenleiste:'
309 shortcuts: 309 shortcuts:
310 page_description: Dies sind die verfügbaren Tastenkürzel in wallabag. 310 page_description: 'Dies sind die verfügbaren Tastenkürzel in wallabag.'
311 shortcut: Tastenkürzel 311 shortcut: 'Tastenkürzel'
312 action: Aktion 312 action: 'Aktion'
313 all_pages_title: Tastenkürzel auf allen Seiten 313 all_pages_title: 'Tastenkürzel auf allen Seiten'
314 go_unread: Zu ungelesen gehen 314 go_unread: 'Zu ungelesen gehen'
315 go_starred: Zu Favoriten gehen 315 go_starred: 'Zu Favoriten gehen'
316 go_archive: Zu archivierten gehen 316 go_archive: 'Zu archivierten gehen'
317 go_all: Zu allen Artikel gehen 317 go_all: 'Zu allen Artikel gehen'
318 go_tags: Zu den Tags gehen 318 go_tags: 'Zu den Tags gehen'
319 go_config: Einstellungen öffnen 319 go_config: 'Einstellungen öffnen'
320 go_import: Import-Sektion öffnen 320 go_import: 'Import-Sektion öffnen'
321 go_developers: Zur Entwickler-Seite gehen 321 go_developers: 'Zur Entwickler-Seite gehen'
322 go_howto: Zum Howto gehen (diese Seite!) 322 go_howto: 'Zum Howto gehen (diese Seite!)'
323 go_logout: Abmelden 323 go_logout: 'Abmelden'
324 list_title: Tastenkürzel verfügbar auf den Listen-Seiten 324 list_title: 'Tastenkürzel verfügbar auf den Listen-Seiten'
325 search: Suche 325 search: 'Suche'
326 article_title: Tastenkürzel verfügbar auf der Artikel-Seite 326 article_title: 'Tastenkürzel verfügbar auf der Artikel-Seite'
327 open_original: Original-Artikel öffnen 327 open_original: 'Original-Artikel öffnen'
328 toggle_favorite: Favorit-Status für den Artikel ändern 328 toggle_favorite: 'Favorit-Status für den Artikel ändern'
329 toggle_archive: Archiviert-Status für den Artikel ändern 329 toggle_archive: 'Archiviert-Status für den Artikel ändern'
330 delete: Artikel löschen 330 delete: 'Artikel löschen'
331 material_title: Tastenkürzel des Material-Theme 331 material_title: 'Tastenkürzel des Material-Theme'
332 add_link: Neuen Link hinzufügen 332 add_link: 'Neuen Link hinzufügen'
333 hide_form: Aktuelles Formular verstecken (Suche oder neuer Link) 333 hide_form: 'Aktuelles Formular verstecken (Suche oder neuer Link)'
334 arrows_navigation: Durch Artikel navigieren 334 arrows_navigation: 'Durch Artikel navigieren'
335 open_article: Gewählten Artikel anzeigen 335 open_article: 'Gewählten Artikel anzeigen'
336 336
337quickstart: 337quickstart:
338 page_title: 'Schnelleinstieg' 338 page_title: 'Schnelleinstieg'
@@ -483,7 +483,7 @@ developer:
483 field_id: 'Client-ID' 483 field_id: 'Client-ID'
484 field_secret: 'Client-Secret' 484 field_secret: 'Client-Secret'
485 back: 'Zurück' 485 back: 'Zurück'
486 read_howto: 'Lese des How-To zu "Wie erstelle ich meine erste Anwendung"' 486 read_howto: 'Lese das How-To zu "Wie erstelle ich meine erste Anwendung"'
487 howto: 487 howto:
488 page_title: 'API-Client-Verwaltung > Wie erstelle ich meine erste Anwendung' 488 page_title: 'API-Client-Verwaltung > Wie erstelle ich meine erste Anwendung'
489 description: 489 description:
@@ -498,16 +498,16 @@ developer:
498 back: 'Zurück' 498 back: 'Zurück'
499 499
500user: 500user:
501 page_title: Benutzerverwaltung 501 page_title: 'Benutzerverwaltung'
502 new_user: Erstelle einen neuen Benutzer 502 new_user: 'Erstelle einen neuen Benutzer'
503 edit_user: Bearbeite einen existierenden Benutzer 503 edit_user: 'Bearbeite einen existierenden Benutzer'
504 description: "Hier kannst du alle Benutzer verwalten (erstellen, bearbeiten und löschen)" 504 description: "Hier kannst du alle Benutzer verwalten (erstellen, bearbeiten und löschen)"
505 list: 505 list:
506 actions: Aktionen 506 actions: 'Aktionen'
507 edit_action: Bearbeiten 507 edit_action: 'Bearbeiten'
508 yes: Ja 508 yes: 'Ja'
509 no: Nein 509 no: 'Nein'
510 create_new_one: Erstelle einen neuen Benutzer 510 create_new_one: 'Erstelle einen neuen Benutzer'
511 form: 511 form:
512 username_label: 'Benutzername' 512 username_label: 'Benutzername'
513 name_label: 'Name' 513 name_label: 'Name'
@@ -517,52 +517,52 @@ user:
517 email_label: 'E-Mail-Adresse' 517 email_label: 'E-Mail-Adresse'
518 enabled_label: 'Aktiviert' 518 enabled_label: 'Aktiviert'
519 last_login_label: 'Letzter Login' 519 last_login_label: 'Letzter Login'
520 twofactor_label: Zwei-Faktor-Authentifizierung 520 twofactor_label: 'Zwei-Faktor-Authentifizierung'
521 save: Speichern 521 save: 'Speichern'
522 delete: Löschen 522 delete: 'Löschen'
523 delete_confirm: Bist du sicher? 523 delete_confirm: 'Bist du sicher?'
524 back_to_list: Zurück zur Liste 524 back_to_list: 'Zurück zur Liste'
525 search: 525 search:
526 placeholder: Filtere nach Benutzer oder E-Mail-Adresse 526 placeholder: 'Filtere nach Benutzer oder E-Mail-Adresse'
527 527
528site_credential: 528site_credential:
529 # page_title: Site credentials management 529 page_title: 'Verwaltung Zugangsdaten'
530 # new_site_credential: Create a credential 530 new_site_credential: 'Zugangsdaten anlegen'
531 # edit_site_credential: Edit an existing credential 531 edit_site_credential: 'Bestehende Zugangsdaten bearbeiten'
532 # description: "Here you can manage all credentials for sites which required them (create, edit and delete), like a paywall, an authentication, etc." 532 description: 'Hier kannst du alle Zugangsdaten für Webseiten verwalten, die diese benötigen (anlegen, bearbeiten und löschen), wie z. B. eine Paywall, eine Authentifizierung, etc.'
533 list: 533 list:
534 actions: Aktionen 534 actions: 'Aktionen'
535 edit_action: Bearbeiten 535 edit_action: 'Bearbeiten'
536 yes: Ja 536 yes: 'Ja'
537 no: Nein 537 no: 'Nein'
538 # create_new_one: Create a new credential 538 create_new_one: 'Einen neuen Seitenzugang anlegen'
539 form: 539 form:
540 # username_label: 'Username' 540 username_label: 'Benutzername'
541 # host_label: 'Host' 541 host_label: 'Host'
542 # password_label: 'Password' 542 password_label: 'Passwort'
543 save: Speichern 543 save: 'Speichern'
544 delete: Löschen 544 delete: 'Löschen'
545 delete_confirm: Bist du sicher? 545 delete_confirm: 'Bist du sicher?'
546 back_to_list: Zurück zur Liste 546 back_to_list: 'Zurück zur Liste'
547 547
548error: 548error:
549 page_title: Ein Fehler ist aufgetreten 549 page_title: 'Ein Fehler ist aufgetreten'
550 550
551flashes: 551flashes:
552 config: 552 config:
553 notice: 553 notice:
554 config_saved: 'Konfiguration gespeichert.' 554 config_saved: 'Konfiguration gespeichert.'
555 password_updated: 'Kennwort aktualisiert' 555 password_updated: 'Kennwort aktualisiert'
556 password_not_updated_demo: "Im Testmodus kannst du das Kennwort nicht ändern." 556 password_not_updated_demo: 'Im Testmodus kannst du das Kennwort nicht ändern.'
557 user_updated: 'Information aktualisiert' 557 user_updated: 'Information aktualisiert'
558 rss_updated: 'RSS-Informationen aktualisiert' 558 rss_updated: 'RSS-Informationen aktualisiert'
559 tagging_rules_updated: 'Tagging-Regeln aktualisiert' 559 tagging_rules_updated: 'Tagging-Regeln aktualisiert'
560 tagging_rules_deleted: 'Tagging-Regel gelöscht' 560 tagging_rules_deleted: 'Tagging-Regel gelöscht'
561 rss_token_updated: 'RSS-Token aktualisiert' 561 rss_token_updated: 'RSS-Token aktualisiert'
562 annotations_reset: Anmerkungen zurücksetzen 562 annotations_reset: 'Anmerkungen zurücksetzen'
563 tags_reset: Tags zurücksetzen 563 tags_reset: 'Tags zurücksetzen'
564 entries_reset: Einträge zurücksetzen 564 entries_reset: 'Einträge zurücksetzen'
565 archived_reset: Archiverte Einträge zurücksetzen 565 archived_reset: 'Archiverte Einträge zurücksetzen'
566 entry: 566 entry:
567 notice: 567 notice:
568 entry_already_saved: 'Eintrag bereits am %date% gespeichert' 568 entry_already_saved: 'Eintrag bereits am %date% gespeichert'
@@ -599,6 +599,6 @@ flashes:
599 deleted: 'Benutzer "%username%" gelöscht' 599 deleted: 'Benutzer "%username%" gelöscht'
600 site_credential: 600 site_credential:
601 notice: 601 notice:
602 # added: 'Site credential for "%host%" added' 602 added: 'Zugangsdaten für "%host%" hinzugefügt'
603 # updated: 'Site credential for "%host%" updated' 603 updated: 'Zugangsdaten für "%host%" aktualisiert'
604 # deleted: 'Site credential for "%host%" deleted' 604 deleted: 'Zugangsdaten für "%host%" gelöscht'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
index c2b49247..5e1f692e 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
@@ -1,8 +1,8 @@
1security: 1security:
2 login: 2 login:
3 page_title: 'Benvenguda sus wallabag !' 3 page_title: 'Vos desirem la benvenguda a wallabag!'
4 keep_logged_in: 'Demorar connectat' 4 keep_logged_in: 'Demorar connectat'
5 forgot_password: 'Senhal oblidat ?' 5 forgot_password: 'Senhal oblidat?'
6 submit: 'Se connectar' 6 submit: 'Se connectar'
7 register: 'Crear un compte' 7 register: 'Crear un compte'
8 username: "Nom d'utilizaire" 8 username: "Nom d'utilizaire"
@@ -11,7 +11,7 @@ security:
11 resetting: 11 resetting:
12 description: "Picatz vòstra adreça de corrièl çai-jos, vos mandarem las instruccions per reïnicializar vòstre senhal." 12 description: "Picatz vòstra adreça de corrièl çai-jos, vos mandarem las instruccions per reïnicializar vòstre senhal."
13 register: 13 register:
14 page_title: 'Se crear un compte' 14 page_title: 'Crear un compte'
15 go_to_account: 'Anar a vòstre compte' 15 go_to_account: 'Anar a vòstre compte'
16 16
17menu: 17menu:
@@ -47,7 +47,7 @@ footer:
47 social: 'Social' 47 social: 'Social'
48 powered_by: 'propulsat per' 48 powered_by: 'propulsat per'
49 about: 'A prepaus' 49 about: 'A prepaus'
50 stats: "Dempuèi %user_creation% avètz legit %nb_archives% articles. Es a l'entorn de %per_day% per jorn !" 50 stats: "Dempuèi %user_creation% avètz legit %nb_archives% articles. Es a l'entorn de %per_day% per jorn!"
51 51
52config: 52config:
53 page_title: 'Configuracion' 53 page_title: 'Configuracion'
@@ -66,16 +66,16 @@ config:
66 language_label: 'Lenga' 66 language_label: 'Lenga'
67 reading_speed: 67 reading_speed:
68 label: 'Velocitat de lectura' 68 label: 'Velocitat de lectura'
69 help_message: 'Podètz utilizar una aisina en linha per estimar vòstra velocitat de lectura :' 69 help_message: 'Podètz utilizar una aisina en linha per estimar vòstra velocitat de lectura:'
70 100_word: "Legissi a l'entorn de 100 mots per minuta" 70 100_word: "Legissi a l'entorn de 100 mots per minuta"
71 200_word: "Legissi a l'entorn de 200 mots per minuta" 71 200_word: "Legissi a l'entorn de 200 mots per minuta"
72 300_word: "Legissi a l'entorn de 300 mots per minuta" 72 300_word: "Legissi a l'entorn de 300 mots per minuta"
73 400_word: "Legissi a l'entorn de 400 mots per minuta" 73 400_word: "Legissi a l'entorn de 400 mots per minuta"
74 action_mark_as_read: 74 action_mark_as_read:
75 label: 'Ont volètz èsser menat aprèp aver marcat un article coma legit ?' 75 label: 'Ont volètz èsser menat aprèp aver marcat un article coma legit?'
76 redirect_homepage: "A la pagina d'acuèlh" 76 redirect_homepage: "A la pagina dacuèlh"
77 redirect_current_page: 'A la pagina actuala' 77 redirect_current_page: 'A la pagina actuala'
78 pocket_consumer_key_label: Clau d'autentificacion Pocket per importar las donadas 78 pocket_consumer_key_label: Clau dautentificacion Pocket per importar las donadas
79 android_configuration: Configuratz vòstra aplicacion Android 79 android_configuration: Configuratz vòstra aplicacion Android
80 android_instruction: "Tocatz aquí per garnir las informacions de l'aplicacion Android" 80 android_instruction: "Tocatz aquí per garnir las informacions de l'aplicacion Android"
81 help_theme: "wallabag es personalizable. Podètz causir vòstre tèma preferit aquí." 81 help_theme: "wallabag es personalizable. Podètz causir vòstre tèma preferit aquí."
@@ -105,7 +105,7 @@ config:
105 delete: 105 delete:
106 title: Suprimir mon compte (Mèfi zòna perilhosa) 106 title: Suprimir mon compte (Mèfi zòna perilhosa)
107 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. 107 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.
108 confirm: Sètz vertadièrament segur ? (ES IRREVERSIBLE) 108 confirm: Sètz vertadièrament segur?(AQUÒ ES IRREVERSIBLE)
109 button: Suprimir mon compte 109 button: Suprimir mon compte
110 reset: 110 reset:
111 title: Zòna de reïnicializacion (Mèfi zòna perilhosa) 111 title: Zòna de reïnicializacion (Mèfi zòna perilhosa)
@@ -114,7 +114,7 @@ config:
114 tags: Levar TOTAS las etiquetas 114 tags: Levar TOTAS las etiquetas
115 entries: Levar TOTES los articles 115 entries: Levar TOTES los articles
116 archived: Levar TOTES los articles archivats 116 archived: Levar TOTES los articles archivats
117 confirm: Sètz vertadièrament segur ? (ES IRREVERSIBLE) 117 confirm: Sètz vertadièrament segur?(AQUÒ ES IRREVERSIBLE)
118 form_password: 118 form_password:
119 description: "Podètz cambiar vòstre senhal aquí. Vòstre senhal deu èsser long d'almens 8 caractèrs." 119 description: "Podètz cambiar vòstre senhal aquí. Vòstre senhal deu èsser long d'almens 8 caractèrs."
120 old_password_label: 'Senhal actual' 120 old_password_label: 'Senhal actual'
@@ -129,12 +129,12 @@ config:
129 tags_label: 'Etiquetas' 129 tags_label: 'Etiquetas'
130 faq: 130 faq:
131 title: 'FAQ' 131 title: 'FAQ'
132 tagging_rules_definition_title: "Qué significa las règlas d'etiquetas automaticas ?" 132 tagging_rules_definition_title: "Qué significa las règlas d'etiquetas automaticas?"
133 tagging_rules_definition_description: "Son de règlas utilizadas per wallabad 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." 133 tagging_rules_definition_description: "Son de règlas utilizadas per wallabad 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."
134 how_to_use_them_title: 'Cossí las utilizar ?' 134 how_to_use_them_title: 'Cossí las utilizar?'
135 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 &lt;= 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 en emplegant d'operators predefinits : se « <i>readingTime &gt;= 5 AND domainName = \"github.com\"</i> » alara atribuir las etiquetas « <i>lectura longa, github </i> »" 135 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 &lt;= 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 &gt;= 5 AND domainName = \"github.com\"</i> » alara atribuir las etiquetas « <i>lectura longa, github </i> »"
136 variables_available_title: 'Quinas variablas e operators pòdi utilizar per escriure de règlas ?' 136 variables_available_title: 'Quinas variablas e operators pòdi utilizar per escriure de règlas?'
137 variables_available_description: "Las variablas e operators seguents pòdon èsser utilizats per escriure de règlas d'etiquetas automaticas :" 137 variables_available_description: "Las variablas e operators seguents pòdon èsser utilizats per escriure de règlas d'etiquetas automaticas : "
138 meaning: 'Significacion' 138 meaning: 'Significacion'
139 variable_description: 139 variable_description:
140 label: 'Variabla' 140 label: 'Variabla'
@@ -157,8 +157,8 @@ config:
157 not_equal_to: 'Diferent de…' 157 not_equal_to: 'Diferent de…'
158 or: "Una règla O l'autra" 158 or: "Una règla O l'autra"
159 and: "Una règla E l'autra" 159 and: "Una règla E l'autra"
160 matches: 'Teste se un <i>subjècte</i> correspond a una <i>recèrca</i> (non sensibla a la cassa).<br />Exemple : <code>title matches \"football\"</code>' 160 matches: 'Teste se un <i>subjècte</i> correspond a una <i>recèrca</i> (non sensibla a la cassa).<br />Exemple : <code>title matches \"football\"</code>'
161 notmatches: 'Teste se <i>subjècte</i> correspond pas a una <i>recèrca</i> (sensibla a la cassa).<br />Example : <code>title notmatches "football"</code>' 161 notmatches: 'Teste se <i>subjècte</i> correspond pas a una <i>recèrca</i> (sensibla a la cassa).<br />Example : <code>title notmatches "football"</code>'
162 162
163entry: 163entry:
164 page_titles: 164 page_titles:
@@ -166,15 +166,15 @@ entry:
166 starred: 'Articles favorits' 166 starred: 'Articles favorits'
167 archived: 'Articles legits' 167 archived: 'Articles legits'
168 filtered: 'Articles filtrats' 168 filtered: 'Articles filtrats'
169 filtered_tags: 'Articles filtrats per etiquetas :' 169 filtered_tags: 'Articles filtrats per etiquetas:'
170 filtered_search: 'Articles filtrats per recèrca :' 170 filtered_search: 'Articles filtrats per recèrca:'
171 untagged: 'Articles sens etiqueta' 171 untagged: 'Articles sens etiqueta'
172 all: 'Totes los articles' 172 all: 'Totes los articles'
173 list: 173 list:
174 number_on_the_page: "{0} I a pas cap d'article.|{1} I a un article.|]1,Inf[ I a %count% articles." 174 number_on_the_page: "{0} I a pas cap d'article.|{1} I a un article.|]1,Inf[ I a %count% articles."
175 reading_time: 'durada de lectura' 175 reading_time: 'durada de lectura'
176 reading_time_minutes: 'durada de lectura : %readingTime% min' 176 reading_time_minutes: 'durada de lectura:%readingTime% min'
177 reading_time_less_one_minute: 'durada de lectura : &lt; 1 min' 177 reading_time_less_one_minute: 'durada de lectura:&lt; 1 min'
178 number_of_tags: '{1}e una autra etiqueta|]1,Inf[e %count% autras etiquetas' 178 number_of_tags: '{1}e una autra etiqueta|]1,Inf[e %count% autras etiquetas'
179 reading_time_minutes_short: '%readingTime% min' 179 reading_time_minutes_short: '%readingTime% min'
180 reading_time_less_one_minute_short: '&lt; 1 min' 180 reading_time_less_one_minute_short: '&lt; 1 min'
@@ -225,8 +225,8 @@ entry:
225 export: 'Exportar' 225 export: 'Exportar'
226 print: 'Imprimir' 226 print: 'Imprimir'
227 problem: 227 problem:
228 label: 'Un problèma ?' 228 label: 'Un problèma?'
229 description: "Marca mal la presentacion d'aqueste article ?" 229 description: "Marca mal la presentacion d'aqueste article?"
230 edit_title: 'Modificar lo títol' 230 edit_title: 'Modificar lo títol'
231 original_article: 'original' 231 original_article: 'original'
232 annotations_on_the_entry: "{0} Pas cap d'anotacion|{1} Una anotacion|]1,Inf[ %count% anotacions" 232 annotations_on_the_entry: "{0} Pas cap d'anotacion|{1} Una anotacion|]1,Inf[ %count% anotacions"
@@ -239,7 +239,7 @@ entry:
239 form_new: 239 form_new:
240 url_label: Url 240 url_label: Url
241 search: 241 search:
242 placeholder: 'Qué cercatz ?' 242 placeholder: 'Qué cercatz?'
243 edit: 243 edit:
244 page_title: 'Modificar un article' 244 page_title: 'Modificar un article'
245 title_label: 'Títol' 245 title_label: 'Títol'
@@ -248,8 +248,8 @@ entry:
248 public: 248 public:
249 shared_by_wallabag: "Aqueste article es estat partejat per <a href='%wallabag_instance%'>wallabag</a>" 249 shared_by_wallabag: "Aqueste article es estat partejat per <a href='%wallabag_instance%'>wallabag</a>"
250 confirm: 250 confirm:
251 delete: "Sètz segur de voler suprimir aqueste article ?" 251 delete: "Sètz segur de voler suprimir aqueste article?"
252 delete_tag: "Sètz segur de voler levar aquesta etiqueta de l'article ?" 252 delete_tag: "Sètz segur de voler levar aquesta etiqueta de l'article?"
253 253
254about: 254about:
255 page_title: 'A prepaus' 255 page_title: 'A prepaus'
@@ -271,27 +271,27 @@ about:
271 bug_reports: 'Rapòrt de bugs' 271 bug_reports: 'Rapòrt de bugs'
272 support: "<a href=\"https://github.com/wallabag/wallabag/issues\">sur GitHub</a>" 272 support: "<a href=\"https://github.com/wallabag/wallabag/issues\">sur GitHub</a>"
273 helping: 273 helping:
274 description: 'wallabag es a gratuit e opensource. Nos podètz ajudar :' 274 description: 'wallabag es a gratuit e opensource. Nos podètz ajudar:'
275 by_contributing: 'en ajudant lo projècte :' 275 by_contributing: 'en participant lo projècte:'
276 by_contributing_2: 'un bilhet recensa totes nòstres besonhs' 276 by_contributing_2: 'un bilhet recensa totes nòstres besonhs'
277 by_paypal: 'via Paypal' 277 by_paypal: 'via Paypal'
278 contributors: 278 contributors:
279 description: "Mercés als contributors de l'aplicacion web de wallabag" 279 description: "Mercés als contributors de l'aplicacion web de wallabag"
280 third_party: 280 third_party:
281 description: 'Aquí la lista de las dependéncias utilizadas dins wallabag (e lor licéncia) :' 281 description: 'Aquí la lista de las dependéncias utilizadas dins wallabag (e lor licéncia):'
282 package: 'Dependéncia' 282 package: 'Dependéncia'
283 license: 'Licéncia' 283 license: 'Licéncia'
284 284
285howto: 285howto:
286 page_title: 'Ajuda' 286 page_title: 'Ajuda'
287 page_description: "I a mai d'un biais d'enregistrar un article :" 287 page_description: "I a mai d'un biais d'enregistrar un article:"
288 tab_menu: 288 tab_menu:
289 add_link: "Ajustar un ligam" 289 add_link: "Ajustar un ligam"
290 shortcuts: "Utilizar d'acorchis" 290 shortcuts: "Utilizar d'acorchis"
291 top_menu: 291 top_menu:
292 browser_addons: 'Extensions de navigator' 292 browser_addons: 'Extensions de navigator'
293 mobile_apps: 'Aplicacions mobil' 293 mobile_apps: 'Aplicacions mobil'
294 bookmarklet: 'Bookmarklet' 294 bookmarklet: 'Marcapaginas'
295 form: 295 form:
296 description: 'Gràcias a aqueste formulari' 296 description: 'Gràcias a aqueste formulari'
297 browser_addons: 297 browser_addons:
@@ -305,7 +305,7 @@ howto:
305 ios: 'sus iTunes Store' 305 ios: 'sus iTunes Store'
306 windows: 'sus Microsoft Store' 306 windows: 'sus Microsoft Store'
307 bookmarklet: 307 bookmarklet:
308 description: 'Lisatz-depausatz aqueste ligam dins vòstra barra de favorits :' 308 description: 'Lisatz-depausatz aqueste ligam dins vòstra barra de favorits:'
309 shortcuts: 309 shortcuts:
310 page_description: Aquí son los acorchis disponibles dins wallabag. 310 page_description: Aquí son los acorchis disponibles dins wallabag.
311 shortcut: Acorchis 311 shortcut: Acorchis
@@ -319,7 +319,7 @@ howto:
319 go_config: Anar a la config 319 go_config: Anar a la config
320 go_import: Anar per importar 320 go_import: Anar per importar
321 go_developers: Anar al canton desvolopaires 321 go_developers: Anar al canton desvolopaires
322 go_howto: Anar a l'ajuda (aquesta quita pagina !) 322 go_howto: Anar a l'ajuda (aquesta quita pagina!)
323 go_logout: Desconnexion 323 go_logout: Desconnexion
324 list_title: Acorchis disponibles dins las paginas de lista 324 list_title: Acorchis disponibles dins las paginas de lista
325 search: Afichar lo formulari de recèrca 325 search: Afichar lo formulari de recèrca
@@ -338,9 +338,9 @@ quickstart:
338 page_title: 'Per ben començar' 338 page_title: 'Per ben començar'
339 more: 'Mai…' 339 more: 'Mai…'
340 intro: 340 intro:
341 title: 'Benvenguda sus wallabag !' 341 title: 'Benvenguda sus wallabag!'
342 paragraph_1: "Anem vos guidar per far lo torn de la proprietat e vos presentar unas foncionalitats que vos poirián interessar per vos apropriar aquesta aisina." 342 paragraph_1: "Anem vos guidar per far lo torn de la proprietat e vos presentar unas foncionalitats que vos poirián interessar per vos apropriar aquesta aisina."
343 paragraph_2: 'Seguètz-nos !' 343 paragraph_2: 'Seguètz-nos!'
344 configure: 344 configure:
345 title: "Configuratz l'aplicacion" 345 title: "Configuratz l'aplicacion"
346 description: "Per fin d'aver una aplicacion que vos va ben, anatz veire la configuracion de wallabag." 346 description: "Per fin d'aver una aplicacion que vos va ben, anatz veire la configuracion de wallabag."
@@ -349,7 +349,7 @@ quickstart:
349 tagging_rules: 'Escrivètz de règlas per classar automaticament vòstres articles' 349 tagging_rules: 'Escrivètz de règlas per classar automaticament vòstres articles'
350 admin: 350 admin:
351 title: 'Administracion' 351 title: 'Administracion'
352 description: "En qualitat d'adminitrastor sus wallabag, avètz de privilègis que vos permeton de :" 352 description: "En qualitat d'adminitrastor sus wallabag, avètz de privilègis que vos permeton de:"
353 new_user: 'Crear un novèl utilizaire' 353 new_user: 'Crear un novèl utilizaire'
354 analytics: 'Configurar las estadisticas' 354 analytics: 'Configurar las estadisticas'
355 sharing: 'Activar de paramètres de partatge' 355 sharing: 'Activar de paramètres de partatge'
@@ -359,10 +359,10 @@ quickstart:
359 title: 'Primièrs passes' 359 title: 'Primièrs passes'
360 description: "Ara wallabag es ben configurat, es lo moment d'archivar lo web. Podètz clicar sul signe + a man drecha amont per ajustar un ligam." 360 description: "Ara wallabag es ben configurat, es lo moment d'archivar lo web. Podètz clicar sul signe + a man drecha amont per ajustar un ligam."
361 new_article: 'Ajustatz vòstre primièr article' 361 new_article: 'Ajustatz vòstre primièr article'
362 unread_articles: 'E recaptatz-lo !' 362 unread_articles: 'E recaptatz-lo!'
363 migrate: 363 migrate:
364 title: 'Migrar dempuèi un servici existent' 364 title: 'Migrar dempuèi un servici existent'
365 description: "Sètz un ancian utilizaire d'un servici existent ? Vos ajudarem a trapar vòstras donadas sus wallabag." 365 description: "Sètz un ancian utilizaire d'un servici existent ? Vos ajudarem a trapar vòstras donadas sus wallabag."
366 pocket: 'Migrar dempuèi Pocket' 366 pocket: 'Migrar dempuèi Pocket'
367 wallabag_v1: 'Migrar dempuèi wallabag v1' 367 wallabag_v1: 'Migrar dempuèi wallabag v1'
368 wallabag_v2: 'Migrar dempuèi wallabag v2' 368 wallabag_v2: 'Migrar dempuèi wallabag v2'
@@ -370,7 +370,7 @@ quickstart:
370 instapaper: 'Migrar dempuèi Instapaper' 370 instapaper: 'Migrar dempuèi Instapaper'
371 developer: 371 developer:
372 title: 'Pels desvolopaires' 372 title: 'Pels desvolopaires'
373 description: 'Avèm tanben pensat als desvolopaires : Docker, API, traduccions, etc.' 373 description: 'Avèm tanben pensat als desvolopaires:Docker, API, traduccions, etc.'
374 create_application: 'Crear vòstra aplicacion tèrça' 374 create_application: 'Crear vòstra aplicacion tèrça'
375 use_docker: 'Utilizar Docker per installar wallabag' 375 use_docker: 'Utilizar Docker per installar wallabag'
376 docs: 376 docs:
@@ -379,8 +379,8 @@ quickstart:
379 annotate: 'Anotar vòstre article' 379 annotate: 'Anotar vòstre article'
380 export: 'Convertissètz vòstres articles en ePub o en PDF' 380 export: 'Convertissètz vòstres articles en ePub o en PDF'
381 search_filters: "Aprenètz a utilizar lo motor de recèrca e los filtres per retrobar l'article que vos interèssa" 381 search_filters: "Aprenètz a utilizar lo motor de recèrca e los filtres per retrobar l'article que vos interèssa"
382 fetching_errors: "Qué far se mon article es pas recuperat coma cal ?" 382 fetching_errors: "Qué far se mon article es pas recuperat coma cal?"
383 all_docs: "E encara plen de causas mai !" 383 all_docs: "E encara plen de causas mai!"
384 support: 384 support:
385 title: 'Assisténcia' 385 title: 'Assisténcia'
386 description: 'Perque avètz benlèu besonh de nos pausar una question, sèm disponibles per vosautres.' 386 description: 'Perque avètz benlèu besonh de nos pausar una question, sèm disponibles per vosautres.'
@@ -401,10 +401,10 @@ import:
401 page_title: 'Importar' 401 page_title: 'Importar'
402 page_description: "Benvenguda sus l'aisina de migracion de wallabag. Causissètz çai-jos lo servici dempuèi lo qual volètz migrar." 402 page_description: "Benvenguda sus l'aisina de migracion de wallabag. Causissètz çai-jos lo servici dempuèi lo qual volètz migrar."
403 action: 403 action:
404 import_contents: 'Importar los contenguts' 404 import_contents: 'Importar lo contengut'
405 form: 405 form:
406 mark_as_read_title: 'Tot marcar coma legit ?' 406 mark_as_read_title: 'O marcar tot coma legit?'
407 mark_as_read_label: 'Marcar tot los contenguts importats coma legits' 407 mark_as_read_label: 'Marcar tot lo contengut importats coma legit'
408 file_label: 'Fichièr' 408 file_label: 'Fichièr'
409 save_label: 'Importar lo fichièr' 409 save_label: 'Importar lo fichièr'
410 pocket: 410 pocket:
@@ -428,7 +428,7 @@ import:
428 description: "Aquesta aisina importarà totas vòstres articles de Readability. Sus la pagina de l'aisina (https://www.readability.com/tools/), clicatz sus \"Export your data\" dins la seccion \"Data Export\". Recebretz un corrièl per telecargar un json (qu'acaba pas amb un .json de fach)." 428 description: "Aquesta aisina importarà totas vòstres articles de Readability. Sus la pagina de l'aisina (https://www.readability.com/tools/), clicatz sus \"Export your data\" dins la seccion \"Data Export\". Recebretz un corrièl per telecargar un json (qu'acaba pas amb un .json de fach)."
429 how_to: "Mercés de seleccionar vòstre Readability fichièr e de clicar sul boton dejós per lo telecargar e l'importar." 429 how_to: "Mercés de seleccionar vòstre Readability fichièr e de clicar sul boton dejós per lo telecargar e l'importar."
430 worker: 430 worker:
431 enabled: "L'importacion se fa de manièra asincròna. Un còp l'importacion lançada, una aisina extèrna s'ocuparà dels messatges un per un. Lo servici actual es : " 431 enabled: "L'importacion se fa de manièra asincròna. Un còp l'importacion lançada, una aisina extèrna s'ocuparà dels articles un per un. Lo servici actual es : "
432 download_images_warning: "Avètz activat lo telecargament de los imatges de vòstres articles. Combinat amb l'importacion classica, aquò pòt tardar un long moment (o benlèu fracassar). <strong>Recomandem fòrtament</strong> l'activacion de l'importacion asincròna per evitar las errors." 432 download_images_warning: "Avètz activat lo telecargament de los imatges de vòstres articles. Combinat amb l'importacion classica, aquò pòt tardar un long moment (o benlèu fracassar). <strong>Recomandem fòrtament</strong> l'activacion de l'importacion asincròna per evitar las errors."
433 firefox: 433 firefox:
434 page_title: 'Importar > Firefox' 434 page_title: 'Importar > Firefox'
@@ -436,7 +436,7 @@ import:
436 how_to: "Mercés de causir lo fichièr de salvagarda e de clicar sul boton dejós per l'importar. Notatz que lo tractament pòt durar un moment ja que totes los articles an d'èsser recuperats." 436 how_to: "Mercés de causir lo fichièr de salvagarda e de clicar sul boton dejós per l'importar. Notatz que lo tractament pòt durar un moment ja que totes los articles an d'èsser recuperats."
437 chrome: 437 chrome:
438 page_title: 'Importar > Chrome' 438 page_title: 'Importar > Chrome'
439 description: "Aquesta aisina importarà totas vòstres favorits de Chrome. L'emplaçament del fichièr depend de vòstre sistèma operatiu : <ul><li>Sus Linux, anatz al dorsièr <code>~/.config/chromium/Default/</code></li><li>Sus Windows, deu èsser dins <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>sus OS X, deu èsser dins <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Un còp enlà, copiatz lo fichièr de favorits dins un endrech que volètz.<em><br>Notatz que s'avètz Chromium al lòc de Chrome, vos cal cambiar lo camin segon aquesta situacion.</em></p>" 439 description: "Aquesta aisina importarà totas vòstres favorits de Chrome. L'emplaçament del fichièr depend de vòstre sistèma operatiu : <ul><li>Sus Linux, anatz al dorsièr <code>~/.config/chromium/Default/</code></li><li>Sus Windows, deu èsser dins <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>sus OS X, deu èsser dins <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Un còp enlà, copiatz lo fichièr de favorits dins un endrech que volètz.<em><br>Notatz que s'avètz Chromium al lòc de Chrome, vos cal cambiar lo camin segon aquesta situacion.</em></p>"
440 how_to: "Mercés de causir lo fichièr de salvagarda e de clicar sul boton dejós per l'importar. Notatz que lo tractament pòt durar un moment ja que totes los articles an d'èsser recuperats." 440 how_to: "Mercés de causir lo fichièr de salvagarda e de clicar sul boton dejós per l'importar. Notatz que lo tractament pòt durar un moment ja que totes los articles an d'èsser recuperats."
441 instapaper: 441 instapaper:
442 page_title: 'Importar > Instapaper' 442 page_title: 'Importar > Instapaper'
@@ -449,7 +449,7 @@ import:
449 449
450developer: 450developer:
451 page_title: 'Gestion dels clients API' 451 page_title: 'Gestion dels clients API'
452 welcome_message: "Benvenguda sus l'API de wallabag" 452 welcome_message: "Vos desirem la benvenguda sus l'API de wallabag"
453 documentation: 'Documentacion' 453 documentation: 'Documentacion'
454 how_to_first_app: 'Cossí crear vòstra primièra aplicacion' 454 how_to_first_app: 'Cossí crear vòstra primièra aplicacion'
455 full_documentation: "Veire la documentacion completa de l'API" 455 full_documentation: "Veire la documentacion completa de l'API"
@@ -465,7 +465,7 @@ developer:
465 field_grant_types: 'Tipe de privilègi acordat' 465 field_grant_types: 'Tipe de privilègi acordat'
466 no_client: 'Pas cap de client pel moment.' 466 no_client: 'Pas cap de client pel moment.'
467 remove: 467 remove:
468 warn_message_1: 'Avètz la possibilitat de suprimir un client. Aquesta accion es IRREVERSIBLA !' 468 warn_message_1: 'Avètz la possibilitat de suprimir un client. Aquesta accion es IRREVERSIBLA!'
469 warn_message_2: "Se suprimissètz un client, totas las aplicacions que l'emplegan foncionaràn pas mai amb vòstre compte wallabag." 469 warn_message_2: "Se suprimissètz un client, totas las aplicacions que l'emplegan foncionaràn pas mai amb vòstre compte wallabag."
470 action: 'Suprimir aqueste client' 470 action: 'Suprimir aqueste client'
471 client: 471 client:
@@ -489,10 +489,10 @@ developer:
489 description: 489 description:
490 paragraph_1: "Las comandas seguentas utilizan la <a href=\"https://github.com/jkbrzt/httpie\">bibliotèca HTTPie</a>. Asseguratz-vos que siasqueòu installadas abans de l'utilizar." 490 paragraph_1: "Las comandas seguentas utilizan la <a href=\"https://github.com/jkbrzt/httpie\">bibliotèca HTTPie</a>. Asseguratz-vos que siasqueòu installadas abans de l'utilizar."
491 paragraph_2: "Vos cal un geton per escambiar entre vòstra aplicacion e l'API de wallabar." 491 paragraph_2: "Vos cal un geton per escambiar entre vòstra aplicacion e l'API de wallabar."
492 paragraph_3: 'Per crear un geton, vos cal crear <a href=\"%link%\">crear un novèl client</a>.' 492 paragraph_3: 'Per crear un geton, vos cal <a href=\"%link%\">crear un novèl client</a>.'
493 paragraph_4: 'Ara creatz un geton (remplaçar client_id, client_secret, username e password amb las bonas valors) :' 493 paragraph_4: 'Ara creatz un geton (remplaçar client_id, client_secret, username e password amb las bonas valors) :'
494 paragraph_5: "L'API vos tornarà una responsa coma aquò :" 494 paragraph_5: "L'API vos tornarà una responsa coma aquò:"
495 paragraph_6: "L'access_token deu èsser emplegat per far una requèsta a l'API. Per exemple :" 495 paragraph_6: "L'access_token deu èsser emplegat per far una requèsta a l'API. Per exemple:"
496 paragraph_7: "Aquesta requèsta tornarà totes los articles de l'utilizaire." 496 paragraph_7: "Aquesta requèsta tornarà totes los articles de l'utilizaire."
497 paragraph_8: "Se volètz totas las adreças d'accès de l'API, donatz un còp d’uèlh <a href=\"%link%\">a la documentacion de l'API</a>." 497 paragraph_8: "Se volètz totas las adreças d'accès de l'API, donatz un còp d’uèlh <a href=\"%link%\">a la documentacion de l'API</a>."
498 back: 'Retorn' 498 back: 'Retorn'
@@ -520,7 +520,7 @@ user:
520 twofactor_label: 'Autentificacion doble-factor' 520 twofactor_label: 'Autentificacion doble-factor'
521 save: 'Enregistrar' 521 save: 'Enregistrar'
522 delete: 'Suprimir' 522 delete: 'Suprimir'
523 delete_confirm: 'Sètz segur ?' 523 delete_confirm: 'Sètz segur?'
524 back_to_list: 'Tornar a la lista' 524 back_to_list: 'Tornar a la lista'
525 search: 525 search:
526 placeholder: "Filtrar per nom d'utilizaire o corrièl" 526 placeholder: "Filtrar per nom d'utilizaire o corrièl"
@@ -542,7 +542,7 @@ site_credential:
542 password_label: 'Senhal' 542 password_label: 'Senhal'
543 save: 'Enregistrar' 543 save: 'Enregistrar'
544 delete: 'Suprimir' 544 delete: 'Suprimir'
545 delete_confirm: 'Sètz segur ?' 545 delete_confirm: 'Sètz segur?'
546 back_to_list: 'Tornar a la lista' 546 back_to_list: 'Tornar a la lista'
547 547
548error: 548error:
@@ -584,7 +584,7 @@ flashes:
584 failed: "L'importacion a fracassat, mercés de tornar ensajar." 584 failed: "L'importacion a fracassat, mercés de tornar ensajar."
585 failed_on_file: "Error en tractar l'impòrt. Mercés de verificar vòstre fichièr." 585 failed_on_file: "Error en tractar l'impòrt. Mercés de verificar vòstre fichièr."
586 summary: "Rapòrt d'impòrt: %imported% importats, %skipped% ja presents." 586 summary: "Rapòrt d'impòrt: %imported% importats, %skipped% ja presents."
587 summary_with_queue: "Rapòrt d'impòrt : %queued% en espèra de tractament." 587 summary_with_queue: "Rapòrt d'impòrt:%queued% en espèra de tractament."
588 error: 588 error:
589 redis_enabled_not_installed: "Redis es capable d'importar de manièra asincròna mai sembla que <u>podèm pas nos conectar amb el</u>. Mercés de verificar la configuracion de Redis." 589 redis_enabled_not_installed: "Redis es capable d'importar de manièra asincròna mai sembla que <u>podèm pas nos conectar amb el</u>. Mercés de verificar la configuracion de Redis."
590 rabbit_enabled_not_installed: "RabbitMQ es capable d'importar de manièra asincròna mai sembla que <u>podèm pas nos conectar amb el</u>. Mercés de verificar la configuracion de RabbitMQ." 590 rabbit_enabled_not_installed: "RabbitMQ es capable d'importar de manièra asincròna mai sembla que <u>podèm pas nos conectar amb el</u>. Mercés de verificar la configuracion de RabbitMQ."
diff --git a/src/Wallabag/CoreBundle/Resources/translations/validators.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/validators.oc.yml
index fb4aa592..87f00f10 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/validators.oc.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/validators.oc.yml
@@ -1,7 +1,7 @@
1validator: 1validator:
2 password_must_match: 'Cal que los dos senhals siasquen los meteisses' 2 password_must_match: 'Cal que los dos senhals correspondan'
3 password_too_short: 'Lo senhal deu aver almens 8 caractèrs' 3 password_too_short: 'Lo senhal deu aver almens 8 caractèrs'
4 password_wrong_value: 'Vòstre senhal actual es pas bon' 4 password_wrong_value: 'Vòstre senhal actual es pas bon'
5 item_per_page_too_high: "Aquò li agradarà pas a l'aplicacion" 5 item_per_page_too_high: "Aquò li agradarà pas a l'aplicacion"
6 rss_limit_too_high: "Aquò li agradarà pas a l'aplicacion" 6 rss_limit_too_high: "Aquò li agradarà pas a l'aplicacion"
7 # quote_length_too_high: 'The quote is too long. It should have {{ limit }} characters or less.' 7 quote_length_too_high: 'Aquesta citacion es tròpa longa. Cal que faga {{ limit }} caractèrs o mens.'
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig
index 6424df8d..12cead48 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig
@@ -86,7 +86,7 @@
86 86
87 <!-- Export --> 87 <!-- Export -->
88 <aside id="download-form"> 88 <aside id="download-form">
89 {% set currentTag = '' %} 89 {% set currentTag = null %}
90 {% if tag is defined %} 90 {% if tag is defined %}
91 {% set currentTag = tag %} 91 {% set currentTag = tag %}
92 {% endif %} 92 {% endif %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig
index 0c4dc80b..9d6fb3f5 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig
@@ -57,7 +57,7 @@
57 57
58 <!-- Export --> 58 <!-- Export -->
59 <div id="export" class="side-nav right-aligned"> 59 <div id="export" class="side-nav right-aligned">
60 {% set currentTag = '' %} 60 {% set currentTag = null %}
61 {% if tag is defined %} 61 {% if tag is defined %}
62 {% set currentTag = tag.slug %} 62 {% set currentTag = tag.slug %}
63 {% endif %} 63 {% endif %}
diff --git a/src/Wallabag/UserBundle/Resources/translations/wallabag_user.oc.yml b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.oc.yml
index cebf8f28..e62ea2bc 100644
--- a/src/Wallabag/UserBundle/Resources/translations/wallabag_user.oc.yml
+++ b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.oc.yml
@@ -6,6 +6,6 @@ auth_code:
6 body: 6 body:
7 hello: "Bonjorn %user%," 7 hello: "Bonjorn %user%,"
8 first_para: "Estant qu'avètz activat l'autentificacion en dos temps sus vòstre compte wallabag e que venètz de vos connectar dempuèi un novèl periferic (ordinador, mobil, etc.) vos mandem un còdi per validar la connexion." 8 first_para: "Estant qu'avètz activat l'autentificacion en dos temps sus vòstre compte wallabag e que venètz de vos connectar dempuèi un novèl periferic (ordinador, mobil, etc.) vos mandem un còdi per validar la connexion."
9 second_para: "Vaquí lo còdi per dintrar :" 9 second_para: "Vaquí lo còdi per dintrar:"
10 support: "S'avètz un problèma de connexion, dobtetz pas a contactar l'assisténcia : " 10 support: "S'avètz un problèma de connexion, dobtetz pas a contactar l'assisténcia:"
11 signature: "La còla de wallabag" 11 signature: "La còla de wallabag"
diff --git a/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php b/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php
index 2dc08be2..f4c8a630 100644
--- a/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php
+++ b/tests/Wallabag/ApiBundle/Controller/EntryRestControllerTest.php
@@ -407,6 +407,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
407 $this->assertSame('http://www.lemonde.fr/pixels/article/2015/03/28/plongee-dans-l-univers-d-ingress-le-jeu-de-google-aux-frontieres-du-reel_4601155_4408996.html', $content['url']); 407 $this->assertSame('http://www.lemonde.fr/pixels/article/2015/03/28/plongee-dans-l-univers-d-ingress-le-jeu-de-google-aux-frontieres-du-reel_4601155_4408996.html', $content['url']);
408 $this->assertSame(0, $content['is_archived']); 408 $this->assertSame(0, $content['is_archived']);
409 $this->assertSame(0, $content['is_starred']); 409 $this->assertSame(0, $content['is_starred']);
410 $this->assertNull($content['starred_at']);
410 $this->assertSame('New title for my article', $content['title']); 411 $this->assertSame('New title for my article', $content['title']);
411 $this->assertSame(1, $content['user_id']); 412 $this->assertSame(1, $content['user_id']);
412 $this->assertCount(2, $content['tags']); 413 $this->assertCount(2, $content['tags']);
@@ -483,6 +484,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
483 484
484 public function testPostArchivedAndStarredEntry() 485 public function testPostArchivedAndStarredEntry()
485 { 486 {
487 $now = new \DateTime();
486 $this->client->request('POST', '/api/entries.json', [ 488 $this->client->request('POST', '/api/entries.json', [
487 'url' => 'http://www.lemonde.fr/idees/article/2016/02/08/preserver-la-liberte-d-expression-sur-les-reseaux-sociaux_4861503_3232.html', 489 'url' => 'http://www.lemonde.fr/idees/article/2016/02/08/preserver-la-liberte-d-expression-sur-les-reseaux-sociaux_4861503_3232.html',
488 'archive' => '1', 490 'archive' => '1',
@@ -497,6 +499,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
497 $this->assertSame('http://www.lemonde.fr/idees/article/2016/02/08/preserver-la-liberte-d-expression-sur-les-reseaux-sociaux_4861503_3232.html', $content['url']); 499 $this->assertSame('http://www.lemonde.fr/idees/article/2016/02/08/preserver-la-liberte-d-expression-sur-les-reseaux-sociaux_4861503_3232.html', $content['url']);
498 $this->assertSame(1, $content['is_archived']); 500 $this->assertSame(1, $content['is_archived']);
499 $this->assertSame(1, $content['is_starred']); 501 $this->assertSame(1, $content['is_starred']);
502 $this->assertGreaterThanOrEqual($now->getTimestamp(), (new \DateTime($content['starred_at']))->getTimestamp());
500 $this->assertSame(1, $content['user_id']); 503 $this->assertSame(1, $content['user_id']);
501 } 504 }
502 505
@@ -753,6 +756,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
753 756
754 public function testSaveIsStarredAfterPatch() 757 public function testSaveIsStarredAfterPatch()
755 { 758 {
759 $now = new \DateTime();
756 $entry = $this->client->getContainer() 760 $entry = $this->client->getContainer()
757 ->get('doctrine.orm.entity_manager') 761 ->get('doctrine.orm.entity_manager')
758 ->getRepository('WallabagCoreBundle:Entry') 762 ->getRepository('WallabagCoreBundle:Entry')
@@ -770,6 +774,7 @@ class EntryRestControllerTest extends WallabagApiTestCase
770 $content = json_decode($this->client->getResponse()->getContent(), true); 774 $content = json_decode($this->client->getResponse()->getContent(), true);
771 775
772 $this->assertSame(1, $content['is_starred']); 776 $this->assertSame(1, $content['is_starred']);
777 $this->assertGreaterThanOrEqual($now->getTimestamp(), (new \DateTime($content['starred_at']))->getTimestamp());
773 } 778 }
774 779
775 public function dataForEntriesExistWithUrl() 780 public function dataForEntriesExistWithUrl()
diff --git a/tests/Wallabag/CoreBundle/Controller/TagControllerTest.php b/tests/Wallabag/CoreBundle/Controller/TagControllerTest.php
index be25a8b5..5a973a7e 100644
--- a/tests/Wallabag/CoreBundle/Controller/TagControllerTest.php
+++ b/tests/Wallabag/CoreBundle/Controller/TagControllerTest.php
@@ -9,6 +9,7 @@ use Wallabag\CoreBundle\Entity\Tag;
9class TagControllerTest extends WallabagCoreTestCase 9class TagControllerTest extends WallabagCoreTestCase
10{ 10{
11 public $tagName = 'opensource'; 11 public $tagName = 'opensource';
12 public $caseTagName = 'OpenSource';
12 13
13 public function testList() 14 public function testList()
14 { 15 {
@@ -36,7 +37,7 @@ class TagControllerTest extends WallabagCoreTestCase
36 $form = $crawler->filter('form[name=tag]')->form(); 37 $form = $crawler->filter('form[name=tag]')->form();
37 38
38 $data = [ 39 $data = [
39 'tag[label]' => $this->tagName, 40 'tag[label]' => $this->caseTagName,
40 ]; 41 ];
41 42
42 $client->submit($form, $data); 43 $client->submit($form, $data);
@@ -45,6 +46,7 @@ class TagControllerTest extends WallabagCoreTestCase
45 // be sure to reload the entry 46 // be sure to reload the entry
46 $entry = $this->getEntityManager()->getRepository(Entry::class)->find($entry->getId()); 47 $entry = $this->getEntityManager()->getRepository(Entry::class)->find($entry->getId());
47 $this->assertCount(1, $entry->getTags()); 48 $this->assertCount(1, $entry->getTags());
49 $this->assertContains($this->tagName, $entry->getTags());
48 50
49 // tag already exists and already assigned 51 // tag already exists and already assigned
50 $client->submit($form, $data); 52 $client->submit($form, $data);
@@ -80,7 +82,7 @@ class TagControllerTest extends WallabagCoreTestCase
80 $form = $crawler->filter('form[name=tag]')->form(); 82 $form = $crawler->filter('form[name=tag]')->form();
81 83
82 $data = [ 84 $data = [
83 'tag[label]' => 'foo2, bar2', 85 'tag[label]' => 'foo2, Bar2',
84 ]; 86 ];
85 87
86 $client->submit($form, $data); 88 $client->submit($form, $data);
diff --git a/tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php b/tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php
index c307f96c..9bb59766 100644
--- a/tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php
+++ b/tests/Wallabag/ImportBundle/Controller/PinboardControllerTest.php
@@ -125,7 +125,7 @@ class PinboardControllerTest extends WallabagCoreTestCase
125 $tags = $content->getTags(); 125 $tags = $content->getTags();
126 $this->assertContains('foot', $tags, 'It includes the "foot" tag'); 126 $this->assertContains('foot', $tags, 'It includes the "foot" tag');
127 $this->assertContains('varnish', $tags, 'It includes the "varnish" tag'); 127 $this->assertContains('varnish', $tags, 'It includes the "varnish" tag');
128 $this->assertContains('PHP', $tags, 'It includes the "PHP" tag'); 128 $this->assertContains('php', $tags, 'It includes the "php" tag');
129 $this->assertSame(3, count($tags)); 129 $this->assertSame(3, count($tags));
130 130
131 $this->assertInstanceOf(\DateTime::class, $content->getCreatedAt()); 131 $this->assertInstanceOf(\DateTime::class, $content->getCreatedAt());
diff --git a/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php b/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php
index 25625c35..4bc982e0 100644
--- a/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php
+++ b/tests/Wallabag/ImportBundle/Controller/WallabagV1ControllerTest.php
@@ -125,7 +125,7 @@ class WallabagV1ControllerTest extends WallabagCoreTestCase
125 125
126 $tags = $content->getTags(); 126 $tags = $content->getTags();
127 $this->assertContains('foot', $tags, 'It includes the "foot" tag'); 127 $this->assertContains('foot', $tags, 'It includes the "foot" tag');
128 $this->assertContains('Framabag', $tags, 'It includes the "Framabag" tag'); 128 $this->assertContains('framabag', $tags, 'It includes the "framabag" tag');
129 $this->assertSame(2, count($tags)); 129 $this->assertSame(2, count($tags));
130 130
131 $this->assertInstanceOf(\DateTime::class, $content->getCreatedAt()); 131 $this->assertInstanceOf(\DateTime::class, $content->getCreatedAt());