]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Merge remote-tracking branch 'origin/master' into 2.2
authorJeremy Benoist <jeremy.benoist@gmail.com>
Mon, 24 Oct 2016 10:03:17 +0000 (12:03 +0200)
committerJeremy Benoist <jeremy.benoist@gmail.com>
Mon, 24 Oct 2016 10:03:17 +0000 (12:03 +0200)
18 files changed:
1  2 
app/config/config.yml
docs/en/user/configuration.rst
docs/en/user/parameters.rst
docs/fr/user/configuration.rst
src/Wallabag/CoreBundle/Command/InstallCommand.php
src/Wallabag/CoreBundle/Resources/config/services.yml
src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig

diff --combined app/config/config.yml
index 9dbc9d7ccf9a0ad33998206f8144d81c6ec5894f,a56cbdd9e01d2afab2947e3273cd62831991bdda..dfb0e3b27a181b4a313c248b95226a2a18400b3f
@@@ -30,7 -30,7 +30,7 @@@ framework
      assets: ~
  
  wallabag_core:
-     version: 2.1.2-dev
+     version: 2.1.3-dev
      paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
      languages:
          en: 'English'
@@@ -50,6 -50,7 +50,7 @@@
      rss_limit: 50
      reading_speed: 1
      cache_lifetime: 10
+     fetching_error_message: "wallabag can't retrieve contents for this article. Please report this issue to us."
  
  wallabag_user:
      registration_enabled: "%fosuser_registration%"
@@@ -75,7 -76,7 +76,7 @@@ doctrine
          dbname: "%database_name%"
          user: "%database_user%"
          password: "%database_password%"
 -        charset: UTF8
 +        charset: "%database_charset%"
          path: "%database_path%"
          unix_socket: "%database_socket%"
          server_version: 5.6
@@@ -112,26 -113,12 +113,26 @@@ swiftmailer
  fos_rest:
      param_fetcher_listener: true
      body_listener: true
 -    format_listener: true
      view:
 +        mime_types:
 +            csv:
 +                - 'text/csv'
 +                - 'text/plain'
 +            pdf:
 +                - 'application/pdf'
 +            epub:
 +                - 'application/epub+zip'
 +            mobi:
 +                - 'application/x-mobipocket-ebook'
          view_response_listener: 'force'
          formats:
              xml: true
 -            json : true
 +            json: true
 +            txt: true
 +            csv: true
 +            pdf: true
 +            epub: true
 +            mobi: true
          templating_formats:
              html: true
          force_redirects:
          default_engine: twig
      routing_loader:
          default_format: json
 +    format_listener:
 +        enabled: true
 +        rules:
 +            - { path: "^/api/entries/([0-9]+)/export.(.*)", priorities: ['epub', 'mobi', 'pdf', 'txt', 'csv'], fallback_format: false, prefer_extension: false }
 +            - { path: "^/api", priorities: ['json', 'xml'], fallback_format: false, prefer_extension: false }
 +            - { path: "^/annotations", priorities: ['json', 'xml'], fallback_format: false, prefer_extension: false }
 +            # for an unknown reason, EACH REQUEST goes to FOS\RestBundle\EventListener\FormatListener
 +            # so we need to add custom rule for custom api export but also for all other routes of the application...
 +            - { path: '^/', priorities: ['text/html', '*/*'], fallback_format: html, prefer_extension: false }
  
  nelmio_api_doc:
      sandbox:
          enabled: false
 +    cache:
 +        enabled: true
      name: wallabag API documentation
  
  nelmio_cors:
index 824878dc825dede60c91fccd7903b04ff2dbb613,f74924dfe39da2c845a3312036881f0c4a80903b..e7055a145abb7261ce7a0703a6e84b810e418216
@@@ -50,8 -50,6 +50,8 @@@ User informatio
  
  You can change your name, your email address and enable ``Two factor authentication``.
  
 +If the wallabag instance has more than one enabled user, you can delete your account here. **Take care, we delete all your data**.
 +
  Two factor authentication
  ~~~~~~~~~~~~~~~~~~~~~~~~~
  
@@@ -102,7 -100,7 +102,7 @@@ if *« readingTime >= 5 AND domainName 
  Which variables and operators can I use to write rules?
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
- The following variables and operators can be used to create tagging rules:
+ The following variables and operators can be used to create tagging rules (be careful, for some values, you need to add quotes, for example ``language = "en"``):
  
  ===========  ==============================================  ========  ==========
  Variable     Meaning                                         Operator  Meaning
index 2fca020efbee549f1de1fccf270d44de467b4507,6cbd5ae4ba3dea4c7e6947eb48bb3276289c4a80..c35cf3b8ae6026423738ef1302e3b0efe4472a64
@@@ -9,10 -9,9 +9,10 @@@ What is the meaning of the parameters
     "database_name", "symfony", "name of your database"
     "database_user", "root", "user that can write to this database"
     "database_password", "~", "password of that user"
-    "database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "only for SQLite, define where to put the database file. Leave it for other database"
+    "database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "only for SQLite, define where to put the database file. Leave it empty for other database"
     "database_table_prefix", "wallabag_", "all wallabag's tables will be prefixed with that string. You can include a ``_`` for clarity"
     "database_socket", "null", "If your database is using a socket instead of tcp, put the path of the socket (other connection parameters will then be ignored)"
 +   "database_charset", "utf8mb4", "For PostgreSQL & SQLite you should use utf8, for MySQL use utf8mb4 which handle emoji"
  
  .. csv-table:: Configuration to send emails from wallabag
     :header: "name", "default", "description"
@@@ -39,7 -38,7 +39,7 @@@
  
     "rabbitmq_host", "localhost", "Host of your RabbitMQ"
     "rabbitmq_port", "5672", "Port of your RabbitMQ"
-    "rabbitmq_user", "guest", "Usee that can read queues"
+    "rabbitmq_user", "guest", "User that can read queues"
     "rabbitmq_password", "guest", "Password of that user"
  
  .. csv-table:: Redis configuration
index 2654e8ad3839201e2fef5ff43e83265ee83ed405,8bfe66f54d1501916224a8b586e78ceaeda697db..90eece112c5fa5960b217a0b788507621d988049
@@@ -51,8 -51,6 +51,8 @@@ Mon compt
  
  Vous pouvez ici modifier votre nom, votre adresse email et activer la ``Double authentification``.
  
 +Si l'instance de wallabag compte plus d'un utilisateur actif, vous pouvez supprimer ici votre compte. **Attention, nous supprimons toutes vos données**.
 +
  Double authentification (2FA)
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
@@@ -104,7 -102,7 +104,7 @@@ if *« readingTime >= 5 AND domainName 
  Quels variables et opérateurs puis-je utiliser pour écrire mes règles ?
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  
- Les variables et opérateurs suivants peuvent être utilisés lors de la création de vos règles :
+ Les variables et opérateurs suivants peuvent être utilisés lors de la création de vos règles (attention, pour certaines valeurs, vous devez ajouter des guillemets, par exemple ``language = "en"``) :
  
  ===========  ==============================================  ==========  ==========
  Variable     Sens                                            Opérateur   Sens
index 82cd9dafaf480d430a7cd37d0cd01c31378799df,857a8b4cfb2abed26a449d8ee270b8a4b9a224ab..277f852422f6d14afea83df85bbd2023dae31cfd
@@@ -40,7 -40,7 +40,7 @@@ class InstallCommand extends ContainerA
      {
          $this
              ->setName('wallabag:install')
 -            ->setDescription('Wallabag installer.')
 +            ->setDescription('wallabag installer.')
              ->addOption(
                 'reset',
                 null,
@@@ -55,7 -55,7 +55,7 @@@
          $this->defaultInput = $input;
          $this->defaultOutput = $output;
  
 -        $output->writeln('<info>Installing Wallabag...</info>');
 +        $output->writeln('<info>Installing wallabag...</info>');
          $output->writeln('');
  
          $this
@@@ -65,7 -65,7 +65,7 @@@
              ->setupConfig()
          ;
  
 -        $output->writeln('<info>Wallabag has been successfully installed.</info>');
 +        $output->writeln('<info>wallabag has been successfully installed.</info>');
          $output->writeln('<comment>Just execute `php bin/console server:run --env=prod` for using wallabag: http://localhost:8000</comment>');
      }
  
@@@ -77,7 -77,7 +77,7 @@@
  
          // testing if database driver exists
          $fulfilled = true;
 -        $label = '<comment>PDO Driver</comment>';
 +        $label = '<comment>PDO Driver (%s)</comment>';
          $status = '<info>OK!</info>';
          $help = '';
  
@@@ -87,7 -87,7 +87,7 @@@
              $help = 'Database driver "'.$this->getContainer()->getParameter('database_driver').'" is not installed.';
          }
  
 -        $rows[] = [$label, $status, $help];
 +        $rows[] = [sprintf($label, $this->getContainer()->getParameter('database_driver')), $status, $help];
  
          // testing if connection to the database can be etablished
          $label = '<comment>Database connection</comment>';
@@@ -95,8 -95,7 +95,8 @@@
          $help = '';
  
          try {
 -            $this->getContainer()->get('doctrine')->getManager()->getConnection()->connect();
 +            $conn = $this->getContainer()->get('doctrine')->getManager()->getConnection();
 +            $conn->connect();
          } catch (\Exception $e) {
              if (false === strpos($e->getMessage(), 'Unknown database')
                  && false === strpos($e->getMessage(), 'database "'.$this->getContainer()->getParameter('database_name').'" does not exist')) {
  
          $rows[] = [$label, $status, $help];
  
 +        // now check if MySQL isn't too old to handle utf8mb4
 +        if ($conn->isConnected() && $conn->getDatabasePlatform() instanceof \Doctrine\DBAL\Platforms\MySqlPlatform) {
 +            $version = $conn->query('select version()')->fetchColumn();
 +            $minimalVersion = '5.5.4';
 +
 +            if (false === version_compare($version, $minimalVersion, '>')) {
 +                $fulfilled = false;
 +                $rows[] = [
 +                    '<comment>Database version</comment>',
 +                    '<error>ERROR!</error>',
 +                    'Your MySQL version ('.$version.') is too old, consider upgrading ('.$minimalVersion.'+).',
 +                ];
 +            }
 +        }
 +
          foreach ($this->functionExists as $functionRequired) {
              $label = '<comment>'.$functionRequired.'</comment>';
              $status = '<info>OK!</info>';
              throw new \RuntimeException('Some system requirements are not fulfilled. Please check output messages and fix them.');
          }
  
 -        $this->defaultOutput->writeln('<info>Success! Your system can run Wallabag properly.</info>');
 +        $this->defaultOutput->writeln('<info>Success! Your system can run wallabag properly.</info>');
  
          $this->defaultOutput->writeln('');
  
              ],
              [
                  'name' => 'piwik_host',
-                 'value' => 'http://v2.wallabag.org',
+                 'value' => 'v2.wallabag.org',
                  'section' => 'analytics',
              ],
              [
index 048a72fc803e30cb340a2409a892e08208cad7b7,614488a64fd92596243a19ba5bea04d81c989c1a..cc5f9e9ade8d30f1a7e1a4d86ab2ef6639c7fe41
@@@ -40,7 -40,7 +40,7 @@@ services
          class: Graby\Graby
          arguments:
              -
-                 error_message: "wallabag can't retrieve contents for this article. Please report this issue to us."
+                 error_message: '%wallabag_core.fetching_error_message%'
                  http_client:
                      user_agents:
                          'lifehacker.com': 'PHP/5.2'
          arguments:
              - '@twig'
              - '%kernel.debug%'
 +
 +    wallabag_core.subscriber.sqlite_cascade_delete:
 +        class:  Wallabag\CoreBundle\Subscriber\SQLiteCascadeDeleteSubscriber
 +        arguments:
 +            - "@doctrine"
 +        tags:
 +            - { name: doctrine.event_subscriber }
index 7c8ae66e555c5bd41984dcbdadda42ee31f64527,714ced14d1a42566a5fdfd933100e75725aadcd8..c05955833c5b597ece9aa544b0ba4642fca95cb9
@@@ -88,18 -88,6 +88,18 @@@ config
          name_label: 'Navn'
          email_label: 'Emailadresse'
          # twoFactorAuthentication_label: 'Two factor authentication'
 +        delete:
 +            # title: Delete my account (a.k.a danger zone)
 +            # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
 +            # confirm: Are you really sure? (THIS CAN'T BE UNDONE)
 +            # button: Delete my account
 +    reset:
 +        # title: Reset area (a.k.a danger zone)
 +        # description: By hiting buttons below you'll have ability to remove some informations from your account. Be aware that these actions are IRREVERSIBLE.
 +        # annotations: Remove ALL annotations
 +        # tags: Remove ALL tags
 +        # entries: Remove ALL entries
 +        # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
      form_password:
          old_password_label: 'Gammel adgangskode'
          new_password_label: 'Ny adgangskode'
@@@ -457,6 -445,9 +457,9 @@@ user
          # delete_confirm: Are you sure?
          # back_to_list: Back to list
  
+ error:
+     # page_title: An error occurred
  flashes:
      config:
          notice:
              # tagging_rules_deleted: 'Tagging rule deleted'
              # user_added: 'User "%username%" added'
              # rss_token_updated: 'RSS token updated'
 +            # annotations_reset: Annotations reset
 +            # tags_reset: Tags reset
 +            # entries_reset: Entries reset
      entry:
          notice:
              # entry_already_saved: 'Entry already saved on %date%'
index 20f9753be53dd70adf8fb51e845ebb3d2dfc3032,57e49f84ec61330d7ea6087ab8836219fba8c483..0051da2f47294dd3ec62d2e0039000170ad8abc6
@@@ -11,8 -11,8 +11,8 @@@ security
      resetting:
          description: "Gib unten deine E-Mail-Adresse ein und wir senden dir eine Anleitung für das Zurücksetzen deines Kennworts."
      register:
-         page_title: 'Account erstellen'
-         go_to_account: 'Gehe zu deinem Account'
+         page_title: 'Konto erstellen'
+         go_to_account: 'Gehe zu deinem Konto'
  
  menu:
      left:
@@@ -53,7 -53,7 +53,7 @@@ config
      tab_menu:
          settings: 'Einstellungen'
          rss: 'RSS'
-         user_info: 'Benutzer-Information'
+         user_info: 'Benutzerinformation'
          password: 'Kennwort'
          rules: 'Tagging-Regeln'
          new_user: 'Benutzer hinzufügen'
          pocket_consumer_key_label: Consumer-Key für Pocket, um Inhalte zu importieren
      form_rss:
          description: 'Die RSS-Feeds von wallabag erlauben es dir, deine gespeicherten Artikel mit deinem bevorzugten RSS-Reader zu lesen. Vorher musst du jedoch einen Token erstellen.'
-         token_label: 'RSS-token'
+         token_label: 'RSS-Token'
          no_token: 'Kein Token'
          token_create: 'Token erstellen'
          token_reset: 'Token zurücksetzen'
          rss_links: 'RSS-Links'
          rss_link:
-             unread: 'ungelesen'
-             starred: 'favoriten'
-             archive: 'archiv'
-         rss_limit: 'Anzahl der Einträge im Feed'
+             unread: 'Ungelesene'
+             starred: 'Favoriten'
+             archive: 'Archivierte'
+         rss_limit: 'Anzahl der Einträge pro Feed'
      form_user:
-         two_factor_description: "Wenn du die Zwei-Faktor-Authentifizierung aktivierst, erhältst du eine E-Mail mit einem Code bei jeder nicht vertraulichen Verbindung"
+         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"
          name_label: 'Name'
          email_label: 'E-Mail-Adresse'
          twoFactorAuthentication_label: 'Zwei-Faktor-Authentifizierung'
 +        delete:
 +            # title: Delete my account (a.k.a danger zone)
 +            # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
 +            # confirm: Are you really sure? (THIS CAN'T BE UNDONE)
 +            # button: Delete my account
 +    reset:
 +        # title: Reset area (a.k.a danger zone)
 +        # description: By hiting buttons below you'll have ability to remove some informations from your account. Be aware that these actions are IRREVERSIBLE.
 +        # annotations: Remove ALL annotations
 +        # tags: Remove ALL tags
 +        # entries: Remove ALL entries
 +        # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
      form_password:
          old_password_label: 'Altes Kennwort'
          new_password_label: 'Neues Kennwort'
          faq:
              title: 'FAQ'
              tagging_rules_definition_title: 'Was bedeuten die "Tagging-Regeln"?'
-             tagging_rules_definition_description: 'Dies sind Regeln von wallabag, um neu hinzugefügte Einträge autmatisch zu taggen.<br />Jedes Mal, wenn ein neuer Eintrag hinzufügt wird, werden die Tagging-Regeln angewandt. Dies erleichtert dir die Arbeit, deine Einträge manuell zu klassifizieren.'
+             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>" taggen, wenn die Lesezeit kürzer als drei Minuten ist.<br />In diesem Falle solltest du "readingTime &lt;= 3" in das <i>Regel</i>-Feld und "<i>schnell lesbar</i>" in das <i>Tags</i>-Feld schreiben.<br />Mehrere Tags können gleichzeitig hinzugefügt werden, indem sie durch ein Kommata getrennt werden: "<i>schnell lesbar, interessant</i>"<br />Komplexe Regeln können durch vordefinierte Operatoren geschrieben werden: if "<i>readingTime &gt;= 5 AND domainName = "github.com"</i>" then tag as "<i>long reading, github </i>"'
-             variables_available_title: 'Welche Variablen und Operatoren kann ich nutzen, um Regeln zu schreiben?'
+             how_to_use_them_description: 'Nehmen wir an, du möchtest deine Einträge als "<i>schnell lesbar</i>" taggen, wenn die Lesezeit kürzer als drei Minuten ist.<br />In diesem Fall solltest du "readingTime &lt;= 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: if "<i>readingTime &gt;= 5 AND domainName = "github.com"</i>" dann tagge als "<i>länger lesen, github</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'
              variable_description:
                  language: "Sprache des Eintrags"
                  mimetype: "MIME-Typ des Eintrags"
                  readingTime: "Die geschätzte Lesezeit in Minuten"
-                 domainName: 'Der Domain-Name des Eintrags'
+                 domainName: 'Der Domainname des Eintrags'
              operator_description:
                  label: 'Operator'
                  less_than: 'Weniger oder gleich als…'
                  not_equal_to: 'ungleich'
                  or: 'Eine Regel ODER die andere'
                  and: 'Eine Regel UND eine andere'
-                 matches: 'Tests, ob eine <i>Variable</i> auf eine <i>Suche</i> zutrifft (Groß- und Kleinschreibung wird nicht berücksichtigt).<br />Beispiel: <code>title matches "Fußball"</code>'
+                 matches: 'Testet, ob eine <i>Variable</i> auf eine <i>Suche</i> zutrifft (Groß- und Kleinschreibung wird nicht berücksichtigt).<br />Beispiel: <code>title matches "Fußball"</code>'
  
  entry:
      page_titles:
          number_of_tags: '{1}und ein anderer Tag|]1,Inf[und %count% andere Tags'
          reading_time_minutes_short: '%readingTime% min'
          reading_time_less_one_minute_short: '<small class="inferieur">&lt;</small> 1 min'
-         original_article: 'original'
+         original_article: 'Original'
          toogle_as_read: 'Gelesen-Status ändern'
          toogle_as_star: 'Favoriten-Status ändern'
          delete: 'Löschen'
          export_title: 'Exportieren'
      filters:
-         title: 'Filters'
+         title: 'Filter'
          status_label: 'Status'
          archived_label: 'Archiviert'
          starred_label: 'Favorisiert'
              label: 'Lesezeit in Minuten'
              from: 'von'
              to: 'bis'
-         domain_label: 'Domain-Name'
+         domain_label: 'Domainname'
          created_at:
              label: 'Erstellungsdatum'
              from: 'von'
              to: 'bis'
          action:
              clear: 'Zurücksetzen'
-             filter: 'Filter'
+             filter: 'Filtern'
      view:
          left_menu:
              back_to_top: 'Nach oben'
              set_as_read: 'Als gelesen markieren'
              set_as_unread: 'Als ungelesen markieren'
              set_as_starred: 'Favorisieren'
-             view_original_article: 'Original-Artikel'
+             view_original_article: 'Originalartikel'
              re_fetch_content: 'Inhalt neu laden'
              delete: 'Löschen'
              add_a_tag: 'Tag hinzufügen'
          is_public_label: 'Öffentlich'
          save_label: 'Speichern'
      public:
-         # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
+         shared_by_wallabag: "Dieser Artikel wurde mittels <a href='%wallabag_instance%'>wallabag</a> geteilt"
  
  about:
      page_title: 'Über'
          getting_help: 'Hilfe bekommen'
          helping: 'wallabag unterstützen'
          contributors: 'Unterstützer'
-         third_party: 'Third-party libraries'
+         third_party: 'Bibliotheken von Drittanbietern'
      who_behind_wallabag:
          developped_by: 'Entwickelt von'
          website: 'Webseite'
          version: 'Version'
      getting_help:
          documentation: 'Dokumentation'
-         bug_reports: 'Bugs'
+         bug_reports: 'Fehlerberichte'
          support: '<a href="https://support.wallabag.org">Auf unserer Support-Webseite</a> oder <a href="https://github.com/wallabag/wallabag/issues">auf GitHub</a>'
      helping:
-         description: 'wallabag ist kostenlos und Open-Source. Du kannst uns helfen:'
+         description: 'wallabag ist frei und Open Source. Du kannst uns helfen:'
          by_contributing: 'indem du zu dem Projekt beiträgst:'
-         by_contributing_2: 'ein Issue listet alle unsere Bedürfnisse:'
+         by_contributing_2: 'ein Ticket listet alle unsere Bedürfnisse:'
          by_paypal: 'via PayPal'
      contributors:
          description: 'Ein Dankeschön an die Unterstützer von wallabag'
@@@ -258,11 -246,11 +258,11 @@@ howto
      page_title: 'How-To'
      page_description: 'Es gibt mehrere Möglichkeiten, einen Artikel zu speichern:'
      top_menu:
-         browser_addons: 'Browser-Addons'
+         browser_addons: 'Browser-Erweiterungen'
          mobile_apps: 'Apps'
-         bookmarklet: 'Bookmarklet'
+         bookmarklet: 'Lesezeichen'
      form:
-         description: 'Danke an dieses Formular'
+         description: 'Dank dieses Formulars'
      browser_addons:
          firefox: 'Firefox-Erweiterung'
          chrome: 'Chrome-Erweiterung'
@@@ -291,16 -279,16 +291,16 @@@ quickstart
      admin:
          title: 'Administration'
          description: 'Als Adminstrator hast du einige Privilegien. Du kannst:'
-         new_user: 'Einen neuen Nutzer anlegen'
+         new_user: 'Einen neuen Benutzer anlegen'
          analytics: 'das Tracking konfigurieren'
          sharing: 'Einige Parameter für das Teilen von Artikel setzen'
          export: 'Export-Einstellungen ändern'
          import: 'Import-Einstellungen ändern'
      first_steps:
          title: 'Erste Schritte'
-         description: "Jetzt ist wallabag gut konfiguriert, es ist Zeit das Web zu archivieren. Du kannst auf das Plussymbol + oben rechts klicken, um einen Link hinzuzufügen"
+         description: "Jetzt ist wallabag gut konfiguriert, es ist Zeit, das Web zu archivieren. Du kannst auf das Plussymbol + oben rechts klicken, um einen Link hinzuzufügen"
          new_article: 'Speichere deinen ersten Artikel'
-         unread_articles: 'Und klassifiziere ihn!'
+         unread_articles: 'Und kategorisiere ihn!'
      migrate:
          title: 'Von einem anderen Dienst migrieren'
          description: "Du nutzt einen anderen Dienst? Wir helfen dir, um deine Daten zu wallabag zu transportieren."
@@@ -333,7 -321,7 +333,7 @@@ tag
      page_title: 'Tags'
      list:
          number_on_the_page: '{0} Es gibt keine Tags.|{1} Es gibt einen Tag.|]1,Inf[ Es gibt %count% Tags.'
-         see_untagged_entries: 'Siehe nicht getaggte Einträge'
+         see_untagged_entries: 'Zeige nicht getaggte Einträge'
  
  import:
      page_title: 'Importieren'
          description: "Dieser Importer wird all deine Pocket-Daten importieren. Pocket erlaubt es uns nicht, den Inhalt zu migrieren, daher wird der lesbare Inhalt erneut von wallabag heruntergeladen."
          config_missing:
              description: "Pocket-Import ist nicht konfiguriert."
-             admin_message: 'Du musst noch den %keyurls%a pocket_consumer_key%keyurle% definieren.'
-             user_message: 'Der Server-Administrator muss noch einen API-Key für Pocket konfigurieren.'
-         authorize_message: 'Du kannst deine Daten von deinem Pocket-Account importieren. Dazu musst du nur den nachfolgenden Button klicken und die Anwendung authentifizieren, sich mit getpocket.com zu verbinden.'
+             admin_message: 'Du musst noch den %keyurls%pocket_consumer_key%keyurle% eintragen.'
+             user_message: 'Der Administrator des Servers muss noch einen API-Schlüssel für Pocket konfigurieren.'
+         authorize_message: 'Du kannst deine Daten von deinem Pocket-Konto importieren. Dazu musst du nur den nachfolgenden Button klicken und die Anwendung authentifizieren, sich mit getpocket.com zu verbinden zu dürfen.'
          connect_to_pocket: 'Mit Pocket verbinden und Daten importieren'
      wallabag_v1:
          page_title: 'Aus wallabag v1 importieren'
-         description: 'Dieser Import wird all deine Artikel aus wallabag v1 importieren. Klicke auf der Konfigurations-Seite auf "JSON-Export" im "wallabag-Daten exportieren"-Abschnitt. Du erhältst eine "wallabag-export-1-xxxx-xx-xx.json"-Datei.'
-         how_to: 'Wähle die Export-Datei aus und klicke den nachfolgenden Button, um diese hochzuladen und zu importieren.'
+         description: 'Dieser Import wird all deine Artikel aus wallabag v1 importieren. Klicke in der Konfigurationsseite auf "JSON-Export" im "wallabag-Daten exportieren"-Abschnitt. Du erhältst eine "wallabag-export-1-xxxx-xx-xx.json"-Datei.'
+         how_to: 'Wähle die exportierte Datei aus und klicke den nachfolgenden Button, um diese hochzuladen und zu importieren.'
      wallabag_v2:
          page_title: 'Aus wallabag v2 importieren'
          description: 'Dieser Import wird all deine Artikel aus wallabag v2 importieren. Gehe auf "Alle Artikel" und dann, in der Exportieren-Seitenleiste auf "JSON". Dabei erhältst du eine "All articles.json"-Datei.'
          enabled: "Der Import erfolgt asynchron. Sobald der Import gestartet ist, wird diese Aufgabe extern abgearbeitet. Der aktuelle Service dafür ist:"
      firefox:
          page_title: 'Aus Firefox importieren'
-         description: "Dieser Import wird all deine Firefox Lesezeichen importieren. Gehe zu deinen Lesezeichen (Strg+Shift+O), dann auf \"Importen und Sichern\", wähle \"Sichern…\". Du erhälst eine .json Datei."
+         description: "Dieser Import wird all deine Lesezeichen aus Firefox importieren. Gehe zu deinen Lesezeichen (Strg+Shift+O), dann auf \"Importen und Sichern\", wähle \"Sichern…\". Du erhälst eine .json Datei."
          how_to: "Bitte wähle deine Lesezeichensicherungsdatei aus und klicke den nachfolgenden Button zum Importieren. Beachte, dass dieser Prozess eine lange Zeit in Anspruch nehmen kann, da alle Artikel geladen werden müssen."
      chrome:
          page_title: 'Aus Chrome importieren'
-         description: "Dieser Import wird all deine Chrome Lesezeichen importieren. Der Pfad zu der Datei hängt von deinem Betriebssystem ab: <ul><li>In Linux gehst du zu dem <code>~/.config/chromium/Default/</code> Verzeichnis</li><li>In Windows sollte es unter <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code> sein</li><li>In OS X sollte es unter <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code> sein</li></ul>Wenn du dort angekommen bist, kopiere die Lesezeichendatei zu einem Ort, den du später wiederfindest.<em><br>Beachte falls du Chromium statt Chrome hast, dass du den zuvor genannten Pfad entsprechend anpasst.</em></p>"
+         description: "Dieser Import wird all deine Lesezeichen aus Chrome importieren. Der Pfad zu der Datei hängt von deinem Betriebssystem ab: <ul><li>In Linux gehst du zu dem <code>~/.config/chromium/Default/</code> Verzeichnis</li><li>In Windows sollte es unter <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code> sein</li><li>In OS X sollte es unter <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code> sein</li></ul>Wenn du dort angekommen bist, kopiere die Lesezeichendatei <code>Bookmarks</code> zu einem Ort, den du später wiederfindest.<em><br>Beachte falls du Chromium statt Chrome hast, dass du den zuvor genannten Pfad entsprechend anpasst.</em></p>"
          how_to: "Bitte wähle deine Lesezeichensicherungsdatei aus und klicke den nachfolgenden Button zum Importieren. Beachte, dass dieser Prozess eine lange Zeit in Anspruch nehmen kann, da alle Artikel geladen werden müssen."
      instapaper:
          page_title: 'Aus Instapaper importieren'
  
  developer:
      page_title: 'Entwickler'
-     welcome_message: 'Willkomen zur wallabag-API'
+     welcome_message: 'Willkomen zur wallabag API'
      documentation: 'Dokumentation'
      how_to_first_app: 'Wie erstelle ich meine erste Anwendung'
      full_documentation: 'Komplette API-Dokumentation einsehen'
          no_client: 'Bisher kein Client.'
      remove:
          warn_message_1: 'Du hast die Möglichkeit, diesen Client zu entfernen. DIESE AKTION IST NICHT WIDERRUFBAR!'
-         warn_message_2: "Wenn du ihn entfernst, hat keine der damit konfigurierten Anwendungen mehr die Möglichkeit, sich in deinen wallabag-Account anzumelden."
+         warn_message_2: "Wenn du ihn entfernst, hat keine der damit konfigurierten Anwendungen mehr die Möglichkeit, sich in deinen wallabag-Konto anzumelden."
          action: 'Client entfernen'
      client:
          page_title: 'Entwickler > Neuer Client'
@@@ -457,21 -445,21 +457,24 @@@ user
          delete_confirm: Bist du sicher?
          back_to_list: Zurück zur Liste
  
+ error:
+     # page_title: An error occurred
  flashes:
      config:
          notice:
              config_saved: 'Konfiguration gespeichert. Einige Einstellungen werden erst nach einer erneuten Anmeldung übernommen.'
              password_updated: 'Kennwort aktualisiert'
-             password_not_updated_demo: "Im Test-Modus kannst du das Kennwort nicht ändern."
+             password_not_updated_demo: "Im Testmodus kannst du das Kennwort nicht ändern."
              user_updated: 'Information aktualisiert'
              rss_updated: 'RSS-Informationen aktualisiert'
              tagging_rules_updated: 'Tagging-Regeln aktualisiert'
              tagging_rules_deleted: 'Tagging-Regel gelöscht'
              user_added: 'Benutzer "%username%" erstellt'
              rss_token_updated: 'RSS-Token aktualisiert'
 +            # annotations_reset: Annotations reset
 +            # tags_reset: Tags reset
 +            # entries_reset: Entries reset
      entry:
          notice:
              entry_already_saved: 'Eintrag bereits am %date% gespeichert'
              entry_updated: 'Eintrag aktualisiert'
              entry_reloaded: 'Eintrag neugeladen'
              entry_reloaded_failed: 'Eintrag neugeladen, aber das Abrufen des Inhalts ist fehlgeschlagen'
-             entry_archived: 'Artikel archiviert'
-             entry_unarchived: 'Artikel dearchiviert'
-             entry_starred: 'Artikel favorisiert'
-             entry_unstarred: 'Artikel defavorisiert'
-             entry_deleted: 'Artikel gelöscht'
+             entry_archived: 'Eintrag archiviert'
+             entry_unarchived: 'Eintrag dearchiviert'
+             entry_starred: 'Eintrag favorisiert'
+             entry_unstarred: 'Eintrag defavorisiert'
+             entry_deleted: 'Eintrag gelöscht'
      tag:
          notice:
              tag_added: 'Tag hinzugefügt'
          notice:
              failed: 'Import fehlgeschlagen, bitte erneut probieren.'
              failed_on_file: 'Fehler während des Imports. Bitte überprüfe deine Import-Datei.'
-             summary: 'Import-Zusammenfassung: %imported% importiert, %skipped% bereits gespeichert.'
-             summary_with_queue: 'Import-Zusammenfassung: %queued% eingereiht.'
+             summary: 'Importzusammenfassung: %imported% importiert, %skipped% bereits gespeichert.'
+             summary_with_queue: 'Importzusammenfassung: %queued% eingereiht.'
          error:
              redis_enabled_not_installed: 'Redis ist aktiviert, um den asynchronen Import zu bewerkstelligen, aber es sieht so aus, dass <u>wir keine Verbindung herstellen können</u>. Bitte prüfe deine Redis-Konfiguration.'
              rabbit_enabled_not_installed: 'RabbitMQ ist aktiviert, um den asynchronen Import zu bewerkstelligen, aber es sieht so aus, dass <u>wir keine Verbindung herstellen können</u>. Bitte prüfe deine RabbitMQ-Konfiguration.'
index 35dde5353bcc4d43c13582dc725ccfcb92d3fd0c,4a59c75eb3c568a786b94c2b09b53e82599f7903..462be5562ea3dd7f9a5bd2c884344793849a9c13
@@@ -88,18 -88,6 +88,18 @@@ config
          name_label: 'Name'
          email_label: 'Email'
          twoFactorAuthentication_label: 'Two factor authentication'
 +        delete:
 +            title: Delete my account (a.k.a danger zone)
 +            description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
 +            confirm: Are you really sure? (THIS CAN'T BE UNDONE)
 +            button: Delete my account
 +    reset:
 +        title: Reset area (a.k.a danger zone)
 +        description: By hiting buttons below you'll have ability to remove some informations from your account. Be aware that these actions are IRREVERSIBLE.
 +        annotations: Remove ALL annotations
 +        tags: Remove ALL tags
 +        entries: Remove ALL entries
 +        confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
      form_password:
          old_password_label: 'Current password'
          new_password_label: 'New password'
@@@ -373,7 -361,7 +373,7 @@@ import
          how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched."
      chrome:
          page_title: 'Import > Chrome'
-         description: "This importer will import all your Chrome bookmarks. The location of the file depends on your operating system : <ul><li>On Linux, go into the <code>~/.config/chromium/Default/</code> directory</li><li>On Windows, it should be at <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>On OS X, it should be at <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Once you got there, copy the Bookmarks file someplace you'll find.<em><br>Note that if you have Chromium instead of Chrome, you'll have to correct paths accordingly.</em></p>"
+         description: "This importer will import all your Chrome bookmarks. The location of the file depends on your operating system : <ul><li>On Linux, go into the <code>~/.config/chromium/Default/</code> directory</li><li>On Windows, it should be at <code>%LOCALAPPDATA%\\Google\\Chrome\\User Data\\Default</code></li><li>On OS X, it should be at <code>~/Library/Application Support/Google/Chrome/Default/Bookmarks</code></li></ul>Once you got there, copy the <code>Bookmarks</code> file someplace you'll find.<em><br>Note that if you have Chromium instead of Chrome, you'll have to correct paths accordingly.</em></p>"
          how_to: "Please choose the bookmark backup file and click on the button below to import it. Note that the process may take a long time since all articles have to be fetched."
      instapaper:
          page_title: 'Import > Instapaper'
@@@ -457,6 -445,9 +457,9 @@@ user
          delete_confirm: Are you sure?
          back_to_list: Back to list
  
+ error:
+     page_title: An error occurred
  flashes:
      config:
          notice:
              tagging_rules_updated: 'Tagging rules updated'
              tagging_rules_deleted: 'Tagging rule deleted'
              rss_token_updated: 'RSS token updated'
 +            annotations_reset: Annotations reset
 +            tags_reset: Tags reset
 +            entries_reset: Entries reset
      entry:
          notice:
              entry_already_saved: 'Entry already saved on %date%'
index 13f2e9776e831fc46d57ca4d881553c966cc417a,1b1e0cb1056318d536717774776db5782330b062..cfabe09f28936867393bb9a10b93c8a5f2192af4
@@@ -88,18 -88,6 +88,18 @@@ config
          name_label: 'Nombre'
          email_label: 'Direccion e-mail'
          twoFactorAuthentication_label: 'Autentificación de dos factores'
 +        delete:
 +            # title: Delete my account (a.k.a danger zone)
 +            # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
 +            # confirm: Are you really sure? (THIS CAN'T BE UNDONE)
 +            # button: Delete my account
 +    reset:
 +        # title: Reset area (a.k.a danger zone)
 +        # description: By hiting buttons below you'll have ability to remove some informations from your account. Be aware that these actions are IRREVERSIBLE.
 +        # annotations: Remove ALL annotations
 +        # tags: Remove ALL tags
 +        # entries: Remove ALL entries
 +        # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
      form_password:
          old_password_label: 'Contraseña actual'
          new_password_label: 'Nueva contraseña'
@@@ -457,6 -445,9 +457,9 @@@ user
          # delete_confirm: Are you sure?
          # back_to_list: Back to list
  
+ error:
+     # page_title: An error occurred
  flashes:
      config:
          notice:
              tagging_rules_deleted: 'Regla de etiquetado actualizada'
              user_added: 'Usuario "%username%" añadido'
              rss_token_updated: 'RSS token actualizado'
 +            # annotations_reset: Annotations reset
 +            # tags_reset: Tags reset
 +            # entries_reset: Entries reset
      entry:
          notice:
              entry_already_saved: 'Entrada ya guardada por %fecha%'
index 5ee1f62d194247d81ddacca3faa67990c97f73dd,41dc8acf41c9ad963d9e3ca212aaf9f4f8d3636b..07b5bee7c01a02e287e03bf3fa483f3aa8aec92e
@@@ -88,18 -88,6 +88,18 @@@ config
          name_label: 'نام'
          email_label: 'نشانی ایمیل'
          twoFactorAuthentication_label: 'تأیید ۲مرحله‌ای'
 +        delete:
 +            # title: Delete my account (a.k.a danger zone)
 +            # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
 +            # confirm: Are you really sure? (THIS CAN'T BE UNDONE)
 +            # button: Delete my account
 +    reset:
 +        # title: Reset area (a.k.a danger zone)
 +        # description: By hiting buttons below you'll have ability to remove some informations from your account. Be aware that these actions are IRREVERSIBLE.
 +        # annotations: Remove ALL annotations
 +        # tags: Remove ALL tags
 +        # entries: Remove ALL entries
 +        # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
      form_password:
          old_password_label: 'رمز قدیمی'
          new_password_label: 'رمز تازه'
@@@ -456,6 -444,9 +456,9 @@@ user
          # delete_confirm: Are you sure?
          # back_to_list: Back to list
  
+ error:
+     # page_title: An error occurred
  flashes:
      config:
          notice:
              tagging_rules_deleted: 'قانون برچسب‌گذاری پاک شد'
              user_added: 'کابر "%username%" افزوده شد'
              rss_token_updated: 'کد آر-اس-اس به‌روز شد'
 +            # annotations_reset: Annotations reset
 +            # tags_reset: Tags reset
 +            # entries_reset: Entries reset
      entry:
          notice:
              entry_already_saved: 'این مقاله در تاریخ %date% ذخیره شده بود'
index 14bdbbc7574c2cce7962851361f4c72642b370a0,7fb9681d97ed75141bd34400098c5878818f1831..db6f9f7e261d170788f2ab8bc1329bec34b914fb
@@@ -88,18 -88,6 +88,18 @@@ config
          name_label: 'Nom'
          email_label: 'Adresse e-mail'
          twoFactorAuthentication_label: 'Double authentification'
 +        delete:
 +            title: Supprimer mon compte (attention danger !)
 +            description: Si vous confirmez la suppression de votre compte, TOUS les articles, TOUS les tags, TOUTES les annotations et votre compte seront DÉFINITIVEMENT supprimé (c'est IRRÉVERSIBLE). Vous serez ensuite déconnecté.
 +            confirm: Vous êtes vraiment sûr ? (C'EST IRRÉVERSIBLE)
 +            button: 'Supprimer mon compte'
 +    reset:
 +        title: Réinitialisation (attention danger !)
 +        description: En cliquant sur les boutons ci-dessous vous avez la possibilité de supprimer certaines informations de votre compte. Attention, ces actions sont IRRÉVERSIBLES !
 +        annotations: Supprimer TOUTES les annotations
 +        tags: Supprimer TOUS les tags
 +        entries: Supprimer TOUS les articles
 +        confirm: Êtes-vous vraiment vraiment sûr ? (C'EST IRRÉVERSIBLE)
      form_password:
          old_password_label: 'Mot de passe actuel'
          new_password_label: 'Nouveau mot de passe'
@@@ -377,7 -365,7 +377,7 @@@ import
          how_to: "Choisissez le fichier de sauvegarde de vos marques-page et cliquez sur le bouton pour l'importer. Soyez avertis que le processus peut prendre un temps assez long car tous les articles doivent être récupérés en ligne."
      instapaper:
          page_title: 'Import > Instapaper'
-         description: 'Sur la page des paramètres (`https://www.instapaper.com/user<https://www.instapaper.com/user>`_), cliquez sur "Download .CSV file" dans la section "Export". Un fichier CSV se téléchargera ("instapaper-export.csv").'
+         description: 'Sur la page des paramètres (https://www.instapaper.com/user), cliquez sur "Download .CSV file" dans la section "Export". Un fichier CSV se téléchargera ("instapaper-export.csv").'
          how_to: "Choisissez le fichier de votre export Instapaper et cliquez sur le bouton ci-dessous pour l'importer."
  
  developer:
          field_grant_types: 'Type de privilège accordé'
          no_client: 'Aucun client pour le moment'
      remove:
 -        warn_message_1: 'Vous avez la possibilité de supprimer le client %name%. Cette action est IRREVERSIBLE !'
 +        warn_message_1: 'Vous avez la possibilité de supprimer le client %name%. Cette action est IRRÉVERSIBLE !'
          warn_message_2: "Si vous supprimez le client %name%, toutes les applications qui l'utilisaient ne fonctionneront plus avec votre compte wallabag."
          action: 'Supprimer le client %name%'
      client:
@@@ -457,6 -445,9 +457,9 @@@ user
          delete_confirm: Êtes-vous sûr?
          back_to_list: Revenir à la liste
  
+ error:
+     page_title: Une erreur est survenue
  flashes:
      config:
          notice:
              tagging_rules_deleted: 'Règle supprimée'
              user_added: 'Utilisateur "%username%" ajouté'
              rss_token_updated: 'Jeton RSS mis à jour'
 +            annotations_reset: Annotations supprimées
 +            tags_reset: Tags supprimés
 +            entries_reset: Articles supprimés
      entry:
          notice:
 -            entry_already_saved: 'Article déjà sauvergardé le %date%'
 +            entry_already_saved: 'Article déjà sauvegardé le %date%'
              entry_saved: 'Article enregistré'
              entry_saved_failed: 'Article enregistré mais impossible de récupérer le contenu'
              entry_updated: 'Article mis à jour'
index bc4448bddb73227d4fe8507149b063ae8eb3f60b,b279ae40e056195a38409fc28721c840dd6b5d0c..f1aff51a884f6102360e00df51ffcd404015d77e
@@@ -88,18 -88,6 +88,18 @@@ config
          name_label: 'Nome'
          email_label: 'E-mail'
          twoFactorAuthentication_label: 'Two factor authentication'
 +        delete:
 +            # title: Delete my account (a.k.a danger zone)
 +            # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
 +            # confirm: Are you really sure? (THIS CAN'T BE UNDONE)
 +            # button: Delete my account
 +    reset:
 +        # title: Reset area (a.k.a danger zone)
 +        # description: By hiting buttons below you'll have ability to remove some informations from your account. Be aware that these actions are IRREVERSIBLE.
 +        # annotations: Remove ALL annotations
 +        # tags: Remove ALL tags
 +        # entries: Remove ALL entries
 +        # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
      form_password:
          old_password_label: 'Password corrente'
          new_password_label: 'Nuova password'
@@@ -457,6 -445,9 +457,9 @@@ user
          # delete_confirm: Are you sure?
          # back_to_list: Back to list
  
+ error:
+     # page_title: An error occurred
  flashes:
      config:
          notice:
              tagging_rules_deleted: 'Regola di tagging aggiornate'
              user_added: 'Utente "%username%" aggiunto'
              rss_token_updated: 'RSS token aggiornato'
 +            # annotations_reset: Annotations reset
 +            # tags_reset: Tags reset
 +            # entries_reset: Entries reset
      entry:
          notice:
              entry_already_saved: 'Contenuto già salvato in data %date%'
index 7d1a801a2907462fa2b6efd4c235542fe466d58c,a4659620b31c78a9728419fa3c72145a4daf76bf..e0567d7e1b74d71a2892b211db3143cb3fb66f35
@@@ -25,13 -25,13 +25,13 @@@ menu
          internal_settings: 'Configuracion interna'
          import: 'Importar'
          howto: 'Ajuda'
 -        developer: 'Desvolopador'
 +        developer: 'Desvolopaire'
          logout: 'Desconnexion'
          about: 'A prepaus'
          search: 'Cercar'
          save_link: 'Enregistrar un novèl article'
          back_to_unread: 'Tornar als articles pas legits'
 -        # users_management: 'Users management'
 +        users_management: 'Gestion dels utilizaires'
      top:
          add_new_entry: 'Enregistrar un novèl article'
          search: 'Cercar'
@@@ -46,7 -46,7 +46,7 @@@ footer
          social: 'Social'
          powered_by: 'propulsat per'
          about: 'A prepaus'
 -    # stats: Since %user_creation% you read %nb_archives% articles. That is about %per_day% a day!
 +    stats: "Dempuèi %user_creation% avètz legit %nb_archives% articles. Es a l'entorn de %per_day% per jorn !"
  
  config:
      page_title: 'Configuracion'
          name_label: 'Nom'
          email_label: 'Adreça de corrièl'
          twoFactorAuthentication_label: 'Dobla autentificacion'
 +        delete:
 +            # title: Delete my account (a.k.a danger zone)
 +            # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
 +            # confirm: Are you really sure? (THIS CAN'T BE UNDONE)
 +            # button: Delete my account
 +    reset:
 +        # title: Reset area (a.k.a danger zone)
 +        # description: By hiting buttons below you'll have ability to remove some informations from your account. Be aware that these actions are IRREVERSIBLE.
 +        # annotations: Remove ALL annotations
 +        # tags: Remove ALL tags
 +        # entries: Remove ALL entries
 +        # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
      form_password:
          old_password_label: 'Senhal actual'
          new_password_label: 'Senhal novèl'
          if_label: 'se'
          then_tag_as_label: 'alara atribuir las etiquetas'
          delete_rule_label: 'suprimir'
 -        # edit_rule_label: 'edit'
 +        edit_rule_label: 'modificar'
          rule_label: 'Règla'
          tags_label: 'Etiquetas'
          faq:
@@@ -221,7 -209,7 +221,7 @@@ entry
          is_public_label: 'Public'
          save_label: 'Enregistrar'
      public:
 -        # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>"
 +        shared_by_wallabag: "Aqueste article es estat partejat per <a href='%wallabag_instance%'>wallabag</a>"
  
  about:
      page_title: 'A prepaus'
@@@ -277,14 -265,14 +277,14 @@@ howto
  
  quickstart:
      page_title: 'Per ben començar'
 -    # more: 'More…'
 +    more: 'Mai…'
      intro:
          title: 'Benvenguda sus wallabag !'
          paragraph_1: "Anem vos guidar per far lo torn de la proprietat e vos presentar unas fonccionalitats que vos poirián interessar per vos apropriar aquesta aisina."
          paragraph_2: 'Seguètz-nos '
      configure:
 -        title: "Configuratz l'aplicacio"
 -        # description: 'In order to have an application which suits you, have a look into the configuration of wallabag.'
 +        title: "Configuratz l'aplicacion"
 +        description: "Per fin d'aver una aplicacion que vos va ben, anatz veire la configuracion de wallabag."
          language: "Cambiatz la lenga e l'estil de l'aplicacion"
          rss: 'Activatz los fluxes RSS'
          tagging_rules: 'Escrivètz de règlas per classar automaticament vòstres articles'
          import: 'Configurar los impòrt'
      first_steps:
          title: 'Primièrs passes'
 -        # description: "Now wallabag is well configured, it's time to archive the web. You can click on the top right sign + to add a link."
 +        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."
          new_article: 'Ajustatz vòstre primièr article'
          unread_articles: 'E racaptatz-lo !'
      migrate:
          readability: 'Migrar dempuèi Readability'
          instapaper: 'Migrar dempuèi Instapaper'
      developer:
 -        title: 'Pels desvolopadors'
 -        # description: 'We also thought to the developers: Docker, API, translations, etc.'
 +        title: 'Pels desvolopaires'
 +        description: 'Avèm tanben pensat als desvolopaires : Docker, API, traduccions, etc.'
          create_application: 'Crear vòstra aplicacion tèrça'
 -        # use_docker: 'Use Docker to install wallabag'
 +        use_docker: 'Utilizar Docker per installar wallabag'
      docs:
          title: 'Documentacion complèta'
 -        # description: "There are so much features in wallabag. Don't hesitate to read the manual to know them and to learn how to use them."
 -        annotate: 'Anotatar vòstre article'
 +        description: "I a un fum de fonccionalitats dins wallabag. Esitetz pas a legir lo manual per las conéisser e aprendre a las utilizar."
 +        annotate: 'Anotar vòstre article'
          export: 'Convertissètz vòstres articles en ePub o en PDF'
          search_filters: "Aprenètz a utilizar lo motor de recèrca e los filtres per retrobar l'article que vos interèssa"
          fetching_errors: "Qué far se mon article es pas recuperat coma cal ?"
@@@ -402,7 -390,7 +402,7 @@@ developer
          warn_message_2: "Se suprimissètz un client, totas las aplicacions que l'emplegan foncionaràn pas mai amb vòstre compte wallabag."
          action: 'Suprimir aqueste client'
      client:
 -        page_title: 'Desvlopador > Novèl client'
 +        page_title: 'Desvolopaire > Novèl client'
          page_description: "Anatz crear un novèl client. Mercés de cumplir l'url de redireccion cap a vòstra aplicacion."
          form:
              name_label: "Nom del client"
              save_label: 'Crear un novèl client'
          action_back: 'Retorn'
      client_parameter:
 -        page_title: 'Desvolopador > Los paramètres de vòstre client'
 +        page_title: 'Desvolopaire > Los paramètres de vòstre client'
          page_description: 'Vaquí los paramètres de vòstre client'
          field_name: 'Nom del client'
          field_id: 'ID Client'
          back: 'Retour'
          read_howto: 'Legir "cossí crear ma primièra aplicacion"'
      howto:
 -        page_title: 'Desvolopador > Cossí crear ma primièra aplicacion'
 +        page_title: 'Desvolopaire > Cossí crear ma primièra aplicacion'
          description:
              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."
              paragraph_2: "Vos cal un geton per escambiar entre vòstra aplicacion e l'API de wallabar."
          back: 'Retorn'
  
  user:
 -    # page_title: Users management
 -    # new_user: Create a new user
 -    # edit_user: Edit an existing user
 -    # description: "Here you can manage all users (create, edit and delete)"
 -    list:
 -    #     actions: Actions
 -    #     edit_action: Edit
 -    #     yes: Yes
 -    #     no: No
 -    #     create_new_one: Create a new user
 +    page_title: 'Gestion dels utilizaires'
 +    new_user: 'Crear un novèl utilizaire'
 +    edit_user: 'Modificar un utilizaire existent'
 +    description: "Aquí podètz gerir totes los utilizaires (crear, modificar e suprimir)"
 +    list:
 +         actions: 'Accions'
 +         edit_action: 'Modificar'
 +         yes: 'Òc'
 +         no: 'Non'
 +         create_new_one: 'Crear un novèl utilizaire'
      form:
          username_label: "Nom d'utilizaire"
 -        # name_label: 'Name'
 +        name_label: 'Nom'
          password_label: 'Senhal'
          repeat_new_password_label: 'Confirmatz vòstre novèl senhal'
          plain_password_label: 'Senhal en clar'
          email_label: 'Adreça de corrièl'
 -        # enabled_label: 'Enabled'
 -        # locked_label: 'Locked'
 -        # last_login_label: 'Last login'
 -        # twofactor_label: Two factor authentication
 -        # save: Save
 -        # delete: Delete
 -        # delete_confirm: Are you sure?
 -        # back_to_list: Back to list
 +        enabled_label: 'Actiu'
 +        locked_label: 'Varrolhat'
 +        last_login_label: 'Darrièra connexion'
 +        twofactor_label: 'Autentificacion doble-factor'
 +        save: 'Enregistrar'
 +        delete: 'Suprimir'
 +        delete_confirm: 'Sètz segur ?'
 +        back_to_list: 'Tornar a la lista'
  
+ error:
+     # page_title: An error occurred
  flashes:
      config:
          notice:
              rss_updated: 'La configuracion dels fluxes RSS es ben estada mesa a jorn'
              tagging_rules_updated: 'Règlas misa a jorn'
              tagging_rules_deleted: 'Règla suprimida'
 -            user_added: 'Utilizaire "%username%" apondut'
 +            user_added: 'Utilizaire "%username%" ajustat'
              rss_token_updated: 'Geton RSS mes a jorn'
 +            # annotations_reset: Annotations reset
 +            # tags_reset: Tags reset
 +            # entries_reset: Entries reset
      entry:
          notice:
              entry_already_saved: 'Article ja salvargardat lo %date%'
              entry_reloaded_failed: "L'article es estat cargat de nòu mai la recuperacion del contengut a fracassat"
              entry_archived: 'Article marcat coma legit'
              entry_unarchived: 'Article marcat coma pas legit'
 -            entry_starred: 'Article apondut dins los favorits'
 +            entry_starred: 'Article ajustat dins los favorits'
              entry_unstarred: 'Article quitat dels favorits'
              entry_deleted: 'Article suprimit'
      tag:
          notice:
 -            tag_added: 'Etiqueta aponduda'
 +            tag_added: 'Etiqueta ajustada'
      import:
          notice:
              failed: "L'importacion a fracassat, mercés de tornar ensajar"
index b05a9dfd9a62a18547d424e826dafd058c69c7de,798b39c22ca761f1fdad09fe3edc3555a75e08b8..8eef998b69ff8b225f09b44c9e1ff9cb04c8321a
@@@ -88,18 -88,6 +88,18 @@@ config
          name_label: 'Nazwa'
          email_label: 'Adres email'
          twoFactorAuthentication_label: 'Autoryzacja dwuetapowa'
 +        delete:
 +            title: Usuń moje konto (niebezpieczna strefa !)
 +            description: Jeżeli usuniesz swoje konto, wszystkie twoje artykuły, tagi, adnotacje, oraz konto zostaną trwale usunięte (operacja jest NIEODWRACALNA). Następnie zostaniesz wylogowany.
 +            confirm: Jesteś pewien? (tej operacji NIE MOŻNA cofnąć)
 +            button: Usuń moje konto
 +    reset:
 +        # title: Reset area (a.k.a danger zone)
 +        # description: By hiting buttons below you'll have ability to remove some informations from your account. Be aware that these actions are IRREVERSIBLE.
 +        # annotations: Remove ALL annotations
 +        # tags: Remove ALL tags
 +        # entries: Remove ALL entries
 +        # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
      form_password:
          old_password_label: 'Stare hasło'
          new_password_label: 'Nowe hasło'
@@@ -457,6 -445,9 +457,9 @@@ user
          delete_confirm: Jesteś pewien?
          back_to_list: Powrót do listy
  
+ error:
+     # page_title: An error occurred
  flashes:
      config:
          notice:
              tagging_rules_deleted: 'Reguła tagowania usunięta'
              user_added: 'Użytkownik "%username%" dodany'
              rss_token_updated: 'Token kanału RSS zaktualizowany'
 +            # annotations_reset: Annotations reset
 +            # tags_reset: Tags reset
 +            # entries_reset: Entries reset
      entry:
          notice:
              entry_already_saved: 'Wpis już został dodany %date%'
index 571452c042e11da74d4b6189cd7f2a4cefa3dbff,21f27e0880f4e14ed973bb57ac609abd55121a36..6e4813e58aecbad389420bc887044141e63f95c7
@@@ -88,18 -88,6 +88,18 @@@ config
          name_label: 'Nume'
          email_label: 'E-mail'
          # twoFactorAuthentication_label: 'Two factor authentication'
 +        delete:
 +            # title: Delete my account (a.k.a danger zone)
 +            # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
 +            # confirm: Are you really sure? (THIS CAN'T BE UNDONE)
 +            # button: Delete my account
 +    reset:
 +        # title: Reset area (a.k.a danger zone)
 +        # description: By hiting buttons below you'll have ability to remove some informations from your account. Be aware that these actions are IRREVERSIBLE.
 +        # annotations: Remove ALL annotations
 +        # tags: Remove ALL tags
 +        # entries: Remove ALL entries
 +        # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
      form_password:
          old_password_label: 'Parola veche'
          new_password_label: 'Parola nouă'
@@@ -457,6 -445,9 +457,9 @@@ user
          # delete_confirm: Are you sure?
          # back_to_list: Back to list
  
+ error:
+     # page_title: An error occurred
  flashes:
      config:
          notice:
              # tagging_rules_deleted: 'Tagging rule deleted'
              # user_added: 'User "%username%" added'
              # rss_token_updated: 'RSS token updated'
 +            # annotations_reset: Annotations reset
 +            # tags_reset: Tags reset
 +            # entries_reset: Entries reset
      entry:
          notice:
              # entry_already_saved: 'Entry already saved on %date%'
index 8e42965337f2a08e1cc0dbd1ba19ff744677421e,f137ec996c321474687dd7e2af40f986fc9cb97a..769031023d3235b57b7861a4673f217f8bd91abb
@@@ -88,18 -88,6 +88,18 @@@ config
          name_label: 'İsim'
          email_label: 'E-posta'
          twoFactorAuthentication_label: 'İki adımlı doğrulama'
 +        delete:
 +            # title: Delete my account (a.k.a danger zone)
 +            # description: If you remove your account, ALL your articles, ALL your tags, ALL your annotations and your account will be PERMANENTLY removed (it can't be UNDONE). You'll then be logged out.
 +            # confirm: Are you really sure? (THIS CAN'T BE UNDONE)
 +            # button: Delete my account
 +    reset:
 +        # title: Reset area (a.k.a danger zone)
 +        # description: By hiting buttons below you'll have ability to remove some informations from your account. Be aware that these actions are IRREVERSIBLE.
 +        # annotations: Remove ALL annotations
 +        # tags: Remove ALL tags
 +        # entries: Remove ALL entries
 +        # confirm: Are you really really sure? (THIS CAN'T BE UNDONE)
      form_password:
          old_password_label: 'Eski şifre'
          new_password_label: 'Yeni şifre'
@@@ -456,6 -444,9 +456,9 @@@ user
          # delete_confirm: Are you sure?
          # back_to_list: Back to list
  
+ error:
+     # page_title: An error occurred
  flashes:
      config:
          notice:
              tagging_rules_deleted: 'Tagging rule deleted'
              user_added: 'User "%username%" added'
              rss_token_updated: 'RSS token updated'
 +            # annotations_reset: Annotations reset
 +            # tags_reset: Tags reset
 +            # entries_reset: Entries reset
      entry:
          notice:
              entry_already_saved: 'Entry already saved on %date%'
index 79826e0f1d2061817a33e6ebaba98c62d23ece53,19faddc05b5a900eb6b98657c26a2395d4fc3fa8..b53ae2fef48be6eabc2b43146f01000443db9cc6
                  <div class="row">
                      <div class="div_tabs col s12">
                          <ul class="tabs">
-                             <li class="tab col s3"><a class="active" href="#set1">{{ 'config.tab_menu.settings'|trans }}</a></li>
-                             <li class="tab col s3"><a href="#set2">{{ 'config.tab_menu.rss'|trans }}</a></li>
-                             <li class="tab col s3"><a href="#set3">{{ 'config.tab_menu.user_info'|trans }}</a></li>
-                             <li class="tab col s3"><a href="#set4">{{ 'config.tab_menu.password'|trans }}</a></li>
-                             <li class="tab col s3"><a href="#set5">{{ 'config.tab_menu.rules'|trans }}</a></li>
+                             <li class="tab col s12 m6 l3"><a class="active" href="#set1">{{ 'config.tab_menu.settings'|trans }}</a></li>
+                             <li class="tab col s12 m6 l3"><a href="#set2">{{ 'config.tab_menu.rss'|trans }}</a></li>
+                             <li class="tab col s12 m6 l3"><a href="#set3">{{ 'config.tab_menu.user_info'|trans }}</a></li>
+                             <li class="tab col s12 m6 l3"><a href="#set4">{{ 'config.tab_menu.password'|trans }}</a></li>
+                             <li class="tab col s12 m6 l3"><a href="#set5">{{ 'config.tab_menu.rules'|trans }}</a></li>
                          </ul>
                      </div>
  
                              {{ form_widget(form.user.save, {'attr': {'class': 'btn waves-effect waves-light'}}) }}
                              {{ form_widget(form.user._token) }}
                          </form>
 +
 +                        <br /><hr /><br />
 +
 +                        <div class="row">
 +                            <h5>{{ 'config.reset.title'|trans }}</h5>
 +                            <p>{{ 'config.reset.description'|trans }}</p>
 +                            <a href="{{ path('config_reset', { type: 'annotations'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
 +                                {{ 'config.reset.annotations'|trans }}
 +                            </a>
 +                            <a href="{{ path('config_reset', { type: 'tags'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
 +                                {{ 'config.reset.tags'|trans }}
 +                            </a>
 +                            <a href="{{ path('config_reset', { type: 'entries'}) }}" onclick="return confirm('{{ 'config.reset.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red">
 +                                {{ 'config.reset.entries'|trans }}
 +                            </a>
 +                        </div>
 +
 +                        {% if enabled_users > 1 %}
 +                            <br /><hr /><br />
 +
 +                            <div class="row">
 +                                <h5>{{ 'config.form_user.delete.title'|trans }}</h5>
 +                                <p>{{ 'config.form_user.delete.description'|trans }}</p>
 +                                <a href="{{ path('delete_account') }}" onclick="return confirm('{{ 'config.form_user.delete.confirm'|trans|escape('js') }}')" class="waves-effect waves-light btn red delete-account">
 +                                    {{ 'config.form_user.delete.button'|trans }}
 +                                </a>
 +                            </div>
 +                        {% endif %}
                      </div>
  
                      <div id="set4" class="col s12">