aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--app/Resources/CraueConfigBundle/translations/CraueConfigBundle.es.yml28
-rwxr-xr-xapp/Resources/static/themes/material/css/main.css4
-rw-r--r--app/config/config.yml2
-rw-r--r--composer.json5
-rw-r--r--docs/de/developer/api.rst7
-rw-r--r--docs/de/index.rst1
-rw-r--r--docs/de/user/configuring_mobile.rst12
-rw-r--r--docs/en/developer/api.rst7
-rw-r--r--docs/en/index.rst1
-rw-r--r--docs/en/user/configuring_mobile.rst13
-rw-r--r--docs/en/user/first_article.rst66
-rw-r--r--docs/en/user/installation.rst17
-rw-r--r--docs/en/user/share.rst17
-rw-r--r--docs/fr/developer/api.rst5
-rw-r--r--docs/fr/index.rst1
-rw-r--r--docs/fr/user/configuring_mobile.rst12
-rw-r--r--docs/fr/user/installation.rst18
-rw-r--r--docs/it/conf.py55
-rw-r--r--docs/it/developer/api.rst269
-rw-r--r--docs/it/developer/asynchronous.rst162
-rw-r--r--docs/it/developer/docker.rst41
-rw-r--r--docs/it/developer/documentation.rst12
-rw-r--r--docs/it/developer/paywall.rst52
-rw-r--r--docs/it/developer/testsuite.rst6
-rw-r--r--docs/it/developer/translate.rst55
-rw-r--r--docs/it/index.rst53
-rw-r--r--docs/it/requirements.txt2
-rw-r--r--docs/it/user/android.rst107
-rw-r--r--docs/it/user/articles.rst115
-rw-r--r--docs/it/user/backup.rst30
-rw-r--r--docs/it/user/configuration.rst104
-rw-r--r--docs/it/user/configuring_mobile.rst12
-rw-r--r--docs/it/user/create_account.rst38
-rw-r--r--docs/it/user/errors_during_fetching.rst37
-rw-r--r--docs/it/user/faq.rst53
-rw-r--r--docs/it/user/filters.rst45
-rw-r--r--docs/it/user/import.rst115
-rw-r--r--docs/it/user/installation.rst333
-rw-r--r--docs/it/user/parameters.rst93
-rw-r--r--docs/it/user/upgrade.rst102
-rw-r--r--scripts/require.sh2
-rw-r--r--src/Wallabag/CoreBundle/Helper/HttpClientFactory.php10
-rw-r--r--src/Wallabag/CoreBundle/Resources/config/services.yml5
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.es.yml226
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.it.yml2
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml120
-rw-r--r--src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml12
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_full_image.html.twig4
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_list.html.twig2
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_no_preview.html.twig4
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_preview.html.twig8
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig20
-rw-r--r--src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig20
-rw-r--r--src/Wallabag/UserBundle/Resources/translations/wallabag_user.es.yml11
-rw-r--r--web/bundles/wallabagcore/themes/baggy/css/style.min.css2
-rw-r--r--web/bundles/wallabagcore/themes/material/css/style.min.css2
56 files changed, 2237 insertions, 320 deletions
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.es.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.es.yml
index dbec0e81..c338836d 100644
--- a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.es.yml
+++ b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.es.yml
@@ -1,7 +1,7 @@
1# settings_changed: Configuration updated 1settings_changed: Configuración actualizada
2download_pictures: Descargar imágenes 2download_pictures: Descargar imágenes en el servidor
3carrot: Activar compartir con Carrot 3carrot: Activar compartir con Carrot
4diaspora_url: Diaspora URL, si el servicio está activado 4diaspora_url: URL de Diaspora, si el servicio está activado
5export_epub: Activar exportación a ePub 5export_epub: Activar exportación a ePub
6export_mobi: Activar exportación a .mobi 6export_mobi: Activar exportación a .mobi
7export_pdf: Activar exportación a PDF 7export_pdf: Activar exportación a PDF
@@ -9,11 +9,11 @@ export_csv: Activar exportación a CSV
9export_json: Activar exportación a JSON 9export_json: Activar exportación a JSON
10export_txt: Activar exportación a TXT 10export_txt: Activar exportación a TXT
11export_xml: Activar exportación a XML 11export_xml: Activar exportación a XML
12# import_with_rabbitmq: Enable RabbitMQ to import data asynchronously 12import_with_rabbitmq: Activar RabbitMQ para importar datos de forma asíncrona
13# import_with_redis: Enable Redis to import data asynchronously 13import_with_redis: Activar Redis para importar datos de forma asíncrona
14shaarli_url: Shaarli URL, si el servicio está activado 14shaarli_url: URL de Shaarli, si el servicio está activado
15share_diaspora: Activar compartir con Diaspora 15share_diaspora: Activar compartir con Diaspora
16share_mail: Activar compartir con email 16share_mail: Activar compartir con Email
17share_shaarli: Activar compartir con Shaarli 17share_shaarli: Activar compartir con Shaarli
18share_twitter: Activar compartir con Twitter 18share_twitter: Activar compartir con Twitter
19share_unmark: Activar compartir con Unmark.it 19share_unmark: Activar compartir con Unmark.it
@@ -24,12 +24,12 @@ entry: "artículo"
24export: "exportar" 24export: "exportar"
25import: "importar" 25import: "importar"
26misc: "misc" 26misc: "misc"
27modify_settings: "modificar configuración" 27modify_settings: "guardar"
28piwik_host: Host de tu website de Piwik (sin http:// o https://) 28piwik_host: Host de tu website en Piwik (sin http:// o https://)
29piwik_site_id: ID de tu website de Piwik 29piwik_site_id: ID de tu website en Piwik
30piwik_enabled: Activar Piwik 30piwik_enabled: Activar Piwik
31demo_mode_enabled: "Activar modo demo (sólo usado para la demo de wallabag)" 31demo_mode_enabled: "Activar modo demo (sólo usado en la demo pública de wallabag)"
32demo_mode_username: "Nombre de usuario demo" 32demo_mode_username: "Nombre de usuario demo"
33# share_public: Allow public url for entries 33share_public: Permitir URL pública para los artículos
34# download_images_enabled: Download images locally 34download_images_enabled: Descargar imágenes localmente
35# restricted_access: Enable authentication for websites with paywall 35restricted_access: Activar autenticación para websites con paywall
diff --git a/app/Resources/static/themes/material/css/main.css b/app/Resources/static/themes/material/css/main.css
index f43e6042..ee4ad4e0 100755
--- a/app/Resources/static/themes/material/css/main.css
+++ b/app/Resources/static/themes/material/css/main.css
@@ -291,6 +291,7 @@ nav {
291 display: flex; 291 display: flex;
292 flex-wrap: wrap; 292 flex-wrap: wrap;
293 justify-content: space-between; 293 justify-content: space-between;
294 min-height: 64px;
294} 295}
295 296
296.nav-wrapper .button-collapse { 297.nav-wrapper .button-collapse {
@@ -369,7 +370,8 @@ nav {
369.input-field.nav-panel-add form, 370.input-field.nav-panel-add form,
370.input-field.nav-panel-search, 371.input-field.nav-panel-search,
371.input-field.nav-panel-search form { 372.input-field.nav-panel-search form {
372 flex-grow: 1; 373 display: flex;
374 flex: 1;
373} 375}
374 376
375/* ========================================================================== 377/* ==========================================================================
diff --git a/app/config/config.yml b/app/config/config.yml
index a69a979d..4e802c98 100644
--- a/app/config/config.yml
+++ b/app/config/config.yml
@@ -238,7 +238,7 @@ scheb_two_factor:
238 mailer: wallabag_user.auth_code_mailer 238 mailer: wallabag_user.auth_code_mailer
239 239
240kphoen_rulerz: 240kphoen_rulerz:
241 executors: 241 targets:
242 doctrine: true 242 doctrine: true
243 243
244old_sound_rabbit_mq: 244old_sound_rabbit_mq:
diff --git a/composer.json b/composer.json
index 49a1f35f..b919f446 100644
--- a/composer.json
+++ b/composer.json
@@ -51,7 +51,7 @@
51 "symfony/swiftmailer-bundle": "^2.3", 51 "symfony/swiftmailer-bundle": "^2.3",
52 "symfony/monolog-bundle": "^3.0", 52 "symfony/monolog-bundle": "^3.0",
53 "sensio/distribution-bundle": "^5.0", 53 "sensio/distribution-bundle": "^5.0",
54 "sensio/framework-extra-bundle": "3.0.19", 54 "sensio/framework-extra-bundle": "^3.0.2",
55 "incenteev/composer-parameter-handler": "^2.0", 55 "incenteev/composer-parameter-handler": "^2.0",
56 "nelmio/cors-bundle": "~1.4.0", 56 "nelmio/cors-bundle": "~1.4.0",
57 "friendsofsymfony/rest-bundle": "~2.1", 57 "friendsofsymfony/rest-bundle": "~2.1",
@@ -71,8 +71,7 @@
71 "scheb/two-factor-bundle": "~2.0", 71 "scheb/two-factor-bundle": "~2.0",
72 "grandt/phpepub": "~4.0", 72 "grandt/phpepub": "~4.0",
73 "wallabag/php-mobi": "~1.0.0", 73 "wallabag/php-mobi": "~1.0.0",
74 "kphoen/rulerz-bundle": "~0.10", 74 "kphoen/rulerz-bundle": "~0.13",
75 "kphoen/rulerz": "0.19.1",
76 "guzzlehttp/guzzle": "^5.3.1", 75 "guzzlehttp/guzzle": "^5.3.1",
77 "doctrine/doctrine-migrations-bundle": "^1.0", 76 "doctrine/doctrine-migrations-bundle": "^1.0",
78 "paragonie/random_compat": "~1.0", 77 "paragonie/random_compat": "~1.0",
diff --git a/docs/de/developer/api.rst b/docs/de/developer/api.rst
index 9d230e31..7a18afde 100644
--- a/docs/de/developer/api.rst
+++ b/docs/de/developer/api.rst
@@ -254,7 +254,7 @@ cURL Beispiel:
254Andere Methoden 254Andere Methoden
255--------------- 255---------------
256 256
257Wir werden nicht für jede API Methode Beispiele schreiben. 257Wir werden nicht für jede API Methode Beispiele schreiben.
258 258
259Wirf einen Blick in die Liste http://localhost:8000/api/doc, um alle Methode kennenzulernen. 259Wirf einen Blick in die Liste http://localhost:8000/api/doc, um alle Methode kennenzulernen.
260 260
@@ -264,8 +264,9 @@ Drittanbieter Ressourcen
264 264
265Einige Applikationen oder Bibliotheken nutzen unsere API. Hier ist eine nicht abschließende Aufzählung von ihnen: 265Einige Applikationen oder Bibliotheken nutzen unsere API. Hier ist eine nicht abschließende Aufzählung von ihnen:
266 266
267- `Java wrapper for the wallabag API <https://github.com/Strubbl/jWallabag>`_ von Strubbl. 267- `Java wrapper for the wallabag API <https://github.com/di72nn/wallabag-api-wrapper>`_ von Dmitriy Bogdanov.
268- `.NET library for the wallabag v2 API <https://github.com/jlnostr/wallabag-api>`_ von Julian Oster. 268- `.NET library for the wallabag v2 API <https://github.com/jlnostr/wallabag-api>`_ von Julian Oster.
269- `Python API for wallabag <https://github.com/foxmask/wallabag_api>`_ von FoxMaSk, für sein Projekt `Trigger Happy <https://blog.trigger-happy.eu/>`_. 269- `Python API for wallabag <https://github.com/foxmask/wallabag_api>`_ von FoxMaSk, für sein Projekt `Trigger Happy <https://blog.trigger-happy.eu/>`_.
270- `A plugin <https://github.com/joshp23/ttrss-to-wallabag-v2>`_ entworfen für `Tiny Tiny RSS <https://tt-rss.org/gitlab/fox/tt-rss/wikis/home>`_, das die wallabag v2 API nutzt. Von Josh Panter. 270- `A plugin <https://github.com/joshp23/ttrss-to-wallabag-v2>`_ entworfen für `Tiny Tiny RSS <https://tt-rss.org/gitlab/fox/tt-rss/wikis/home>`_, das die wallabag v2 API nutzt. Von Josh Panter.
271- `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ von Strubbl, für sein Projekt `wallabag-stats Graph <https://github.com/Strubbl/wallabag-stats>`_. 271- `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ von Strubbl, für seine Projekte `wallabag-stats Graph <https://github.com/Strubbl/wallabag-stats>`_ und das Kommandozeilentool `wallabag-add-article <https://github.com/Strubbl/wallabag-add-article>`_.
272- Tool, um automatisiert wallabag Artikel auf den lokalen PC oder ebook reader zu laden `wallabako <https://gitlab.com/anarcat/wallabako>`_ von anarcat.
diff --git a/docs/de/index.rst b/docs/de/index.rst
index 1c3e4873..6e725fbe 100644
--- a/docs/de/index.rst
+++ b/docs/de/index.rst
@@ -33,6 +33,7 @@ Die Dokumentation ist in anderen Sprachen verfügbar :
33 user/errors_during_fetching 33 user/errors_during_fetching
34 user/filters 34 user/filters
35 user/tags 35 user/tags
36 user/configuring_mobile
36 user/android 37 user/android
37 user/parameters 38 user/parameters
38 user/backup 39 user/backup
diff --git a/docs/de/user/configuring_mobile.rst b/docs/de/user/configuring_mobile.rst
new file mode 100644
index 00000000..c80320c9
--- /dev/null
+++ b/docs/de/user/configuring_mobile.rst
@@ -0,0 +1,12 @@
1Konfiguration mobiler Apps für wallabag
2=======================================
3
4Schritte zum Konfigurieren der App
5----------------------------------
6
7- Als Erstes erstellst du einen *neuen Client* in dem Abschnitt ``API Client Management``. Der Name deiner App ist dabei nicht so wichtig wie die ``Client-ID`` und das ``Client-Secret``. Schreib diese zwei Werte auf.
8- Wenn du eine mobile App herunterlädst, wird sie dich nach der Server-Adresse deiner wallabag-Instanz fragen. Zum Beispiel ist es ``https://app.wallabag.it`` bei wallabag.it.
9- Sie wird dich auch nach den zuvor genannten ``Client-ID`` und ``Client-Secret`` fragen. Bitte trage diese in die Textfelder ein, wenn du danach gefragt wirst.
10- Zuletzt musst du deinen ``Benutzernamen`` und ``Passwort`` bereitstellen. Diese Zugangsdaten sind die gleichen, die du zum Login bei wallabag nutzt.
11
12Bitte schaue auch auf die `Android <android.html>`_ Seite und dort insbesondere den Abschnitt *Bekannte Limitierungen*.
diff --git a/docs/en/developer/api.rst b/docs/en/developer/api.rst
index b6c9ed3f..80c96025 100644
--- a/docs/en/developer/api.rst
+++ b/docs/en/developer/api.rst
@@ -8,7 +8,7 @@ Requirements
8 8
9* wallabag freshly (or not) installed on http://localhost:8000 9* wallabag freshly (or not) installed on http://localhost:8000
10* ``httpie`` installed on your computer (`see project website <https://github.com/jkbrzt/httpie>`__). Note that you can also adapt the commands using curl or wget. 10* ``httpie`` installed on your computer (`see project website <https://github.com/jkbrzt/httpie>`__). Note that you can also adapt the commands using curl or wget.
11* all the API methods are documented here http://localhost:8000/api/doc (on your instance) and `on our example instance <http://v2.wallabag.org/api/doc>`_ 11* all the API methods are documented here http://localhost:8000/api/doc (on your instance) and `on our example instance <http://v2.wallabag.org/api/doc>`_
12 12
13Creating a new API client 13Creating a new API client
14------------------------- 14-------------------------
@@ -263,8 +263,9 @@ Third party resources
263 263
264Some applications or libraries use our API. Here is a non-exhaustive list of them: 264Some applications or libraries use our API. Here is a non-exhaustive list of them:
265 265
266- `Java wrapper for the wallabag API <https://github.com/Strubbl/jWallabag>`_ by Strubbl. 266- `Java wrapper for the wallabag API <https://github.com/di72nn/wallabag-api-wrapper>`_ by Dmitriy Bogdanov.
267- `.NET library for the wallabag v2 API <https://github.com/jlnostr/wallabag-api>`_ by Julian Oster. 267- `.NET library for the wallabag v2 API <https://github.com/jlnostr/wallabag-api>`_ by Julian Oster.
268- `Python API for wallabag <https://github.com/foxmask/wallabag_api>`_ by FoxMaSk, for his project `Trigger Happy <https://blog.trigger-happy.eu/>`_. 268- `Python API for wallabag <https://github.com/foxmask/wallabag_api>`_ by FoxMaSk, for his project `Trigger Happy <https://blog.trigger-happy.eu/>`_.
269- `A plugin <https://github.com/joshp23/ttrss-to-wallabag-v2>`_ designed for `Tiny Tiny RSS <https://tt-rss.org/gitlab/fox/tt-rss/wikis/home>`_ that makes use of the wallabag v2 API. By Josh Panter. 269- `A plugin <https://github.com/joshp23/ttrss-to-wallabag-v2>`_ designed for `Tiny Tiny RSS <https://tt-rss.org/gitlab/fox/tt-rss/wikis/home>`_ that makes use of the wallabag v2 API. By Josh Panter.
270- `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ by Strubbl, for his project `wallabag-stats graph <https://github.com/Strubbl/wallabag-stats>`_. 270- `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ by Strubbl, for his projects `wallabag-stats graph <https://github.com/Strubbl/wallabag-stats>`_ and the command line tool `wallabag-add-article <https://github.com/Strubbl/wallabag-add-article>`_.
271- Tool to automatically download Wallabag articles into your local computer or Kobo ebook reader `wallabako <https://gitlab.com/anarcat/wallabako>`_ by anarcat.
diff --git a/docs/en/index.rst b/docs/en/index.rst
index 2e20aee6..89f61d6d 100644
--- a/docs/en/index.rst
+++ b/docs/en/index.rst
@@ -33,6 +33,7 @@ The documentation is available in other languages:
33 user/errors_during_fetching 33 user/errors_during_fetching
34 user/filters 34 user/filters
35 user/tags 35 user/tags
36 user/configuring_mobile
36 user/android 37 user/android
37 user/parameters 38 user/parameters
38 user/backup 39 user/backup
diff --git a/docs/en/user/configuring_mobile.rst b/docs/en/user/configuring_mobile.rst
new file mode 100644
index 00000000..7229aed6
--- /dev/null
+++ b/docs/en/user/configuring_mobile.rst
@@ -0,0 +1,13 @@
1Configuring mobile apps to work with wallabag
2=============================================
3
4Steps to configure the app
5--------------------------
6
7- First *create a new client* in the ``API clients management`` section. The name of your app doesn't matter as much as the ``Client ID`` and the ``Client secret``. Write these two values down.
8- When you download a mobile app, it's going to ask for the server address of the hosted wallabag instance. For example, with wallabag.it that is: ``https://app.wallabag.it``.
9- It's also going to ask for the aforementioned ``Client ID`` and ``secret``. Please insert those in the text fields, when asked.
10- Lastly you need to provide your ``username`` and ``password``. These are the same credentials you use to login in to wallabag.
11
12Please also have a look at `Android <android.html>`_ page. Especially the section on *known limitations*.
13
diff --git a/docs/en/user/first_article.rst b/docs/en/user/first_article.rst
deleted file mode 100644
index 1400e1e8..00000000
--- a/docs/en/user/first_article.rst
+++ /dev/null
@@ -1,66 +0,0 @@
1Save your first article
2=======================
3
4The main purpose of wallabag is to save web articles. You have many ways to do it.
5
6.. note::
7
8 A quickstart will be displayed in the application until you save your first article.
9
10By using a bookmarklet
11----------------------
12
13On the ``Howto`` page, you have a ``Bookmarklet`` tab. Drag and drop the ``bag it!``
14link to your bookmarks bar of your browser.
15
16Now, each time you're reading an article on the web and you want to save it,
17click on the ``bag it!`` link in your bookmarks bar. The article is saved.
18
19By using the classic form
20-------------------------
21
22In the top bar of your screen, you have 3 icons. With the first one, a plus sign,
23you can easily save a new article.
24
25.. image:: ../../img/user/topbar.png
26 :alt: Top bar
27 :align: center
28
29Click on it to display a new field, paste the article URL inside and press your
30``Return`` key. The article is saved.
31
32By using a browser add-on
33-------------------------
34
35Firefox
36~~~~~~~
37
38*This addon is not yet available for wallabag v2*.
39
40Chrome
41~~~~~~
42
43*This addon is not yet available for wallabag v2*.
44
45By using your smarphone application
46-----------------------------------
47
48Android
49~~~~~~~
50
51*This application is not yet available for wallabag v2*.
52
53Firefox OS
54~~~~~~~~~~
55
56*This application is not yet available for wallabag v2*.
57
58Windows Phone
59~~~~~~~~~~~~~
60
61*This application is not yet available for wallabag v2*.
62
63iOS
64~~~
65
66*This application is not yet available for wallabag v2*.
diff --git a/docs/en/user/installation.rst b/docs/en/user/installation.rst
index 7d3bcf61..7fb81aeb 100644
--- a/docs/en/user/installation.rst
+++ b/docs/en/user/installation.rst
@@ -149,6 +149,23 @@ Assuming you install wallabag in the ``/var/www/wallabag`` folder and that you w
149 ErrorLog /var/log/apache2/wallabag_error.log 149 ErrorLog /var/log/apache2/wallabag_error.log
150 CustomLog /var/log/apache2/wallabag_access.log combined 150 CustomLog /var/log/apache2/wallabag_access.log combined
151 </VirtualHost> 151 </VirtualHost>
152
153
154.. tip:: Note for Apache 2.4, in the section `<Directory /var/www/wallabag/web>` you have to replace the directives :
155
156::
157
158 AllowOverride None
159 Order Allow,Deny
160 Allow from All
161
162
163by
164
165::
166
167 Require All granted
168
152 169
153After reloading or restarting Apache, you should now be able to access wallabag at http://domain.tld. 170After reloading or restarting Apache, you should now be able to access wallabag at http://domain.tld.
154 171
diff --git a/docs/en/user/share.rst b/docs/en/user/share.rst
deleted file mode 100644
index e99e51ab..00000000
--- a/docs/en/user/share.rst
+++ /dev/null
@@ -1,17 +0,0 @@
1Share articles
2==============
3
4When you're reading an article, you can share it. Just click on the share button:
5
6.. image:: ../../img/user/share.png
7 :alt: share article
8 :align: center
9
10Now, you can share the article:
11
12- with a public URL (you'll have a light view of the article)
13- with a tweet
14- into your Shaarli
15- with a post in Diaspora*
16- to Carrot
17- with an email
diff --git a/docs/fr/developer/api.rst b/docs/fr/developer/api.rst
index 8a6e2a13..e7bb264f 100644
--- a/docs/fr/developer/api.rst
+++ b/docs/fr/developer/api.rst
@@ -263,8 +263,9 @@ Ressources tierces
263 263
264Certaines applications ou bibliothèques utilisent notre API. En voici une liste non exhaustive : 264Certaines applications ou bibliothèques utilisent notre API. En voici une liste non exhaustive :
265 265
266- `Java wrapper for the wallabag API <https://github.com/Strubbl/jWallabag>`_ par Strubbl. 266- `Java wrapper for the wallabag API <https://github.com/di72nn/wallabag-api-wrapper>`_ par Dmitriy Bogdanov.
267- `.NET library for the wallabag v2 API <https://github.com/jlnostr/wallabag-api>`_ par Julian Oster. 267- `.NET library for the wallabag v2 API <https://github.com/jlnostr/wallabag-api>`_ par Julian Oster.
268- `Python API for wallabag <https://github.com/foxmask/wallabag_api>`_ par FoxMaSk, pour son projet `Trigger Happy <https://blog.trigger-happy.eu/>`_. 268- `Python API for wallabag <https://github.com/foxmask/wallabag_api>`_ par FoxMaSk, pour son projet `Trigger Happy <https://blog.trigger-happy.eu/>`_.
269- `Un plugin <https://github.com/joshp23/ttrss-to-wallabag-v2>`_ conçu pour `Tiny Tiny RSS <https://tt-rss.org/gitlab/fox/tt-rss/wikis/home>`_ qui utilise l'API wallabag v2. Par Josh Panter. 269- `Un plugin <https://github.com/joshp23/ttrss-to-wallabag-v2>`_ conçu pour `Tiny Tiny RSS <https://tt-rss.org/gitlab/fox/tt-rss/wikis/home>`_ qui utilise l'API wallabag v2. Par Josh Panter.
270- `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ par Strubbl, pour son projet `wallabag-stats graphe <https://github.com/Strubbl/wallabag-stats>`_. 270- `Golang wrapper for the wallabag API <https://github.com/Strubbl/wallabago>`_ par Strubbl, pour son projets `wallabag-stats graphe <https://github.com/Strubbl/wallabag-stats>`_ et l'outil de ligne de commande `wallabag-add-article <https://github.com/Strubbl/wallabag-add-article>`_.
271- Tool to automatically download Wallabag articles into your local computer or Kobo ebook reader `wallabako <https://gitlab.com/anarcat/wallabako>`_ par anarcat.
diff --git a/docs/fr/index.rst b/docs/fr/index.rst
index e3f14b04..99aaa35a 100644
--- a/docs/fr/index.rst
+++ b/docs/fr/index.rst
@@ -34,6 +34,7 @@ La documentation est disponible dans d'autres langues :
34 user/errors_during_fetching 34 user/errors_during_fetching
35 user/filters 35 user/filters
36 user/tags 36 user/tags
37 user/configuring_mobile
37 user/android 38 user/android
38 user/parameters 39 user/parameters
39 user/backup 40 user/backup
diff --git a/docs/fr/user/configuring_mobile.rst b/docs/fr/user/configuring_mobile.rst
new file mode 100644
index 00000000..4036c354
--- /dev/null
+++ b/docs/fr/user/configuring_mobile.rst
@@ -0,0 +1,12 @@
1Configurer les applications mobile pour wallabag
2================================================
3
4Étapes pour configurer les applications
5---------------------------------------
6
7- Tout d'abord, *créez un nouveau client* dans la section ``Gestion des clients API``. Le nom de votre application importe peu. Ce qui nous intéresse, ce sont l'``ID Client`` et la ``clé secrète``. Notez bien ces deux valeurs.
8- Quand vous installez une application smartphone, on va vous demander de renseigner l'adresse de votre serveur de wallabag. Par exemple, pour wallabag.it, c'est ``https://app.wallabag.it``.
9- Les deux valeurs notées précédemment vous seront également demandées. Insérez-les dans les champs correspondants.
10- Enfin, vous devez renseigner votre ``nom d'utilisateur`` et votre ``mot de passe``. Ce sont les mêmes valeurs que lorsque vous vous connectez à wallabag.
11
12Vous pouvez également regarder du côté de la page `Android <android.html>`_. Particulièrement la section sur les *limitations connues*.
diff --git a/docs/fr/user/installation.rst b/docs/fr/user/installation.rst
index 9ef5ee98..319735af 100644
--- a/docs/fr/user/installation.rst
+++ b/docs/fr/user/installation.rst
@@ -147,6 +147,24 @@ En imaginant que vous vouliez installer wallabag dans le dossier ``/var/www/wall
147 CustomLog /var/log/apache2/wallabag_access.log combined 147 CustomLog /var/log/apache2/wallabag_access.log combined
148 </VirtualHost> 148 </VirtualHost>
149 149
150.. tip:: Pour Apache 2.4, dans la section `<Directory /var/www/wallabag/web>` vous devez remplacer les directives suivantes :
151
152::
153
154 AllowOverride None
155 Order Allow,Deny
156 Allow from All
157
158
159par
160
161::
162
163 Require All granted
164
165
166
167
150Après que vous ayez rechargé/redémarré Apache, vous devriez pouvoir avoir accès à wallabag à l'adresse http://domain.tld. 168Après que vous ayez rechargé/redémarré Apache, vous devriez pouvoir avoir accès à wallabag à l'adresse http://domain.tld.
151 169
152Configuration avec Nginx 170Configuration avec Nginx
diff --git a/docs/it/conf.py b/docs/it/conf.py
new file mode 100644
index 00000000..717b35f1
--- /dev/null
+++ b/docs/it/conf.py
@@ -0,0 +1,55 @@
1# -*- coding: utf-8 -*-
2#
3# wallabag documentation build configuration file, created by
4# sphinx-quickstart on Fri Oct 16 06:47:23 2015.
5
6import sys
7import os
8
9extensions = []
10templates_path = ['_templates']
11source_suffix = '.rst'
12master_doc = 'index'
13project = u'wallabag'
14copyright = u'2013-2016, Nicolas LÅ“uillet - MIT Licence'
15version = '2.1.0'
16release = version
17exclude_patterns = ['_build']
18pygments_style = 'sphinx'
19html_theme = 'default'
20html_static_path = ['_static']
21htmlhelp_basename = 'wallabagdoc'
22latex_elements = {
23
24}
25
26latex_documents = [
27 ('index', 'wallabag.tex', u'wallabag Documentation',
28 u'Nicolas LÅ“uillet', 'manual'),
29]
30
31man_pages = [
32 ('index', 'wallabag', u'wallabag Documentation',
33 [u'Nicolas LÅ“uillet'], 1)
34]
35
36texinfo_documents = [
37 ('index', 'wallabag', u'wallabag Documentation',
38 u'Nicolas LÅ“uillet', 'wallabag', 'wallabag is an opensource read-it-later.',
39 'Miscellaneous'),
40]
41
42##### Guzzle sphinx theme
43
44import guzzle_sphinx_theme
45html_translator_class = 'guzzle_sphinx_theme.HTMLTranslator'
46html_theme_path = guzzle_sphinx_theme.html_theme_path()
47html_theme = 'guzzle_sphinx_theme'
48
49# Custom sidebar templates, maps document names to template names.
50html_sidebars = {
51 '**': ['logo-text.html', 'globaltoc.html', 'searchbox.html']
52}
53
54# Register the theme as an extension to generate a sitemap.xml
55extensions.append("guzzle_sphinx_theme")
diff --git a/docs/it/developer/api.rst b/docs/it/developer/api.rst
new file mode 100644
index 00000000..fc19a175
--- /dev/null
+++ b/docs/it/developer/api.rst
@@ -0,0 +1,269 @@
1Documentazione su API
2---------------------
3
4Grazie a questa documentazione, vedremo come interagire con l'API di wallabag.
5
6Requisiti
7---------
8
9* wallabag appena (o no) installato su http://localhost:8000
10* ``httpie`` installato sul vostro computer (`guardate il sito del progetto <https://github.com/jkbrzt/httpie>`__). Da notare che potete anche adattare i comandi usando curl o wget.
11* tutti i metodi API documentati qui http://localhost:8000/api/doc (sulla vostra istanza) e `sulla nostra istanza d'esempio <http://v2.wallabag.org/api/doc>`_
12
13Creare un nuovo client API
14--------------------------
15
16Sul vostro account wallabag potete creare un nuovo client API presso questo URL http://localhost:8000/developer/client/create.
17
18Date solamente l'URL per il reindirizzamento della vostra applicazione e create il vostro client. Se la vostra applicazione è desktop, inserite l'URL che preferite.
19
20Toverete informazioni come queste:
21
22::
23
24 Client ID:
25
26 1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc
27
28 Client secret:
29
30 636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4
31
32
33Ottenere un token per il ricaricamento
34--------------------------------------
35
36Per ogni chiamata API avrete bisogno di un token. Creiamolo con questo comando (rimpiazzate ``client_id``, ``client_secret``, ``username`` and ``password`` con i loro valori):
37
38::
39
40 http POST http://localhost:8000/oauth/v2/token \
41 grant_type=password \
42 client_id=1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc \
43 client_secret=636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4 \
44 username=wallabag \
45 password=wallabag
46
47Otterrete questo risultato:
48
49::
50
51 HTTP/1.1 200 OK
52 Cache-Control: no-store, private
53 Connection: close
54 Content-Type: application/json
55 Date: Tue, 05 Apr 2016 08:44:33 GMT
56 Host: localhost:8000
57 Pragma: no-cache
58 X-Debug-Token: 19c8e0
59 X-Debug-Token-Link: /_profiler/19c8e0
60 X-Powered-By: PHP/7.0.4
61
62 {
63 "access_token": "ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA",
64 "expires_in": 3600,
65 "refresh_token": "OTNlZGE5OTJjNWQwYzc2NDI5ZGE5MDg3ZTNjNmNkYTY0ZWZhZDVhNDBkZTc1ZTNiMmQ0MjQ0OThlNTFjNTQyMQ",
66 "scope": null,
67 "token_type": "bearer"
68 }
69
70Lavoreremo con il valore ``access_token`` nelle nostre prossime chiamate.
71
72esempio di cURL:
73
74::
75
76 curl -s "https://localhost:8000/oauth/v2/token?grant_type=password&client_id=1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc&client_secret=636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4&username=wallabag&password=wallabag"
77
78Ottenere voci esistenti
79-----------------------
80
81Documentazione per questo metodo: http://localhost:8000/api/doc#get--api-entries.{_format}
82
83Mentre lavoriamo su una nuova installazione di wallabag, non otterremo risultati con questo comando:
84
85::
86
87 http GET http://localhost:8000/api/entries.json \
88 "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA"
89
90restituisce:
91
92::
93
94 HTTP/1.1 200 OK
95 0: application/json
96 Cache-Control: no-cache
97 Connection: close
98 Content-Type: application/json
99 Date: Tue, 05 Apr 2016 08:51:32 GMT
100 Host: localhost:8000
101 Set-Cookie: PHPSESSID=nrogm748md610ovhu6j70c3q63; path=/; HttpOnly
102 X-Debug-Token: 4fbbc4
103 X-Debug-Token-Link: /_profiler/4fbbc4
104 X-Powered-By: PHP/7.0.4
105
106 {
107 "_embedded": {
108 "items": []
109 },
110 "_links": {
111 "first": {
112 "href": "http://localhost:8000/api/entries?page=1&perPage=30"
113 },
114 "last": {
115 "href": "http://localhost:8000/api/entries?page=1&perPage=30"
116 },
117 "self": {
118 "href": "http://localhost:8000/api/entries?page=1&perPage=30"
119 }
120 },
121 "limit": 30,
122 "page": 1,
123 "pages": 1,
124 "total": 0
125 }
126
127L'insieme ``items`` è vuoto.
128
129esempio di cURL:
130
131::
132
133 curl --get "https://localhost:8000/api/entries.html?access_token=ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA"
134
135Aggiungere la vostra prima voce
136-------------------------------
137
138Documentazione per questo metodo: http://localhost:8000/api/doc#post--api-entries.{_format}
139
140::
141
142 http POST http://localhost:8000/api/entries.json \
143 "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" \
144 url="http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html"
145
146restituisce:
147
148::
149
150 HTTP/1.1 200 OK
151 0: application/json
152 Cache-Control: no-cache
153 Connection: close
154 Content-Type: application/json
155 Date: Tue, 05 Apr 2016 09:07:54 GMT
156 Host: localhost:8000
157 Set-Cookie: PHPSESSID=bjie40ck72kp2pst3i71gf43a4; path=/; HttpOnly
158 X-Debug-Token: e01c51
159 X-Debug-Token-Link: /_profiler/e01c51
160 X-Powered-By: PHP/7.0.4
161
162 {
163 "_links": {
164 "self": {
165 "href": "/api/entries/1"
166 }
167 },
168 "content": "<p class=\"chapo\">Fonctionnant sur le même principe que Pocket, Instapaper ou Readability, le logiciel Wallabag permet de mémoriser des articles pour les lire plus tard. Sa nouvelle version apporte une multitude de nouvelles fonctionnalités.</p><p>Si vous utilisez Firefox comme navigateur web, vous avez peut-être constaté l’arrivée d’<a href=\"http://www.numerama.com/magazine/33292-update-firefox.html\">une fonctionnalité intitulée Pocket</a>. Disponible autrefois sous la forme d’un module complémentaire, et sous un autre nom (Read it Later), elle est depuis le mois de juin 2015 directement incluse au sein de Firefox.</p>\n<p>Concrètement, Pocket sert à garder en mémoire des contenus que vous croisez au fil de la navigation, comme des articles de presse ou des vidéos, afin de pouvoir les consulter plus tard. Pocket fonctionne un peu comme un système de favoris, mais en bien plus élaboré grâce à ses options supplémentaires.</p>\n<p>Mais <a href=\"https://en.wikipedia.org/wiki/Pocket_%28application%29#Firefox_integration\" target=\"_blank\">Pocket fait polémique</a>, car il s’agit d’un projet propriétaire qui est intégré dans un logiciel libre. C’est pour cette raison que des utilisateurs ont choisi de se tourner vers d’autres solutions, comme <strong>Wallabag</strong>, qui est l’équivalent libre de Pocket et d’autres systèmes du même genre, comme Instapaper et Readability.</p>\n<p>Et justement, Wallabag évolue. C’est ce dimanche que la <a href=\"https://www.wallabag.org/blog/2016/04/03/wallabag-v2\" target=\"_blank\">version 2.0.0 du logiciel</a> a été publiée par l’équipe en charge de son développement et celle-ci contient de nombreux changements par rapport aux moutures précédentes (la <a href=\"http://doc.wallabag.org/fr/v2/\" target=\"_blank\">documentation est traduite</a> en français), lui permettant d’apparaître comme une alternative à Pocket, Instapaper et Readability.</p>\n<p><img class=\"aligncenter size-medium wp-image-160439\" src=\"http://www.numerama.com/content/uploads/2016/04/homepage-680x347.png\" alt=\"homepage\" width=\"680\" height=\"347\" srcset=\"//www.numerama.com/content/uploads/2016/04/homepage-680x347.png 680w, //www.numerama.com/content/uploads/2016/04/homepage-1024x523.png 1024w, //www.numerama.com/content/uploads/2016/04/homepage-270x138.png 270w, //www.numerama.com/content/uploads/2016/04/homepage.png 1286w\" sizes=\"(max-width: 680px) 100vw, 680px\"/></p>\n<p>Parmi les principaux changements que l’on peut retenir avec cette nouvelle version, notons la possibilité d’écrire des annotations dans les articles mémorisés, de filtrer les contenus selon divers critères (temps de lecture, nom de domaine, date de création, statut…), d’assigner des mots-clés aux entrées, de modifier le titre des articles, le support des flux RSS ou encore le support de plusieurs langues dont le français.</p>\n<p>D’autres options sont également à signaler, comme l’aperçu d’un article mémorisé (si l’option est disponible), un guide de démarrage rapide pour les débutants, un outil d’export dans divers formats (PDF, JSON, EPUB, MOBI, XML, CSV et TXT) et, surtout, la possibilité de migrer vers Wallabag depuis Pocket, afin de convaincre les usagers de se lancer.</p>\n \n \n <footer class=\"clearfix\" readability=\"1\"><p class=\"source\">\n Crédit photo de la une : <a href=\"https://www.flickr.com/photos/bookgrl/2388310523/\">Laura Taylor</a>\n </p>\n \n <p><a href=\"http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html?&amp;show_reader_reports\" target=\"_blank\" rel=\"nofollow\">Signaler une erreur dans le texte</a></p>\n \n</footer> <section class=\"related-article\"><header><h3>Articles liés</h3>\n </header><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/magazine/34444-firefox-prepare-l-enterrement-des-vieux-plugins.html\" title=\"Firefox prépare l'enterrement des vieux plugins\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135\" srcset=\"&#10; //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135 200w,&#10; //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=100,67 100w,&#10; \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox prépare l'enterrement des vieux plugins\"/></div>\n <h4> Firefox prépare l'enterrement des vieux plugins </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/131636-activer-navigation-privee-navigateur-web.html\" title=\"Comment activer la navigation privée sur son navigateur web\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135\" srcset=\"&#10; //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135 200w,&#10; //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=100,67 100w,&#10; \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Comment activer la navigation privée sur son navigateur web\"/></div>\n <h4> Comment activer la navigation privée sur son navigateur web </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/144028-firefox-se-mettra-a-jour-regulierement.html\" title=\"Firefox se mettra à jour un peu moins régulièrement\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135\" srcset=\"&#10; //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135 200w,&#10; //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=100,67 100w,&#10; \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox se mettra à jour un peu moins régulièrement\"/></div>\n <h4> Firefox se mettra à jour un peu moins régulièrement </h4>\n </a>\n <footer class=\"span12\">\n </footer></article>\n</section>\n",
169 "created_at": "2016-04-05T09:07:54+0000",
170 "domain_name": "www.numerama.com",
171 "id": 1,
172 "is_archived": 0,
173 "is_starred": 0,
174 "language": "fr-FR",
175 "mimetype": "text/html",
176 "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg",
177 "reading_time": 2,
178 "tags": [],
179 "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama",
180 "updated_at": "2016-04-05T09:07:54+0000",
181 "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html",
182 "user_email": "",
183 "user_id": 1,
184 "user_name": "wallabag"
185 }
186
187Ora, se eseguite il comando precedente (vedere **Ottenere voci esistenti**), avrete dei dati.
188
189esempio di cURL:
190
191::
192
193 curl "https://localhost:8000/api/entries.html?access_token=ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA&url=http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html"
194
195Eliminare una voce
196------------------
197
198Documentazione per questo metodo: http://localhost:8000/api/doc#delete--api-entries-{entry}.{_format}
199
200::
201
202 http DELETE http://localhost:8000/api/entries/1.json \
203 "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA"
204
205restituisce
206
207::
208
209 HTTP/1.1 200 OK
210 0: application/json
211 Cache-Control: no-cache
212 Connection: close
213 Content-Type: application/json
214 Date: Tue, 05 Apr 2016 09:19:07 GMT
215 Host: localhost:8000
216 Set-Cookie: PHPSESSID=jopgnfvmuc9a62b27sqm6iulr6; path=/; HttpOnly
217 X-Debug-Token: 887cef
218 X-Debug-Token-Link: /_profiler/887cef
219 X-Powered-By: PHP/7.0.4
220
221 {
222 "_links": {
223 "self": {
224 "href": "/api/entries/"
225 }
226 },
227 "annotations": [],
228 "content": "<p class=\"chapo\">Fonctionnant sur le même principe que Pocket, Instapaper ou Readability, le logiciel Wallabag permet de mémoriser des articles pour les lire plus tard. Sa nouvelle version apporte une multitude de nouvelles fonctionnalités.</p><p>Si vous utilisez Firefox comme navigateur web, vous avez peut-être constaté l’arrivée d’<a href=\"http://www.numerama.com/magazine/33292-update-firefox.html\">une fonctionnalité intitulée Pocket</a>. Disponible autrefois sous la forme d’un module complémentaire, et sous un autre nom (Read it Later), elle est depuis le mois de juin 2015 directement incluse au sein de Firefox.</p>\n<p>Concrètement, Pocket sert à garder en mémoire des contenus que vous croisez au fil de la navigation, comme des articles de presse ou des vidéos, afin de pouvoir les consulter plus tard. Pocket fonctionne un peu comme un système de favoris, mais en bien plus élaboré grâce à ses options supplémentaires.</p>\n<p>Mais <a href=\"https://en.wikipedia.org/wiki/Pocket_%28application%29#Firefox_integration\" target=\"_blank\">Pocket fait polémique</a>, car il s’agit d’un projet propriétaire qui est intégré dans un logiciel libre. C’est pour cette raison que des utilisateurs ont choisi de se tourner vers d’autres solutions, comme <strong>Wallabag</strong>, qui est l’équivalent libre de Pocket et d’autres systèmes du même genre, comme Instapaper et Readability.</p>\n<p>Et justement, Wallabag évolue. C’est ce dimanche que la <a href=\"https://www.wallabag.org/blog/2016/04/03/wallabag-v2\" target=\"_blank\">version 2.0.0 du logiciel</a> a été publiée par l’équipe en charge de son développement et celle-ci contient de nombreux changements par rapport aux moutures précédentes (la <a href=\"http://doc.wallabag.org/fr/v2/\" target=\"_blank\">documentation est traduite</a> en français), lui permettant d’apparaître comme une alternative à Pocket, Instapaper et Readability.</p>\n<p><img class=\"aligncenter size-medium wp-image-160439\" src=\"http://www.numerama.com/content/uploads/2016/04/homepage-680x347.png\" alt=\"homepage\" width=\"680\" height=\"347\" srcset=\"//www.numerama.com/content/uploads/2016/04/homepage-680x347.png 680w, //www.numerama.com/content/uploads/2016/04/homepage-1024x523.png 1024w, //www.numerama.com/content/uploads/2016/04/homepage-270x138.png 270w, //www.numerama.com/content/uploads/2016/04/homepage.png 1286w\" sizes=\"(max-width: 680px) 100vw, 680px\"/></p>\n<p>Parmi les principaux changements que l’on peut retenir avec cette nouvelle version, notons la possibilité d’écrire des annotations dans les articles mémorisés, de filtrer les contenus selon divers critères (temps de lecture, nom de domaine, date de création, statut…), d’assigner des mots-clés aux entrées, de modifier le titre des articles, le support des flux RSS ou encore le support de plusieurs langues dont le français.</p>\n<p>D’autres options sont également à signaler, comme l’aperçu d’un article mémorisé (si l’option est disponible), un guide de démarrage rapide pour les débutants, un outil d’export dans divers formats (PDF, JSON, EPUB, MOBI, XML, CSV et TXT) et, surtout, la possibilité de migrer vers Wallabag depuis Pocket, afin de convaincre les usagers de se lancer.</p>\n \n \n <footer class=\"clearfix\" readability=\"1\"><p class=\"source\">\n Crédit photo de la une : <a href=\"https://www.flickr.com/photos/bookgrl/2388310523/\">Laura Taylor</a>\n </p>\n \n <p><a href=\"http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html?&amp;show_reader_reports\" target=\"_blank\" rel=\"nofollow\">Signaler une erreur dans le texte</a></p>\n \n</footer> <section class=\"related-article\"><header><h3>Articles liés</h3>\n </header><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/magazine/34444-firefox-prepare-l-enterrement-des-vieux-plugins.html\" title=\"Firefox prépare l'enterrement des vieux plugins\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135\" srcset=\"&#10; //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=200,135 200w,&#10; //c2.lestechnophiles.com/www.numerama.com/content/uploads/2015/10/cimetierecolleville.jpg?resize=100,67 100w,&#10; \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox prépare l'enterrement des vieux plugins\"/></div>\n <h4> Firefox prépare l'enterrement des vieux plugins </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/131636-activer-navigation-privee-navigateur-web.html\" title=\"Comment activer la navigation privée sur son navigateur web\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135\" srcset=\"&#10; //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=200,135 200w,&#10; //c1.lestechnophiles.com/www.numerama.com/content/uploads/2015/11/Incognito.jpg?resize=100,67 100w,&#10; \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Comment activer la navigation privée sur son navigateur web\"/></div>\n <h4> Comment activer la navigation privée sur son navigateur web </h4>\n </a>\n <footer class=\"span12\">\n </footer></article><article class=\"post-grid format-article\"><a class=\"floatleft\" href=\"http://www.numerama.com/tech/144028-firefox-se-mettra-a-jour-regulierement.html\" title=\"Firefox se mettra à jour un peu moins régulièrement\">\n <div class=\"cover-preview cover-tech\">\n <p>Lire</p>\n \n \n \n <img class=\"cover-preview_img\" src=\"http://c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135\" srcset=\"&#10; //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=200,135 200w,&#10; //c0.lestechnophiles.com/www.numerama.com/content/uploads/2016/02/firefox-mobile.jpg?resize=100,67 100w,&#10; \" sizes=\"(min-width: 1001px) 200px, (max-width: 1000px) 100px\" alt=\"Firefox se mettra à jour un peu moins régulièrement\"/></div>\n <h4> Firefox se mettra à jour un peu moins régulièrement </h4>\n </a>\n <footer class=\"span12\">\n </footer></article>\n</section>\n",
229 "created_at": "2016-04-05T09:07:54+0000",
230 "domain_name": "www.numerama.com",
231 "is_archived": 0,
232 "is_starred": 0,
233 "language": "fr-FR",
234 "mimetype": "text/html",
235 "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg",
236 "reading_time": 2,
237 "tags": [],
238 "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama",
239 "updated_at": "2016-04-05T09:07:54+0000",
240 "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html",
241 "user_email": "",
242 "user_id": 1,
243 "user_name": "wallabag"
244 }
245
246E se volete elencare le voci esistenti (vedere **Ottenere voci esistenti**), l'insieme è vuoto.
247
248esempio di cURL:
249
250::
251
252 curl --request DELETE "https://localhost:8000/api/entries/1.html?access_token=ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA"
253
254Altri metodi
255------------
256
257Non scriveremo esempi per ogni metodo API.
258Guardate l'elenco qui : http://localhost:8000/api/doc per ogni metodo conosciuto.
259
260Risorse di terze parti
261----------------------
262
263Alcune applicazioni o librerie usano le nostre API. Ecco una lista non esaustiva:
264
265- `Wrapper Java per l'API di wallabag <https://github.com/Strubbl/jWallabag>`_ di Strubbl.
266- `Libreria .NET per l'API di wallabag v2 <https://github.com/jlnostr/wallabag-api>`_ di Julian Oster.
267- `API di Python per wallabag <https://github.com/foxmask/wallabag_api>`_ di FoxMaSk, per il suo progetto `Trigger Happy <https://blog.trigger-happy.eu/>`_.
268- `Un plugin <https://github.com/joshp23/ttrss-to-wallabag-v2>`_ creato per `Tiny Tiny RSS <https://tt-rss.org/gitlab/fox/tt-rss/wikis/home>`_ questo usa l'API di wallabag v2. Di Josh Panter.
269- `Wrapper Golang per l'API di wallabag <https://github.com/Strubbl/wallabago>`_ di Strubbl, per il suo progetto `wallabag-stats graph <https://github.com/Strubbl/wallabag-stats>`_.
diff --git a/docs/it/developer/asynchronous.rst b/docs/it/developer/asynchronous.rst
new file mode 100644
index 00000000..d753bd23
--- /dev/null
+++ b/docs/it/developer/asynchronous.rst
@@ -0,0 +1,162 @@
1Compiti Asincroni
2=================
3
4Per avviare compiti asincroni (utile ad esempio per grandi importazioni), Possiamo usare RabbitMQ o Redis.
5
6Installare RabbitMQ per compiti asincroni
7-----------------------------------------
8
9Requisiti
10^^^^^^^^^
11
12Dovete avere RabbitMQ installato sul vostro server.
13
14Installazione
15^^^^^^^^^^^^^
16
17.. code:: bash
18
19 wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
20 apt-key add rabbitmq-signing-key-public.asc
21 apt-get update
22 apt-get install rabbitmq-server
23
24Configurazione ed avvio
25^^^^^^^^^^^^^^^^^^^^^^^
26
27.. code:: bash
28
29 rabbitmq-plugins enable rabbitmq_management # (useful to have a web interface, available at http://localhost:15672/ (guest/guest)
30 rabbitmq-server -detached
31
32Fermare RabbitMQ
33^^^^^^^^^^^^^^^^
34
35.. code:: bash
36
37 rabbitmqctl stop
38
39
40Configurare RabbitMQ in wallabag
41^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
42
43Modificate il vostro file ``app/config/parameters.yml`` per modificare la configurazione di RabbitMQ. Quella di default dovrebbe andare bene:
44
45.. code:: yaml
46
47 rabbitmq_host: localhost
48 rabbitmq_port: 5672
49 rabbitmq_user: guest
50 rabbitmq_password: guest
51 rabbitmq_prefetch_count: 10 # read http://www.rabbitmq.com/consumer-prefetch.html
52
53Abilitare RabbitMQ su wallabag
54^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
55
56Su Strumenti, nella sezione **Importa**, abilitate RabbitMQ (con il valore 1).
57
58Avviare RabbitMQ consumer
59^^^^^^^^^^^^^^^^^^^^^^^^^
60
61Dipendendo da quale servizio vogliate importare, dovrete abilitare uno (o più se volete supportare molti) o più cronjob:
62
63.. code:: bash
64
65 # per importare da Pocket
66 bin/console rabbitmq:consumer -e=prod import_pocket -w
67
68 # per importare da Readability
69 bin/console rabbitmq:consumer -e=prod import_readability -w
70
71 # per importare da Instapaper
72 bin/console rabbitmq:consumer -e=prod import_instapaper -w
73
74 # per importare da wallabag v1
75 bin/console rabbitmq:consumer -e=prod import_wallabag_v1 -w
76
77 # per importare da wallabag v2
78 bin/console rabbitmq:consumer -e=prod import_wallabag_v2 -w
79
80 # per importare da Firefox
81 bin/console rabbitmq:consumer -e=prod import_firefox -w
82
83 # per importare da Chrome
84 bin/console rabbitmq:consumer -e=prod import_chrome -w
85
86Installare Redis per compiti asincroni
87--------------------------------------
88
89Per avviare compiti asincroni (utile ad esempio per grandi importazioni), Possiamo usare Redis.
90
91Requisiti
92^^^^^^^^^
93
94Dovete avere Redis installato sul vostro server.
95
96Installazione
97^^^^^^^^^^^^^
98
99.. code:: bash
100
101 apt-get install redis-server
102
103
104Avvio
105^^^^^
106
107Il server dovrebbe già essere attivo dopo l'installazione, altrimenti potete avviarlo usando:
108
109.. code:: bash
110
111 redis-server
112
113
114Configurare Redis su wallabag
115^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
116
117Modificate il vostro file ``app/config/parameters.yml`` per modificare la configurazione di Redis. Quella di default dovrebbe andare bene:
118
119.. code:: yaml
120
121 redis_host: localhost
122 redis_port: 6379
123
124Abilitare Redis su wallabag
125^^^^^^^^^^^^^^^^^^^^^^^^^^^
126
127Su Strumenti, nella sezione **Importa**, abilitate Redis (con il valore 1).
128
129Avviare Redis consumer
130^^^^^^^^^^^^^^^^^^^^^^
131
132Dipendendo da quale servizio vogliate importare, dovrete abilitare uno (o più se volete supportare molti) o più cronjob:
133
134.. code:: bash
135
136 # per importare da Pocket
137 bin/console wallabag:import:redis-worker -e=prod pocket -vv >> /path/to/wallabag/var/logs/redis-pocket.log
138
139 # per importare da Readability
140 bin/console wallabag:import:redis-worker -e=prod readability -vv >> /path/to/wallabag/var/logs/redis-readability.log
141
142 # per importare da Instapaper
143 bin/console wallabag:import:redis-worker -e=prod instapaper -vv >> /path/to/wallabag/var/logs/redis-instapaper.log
144
145 # per importare da wallabag v1
146 bin/console wallabag:import:redis-worker -e=prod wallabag_v1 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v1.log
147
148 # per importare da wallabag v2
149 bin/console wallabag:import:redis-worker -e=prod wallabag_v2 -vv >> /path/to/wallabag/var/logs/redis-wallabag_v2.log
150
151 # per importare da Firefox
152 bin/console wallabag:import:redis-worker -e=prod firefox -vv >> /path/to/wallabag/var/logs/redis-firefox.log
153
154 # per importare da Chrome
155 bin/console wallabag:import:redis-worker -e=prod chrome -vv >> /path/to/wallabag/var/logs/redis-chrome.log
156
157Se volete avviare l'importazione solamente per alcuni messaggi e non tutti, potete specificare questo numero (qui 12) e il programma si fermerà dopo il dodicesimo messaggio:
158
159.. code:: bash
160
161 bin/console wallabag:import:redis-worker -e=prod pocket -vv --maxIterations=12
162
diff --git a/docs/it/developer/docker.rst b/docs/it/developer/docker.rst
new file mode 100644
index 00000000..f07df20d
--- /dev/null
+++ b/docs/it/developer/docker.rst
@@ -0,0 +1,41 @@
1Eseguite wallabag in docker-compose
2===================================
3
4Per eseguire la vostra propria istanza di sviluppo di wallabag, dovreste usare i file docker compose preconfigurati.
5
6Requisiti
7---------
8
9Assicuratevi di avere `Docker
10<https://docs.docker.com/installation/ubuntulinux/>` e `Docker
11Compose <https://docs.docker.com/compose/install/>`__ disponibili sul vostro sistema e aggiornati.
12
13Cambiate DBMS
14-------------
15
16Per default, wallabag inizierá con un database SQLite.
17Visto che wallabag supporta Postgresql e MySQL, i container di docker sono disponibili anche per questi.
18
19In ``docker-compose.yml``, per il DBMS scelto, togliete i commenti:
20
21- la definizione del container (blocco a livello root ``postgres`` o ``mariadb``)
22- il link del container nel container``php``
23- il file env del container nel container ``php``
24
25Per far continuare ad eseguire i comandi Symfony sul vostro host (come ``wallabag:install``), dovreste anche:
26
27- caricare i file env appropriati sulla vostra riga di comando, in modo che possano esistere variabili come ``SYMFONY__ENV__DATABASE_HOST``.
28- creare un ``127.0.0.1 rdbms`` sul vostro file di sistema ``hosts``
29
30Eseguite wallabag
31-----------------
32
33#. Fate un fork o clonate il progetto
34#. Modificate ``app/config/parameters.yml`` per rimpiazzare le proprietá di ``database_*`` con quelle commentate (con valori con prefisso ``env.``)
35#. ``composer install`` per installare le dipendenze del progetto
36#. ``php bin/console wallabag:install`` per creare lo schema
37#. ``docker-compose up`` per eseguire i containers
38#. Infine, andate su http://localhost:8080/ per trovare il vostro wallabag appena installato.
39
40Durante i vari passi potreste incontrare problemi di permessi UNIX, percorsi sbagliati nella cache generata, etc...
41Operazioni come cambiare i file della cache o cambiare i proprietari dei file potrebbero essere richiesto frequentemente, per cui non abbiate paura!
diff --git a/docs/it/developer/documentation.rst b/docs/it/developer/documentation.rst
new file mode 100644
index 00000000..d4b63bb6
--- /dev/null
+++ b/docs/it/developer/documentation.rst
@@ -0,0 +1,12 @@
1Contribuite a questa documentazione
2===================================
3
4Le fonti della nostra documentazione sono qui https://github.com/wallabag/wallabag/tree/master/docs
5
6Usiamo `ReadTheDocs
7<https://readthedocs.org>`__ per generarla.
8
9Le pagine sono scritte nel formato `Restructured Text
10<https://en.wikipedia.org/wiki/ReStructuredText>`__. Potete usare strumenti online come http://rst.aaroniles.net/ o http://rst.ninjs.org/ per vedere un'anteprima dei vostri articoli.
11
12Se create una nuova pagina, non scordatevi di modificare il file `index.rst <https://raw.githubusercontent.com/wallabag/wallabag/master/docs/en/index.rst>`__ per aggiungere un link nella barra laterale.
diff --git a/docs/it/developer/paywall.rst b/docs/it/developer/paywall.rst
new file mode 100644
index 00000000..2c4e1bf7
--- /dev/null
+++ b/docs/it/developer/paywall.rst
@@ -0,0 +1,52 @@
1Articoli dietro ad un paywall
2=============================
3
4wallabag puó acquisire articoli da siti web che usano un sistema paywall
5
6Abilitate l'autenticazione paywall
7----------------------------------
8
9Su impostazioni interne, nella sezione **Articolo**, abilitate l'autenticazione per siti con paywall (con il valore 1).
10
11Configurate le credenziali in wallabag
12--------------------------------------
13
14Modificate il vostro file ``app/config/parameters.yml`` per modificare le credenziali per ogni sito con paywall. Ecco un esempio di alcuni siti francesi:
15
16.. code:: yaml
17
18 sites_credentials:
19 mediapart.fr: {username: "myMediapartLogin", password: "mypassword"}
20 arretsurimages.net: {username: "myASILogin", password: "mypassword"}
21
22.. note::
23
24 These credentials will be shared between each user of your wallabag instance.
25
26Fate il parsing dei file di configurazione
27------------------------------------------
28
29Leggete `questa parte della documentazione *link mancante*` per capire i file di configurazione.
30
31Ogni file di configurazione del parsing deve essere migliorato aggiungendo ``requires_login``, ``login_uri``, ``login_username_field``, ``login_password_field`` e ``not_logged_in_xpath``.
32
33Fate attenzione, il modulo di login deve essere nel contenuto della pagina quando wallabag lo carica. É impossibile per wallab essere autenticato su un sito dove il modulo di login é caricato dopo la pagina (da ajax per esempio).
34
35``login_uri`` é l'URL di azione del modulo (l'attributo ``action`` del modulo).
36``login_username_field`` é l'attributo ``name`` nel campo di login.
37``login_password_field`` é l'attributo ``name`` nel campo password.
38
39Per esempio:
40
41.. code::
42
43 title://div[@id="titrage-contenu"]/h1[@class="title"]
44 body: //div[@class="contenu-html"]/div[@class="page-pane"]
45
46 requires_login: yes
47
48 login_uri: http://www.arretsurimages.net/forum/login.php
49 login_username_field: username
50 login_password_field: password
51
52 not_logged_in_xpath: //body[@class="not-logged-in"]
diff --git a/docs/it/developer/testsuite.rst b/docs/it/developer/testsuite.rst
new file mode 100644
index 00000000..fdb72401
--- /dev/null
+++ b/docs/it/developer/testsuite.rst
@@ -0,0 +1,6 @@
1Testsuite
2=========
3Per assicurare la qualità di sviluppo di wallabag, abbiamo scritto i test con `PHPUnit <https://phpunit.de>`_.
4Se contribuite al progetto (traducendo l'applicazione, risolvendo i bug o aggiungendo nuove funzioni), si prega di scrivere i propri test.
5
6Per avviare la testsuite di wallabag dovete installare `ant <http://ant.apache.org>`_. Poi, eseguite il comando ``make test``. \ No newline at end of file
diff --git a/docs/it/developer/translate.rst b/docs/it/developer/translate.rst
new file mode 100644
index 00000000..c0b8e265
--- /dev/null
+++ b/docs/it/developer/translate.rst
@@ -0,0 +1,55 @@
1Tradurre wallabag
2=================
3
4wallabag web app
5----------------
6
7File per la traduzione
8~~~~~~~~~~~~~~~~~~~~~~
9
10.. note::
11
12 Visto che wallabag é principalmente sviluppato da un team francese, si prega di considerare che la traduzione francese é la più aggiornata, e si prega di copiarla e di creare la vostra propria traduzione.
13
14Potete trovare qui i file per la traduzione:
15https://github.com/wallabag/wallabag/tree/master/src/Wallabag/CoreBundle/Resources/translations.
16
17Dovrete creare ``messages.CODE.yml`` e ``validators.CODE.yml``, dove CODE é il codice ISO 639-1 della vostra lingua (`guardate wikipedia <https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes>`__).
18
19Altri file da tradurre:
20
21- https://github.com/wallabag/wallabag/tree/master/app/Resources/CraueConfigBundle/translations.
22- https://github.com/wallabag/wallabag/tree/master/src/Wallabag/UserBundle/Resources/translations.
23
24Dovete creare i file ``THE_TRANSLATION_FILE.CODE.yml``.
25
26File di configurazione
27~~~~~~~~~~~~~~~~~~~~~~
28
29Dovete modificare `app/config/config.yml
30<https://github.com/wallabag/wallabag/blob/master/app/config/config.yml>`__ per mostrare il vostro linguaggio nella pagina di configurazione di wallabag (per consentire agli utenti di passare a questa nuova traduzione).
31
32Nella sezione ``wallabag_core.languages``, dovete aggiungere una nuova linea con la vostra traduzione. Per esempio:
33
34::
35
36 wallabag_core:
37 ...
38 languages:
39 en: 'English'
40 fr: 'Français'
41
42Nella prima colonna (``en``, ``fr``, etc.), dovete aggiungere il codice ISO 639-1 della vostra lingua (vedete sopra).
43
44Nella seconda colonna, aggiungete solamente il nome della vostra lingua.
45
46documentazione di wallabag
47--------------------------
48
49.. note::
50 Contrariamente alla web app, il linguaggio principale per la documentazione é l'inglese.
51
52I file della documentazione sono memorizzati qui: https://github.com/wallabag/wallabag/tree/master/docs
53
54Dovete rispettare la struttura della cartella ``en`` quando create la vostra traduzione.
55
diff --git a/docs/it/index.rst b/docs/it/index.rst
new file mode 100644
index 00000000..92896fbf
--- /dev/null
+++ b/docs/it/index.rst
@@ -0,0 +1,53 @@
1Documentazione di wallabag
2--------------------------
3
4.. image:: ../img/wallabag.png
5 :alt: wallabag logo
6 :align: center
7
8**wallabag** è un'applicazione read-it-later: salva una pagina web lasciando solamente il contenuto. Elementi come comandi di navigazione o pubblicità sono rimossi.
9
10La documentazione principale per quest'applicazione è organizzata in un paio di sezioni:
11
12* :ref:`user-docs`
13* :ref:`dev-docs`
14
15La documentazione è disponibile anche in altre lingue:
16
17* `Documentation en français <http://doc.wallabag.org/fr/master/>`_
18* `Dokumentation in Deutsch <http://doc.wallabag.org/de/master/>`_
19* `Documentation in English <http://doc.wallabag.org/en/master/>`_
20
21.. _user-docs:
22
23.. toctree::
24 :maxdepth: 2
25 :caption: User documentation
26
27 user/installation
28 user/upgrade
29 user/configuration
30 user/import
31 user/create_account
32 user/articles
33 user/errors_during_fetching
34 user/filters
35 user/tags
36 user/configuring_mobile
37 user/android
38 user/parameters
39 user/backup
40 user/faq
41
42.. _dev-docs:
43
44.. toctree::
45 :maxdepth: 2
46 :caption: Developer documentation
47
48 developer/api
49 developer/docker
50 developer/paywall
51 developer/documentation
52 developer/translate
53 developer/asynchronous
diff --git a/docs/it/requirements.txt b/docs/it/requirements.txt
new file mode 100644
index 00000000..06fc8973
--- /dev/null
+++ b/docs/it/requirements.txt
@@ -0,0 +1,2 @@
1Sphinx>=1.3.0,<1.4.0
2guzzle_sphinx_theme>=0.7.0,<0.8.0
diff --git a/docs/it/user/android.rst b/docs/it/user/android.rst
new file mode 100644
index 00000000..a82bbef5
--- /dev/null
+++ b/docs/it/user/android.rst
@@ -0,0 +1,107 @@
1Applicazione Android
2====================
3
4Scopo di questo documento
5-------------------------
6
7Questo documento spiega come configurare la vostra applicazione Android in modo che funzioni con la vostra istanza di wallabag. Non vi é differenza in questa procedura sia per wallabag v1 che per v2.
8
9Passi per configurare la vostra app
10-----------------------------------
11
12Quando aprirete l'app per la prima volta, vedrete una schermata di benvenuto dove vi si consiglia per prima cosa di configurare l'app per la vostra istanza di wallabag.
13
14.. image:: ../../img/user/android_welcome_screen.en.png
15 :alt: Welcome screen
16 :align: center
17
18Confermate semplicemente quel messaggio e verrete reindirizzati alla schermata delle impostazioni.
19
20.. image:: ../../img/user/android_configuration_screen.en.png
21 :alt: Settings screen
22 :align: center
23
24Inserite i vostri dati di wallabag. Dovrete inserire il vostro indirizzo di wallabag. **É importante che questo URL non finisca con una barra**. Inserite anche le vostre credenziali nei campi user name e password.
25
26.. image:: ../../img/user/android_configuration_filled_in.en.png
27 :alt: Filled in settings
28 :align: center
29
30Dopo aver completato l'inserimento dei dati, premete il bottone Connection test e aspettate che il test finisca.
31
32.. image:: ../../img/user/android_configuration_connection_test.en.png
33 :alt: Connection test with your wallabag data
34 :align: center
35
36Il test di connessione dovrebbe finire con successo. In caso contrario, dovrete prima risolvere questo problema fino a che possiate procedere.
37
38.. image:: ../../img/user/android_configuration_connection_test_success.en.png
39 :alt: Connection test successful
40 :align: center
41
42Dopo che il test sará avvenuto con successo, potrete premere il bottone per ottenere le credenziali del vostro feed. L'app cercherá di connettersi alla vostra istanza di wallabag e ottenere l'id utente e il token corrispondente per i feed.
43
44.. image:: ../../img/user/android_configuration_get_feed_credentials.en.png
45 :alt: Getting the feed credentials
46 :align: center
47
48Quando il processo di ottenimento delle credenziali del vostro feed sará concluso con successo, vedrete un messaggio toast, il quale avviserá che l'id utente ed il token sono stati inseriti nel modulo.
49
50.. image:: ../../img/user/android_configuration_feed_credentials_automatically_filled_in.en.png
51 :alt: Getting feed credentials successful
52 :align: center
53
54Ora dovrete scorrere fino alla fine del menu delle impostazioni. Ovviamente potrete cambiare le impostazioni in base alle vostre preferenze.
55Terminate la configurazione della vostra app premendo il bottone per il salvataggio.
56
57.. image:: ../../img/user/android_configuration_scroll_bottom.en.png
58 :alt: Bottom of the settings screen
59 :align: center
60
61Dopo aver premuto il bottone apparirá la seguente schermata. L'app proporrá di iniziare il processo di sincronizzazione per aggiornare i vostri feed ed articoli. É raccomandato accettare quest'azione e premere Sí.
62
63.. image:: ../../img/user/android_configuration_saved_feed_update.en.png
64 :alt: Settings saved the first time
65 :align: center
66
67Alla fine, dopo che la sincronizzazione sará avvenuta con successo, apparirá la lista degli articoli non letti.
68
69.. image:: ../../img/user/android_unread_feed_synced.en.png
70 :alt: Filled article list cause feeds successfully synchronized
71 :align: center
72
73Limiti conosciuti
74-----------------
75
76Autenticazione a due fattori (2FA)
77~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
78
79Attualmente l'applicazione Android non supporta l'autenticazione a due fattori. Dovreste disabilitare questa opzione in modo da far funzionare l'applicazione.
80
81Quantitá limitata di articoli con wallabag v2
82~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
83
84Nella vostra istanza web di wallabag potete configurare quanti oggetti sono parte del feed RSS. Questa opzione non esisteva in wallabag v1, dove tutti gli articoli erano parte del feed. Quindi se imposterete il numero di articoli da visualizzare maggiore del numero di oggetti che sono contenuti nel vostro feed RSS, vedrete solamente il numero di oggetti nel vostro feed RSS.
85
86Crittografia SSL/TLS
87~~~~~~~~~~~~~~~~~~~~
88
89Se potete raggiungere la vostra istanza web di wallabag via HTTPS, dovreste usare quest'ultimo, in particolar modo se il vostro URL HTTP vi reindirizza a quello HTTPS. Attualmente l'app non puó gestire propriamente il reindirizzamento.
90
91Riferimenti
92-----------
93
94- `Codice sorgente dell'applicazione Android <https://github.com/wallabag/android-app>`_
95- `Applicazione Android su F-Droid <https://f-droid.org/repository/browse/?fdfilter=wallabag&fdid=fr.gaulupeau.apps.InThePoche>`_
96- `Applicazione Android su Google Play <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche>`_
97
98
99
100
101
102
103
104
105
106
107
diff --git a/docs/it/user/articles.rst b/docs/it/user/articles.rst
new file mode 100644
index 00000000..944b23ef
--- /dev/null
+++ b/docs/it/user/articles.rst
@@ -0,0 +1,115 @@
1
2Articoli
3========
4
5Salvate il vostro primo articolo
6--------------------------------
7
8Il proposito principale di wallabag é di salvare articoli web, e potete farlo in molti modi. Se pensate che l'articolo sia mostrato in modo sbagliato, `potete leggere questa documentazione`_.
9
10Usando un bookmarklet
11^^^^^^^^^^^^^^^^^^^^^
12
13Nella pagina ``Howto`` avete una sezione ``Bookmarklet``. Trascinate il link ``bag it!`` sulla barra dei preferiti del vostro browser.
14
15
16Ora, ogni volta che leggiate un articolo sul web e vogliate salvarlo, cliccate sul link ``bag it!`` sulla vostra barra dei preferiti. L'articolo é salvato.
17
18Usando la maniera classica
19^^^^^^^^^^^^^^^^^^^^^^^^^^
20
21Sulla barra in alto del vostro schermo avete 3 icone. Con la prima, un simbolo "piú", potrete salvare facilmente un articolo.
22
23.. image:: ../../img/user/topbar.png
24 :alt: Top bar
25 :align: center
26
27Cliccateci sopra per mostrare un nuovo campo, inserite in quest'ultimo la URL dell'articolo e premete il tasto ``Return``. L'articolo é salvato.
28
29Usando un add-on del browser
30^^^^^^^^^^^^^^^^^^^^^^^^^^^^
31
32Firefox
33"""""""
34
35Potete scaricare `qui l'addon per Firefox <https://addons.mozilla.org/firefox/addon/wallabag-v2/>`_.
36
37Chrome
38""""""
39
40Potete scaricare `qui l'addon per Chrome <https://chrome.google.com/webstore/detail/wallabagger/gbmgphmejlcoihgedabhgjdkcahacjlj?hl=fr>`_.
41
42Usando la vostra applicazione per smartphone
43^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
44
45Android
46"""""""
47
48Potete scaricare `qui l'applicazione per Android <https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche>`_.
49
50Windows Phone
51"""""""""""""
52
53Potete scaricare `qui l'applicazione per Windows Phone <https://www.microsoft.com/store/apps/9nblggh5x3p6>`_.
54
55Scaricate i vostri articoli
56---------------------------
57
58Potete scaricare ogni articolo in vari formati: ePUB, MOBI, PDF, XML, JSON, CSV.
59
60Sulla vista dell'articolo, cliccate su questa icona, nella barra laterale:
61
62.. image:: ../../img/user/download_article.png
63 :alt: download article
64 :align: center
65
66Potete anche scaricare una categoria completa di articoli (unread, starred, archive) in questi formati. Per esempio, nella vista **Unread**, cliccate su questa icona sulla barra superiore:
67
68.. image:: ../../img/user/download_articles.png
69 :alt: download articles
70 :align: center
71
72Condividete i vostri articoli
73-----------------------------
74
75Quando leggete un articolo, potete condividerlo. Cliccate semplicemente sul bottone di condivisione:
76
77.. image:: ../../img/user/share.png
78 :alt: share article
79 :align: center
80
81Ora potete condividere l'articolo:
82
83- attraverso una URL pubblica (avrete una vista semplificata dell'articolo)
84- attraverso un tweet
85- nel vostro Shaarli
86- attraverso un post su Diaspora*
87- su Carrot
88- attraverso un'email
89
90Annotate i vostri articoli
91--------------------------
92
93in ogni articolo che leggiate potete scrivere delle note. É piú facile da capire con delle immagini.
94
95Selezionate la parte dell'articolo che volete annotare e cliccate sulla matita:
96
97.. image:: ../../img/user/annotations_1.png
98 :alt: Select your text
99 :align: center
100
101Scrivete poi la vostra nota:
102
103.. image:: ../../img/user/annotations_2.png
104 :alt: Write your annotation
105 :align: center
106
107Il testo é ora sottolineato e potrete leggere la vostra nota muovendo il cursore su di esso.
108
109.. image:: ../../img/user/annotations_3.png
110 :alt: Read your annotation
111 :align: center
112
113Potete creare quante note vogliate.
114
115
diff --git a/docs/it/user/backup.rst b/docs/it/user/backup.rst
new file mode 100644
index 00000000..548c675b
--- /dev/null
+++ b/docs/it/user/backup.rst
@@ -0,0 +1,30 @@
1Eseguire il backup di wallabag
2==============================
3
4Siccome a volte potreste commettere errori con il vostro wallabag e perdere i vostri dati, oppure in caso dobbiate spostare il vostro wallabag su un altro server, dovete fare un backup dei vostri dati.
5
6Impostazioni base
7-----------------
8
9wallabag memorizza alcuni parametri base (come il server SMTP o il backend del database) nel file `app/config/parameters.yml`.
10
11Database
12--------
13
14Per il fatto che wallabag supporta vari tipi di database, il modo di eseguire backup dipende dal database che stiate usando, quindi dovrete fare riferimento alla documentazione del venditore.
15
16Ecco alcuni esempi:
17
18- MySQL: http://dev.mysql.com/doc/refman/5.7/en/backup-methods.html
19- PostgreSQL: https://www.postgresql.org/docs/current/static/backup.html
20
21SQLite
22~~~~~~
23
24Per eseguire il backup di un database SQLite, dovete semplicemente copiare la directory `data/db` dalla directory dell'applicazione wallabag.
25
26Immagini
27--------
28
29Le immagini recuperate da wallabag sono memorizzate in `web/assets/images` (la memoria delle immagini sará implementata in wallabag 2.2).
30
diff --git a/docs/it/user/configuration.rst b/docs/it/user/configuration.rst
new file mode 100644
index 00000000..fbc8687f
--- /dev/null
+++ b/docs/it/user/configuration.rst
@@ -0,0 +1,104 @@
1Configurazione
2==============
3
4Ora che siete acceduti, é ora di configurare il vostro account come volete.
5
6cliccate sul menu ``Configurazione``. Avrete cinque tab: ``Impostazioni``, ``RSS``, ``Informazioni utente``, ``Password`` e ``Regole di tagging``.
7
8Impostazioni
9------------
10
11Tema
12~~~~
13
14wallabag é personalizzabile. Potete scegliere il vostro tema preferito qui. Il tema di default é ``Material``, é il tema usato nelle immagini della documentazione.
15
16Oggetti per pagina
17~~~~~~~~~~~~~~~~~~
18
19Potete cambiare il numero di articoli mostrati su ogni pagina.
20
21Velocitá di lettura
22~~~~~~~~~~~~~~~~~~~
23
24wallabag calcola un tempo di lettura per ogni articolo. Potete definire qui, grazie a questa lista, se siete dei lettori lenti of veloci. wallabag ricalcolerá il tempo di lettura per ogni articolo.
25
26Lingua
27~~~~~~
28
29Potete cambiare la lingua dell'interfaccia di wallabag.
30
31RSS
32---
33
34wallabag offre feed RSS per ogni stato dell'articolo: non letto, preferito e archiviato.
35
36Per prima cosa dovete creare un token personale: cliccate su ``Crea il tuo token``. É possibile cambiare il proprio token cliccando su ``Rigenera il tuo token``.
37
38Ora avrete tre link, uno per ogni stato: aggiungeteli al vostro lettore RSS preferito.
39
40Potete anche definire quanti articoli volete nel vostro feed RSS (valore di default: 50)-
41
42Informazioni dell'utente
43------------------------
44
45Potete cambiare il vostro nome, il vostro indirizzo email e abilitare l'``Autenticazione a due fattori``.
46
47Autenticazione a due fattori (2FA)
48~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
49
50L'autenticazione a due fattori (conosciuta anche come 2FA) é una tecnologia brevettata nel 1984 che offre l'identificazione degli utenti tramite una combinazione di due componenti differenti.
51
52https://it.wikipedia.org/wiki/Autenticazione_a_due_fattori
53
54Se abilitate la 2FA, ogni volta che vogliate accedere a wallabag, riceverete un codice via email. Dovrete inserire il codice nel seguente modulo.
55
56.. image:: ../../img/user/2FA_form.png
57 :alt: Two factor authentication
58 :align: center
59
60Se non volete ricevere il codice ogni volta che vogliate accedere, potete spuntare la casella ``I'm on a trusted computer``: wallabag vi ricorderá per 15 giorni.
61
62Password
63--------
64
65Qui potete cambiare la password (minimo 8 caratteri)
66
67Regole di tagging
68-----------------
69
70Se volete assegnare un tag ai nuovi articoli, questa parte della configurazione fa per voi.
71
72Cosa significa « regole di tagging » ?
73~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74
75Sono regole usate da wallabag per etichettare i nuovi articoli. Ogni volta che un nuovo articolo viene aggiunto, verranno usate tutte le regole di tagging per aggiungere le etichette che avete configurato, risparmiandovi quindi il lavoro di classificare manualmente i vostri articoli.
76
77Come le uso?
78~~~~~~~~~~~~
79
80Immaginiamo che vogliate taggare un contenuto come *« lettura corta »* quando il tempo di lettura è inferiore ai 3 minuti. In questo caso, dovreste mettere « readingTime <= 3 » nel campo **Regola**
81e *« lettura corta »* nel campo **Tag**. Molte etichette possono essere aggiunte simultaneamente separandole con una virgola: *« lettura corta, da leggere »*.
82Si possono scrivere regole complesse usando gli operatori predefiniti:
83se *« readingTime >= 5 AND domainName = "github.com" »* allora etichetta come *« lettura lunga, github »*.
84
85Quali variabili ed operatori posso usare per scrivere le regole?
86
87I seguenti operatori e variabili possono essere usati per creare regole di tagging (attenzione, per alcuni valori, dovete aggiungere le virgolette, per esempio ``language = "en"``):
88
89=========== ============================================== ========= ===========
90Variabile Significato Operatore Significato
91----------- ---------------------------------------------- --------- -----------
92title Titolo dell'articolo <= Minore di…
93url URL dell'articolo < Strettamente minore di…
94isArchived Se l'articolo é archiviato o no => Maggiore di…
95isStarred Se l'articolo é preferito o no > Strettamente maggiore di…
96content Il contenuto dell'articolo = Uguale a…
97language La lingua dell'aritcolo != Diverso da…
98mimetype The entry's mime-type OR Una regola o l'altra
99readingTime Il tempo di lettura dell'articolo stimato AND Una regola e l'altra
100domainName Il nome del dominio dell'articolo matches Vede se un soggetto corrisponde alla ricerca (indipendentemente dal maiuscolo o minuscolo). Esempio: titolo corrisponde a "football"
101=========== ============================================== ======== ==========
102
103
104
diff --git a/docs/it/user/configuring_mobile.rst b/docs/it/user/configuring_mobile.rst
new file mode 100644
index 00000000..f0ea54f1
--- /dev/null
+++ b/docs/it/user/configuring_mobile.rst
@@ -0,0 +1,12 @@
1Configurare le app mobili in modo che funzionino con wallabag
2=============================================================
3
4Passi per configurare l'app
5---------------------------
6
7- Per prima cosa *create un nuovo client* nella sezione ``API clients management``. Il nome della vostra app non importa quanto il ``Client ID`` ed il ``Client secret``. Segnatevi questi due valori.
8- Quando scaricate un'app mobile, questa chiederà l'indirizzo del server dell'istanza di wallabag ospitata. Per esempio, con wallabag.it questo è: ``https://app.wallabag.it``.
9- Chiederà anche i sopracitati ``Client ID`` e ``secret``. Si prega di inserirli nei campi di testo, quando richiesto.
10- Infine dovrete fornire il vostro ``username`` e la vostra ``password``. Queste sono le stesse credenziali che usate per fare il login in wallabag.
11
12Si prega anche di guardare la pagina `Android <android.html>`_. Specialmente la sezione *Limiti conosciuti*.
diff --git a/docs/it/user/create_account.rst b/docs/it/user/create_account.rst
new file mode 100644
index 00000000..c569962d
--- /dev/null
+++ b/docs/it/user/create_account.rst
@@ -0,0 +1,38 @@
1Creazione di un account e autenticazione
2========================================
3
4Registrazione
5-------------
6
7Sulla pagina di login, cliccate sul bottone ``Register``
8
9.. image:: ../../img/user/registration_form.png
10 :alt: Registration form
11 :align: center
12
13Dovrete completare il modulo. Assicuratevi di inserire un indirizzo email valido, quindi vi invieremo un'email di attivazione.
14
15.. image:: ../../img/user/sent_email.png
16 :alt: Email was sent to activate account
17 :align: center
18
19Controllate la vostra casella, in cui avrete una nuova mail con un link che assomiglia a questo ``http://wallabag/register/confirm/Ba19wokGovN-DdBQNfg4YgRkUQWRP4-k2g0Bk-hBTX4``. Cliccateci sopra per attivare il vostro account.
20
21Il vostro account é ora attivo
22
23.. image:: ../../img/user/activated_account.png
24 :alt: Welcome on board!
25 :align: center
26
27Login
28-----
29
30Il vostro account é ora abilitato, congratulazioni!
31
32Se siete sul vostro computer personale e volete restare connessi, spuntate la casella ``Keep me logged in``: wallabag vi ricorderá per un anno.
33
34.. image:: ../../img/user/login_form.png
35 :alt: Login form
36 :align: center
37
38
diff --git a/docs/it/user/errors_during_fetching.rst b/docs/it/user/errors_during_fetching.rst
new file mode 100644
index 00000000..d92b83dc
--- /dev/null
+++ b/docs/it/user/errors_during_fetching.rst
@@ -0,0 +1,37 @@
1
2Errori durante l'ottenimento degli articoli
3===========================================
4
5Perché l'ottenimento di un articolo fallisce?
6---------------------------------------------
7
8Ci possono essere varie ragioni:
9
10- problema del network
11- wallabag non può ottenere il contenuto a causa della struttura del sito web
12
13Potete provare a risolvere il problema da soli ( in modo che noi possiamo concentrarci nel migliorare wallabag internamente invece di scrivere siteconfig
14:) ).
15
16Potete provare a vedere se funziona qui: `http://f43.me/feed/test <http://f43.me/feed/test>`_ (usa quasi lo stesso sistema per ottenere contenuto).
17
18Se funziona lì e non su wallabag, significa che c'è qualcosa all'interno di wallabag che causa il malfunzionamento del parser (difficile da aggiustare: si prega di riportare il problema).
19
20Se non funziona, provate a estrarre un site config usando: `http://siteconfig.fivefilters.org/ <http://siteconfig.fivefilters.org/>`_ (seleziona quale parte del contenuto é effettivamente contenuto). Potete `leggere prima questa documentazione <http://help.fivefilters.org/customer/en/portal/articles/223153-site-patterns>`_.
21
22Potete testarlo sul sito **f43.m3**: cliccate su **Want to try a custom siteconfig?** e inseritvi il file generato in and put the generated file from siteconfig.fivefilters.org.
23
24Ripetete finché non avrete qualcosa di buono.
25
26Potete poi inviare una pull request a `https://github.com/fivefilters/ftr-site-config <https://github.com/fivefilters/ftr-site-config>`_ il quale é il repository ufficiale per i file siteconfig.
27
28Come posso provare a riottenere questo articolo?
29------------------------------------------------
30
31Se wallabag ha fallito a ottenere l'articolo, potete cliccare sul bottone di ricaricamento (il terzo bottone nella figura sottostante).
32
33.. image:: ../../img/user/refetch.png
34 :alt: Refetch content
35 :align: center
36
37
diff --git a/docs/it/user/faq.rst b/docs/it/user/faq.rst
new file mode 100644
index 00000000..decdfab1
--- /dev/null
+++ b/docs/it/user/faq.rst
@@ -0,0 +1,53 @@
1Domande frequenti
2=================
3
4Durante l'installazione ho riscontrato l'errore ``Error Output: sh: 1: @post-cmd: not found``
5---------------------------------------------------------------------------------------------
6
7Sembra che ci sia un problema con la vostra installazione di ``composer``. Provate a disinstallarlo e reinstallarlo.
8
9`Leggete la documentazione su composer per sapere come installarlo
10<https://getcomposer.org/doc/00-intro.md>`__.
11
12Non riesco a convalidare il modulo di registrazione
13---------------------------------------------------
14
15Assicuratevi che tutti i campi siano riempiti correttamente:
16
17* indirizzo email valido
18* stessa password nei due campi
19
20Non riesco a ricevere la mia mail di attivazione
21------------------------------------------------
22
23Siete sicuri che il vostro indirizzo email sia corretto? avete controllato la cartella di spam?
24
25Se ancora non vedete la mail di attivazione, assicuratevi di aver installato e configurato a dovere un mail transfer agent. Assicuratevi di includere una regola del firewall per SMTP. Per esempio, se usate firewalld:
26
27::
28
29 firewall-cmd --permanent --add-service=smtp
30 firewall-cmd --reload
31
32Infine, se avete SELinux abilitato, impostate la seguente regola:
33
34``setsebool -P httpd_can_sendmail 1``
35
36Quando clicco il link di attivazione, mi appare questo messaggio: ``L'utente con token di conferma "DtrOPfbQeVkWf6N" non esiste``.
37----------------------------------------------------------------------------------------------------------------------------------
38
39Avete giá attivato il vostro account oppure l'URL dell'email di attivazione é sbagliato.
40
41Ho dimenticato la mia password
42------------------------------
43
44Potete ripristinare la password cliccando il link``Hai dimenticato la password?``, nella pagina di login. Quindi, riempite il modulo con la vostra email o il vostro username e riceverete un'email per ripristinare la vostra password.
45
46Ho riscontrato l'errore ``failed to load external entity`` cercando di installare wallabag
47------------------------------------------------------------------------------------------
48
49Come descritto `qui <https://github.com/wallabag/wallabag/issues/2529>`_, modificate il vostro file ``web/app.php`` ed aggiungete questa linea: ``libxml_disable_entity_loader(false);`` sulla linea 5.
50
51Questo é un bug di Doctrine / PHP, non possiamo farci nulla.
52
53
diff --git a/docs/it/user/filters.rst b/docs/it/user/filters.rst
new file mode 100644
index 00000000..105cb1d6
--- /dev/null
+++ b/docs/it/user/filters.rst
@@ -0,0 +1,45 @@
1Trovate i vostri articoli grazie ai filtri
2------------------------------------------
3
4Per trovare facilmente gli articoli, potete usare i filtri.
5
6.. image:: ../../img/user/topbar.png
7 :alt: Top bar
8 :align: center
9
10Tutti questi filtri possono essere combinati.
11
12.. image:: ../../img/user/filters.png
13 :alt: Combine all filters
14 :align: center
15
16Stato
17-----
18
19Usate queste caselle per trovare articoli archiviati o preferiti.
20
21Immagine di anteprima
22---------------------
23
24Selezionate questo filtro se volete trovare articoli con un'immagine di anteprima.
25
26Lingua
27------
28
29wallabag (attraverso graby) puó individuare la lingua di un articolo. É facile per voi trovare articoli scritti in una lingua specifica.
30
31Tempo di lettura
32----------------
33
34wallabag stima quanto tempo é necessario per leggere un articolo. Con questo filtro potete, per esempio, trovare articoli con un tempo di lettura compreso fra 2 e 5 minuti.
35
36Nome di dominio
37---------------
38
39Grazie a questo filtro potete trovare articoli dallo stesso nome di dominio. Per esempio, scrivete in questo campo ``bbc.co.uk`` per trovare gli articoli di questo sito.
40
41Data di creazione
42-----------------
43
44Quando salvate un articolo, wallabag memorizza la data corrente. ció é comodo, per esempio, per trovare articoli salvati tra il primo ed il 31 di Gennaio.
45
diff --git a/docs/it/user/import.rst b/docs/it/user/import.rst
new file mode 100644
index 00000000..c249acfd
--- /dev/null
+++ b/docs/it/user/import.rst
@@ -0,0 +1,115 @@
1Migrare da...
2=============
3
4In wallabag 2.x, potete importare dati da:
5
6- `Pocket <#id1>`_
7- `Readability <#id2>`_
8- `Instapaper <#id4>`_
9- `wallabag 1.x <#id6>`_
10- `wallabag 2.x <#id7>`_
11
12Abbiamo anche sviluppato `uno script per eseguire migrazioni tramite la linea di comando <#import-via-command-line-interface-cli>`_.
13
14Poiché le importazioni possono richiedere molto tempo, abbiamo sviluppato un sistema di compiti asincroni. *inserisci qui link una volta tradotto articolo su asynchronous*
15
16Pocket
17------
18
19Creare una nuova applicazione su Pocket
20~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
21
22Per importare dati da Pocket usiamo l'API di Pocket. Dovete creare una nuova applicazione sul loro sito per sviluppatori per continuare.
23
24* Create una nuova applicazione `sul sito per sviluppatori <https://getpocket.com/developer/apps/new>`_
25* Riempite i campi richiesti: nome dell'applicazione, descrizione dell'applicazione, permessi (solo **retrieve**), piattaforma (**web**), accettate i termini di servizio ed inviate la vostra nuova applicazione
26
27Pocket vi dará una **Consumer Key** (per esempio, `49961-985e4b92fe21fe4c78d682c1`). Dovete configurare la ``pocket_consumer_key`` dal menu ``Config``.
28
29Ora é tutto pronto per migrare da Pocket.
30
31Importate i vostri dati su wallabag 2.x
32~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33
34Cliccate sul link `Importa` nel menu, su `Importa contenuti` nella sezione Pocket e poi su ``Connetti a Pocket ed importa i dati``
35
36Dovete autorizzare wallabag a interagire con il vostro account Pocket.
37I vostri dati saranno importati. L'importazione di dati puó essere un processo esigente per il vostro server.
38
39Instapaper
40----------
41
42Esportate i vostri dati di Instapaper
43~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
44
45Sulla pagina delle impostazioni (`https://www.instapaper.com/user <https://www.instapaper.com/user>`_), cliccate su "Download .CSV file" nella sezione "Export". Verrá scaricato un file CSV (like ``instapaper-export.csv``).
46
47Importate i vostri dati in wallabag 2.x
48~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
49
50Cliccate sul link `Importa` sul menu, poi su `Importa contenuti` nella sezione di Instapaper, quindi selezionate il vostro file CSV e caricatelo.
51
52I vostri dati saranno importati. L'importazione di dati puó essere un'operazione esigente per il server.
53
54wallabag 1.x
55------------
56
57Se state usando wallabag 1.x, dovete esportare i dati prima di migrare a wallabag 2.x, poiché l'applicazione ed il suo database sono cambiati molto. Potete esportare i vostri dati dalla vostra vecchia installazione di wallabag sulla pagina Config di questa.
58
59.. image:: ../../img/user/export_v1.png
60 :alt: Exporting from wallabag v1
61 :align: center
62
63.. nota::
64 Se avete account multipli nella stessa istanza di wallabag, ogni utente dovrá esportare da v1 ed importare su v2.
65
66.. nota::
67 Se riscontrate problemi durante l'importazione o l'esportazione, non esitate a `chiedere supporto <https://www.wallabag.org/pages/support.html>`__.
68
69Quando avrete ottenuto il file json contenente i vostri articoli, potrete installare wallabag v2 seguendo, se necessario, `la procedura standard *link mancante*.
70
71Dopo aver creato un account utente sulla vostra nuova istanza di wallabag v2, dovete andare alla sezione `Importa` e selezionare `Importa da wallabag v1`. Selezionate il vostro file json e caricatelo.
72
73.. image:: ../../img/user/import_wallabagv1.png
74 :alt: Import from wallabag v1
75 :align: center
76
77wallabag 2.x
78------------
79
80Dalla istanza di wallabag precedente sulla quale eravate prima, andate su `Tutti gli articoli`, poi esportate questi articoli come json.
81
82.. image:: ../../img/user/export_v2.png
83 :alt: Export depuis wallabag v2
84 :align: center
85
86Dalla vostra nuova istanza di wallabag, create un account utente e cliccate sul link nel menu per procedere all'importazione. Scegliete di importare da wallabag v2 e selezionate il vostro file json per caricarlo.
87
88.. nota::
89 Se riscontrate problemi durante l'importazione o l'esportazione, non esitate a `chiedere supporto <https://www.wallabag.org/pages/support.html>`__.
90
91Importate dall'interfaccia a riga di comando (CLI)
92--------------------------------------------------
93
94Se avete un accesso CLI al vostro server web, potete eseguire questo comando per importare ció che avete esportato da wallabag v1:
95
96::
97
98 bin/console wallabag:import 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
99
100Rimpiazzate i valori:
101
102* ``1`` é l'identificatore utente nel database (l'ID del primo utente creato su wallabag é 1)
103* ``~/Downloads/wallabag-export-1-2016-04-05.json`` é il percorso del file esportato da wallabag v1
104
105Se volete segnare tutti questi articoli come giá letti, potete aggiungere l'opzione ``--markAsRead``.
106Per importare un file di wallabag v2, dovete aggiungere l'opzione ``--importer=v2``.
107
108Come risultato avrete questo messaggio:
109
110::
111
112 Start : 05-04-2016 11:36:07 ---
113 403 imported
114 0 already saved
115 End : 05-04-2016 11:36:09 ---
diff --git a/docs/it/user/installation.rst b/docs/it/user/installation.rst
new file mode 100644
index 00000000..cd6ebbef
--- /dev/null
+++ b/docs/it/user/installation.rst
@@ -0,0 +1,333 @@
1
2
3Installa wallabag
4=================
5
6Requisiti
7---------
8wallabag é compatibile con PHP >= 5.5, incluso PHP 7.
9
10.. nota::
11
12 Per installare facilmente wallabag vi forniamo un Makefile, dunque avrete bisogno dello strumento make.
13
14wallabag utilizza un gran numero di librerie PHP per funzionare. Queste librerie vanno installate tramite uno strumento chiamato Composer. Dovete installarlo se non lo avete giá fatto e assicuratevi di usare la versione 1.2 ( se giá avete Composer, esegui il comando composer selfupdate).
15
16Installa Composer:
17
18::
19 curl -s http://getcomposer.org/installer | php
20
21`Qui <https://getcomposer.org/doc/00-intro.md>`__ puoi trovare istruzioni specifiche.
22
23Per far funzionare wallabag avrete anche bisogno delle seguenti estensioni. Alcune di queste dovrebbero essere giá attive nella vostra versione di PHP, per cui potrebbe non essere necessario installare tutti i pacchetti corrispondenti.
24
25- php-session
26- php-ctype
27- php-dom
28- php-hash
29- php-simplexml
30- php-json
31- php-gd
32- php-mbstring
33- php-xml
34- php-tidy
35- php-iconv
36- php-curl
37- php-gettext
38- php-tokenizer
39- php-bcmath
40
41wallabag usa PDO per connettersi, per cui avrete bisogno di uno dei seguenti:
42
43-pdo_mysql
44-pdo_sqlite
45-pdo_pgsql
46
47E il corrispondente database server.
48
49Installazione
50-------------
51
52Su un web server dedicato (raccomandato)
53~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54
55Per installare wallabag stesso dovete eseguire i seguenti comandi:
56
57::
58
59 git clone https://github.com/wallabag/wallabag.git
60 cd wallabag && make install
61
62Per attivare il server incorporato di PHP e verificare che l’installazione sia andata a buon fine potete eseguire:
63
64::
65
66 make run
67
68E accedere a wallabag all’indirizzo http://ipdeltuoserver:8000
69
70.. consiglio::
71
72 Per definire i parametri con variabili d’ambiente é necessario impostare queste ultime con il prefisso ``SYMFONY_``. Per esempio, ``SYMFONY__DATABASE_DRIVER``. Puoi guardare la `documentazione di Symfony <http://symfony.com/doc/current/cookbook/configuration/external_parameters.html>`__ per maggiori informazioni.
73
74A proposito di hosting condiviso
75~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
76
77Offriamo un pacchetto con tutte le dipendenze incluse. La configurazione di default usa SQLite per il database. Se volete cambiare queste impostazioni, modificate app/config/parameters.yml.
78
79Abbiamo giá creato un utente: il login e la password sono wallabag.
80
81.. attenzione:
82
83 Con questo pacchetto, wallabag non controlla le estensioni obbligatorie usate nell’applicazione (questi controlli sono fatti durante ``composer install`` quando hai un server web dedicato, vedi sopra).
84
85Eseguite questo comando per scaricare ed estrarre il pacchetto piú aggiornato:
86
87.. code-block:: bash
88
89 wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
90
91Troverete il `hash md5 del pacchetto piú aggiornato sul nostro sito <https://www.wallabag.org/pages/download-wallabag.html>`_.
92
93Ora leggete la seguente documentazione per creare il vostro host virtuale poi accedete al vostro wallabag. Se avete cambiato la configurazione del database per usare MySQL o PostrgreSQL, dovrete creare un utente con il comando php bin/console wallabag:install --env=prod .
94
95Installazione con Docker
96~~~~~~~~~~~~~~~~~~~~~~~~
97
98Offriamo un’immagine Docker per installare wallabag facilmente. Guarda la nostra repository su `Docker Hub <https://hub.docker.com/r/wallabag/wallabag/>`__ per maggiori informazioni.
99
100Comando per avviare il container
101
102.. code-block:: bash
103
104 docker pull wallabag/wallabag
105
106
107Host virtuali
108-------------
109
110Configurazione su Apache
111~~~~~~~~~~~~~~~~~~~~~~~~
112
113Assumendo che voi abbiate installato wallabag nella cartella ``/var/www/wallabag`` e che vogliate usare PHP come un modulo Apache, ecco un vhost per l’applicazione:
114
115::
116
117 <VirtualHost *:80>
118 ServerName domain.tld
119 ServerAlias www.domain.tld
120
121 DocumentRoot /var/www/wallabag/web
122 <Directory /var/www/wallabag/web>
123 AllowOverride None
124 Order Allow,Deny
125 Allow from All
126
127 <IfModule mod_rewrite.c>
128 Options -MultiViews
129 RewriteEngine On
130 RewriteCond %{REQUEST_FILENAME} !-f
131 RewriteRule ^(.*)$ app.php [QSA,L]
132 </IfModule>
133 </Directory>
134
135 # uncomment the following lines if you install assets as symlinks
136 # or run into problems when compiling LESS/Sass/CoffeScript assets
137 # <Directory /var/www/wallabag>
138 # Options FollowSymlinks
139 # </Directory>
140
141 # optionally disable the RewriteEngine for the asset directories
142 # which will allow apache to simply reply with a 404 when files are
143 # not found instead of passing the request into the full symfony stack
144 <Directory /var/www/wallabag/web/bundles>
145 <IfModule mod_rewrite.c>
146 RewriteEngine Off
147 </IfModule>
148 </Directory>
149 ErrorLog /var/log/apache2/wallabag_error.log
150 CustomLog /var/log/apache2/wallabag_access.log combined
151 </VirtualHost>
152
153Dopo aver riavviato o ricaricato Apache dovreste essere in grado di accedere a wallabag tramite l’indirizzo http://domain.tld.
154
155Configurazione su Nginx
156~~~~~~~~~~~~~~~~~~~~~~~
157
158Assumendo che abbiate installato wallabag nella cartella ``/var/www/wallabag``, ecco una ricetta per l’applicazione:
159
160::
161
162 server {
163 server_name domain.tld www.domain.tld;
164 root /var/www/wallabag/web;
165
166 location / {
167 # try to serve file directly, fallback to app.php
168 try_files $uri /app.php$is_args$args;
169 }
170 location ~ ^/app\.php(/|$) {
171 fastcgi_pass unix:/var/run/php5-fpm.sock;
172 fastcgi_split_path_info ^(.+\.php)(/.*)$;
173 include fastcgi_params;
174 # When you are using symlinks to link the document root to the
175 # current version of your application, you should pass the real
176 # application path instead of the path to the symlink to PHP
177 # FPM.
178 # Otherwise, PHP's OPcache may not properly detect changes to
179 # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
180 # for more information).
181 fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
182 fastcgi_param DOCUMENT_ROOT $realpath_root;
183 # Prevents URIs that include the front controller. This will 404:
184 # http://domain.tld/app.php/some-path
185 # Remove the internal directive to allow URIs like this
186 internal;
187 }
188
189 # return 404 for all other php files not matching the front controller
190 # this prevents access to other php files you don't want to be accessible.
191 location ~ \.php$ {
192 return 404;
193 }
194
195 error_log /var/log/nginx/wallabag_error.log;
196 access_log /var/log/nginx/wallabag_access.log;
197 }
198
199
200Dopo aver riavviato o ricaricato Nginx dovreste essere in grado di accedere a wallabag tramite l’indirizzo http://domain.tld.
201
202Configurazione su lighttpd
203~~~~~~~~~~~~~~~~~~~~~~~~~~
204
205Assumendo che abbiate installato wallabag nella cartella /var/www/wallabag, ecco una ricetta per l’applicazione (modificate il vostro file lighttpd.conf e incollatevi questa configurazione):
206
207::
208
209 server.modules = (
210 "mod_fastcgi",
211 "mod_access",
212 "mod_alias",
213 "mod_compress",
214 "mod_redirect",
215 "mod_rewrite",
216 )
217 server.document-root = "/var/www/wallabag/web"
218 server.upload-dirs = ( "/var/cache/lighttpd/uploads" )
219 server.errorlog = "/var/log/lighttpd/error.log"
220 server.pid-file = "/var/run/lighttpd.pid"
221 server.username = "www-data"
222 server.groupname = "www-data"
223 server.port = 80
224 server.follow-symlink = "enable"
225 index-file.names = ( "index.php", "index.html", "index.lighttpd.html")
226 url.access-deny = ( "~", ".inc" )
227 static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
228 compress.cache-dir = "/var/cache/lighttpd/compress/"
229 compress.filetype = ( "application/javascript", "text/css", "text/html", "text/plain" )
230 include_shell "/usr/share/lighttpd/use-ipv6.pl " + server.port
231 include_shell "/usr/share/lighttpd/create-mime.assign.pl"
232 include_shell "/usr/share/lighttpd/include-conf-enabled.pl"
233 dir-listing.activate = "disable"
234
235 url.rewrite-if-not-file = (
236 "^/([^?]*)(?:\?(.*))?" => "/app.php?$1&$2",
237 "^/([^?]*)" => "/app.php?=$1",
238 )
239
240
241Diritti di accesso alle cartelle del progetto
242---------------------------------------------
243
244Ambiente di test
245~~~~~~~~~~~~~~~~
246
247Quando vorremo solamente testare wallabag, eseguiremo il comando ``make run`` per avviare la nostra istanza di wallabag e tutto funzionerá correttamente poiché l’utente che ha iniziato il progetto puó accedere alla cartella corrente senza problemi.
248
249Ambiente di produzione
250~~~~~~~~~~~~~~~~~~~~~~
251
252Non appena useremo Apache o Nginx per accedere alla nostra istanza di wallabag, e non avviandola con il comando ``make run``, dovremo aver cura di concedere i giusti diritti sulle giuste cartelle per far rimanere sicure tutte le cartelle del progetto.
253
254Per fare ció, il nome della cartella, conosciuta come ``DocumentRoot`` (per Apache) o ``root`` (per Nginx), deve essere assolutamente accessibile all’utente Apache/Nginx. Il suo nome è generalmente ``www-data``, ``apache`` o ``nobody`` (dipendendo dal sistema Linux utilizzato).
255
256Quindi la cartella ``/var/www/wallabag/web`` deve essere accessibile da quest’ultimo. Questo tuttavia potrebbe non essere sufficiente se solo ci importa di questa cartella poiché potremmo incontrare una pagina bianca o un errore 500 quando cerchiamo di accedere alla homepage del progetto.
257
258Questo é dato dal fatto che dovremo concedere gli stessi diritti di accesso di ``/var/www/wallabag/web`` alla cartella ``/var/www/wallabag/var`` . Risolveremo quindi il problema con il seguente comando:
259
260.. code-block:: bash
261
262 chown -R www-data:www-data /var/www/wallabag/var
263
264
265Deve essere tutto uguale per le seguenti cartelle:
266
267* /var/www/wallabag/bin/
268* /var/www/wallabag/app/config/
269* /var/www/wallabag/vendor/
270* /var/www/wallabag/data/
271
272inserendo
273
274.. code-block:: bash
275
276 chown -R www-data:www-data /var/www/wallabag/bin
277 chown -R www-data:www-data /var/www/wallabag/app/config
278 chown -R www-data:www-data /var/www/wallabag/vendor
279 chown -R www-data:www-data /var/www/wallabag/data/
280
281Altrimenti prima o poi incontreremo questi messaggi di errore:
282
283.. code-block:: bash
284
285 Unable to write to the "bin" directory.
286 file_put_contents(app/config/parameters.yml): failed to open stream: Permission denied
287 file_put_contents(/.../wallabag/vendor/autoload.php): failed to open stream: Permission denied
288
289Regole aggiuntive per SELinux
290~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
291
292se SELinux é abilitato sul vostro sistema, dovrete configurare contesti aggiuntivi in modo che wallabag funzioni correttamente. Per controllare se SELinux é abilitato, semplicemente inserisci ció che segue:
293
294``getenforce``
295
296Questo mostrerá ``Enforcing`` se SELinux é abilitato. Creare un nuovo contesto coinvolge la seguente sintassi:
297
298``semanage fcontext -a -t <context type> <full path>``
299
300Per esempio:
301
302``semanage fcontext -a -t httpd_sys_content_t "/var/www/wallabag(/.*)?"``
303
304Questo applicherá ricorsivamente il constesto httpd_sys_content_t alla cartella wallabag e a tutti i file e cartelle sottostanti. Sono necessarie le seguenti regole:
305
306+-----------------------------------+----------------------------+
307| Percorso completo | Contesto |
308+===================================+============================+
309| /var/www/wallabag(/.*)? | ``httpd_sys_content_t`` |
310+-----------------------------------+----------------------------+
311| /var/www/wallabag/data(/.*)? | ``httpd_sys_rw_content_t`` |
312+-----------------------------------+----------------------------+
313| /var/www/wallabag/var/logs(/.*)? | ``httpd_log_t`` |
314+-----------------------------------+----------------------------+
315| /var/www/wallabag/var/cache(/.*)? | ``httpd_cache_t`` |
316+-----------------------------------+----------------------------+
317
318Dopo aver creato questi contesti, inserite ció che segue per applicare le vostre regole:
319
320``restorecon -R -v /var/www/wallabag``
321
322Potrete controllare i contesti in una cartella scrivendo ``ls -lZ`` e potrete vedere tutte le regole correnti con ``semanage fcontext -l -C``.
323
324Se state installando il pacchetto latest-v2-package, é necessaria un'ulteriore regola durante la configurazione iniziale:
325
326``semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/wallabag/var"``
327
328Dopo che siate acceduti con successo al vostro wallabag e abbiate completato la configurazione iniziale, questo contesto puó essere rimosso:
329
330::
331
332 semanage fcontext -d -t httpd_sys_rw_content_t "/var/www/wallabag/var"
333 retorecon -R -v /var/www/wallabag/var
diff --git a/docs/it/user/parameters.rst b/docs/it/user/parameters.rst
new file mode 100644
index 00000000..da9555e1
--- /dev/null
+++ b/docs/it/user/parameters.rst
@@ -0,0 +1,93 @@
1Qual'é il significato dei parametri?
2====================================
3
4File `parameters.yml` di default
5--------------------------------
6
7Ecco l'ultima versione del file `app/config/parameters.yml` di default. Assicuratevi che la vostra rispetti questa.
8Se non sapete quale parametro dovete impostare, si prega di lasciare quello di default.
9
10.. code-block:: yml
11
12 parameters:
13 database_driver: pdo_sqlite
14 database_host: 127.0.0.1
15 database_port: null
16 database_name: symfony
17 database_user: root
18 database_password: null
19 database_path: '%kernel.root_dir%/../data/db/wallabag.sqlite'
20 database_table_prefix: wallabag_
21 database_socket: null
22 mailer_transport: smtp
23 mailer_host: 127.0.0.1
24 mailer_user: null
25 mailer_password: null
26 locale: en
27 secret: ovmpmAWXRCabNlMgzlzFXDYmCFfzGv
28 twofactor_auth: true
29 twofactor_sender: no-reply@wallabag.org
30 fosuser_registration: true
31 fosuser_confirmation: true
32 from_email: no-reply@wallabag.org
33 rss_limit: 50
34 rabbitmq_host: localhost
35 rabbitmq_port: 5672
36 rabbitmq_user: guest
37 rabbitmq_password: guest
38 redis_scheme: tcp
39 redis_host: localhost
40 redis_port: 6379
41 redis_path: null
42
43Significato di ogni parametro
44-----------------------------
45
46.. csv-table:: Parametri del database
47 :header: "nome", "default", "descrizione"
48
49 "database_driver", "pdo_sqlite", "Dovrebbe essere pdo_sqlite o pdo_mysql o pdo_pgsql"
50 "database_host", "127.0.0.1", "Host del vostro database (generalmente localhost o 127.0.0.1)"
51 "database_port", "~", "Porta del vostro database (potete lasciare ``~`` per usare quella di default)"
52 "database_name", "symfony", "Nome del vostro database"
53 "database_user", "root", "L'utente che puó scrivere su questo database"
54 "database_password", "~", "Password di quell'utente"
55 "database_path", "``""%kernel.root_dir%/../data/db/wallabag.sqlite""``", "Solo per SQLite, definite dove mettere il file del database. Lasciatelo vuoto se usate un altro database"
56 "database_table_prefix", "wallabag_", "Tutte le tavole di wallabag avranno quella stringa come prefisso. Potete includere un ``_`` per maggior chiarezza"
57 "database_socket", "null", "Se il vostro database usa un socket al posto di tcp, inserite il percorso del socket (altri parametri di connessione saranno ignorati)"
58
59.. csv-table:: Configurazione per inviare email da wallabag
60 :header: "nome", "default", "descrizione"
61
62 "mailer_transport", "smtp", "Il metodo di trasporto esatto usato per consegnare email. Valori validi sono: smtp, gmail, mail, sendmail, null (ció disattiva il mailer)"
63 "mailer_host", "127.0.0.1", "L'host al quale connettersi quando si usa smtp come metodo di trasporto."
64 "mailer_user", "~", "Lo username quando si usa smtp come metodo di trasporto."
65 "mailer_password", "~", "La password quando si usa smtp come metodo di trasporto."
66
67.. csv-table:: Altre opzioni di wallabag
68 :header: "nome", "default", "descrizione"
69
70 "locale", "en", "Lingua di default della vostra istanza di wallabag (come en, fr, es, etc.)"
71 "secret", "ovmpmAWXRCabNlMgzlzFXDYmCFfzGv", "Questa é una stringa che dovrebbe essere unica per la vostra applicazione ed é usata comunemente per aggiungere piú entropia alle operazioni di sicurezza."
72 "twofactor_auth", "true", "true per abilitare l'autenticazione a due fattori"
73 "twofactor_sender", "no-reply@wallabag.org", "Email del mittente per ricevere il codice a due fattori"
74 "fosuser_registration", "true", "true per abilitare la registrazione pubblica"
75 "fosuser_confirmation", "true", "true per inviare una mail di conferma per ogni registrazione"
76 "from_email", "no-reply@wallabag.org", "Indirizzo email usato nel campo Da: in ogni email"
77 "rss_limit", "50", "Limite per i feed RSS"
78
79.. csv-table:: Configurazione di RabbitMQ
80 :header: "nome", "default", "descrizione"
81
82 "rabbitmq_host", "localhost", "Host del vostro RabbitMQ"
83 "rabbitmq_port", "5672", "Porta del vostro RabbitMQ"
84 "rabbitmq_user", "guest", "Utente che puó leggere le code"
85 "rabbitmq_password", "guest", "Password di quell'utente"
86
87.. csv-table:: Configurazione di Redis
88 :header: "nome", "default", "descrizione"
89
90 "redis_scheme", "tcp", "Specifica il protocollo da usare per comunicare con una istanza di Redis. Valori validi sono: tcp, unix, http"
91 "redis_host", "localhost", "IP o hostname del server bersaglio (ignorato per lo schema unix)"
92 "redis_port", "6379", "Porta TCP/IP del server bersaglio (ignorato per lo schema unix)"
93 "redis_path", "null", "Percorso del file domain socket di UNIX usato quando ci si connette a Redis usando domain socket di UNIX"
diff --git a/docs/it/user/upgrade.rst b/docs/it/user/upgrade.rst
new file mode 100644
index 00000000..86122223
--- /dev/null
+++ b/docs/it/user/upgrade.rst
@@ -0,0 +1,102 @@
1Aggiornate la vostra installazione di wallabag
2==============================================
3
4Troverete qui i differenti modi per aggiornare il vostro wallabag:
5
6- `da 2.0.x a 2.1.1 <#upgrade-from-2-0-x-to-2-1-1>`_
7- `da 2.1.x a 2.1.y <#upgrading-from-2-1-x-to-2-1-y>`_
8- `da 1.x a 2.x <#from-wallabag-1-x>`_
9
10Aggiornate da 2.0.x a 2.1.1
11---------------------------
12
13.. attenzione::
14
15 prima di questa migrazione, se avete configurato l'importazione di Pocket aggiungendo la vostra consumer key nelle Impostazioni interne, si prega di farne un backup: dovrete aggiungere questa nella pagina di configurazione dopo l'aggiornamento.
16
17Aggiornamento su un web server dedicato
18^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
19:
20
21 rm -rf var/cache/*
22 git fetch origin
23 git fetch --tags
24 git checkout 2.1.1 --force
25 SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
26 php bin/console doctrine:migrations:migrate --env=prod
27 php bin/console cache:clear --env=prod
28
29Aggiornamento su un hosting condiviso
30^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
31Fate un backup del file ``app/config/parameters.yml``.
32Scaricate la versione 2.1.1 di wallabag:
33
34.. code-block:: bash
35
36 wget http://framabag.org/wallabag-release-2.1.1.tar.gz && tar xvf wallabag-release-2.1.1.tar.gz
37
38(hash md5 del pacchetto 2.1.1: ``9584a3b60a2b2a4de87f536548caac93``)
39
40Estraete l'archivio nella vostra cartella di wallabag e sostituite ``app/config/parameters.yml`` con il vostro.
41
42Controllate che il vostro ``app/config/parameters.yml`` contenga tutti i parametri richiesti. Potete trovare qui la documentazione sui parametri *link mancante*.
43
44Se usate SQLite, dovete anche copiare la vostra cartella ``data/`` dentro la nuova installazione.
45
46Svuotate la cartella ``var/cache``.
47
48Dovete eseguire delle query di SQL per aggiornare il vostro database. Assumiamo che il prefisso della tabella sia ``wallabag_`` e che il database sia MySQL:
49
50.. code-block:: sql
51
52 ALTER TABLE `wallabag_entry` ADD `uuid` LONGTEXT DEFAULT NULL;
53 INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('share_public', '1', 'entry');
54 ALTER TABLE `wallabag_oauth2_clients` ADD name longtext COLLATE 'utf8_unicode_ci' DEFAULT NULL;
55 INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_redis', '0', 'import');
56 INSERT INTO `wallabag_craue_config_setting` (`name`, `value`, `section`) VALUES ('import_with_rabbitmq', '0', 'import');
57 ALTER TABLE `wallabag_config` ADD `pocket_consumer_key` VARCHAR(255) DEFAULT NULL;
58 DELETE FROM `wallabag_craue_config_setting` WHERE `name` = 'pocket_consumer_key';
59
60Aggiornamento da 2.1.x a 2.1.y
61------------------------------
62
63Aggiornamento su un web server dedicato
64^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
65
66Per aggiornare la vostra installazione di wallabag ed ottenere l'ultima versione, eseguite il seguente comando nella vostra cartella wallabag:
67
68::
69
70 make update
71
72Aggiornamento su un hosting condiviso
73^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
74
75Fate un backup del file ``app/config/parameters.yml``.
76
77Scaricate l'ultima versione di wallabag:
78
79. code-block:: bash
80
81 wget http://wllbg.org/latest-v2-package && tar xvf latest-v2-package
82
83Troverete il `hash md5 dell'ultima versione del pacchetto sul nostro sito <https://www.wallabag.org/pages/download-wallabag.html>`_.
84
85Estraete l'archivio nella vostra cartella di wallabag e rimpiazzate ``app/config/parameters.yml`` con il vostro.
86
87Controllate che il vostro ``app/config/parameters.yml`` contenga tutti i parametri richiesti.
88
89Potete trovare qui la documentazione sui parametri *link mancante*.
90
91Se usate SQLite, dovete anche copiare la vostra cartella ``data/`` dentro la nuova installazione.
92
93Svuotate la cartella ``var/cache``.
94
95Da wallabag 1.x
96---------------
97
98Non esiste uno script automatico per aggiornare da wallabag 1.x a wallabag 2.x. Dovete:
99
100- esportare i vostri dati
101- installare wallabag 2.x (leggete la documentazione a proposito dell'installazione *link mancante*)
102- importate i dati in questa nuova installazione (leggete la documentazione a proposito dell'importazione)
diff --git a/scripts/require.sh b/scripts/require.sh
index ddfb3dd2..c48ab936 100644
--- a/scripts/require.sh
+++ b/scripts/require.sh
@@ -5,5 +5,5 @@ if [ ! -f composer.phar ]; then
5 echo "composer.phar not found, we'll see if composer is installed globally." 5 echo "composer.phar not found, we'll see if composer is installed globally."
6 command -v composer >/dev/null 2>&1 || { echo >&2 "wallabag requires composer but it's not installed (see http://doc.wallabag.org/en/master/user/installation.html). Aborting."; exit 1; } 6 command -v composer >/dev/null 2>&1 || { echo >&2 "wallabag requires composer but it's not installed (see http://doc.wallabag.org/en/master/user/installation.html). Aborting."; exit 1; }
7else 7else
8 COMPOSER_COMMAND='composer.phar' 8 COMPOSER_COMMAND='./composer.phar'
9fi 9fi
diff --git a/src/Wallabag/CoreBundle/Helper/HttpClientFactory.php b/src/Wallabag/CoreBundle/Helper/HttpClientFactory.php
index 8891887b..1ac8feb1 100644
--- a/src/Wallabag/CoreBundle/Helper/HttpClientFactory.php
+++ b/src/Wallabag/CoreBundle/Helper/HttpClientFactory.php
@@ -6,6 +6,7 @@ use Graby\Ring\Client\SafeCurlHandler;
6use GuzzleHttp\Client; 6use GuzzleHttp\Client;
7use GuzzleHttp\Cookie\CookieJar; 7use GuzzleHttp\Cookie\CookieJar;
8use GuzzleHttp\Event\SubscriberInterface; 8use GuzzleHttp\Event\SubscriberInterface;
9use Psr\Log\LoggerInterface;
9 10
10/** 11/**
11 * Builds and configures the Guzzle HTTP client. 12 * Builds and configures the Guzzle HTTP client.
@@ -19,6 +20,7 @@ class HttpClientFactory
19 private $cookieJar; 20 private $cookieJar;
20 21
21 private $restrictedAccess; 22 private $restrictedAccess;
23 private $logger;
22 24
23 /** 25 /**
24 * HttpClientFactory constructor. 26 * HttpClientFactory constructor.
@@ -26,12 +28,14 @@ class HttpClientFactory
26 * @param \GuzzleHttp\Event\SubscriberInterface $authenticatorSubscriber 28 * @param \GuzzleHttp\Event\SubscriberInterface $authenticatorSubscriber
27 * @param \GuzzleHttp\Cookie\CookieJar $cookieJar 29 * @param \GuzzleHttp\Cookie\CookieJar $cookieJar
28 * @param string $restrictedAccess this param is a kind of boolean. Values: 0 or 1 30 * @param string $restrictedAccess this param is a kind of boolean. Values: 0 or 1
31 * @param LoggerInterface $logger
29 */ 32 */
30 public function __construct(SubscriberInterface $authenticatorSubscriber, CookieJar $cookieJar, $restrictedAccess) 33 public function __construct(SubscriberInterface $authenticatorSubscriber, CookieJar $cookieJar, $restrictedAccess, LoggerInterface $logger)
31 { 34 {
32 $this->authenticatorSubscriber = $authenticatorSubscriber; 35 $this->authenticatorSubscriber = $authenticatorSubscriber;
33 $this->cookieJar = $cookieJar; 36 $this->cookieJar = $cookieJar;
34 $this->restrictedAccess = $restrictedAccess; 37 $this->restrictedAccess = $restrictedAccess;
38 $this->logger = $logger;
35 } 39 }
36 40
37 /** 41 /**
@@ -39,8 +43,10 @@ class HttpClientFactory
39 */ 43 */
40 public function buildHttpClient() 44 public function buildHttpClient()
41 { 45 {
46 $this->logger->log('debug', 'Restricted access config enabled?', array('enabled' => (int) $this->restrictedAccess));
47
42 if (0 === (int) $this->restrictedAccess) { 48 if (0 === (int) $this->restrictedAccess) {
43 return null; 49 return;
44 } 50 }
45 51
46 // we clear the cookie to avoid websites who use cookies for analytics 52 // we clear the cookie to avoid websites who use cookies for analytics
diff --git a/src/Wallabag/CoreBundle/Resources/config/services.yml b/src/Wallabag/CoreBundle/Resources/config/services.yml
index fadd5e49..51d6ab47 100644
--- a/src/Wallabag/CoreBundle/Resources/config/services.yml
+++ b/src/Wallabag/CoreBundle/Resources/config/services.yml
@@ -74,6 +74,7 @@ services:
74 - "@bd_guzzle_site_authenticator.authenticator_subscriber" 74 - "@bd_guzzle_site_authenticator.authenticator_subscriber"
75 - "@wallabag_core.guzzle.cookie_jar" 75 - "@wallabag_core.guzzle.cookie_jar"
76 - '@=service(''craue_config'').get(''restricted_access'')' 76 - '@=service(''craue_config'').get(''restricted_access'')'
77 - '@logger'
77 78
78 wallabag_core.guzzle.cookie_jar: 79 wallabag_core.guzzle.cookie_jar:
79 class: GuzzleHttp\Cookie\FileCookieJar 80 class: GuzzleHttp\Cookie\FileCookieJar
@@ -117,12 +118,12 @@ services:
117 wallabag.operator.array.matches: 118 wallabag.operator.array.matches:
118 class: Wallabag\CoreBundle\Operator\PHP\Matches 119 class: Wallabag\CoreBundle\Operator\PHP\Matches
119 tags: 120 tags:
120 - { name: rulerz.operator, executor: rulerz.executor.array, operator: matches } 121 - { name: rulerz.operator, target: native, operator: matches }
121 122
122 wallabag.operator.doctrine.matches: 123 wallabag.operator.doctrine.matches:
123 class: Wallabag\CoreBundle\Operator\Doctrine\Matches 124 class: Wallabag\CoreBundle\Operator\Doctrine\Matches
124 tags: 125 tags:
125 - { name: rulerz.operator, executor: rulerz.executor.doctrine, operator: matches, inline: true } 126 - { name: rulerz.operator, target: doctrine, operator: matches, inline: true }
126 127
127 wallabag_core.helper.redirect: 128 wallabag_core.helper.redirect:
128 class: Wallabag\CoreBundle\Helper\Redirect 129 class: Wallabag\CoreBundle\Helper\Redirect
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
index 8ae1c400..3aa4ba0b 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
@@ -9,7 +9,7 @@ security:
9 password: 'Contraseña' 9 password: 'Contraseña'
10 cancel: 'Cancelar' 10 cancel: 'Cancelar'
11 resetting: 11 resetting:
12 description: "Introduzca su dirección del correo electrónico y le enviaremos las instrucciones para reiniciar la contraseña" 12 description: "Introduzca su dirección de correo electrónico y le enviaremos las instrucciones para reiniciar la contraseña."
13 register: 13 register:
14 page_title: 'Crear una cuenta' 14 page_title: 'Crear una cuenta'
15 go_to_account: 'Acceder su cuenta' 15 go_to_account: 'Acceder su cuenta'
@@ -19,19 +19,19 @@ menu:
19 unread: 'Sin leer' 19 unread: 'Sin leer'
20 starred: 'Favoritos' 20 starred: 'Favoritos'
21 archive: 'Archivo' 21 archive: 'Archivo'
22 all_articles: 'Todos artículos' 22 all_articles: 'Todos los artículos'
23 config: 'Configuración' 23 config: 'Configuración'
24 tags: 'Etiquetas' 24 tags: 'Etiquetas'
25 internal_settings: 'Configuración interna' 25 internal_settings: 'Configuración interna'
26 import: 'Importar' 26 import: 'Importar'
27 howto: 'Ayuda' 27 howto: 'Ayuda'
28 # developer: 'API clients management' 28 developer: 'Configuración de clientes API'
29 logout: 'Desconectarse' 29 logout: 'Desconectarse'
30 about: 'Acerca de' 30 about: 'Acerca de'
31 search: 'Buscar' 31 search: 'Buscar'
32 save_link: 'Archivar un enlace' 32 save_link: 'Guardar un enlace'
33 back_to_unread: 'Volver a los artículos sin leer' 33 back_to_unread: 'Volver a los artículos sin leer'
34 # users_management: 'Users management' 34 users_management: 'Configuración de usuarios'
35 top: 35 top:
36 add_new_entry: 'Añadir un nuevo artículo' 36 add_new_entry: 'Añadir un nuevo artículo'
37 search: 'Buscar' 37 search: 'Buscar'
@@ -42,11 +42,11 @@ menu:
42 42
43footer: 43footer:
44 wallabag: 44 wallabag:
45 elsewhere: 'Lleve wallabag consigo' 45 elsewhere: 'Lleva wallabag contigo'
46 social: 'Social' 46 social: 'Social'
47 powered_by: 'funciona por' 47 powered_by: 'funciona con'
48 about: 'Acerca de' 48 about: 'Acerca de'
49 # stats: Since %user_creation% you read %nb_archives% articles. That is about %per_day% a day! 49 stats: Desde el %user_creation% has leído %nb_archives% artículos. ¡Eso hace unos %per_day% por día!
50 50
51config: 51config:
52 page_title: 'Configuración' 52 page_title: 'Configuración'
@@ -64,96 +64,96 @@ config:
64 items_per_page_label: 'Número de artículos por página' 64 items_per_page_label: 'Número de artículos por página'
65 language_label: 'Idioma' 65 language_label: 'Idioma'
66 reading_speed: 66 reading_speed:
67 label: 'Velocidad de leer' 67 label: 'Velocidad de lectura'
68 help_message: 'Se puede usar las técnicas para calcular su velocidad de leer:' 68 help_message: 'Puede utilizar herramientas en línea para calcular su velocidad de lectura:'
69 100_word: 'Leo ~100 palabras por minuto' 69 100_word: 'Leo ~100 palabras por minuto'
70 200_word: 'Leo ~200 palabras por minuto' 70 200_word: 'Leo ~200 palabras por minuto'
71 300_word: 'Leo ~300 palabras por minuto' 71 300_word: 'Leo ~300 palabras por minuto'
72 400_word: 'Leo ~400 palabras por minuto' 72 400_word: 'Leo ~400 palabras por minuto'
73 action_mark_as_read: 73 action_mark_as_read:
74 # label: 'Where do you to be redirected after mark an article as read?' 74 label: '¿Dónde quieres ser redirigido después de marcar un artículo como leido?'
75 # redirect_homepage: 'To the homepage' 75 redirect_homepage: 'A la página de inicio'
76 # redirect_current_page: 'To the current page' 76 redirect_current_page: 'A la página actual'
77 # pocket_consumer_key_label: Consumer key for Pocket to import contents 77 pocket_consumer_key_label: Clave de consumidor para importar contenidos de Pocket
78 # android_configuration: Configure your Android application 78 android_configuration: Configura tu aplicación Android
79 # help_theme: "wallabag is customizable. You can choose your prefered theme here." 79 help_theme: "wallabag es personalizable. Puedes elegir tu tema preferido aquí."
80 # help_items_per_page: "You can change the number of articles displayed on each page." 80 help_items_per_page: "Puedes cambiar el número de artículos mostrados en cada página."
81 # help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article." 81 help_reading_speed: "wallabag calcula un tiempo de lectura para cada artículo. Puedes definir aquí, gracias a esta lista, si eres un lector rápido o lento. wallabag recalculará el tiempo de lectura para cada artículo."
82 # help_language: "You can change the language of wallabag interface." 82 help_language: "Puedes cambiar el idioma de la interfaz de wallabag."
83 # help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account." 83 help_pocket_consumer_key: "Requerido para la importación desde Pocket. Puedes crearla en tu cuenta de Pocket."
84 form_rss: 84 form_rss:
85 description: 'Los feeds RSS de wallabag permiten leer los artículos guardados con su lector RSS favorito. Necesita generar un token primero' 85 description: 'Los feeds RSS de wallabag permiten leer los artículos guardados con su lector RSS favorito. Primero necesitas generar un token.'
86 token_label: 'RSS token' 86 token_label: 'Token RSS'
87 no_token: 'No token' 87 no_token: 'Sin token'
88 token_create: 'Crear token' 88 token_create: 'Crear token'
89 token_reset: 'Reiniciar token' 89 token_reset: 'Reiniciar token'
90 rss_links: 'URL de su feed RSS' 90 rss_links: 'URLs de feeds RSS'
91 rss_link: 91 rss_link:
92 unread: 'sin leer' 92 unread: 'sin leer'
93 starred: 'favoritos' 93 starred: 'favoritos'
94 archive: 'archivo' 94 archive: 'archivados'
95 rss_limit: 'Límite de artículos en feed RSS' 95 rss_limit: 'Límite de artículos en feed RSS'
96 form_user: 96 form_user:
97 two_factor_description: "Con la autentificación de dos factores recibirá código mediante email en cada nueva conexión que no sea de confianza" 97 two_factor_description: "Con la autentificación en dos pasos recibirá código por email en cada nueva conexión que no sea de confianza."
98 name_label: 'Nombre' 98 name_label: 'Nombre'
99 email_label: 'Direccion e-mail' 99 email_label: 'Direccion e-mail'
100 twoFactorAuthentication_label: 'Autentificación de dos factores' 100 twoFactorAuthentication_label: 'Autenticación en dos pasos'
101 # help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email." 101 help_twoFactorAuthentication: "Si activas la autenticación en dos pasos, cada vez que quieras inciar sesión en wallabag recibirás un código por email."
102 delete: 102 delete:
103 # title: Delete my account (a.k.a danger zone) 103 title: Eliminar mi cuenta (Zona peligrosa)
104 # 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. 104 description: Si eliminas tu cuenta, TODOS tus artículos, TODAS tus etiquetas, TODAS tus anotaciones y tu cuenta serán eliminadas de forma PERMANENTE (no se puede deshacer). Después serás desconectado.
105 # confirm: Are you really sure? (THIS CAN'T BE UNDONE) 105 confirm: ¿Estás completamente seguro? (NO SE PUEDE DESHACER)
106 # button: Delete my account 106 button: Eliminar mi cuenta
107 reset: 107 reset:
108 # title: Reset area (a.k.a danger zone) 108 title: Reiniciar mi cuenta (Zona peligrosa)
109 # description: By hiting buttons below you'll have ability to remove some informations from your account. Be aware that these actions are IRREVERSIBLE. 109 description: Pulsando los botones de abajo puedes eliminar información de tu cuenta. Ten en cuenta que estas acciones son IRREVERSIBLES.
110 # annotations: Remove ALL annotations 110 annotations: Eliminar TODAS las anotaciones
111 # tags: Remove ALL tags 111 tags: Eliminar TODAS las etiquetas
112 # entries: Remove ALL entries 112 entries: Eliminar TODOS los artículos
113 # confirm: Are you really really sure? (THIS CAN'T BE UNDONE) 113 confirm: ¿Estás completamente seguro? (NO SE PUEDE DESHACER)
114 form_password: 114 form_password:
115 # description: "You can change your password here. Your new password should by at least 8 characters long." 115 description: "Puedes cambiar la contraseña aquí. Tu nueva contraseña debe tener al menos 8 caracteres."
116 old_password_label: 'Contraseña actual' 116 old_password_label: 'Contraseña actual'
117 new_password_label: 'Nueva contraseña' 117 new_password_label: 'Nueva contraseña'
118 repeat_new_password_label: 'Confirmar la nueva contraseña' 118 repeat_new_password_label: 'Confirmar nueva contraseña'
119 form_rules: 119 form_rules:
120 if_label: 'si' 120 if_label: 'si'
121 then_tag_as_label: 'Etiquete como' 121 then_tag_as_label: 'etiquetar como'
122 delete_rule_label: 'Borre' 122 delete_rule_label: 'borrar'
123 # edit_rule_label: 'edit' 123 edit_rule_label: 'editar'
124 rule_label: 'Regla' 124 rule_label: 'Regla'
125 tags_label: 'Etiquetas' 125 tags_label: 'Etiquetas'
126 faq: 126 faq:
127 title: 'FAQ' 127 title: 'Preguntas frecuentes'
128 tagging_rules_definition_title: '¿Qué significa reglas de etiquetado autómaticas?' 128 tagging_rules_definition_title: '¿Qué significa « reglas de etiquetado autómatico »?'
129 tagging_rules_definition_description: 'Son las reglas usadas por Wallabag para etiquetar automáticamente los nuevos artículos.<br />Cada vez que un nuevo artículo sea añadido, todas las reglas de etiquetado automáticas serán usadas para etiquetarlo, ayudándole a clasificar automáticamente los artículos.' 129 tagging_rules_definition_description: 'Son las reglas usadas por wallabag para etiquetar automáticamente los nuevos artículos.<br />Cada vez que un artículo sea añadido, todas las reglas de etiquetado automático serán usadas para etiquetarlo, ayudándote a clasificar automáticamente tus artículos.'
130 how_to_use_them_title: '¿Cómo se utilizan?' 130 how_to_use_them_title: '¿Cómo se utilizan?'
131 how_to_use_them_description: 'Supongamos que quiere etiquetar nuevos artículos como « <i>lectura corta</i> » cuando el tiempo de leer sea menos de 3 minutos. <br /> En ese caso, debe poner « tiempo de leer &lt;= 3 » en el <i>Regla</i> campo y « <i>lectura corta</i> » en el <i>Etiquetas</i> campo.<br />Algunas etiquetas se pueden ser añadidas al mismo tiempo por separarlas con una coma: « <i>lectura corta, debe leer</i> »<br />Reglas complejas se pueden ser escritas por usar operadores predefinidos: si « <i>tiempo de leer &gt;= 5 Y nombre del dominio = "github.com"</i> » entonces etiquete como « <i>lectura larga, github </i> »' 131 how_to_use_them_description: 'Supongamos que quiere etiquetar los artículos nuevos como « <i>lectura corta</i> » cuando el tiempo de lectura sea menos de 3 minutos.<br /> En ese caso, debe poner « readingTime &lt;= 3 » en el campo <i>Regla</i> y « <i>lectura corta</i> » en el campo <i>Etiquetas</i>.<br />Se pueden añadir varias etiquetas al mismo tiempo separadas por comas: « <i>lectura corta, lectura obligada</i> »<br />Se pueden escribir reglas complejas utilizando los operadores predefinidos: si « <i>readingTime &gt;= 5 AND domainName = "github.com"</i> » entonces etiqueta como « <i>lectura larga, github </i> »'
132 variables_available_title: '¿Qué variables y operadores se pueden utilizar para escribir las reglas?' 132 variables_available_title: '¿Qué variables y operadores se pueden utilizar para escribir las reglas?'
133 variables_available_description: 'Las siguientes variables y operadores se pueden utilizar para crear las reglas de etiquetado automáticas:' 133 variables_available_description: 'Las siguientes variables y operadores se pueden utilizar para crear reglas de etiquetado automático:'
134 meaning: 'Significado' 134 meaning: 'Significado'
135 variable_description: 135 variable_description:
136 label: 'Variable' 136 label: 'Variable'
137 title: 'Titúlo del artículo' 137 title: 'Título del artículo'
138 url: 'URL del artículo' 138 url: 'URL del artículo'
139 isArchived: 'El artículo está guardado o no' 139 isArchived: 'Si artículo está archivado o no'
140 isStarred: 'Si el artículo es un favorito o no' 140 isStarred: 'Si el artículo está en favoritos o no'
141 content: "El contenido del artículo" 141 content: "El contenido del artículo"
142 language: "El idioma del artículo" 142 language: "El idioma del artículo"
143 mimetype: "Tipo MIME del artículo" 143 mimetype: "El tipo MIME del artículo"
144 readingTime: "El tiempo estimado de lectura del artículo, en minutos" 144 readingTime: "El tiempo estimado de lectura del artículo, en minutos"
145 domainName: 'El dominio del artículo' 145 domainName: 'El nombre de dominio del artículo'
146 operator_description: 146 operator_description:
147 label: 'Operador' 147 label: 'Operador'
148 less_than: 'Menos que…' 148 less_than: 'Menor que…'
149 strictly_less_than: 'Estrictámente menos que…' 149 strictly_less_than: 'Estrictámente menor que…'
150 greater_than: 'Más que…' 150 greater_than: 'Mayor que…'
151 strictly_greater_than: 'Estrictámente mas que…' 151 strictly_greater_than: 'Estrictámente mayor que…'
152 equal_to: 'Egual a…' 152 equal_to: 'Igual a…'
153 not_equal_to: 'Diferente de…' 153 not_equal_to: 'Diferente de…'
154 or: 'Una regla U otra' 154 or: 'Una regla U otra'
155 and: 'Una regla Y la otra' 155 and: 'Una regla Y la otra'
156 matches: 'Pruebe si un <i>sujeto</i> corresponde a una <i>búsqueda</i> (insensible a mayusculas).<br />Ejemplo : <code>título coincide "football"</code>' 156 matches: 'Prueba si un <i>sujeto</i> corresponde a una <i>búsqueda</i> (insensible a mayusculas).<br />Ejemplo : <code>title matches "fútbol"</code>'
157 157
158entry: 158entry:
159 page_titles: 159 page_titles:
@@ -161,32 +161,32 @@ entry:
161 starred: 'Artículos favoritos' 161 starred: 'Artículos favoritos'
162 archived: 'Artículos archivados' 162 archived: 'Artículos archivados'
163 filtered: 'Artículos filtrados' 163 filtered: 'Artículos filtrados'
164 # filtered_tags: 'Filtered by tags:' 164 filtered_tags: 'Filtrado por etiquetas:'
165 # filtered_search: 'Filtered by search:' 165 filtered_search: 'Filtrado por búsqueda:'
166 # untagged: 'Untagged entries' 166 untagged: 'Artículos sin etiquetas'
167 list: 167 list:
168 number_on_the_page: '{0} No hay artículos.|{1} Hay un artículo.|]1,Inf[ Hay %count% artículos.' 168 number_on_the_page: '{0} No hay artículos.|{1} Hay un artículo.|]1,Inf[ Hay %count% artículos.'
169 reading_time: 'tiempo estimado de lectura' 169 reading_time: 'tiempo estimado de lectura'
170 reading_time_minutes: 'tiempo estimado de lectura: %readingTime% min' 170 reading_time_minutes: 'tiempo estimado de lectura: %readingTime% min'
171 reading_time_less_one_minute: 'tiempo estimado de lectura: &lt; 1 min' 171 reading_time_less_one_minute: 'tiempo estimado de lectura: &lt; 1 min'
172 # number_of_tags: '{1}and one other tag|]1,Inf[and %count% other tags' 172 number_of_tags: '{1}y una etiqueta más|]1,Inf[y %count% etiquetas más'
173 reading_time_minutes_short: '%readingTime% min' 173 reading_time_minutes_short: '%readingTime% min'
174 reading_time_less_one_minute_short: '&lt; 1 min' 174 reading_time_less_one_minute_short: '&lt; 1 min'
175 original_article: 'original' 175 original_article: 'original'
176 toogle_as_read: 'Marcar como leído/ no leído' 176 toogle_as_read: 'Marcar como leído / no leído'
177 toogle_as_star: 'Marcar como favorito/ no favorito' 177 toogle_as_star: 'Marcar como favorito / no favorito'
178 delete: 'Suprimir' 178 delete: 'Eliminar'
179 export_title: 'Exportar' 179 export_title: 'Exportar'
180 filters: 180 filters:
181 title: 'Filtros' 181 title: 'Filtros'
182 status_label: 'Estatus' 182 status_label: 'Estado'
183 archived_label: 'Archivado' 183 archived_label: 'Archivado'
184 starred_label: 'Favorito' 184 starred_label: 'Favorito'
185 unread_label: 'Sin leer' 185 unread_label: 'Sin leer'
186 preview_picture_label: 'Hay una foto' 186 preview_picture_label: 'Tiene imagen de previsualización'
187 preview_picture_help: 'Foto de preview' 187 preview_picture_help: 'Imagen de previsualización'
188 language_label: 'Idioma' 188 language_label: 'Idioma'
189 # http_status_label: 'HTTP status' 189 http_status_label: 'Código de estado HTTP'
190 reading_time: 190 reading_time:
191 label: 'Duración de lectura en minutos' 191 label: 'Duración de lectura en minutos'
192 from: 'de' 192 from: 'de'
@@ -208,12 +208,12 @@ entry:
208 set_as_starred: 'Marcar como favorito' 208 set_as_starred: 'Marcar como favorito'
209 view_original_article: 'Artículo original' 209 view_original_article: 'Artículo original'
210 re_fetch_content: 'Redescargar el contenido' 210 re_fetch_content: 'Redescargar el contenido'
211 delete: 'Suprimir' 211 delete: 'Eliminar'
212 add_a_tag: 'Añadir una etiqueta' 212 add_a_tag: 'Añadir una etiqueta'
213 share_content: 'Compartir' 213 share_content: 'Compartir'
214 share_email_label: 'Dirección e-mail' 214 share_email_label: 'e-mail'
215 # public_link: 'public link' 215 public_link: 'enlace público'
216 # delete_public_link: 'delete public link' 216 delete_public_link: 'eliminar enlace público'
217 download: 'Descargar' 217 download: 'Descargar'
218 print: 'Imprimir' 218 print: 'Imprimir'
219 problem: 219 problem:
@@ -225,32 +225,32 @@ entry:
225 created_at: 'Fecha de creación' 225 created_at: 'Fecha de creación'
226 new: 226 new:
227 page_title: 'Guardar un nuevo artículo' 227 page_title: 'Guardar un nuevo artículo'
228 placeholder: 'http://website.com' 228 placeholder: 'http://sitioweb.com'
229 form_new: 229 form_new:
230 url_label: Url 230 url_label: Url
231 search: 231 search:
232 # placeholder: 'What are you looking for?' 232 placeholder: '¿Qué estás buscando?'
233 edit: 233 edit:
234 page_title: 'Editar un artículo' 234 page_title: 'Editar un artículo'
235 title_label: 'Título' 235 title_label: 'Título'
236 url_label: 'Url' 236 url_label: 'Url'
237 is_public_label: 'Es Público' 237 is_public_label: 'Es público'
238 save_label: 'Guardar' 238 save_label: 'Guardar'
239 public: 239 public:
240 # shared_by_wallabag: "This article has been shared by <a href='%wallabag_instance%'>wallabag</a>" 240 shared_by_wallabag: "Este artículo se ha compartido con <a href='%wallabag_instance%'>wallabag</a>"
241 241
242about: 242about:
243 page_title: 'Acerca de' 243 page_title: 'Acerca de'
244 top_menu: 244 top_menu:
245 who_behind_wallabag: 'Equipo del desarrollo de wallabag' 245 who_behind_wallabag: 'Quién está detrás de wallabag'
246 getting_help: 'Pedir ayuda' 246 getting_help: 'Pedir ayuda'
247 helping: 'Ayudar a wallabag' 247 helping: 'Ayudar a wallabag'
248 contributors: 'Colaboradores' 248 contributors: 'Colaboradores'
249 third_party: 'Librerías de terceros' 249 third_party: 'Bibliotecas de terceros'
250 who_behind_wallabag: 250 who_behind_wallabag:
251 developped_by: 'Desarrollado por' 251 developped_by: 'Desarrollado por'
252 website: 'Sitio web' 252 website: 'Sitio web'
253 many_contributors: 'Y muchos otros colaboradores ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">en Github</a>' 253 many_contributors: 'Y otros muchos colaboradores ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">en Github</a>'
254 project_website: 'Sitio web del proyecto' 254 project_website: 'Sitio web del proyecto'
255 license: 'Licencia' 255 license: 'Licencia'
256 version: 'Versión' 256 version: 'Versión'
@@ -259,56 +259,56 @@ about:
259 bug_reports: 'Reporte de errores' 259 bug_reports: 'Reporte de errores'
260 support: '<a href="https://github.com/wallabag/wallabag/issues">en GitHub</a>' 260 support: '<a href="https://github.com/wallabag/wallabag/issues">en GitHub</a>'
261 helping: 261 helping:
262 description: 'wallabag es libre y gratuito. Usted puede ayudarnos :' 262 description: 'wallabag es software libre y gratuito. Usted puede ayudarnos :'
263 by_contributing: 'contribuyendo al proyecto :' 263 by_contributing: 'contribuyendo al proyecto :'
264 by_contributing_2: 'nuestras necesidades están en un ticket' 264 by_contributing_2: 'nuestras necesidades están en un ticket'
265 by_paypal: 'via Paypal' 265 by_paypal: 'vía Paypal'
266 contributors: 266 contributors:
267 description: 'Gracias a los colaboradores de la aplicación web de wallabag' 267 description: 'Gracias a los colaboradores de la aplicación web de wallabag'
268 third_party: 268 third_party:
269 description: 'Aquí está la lista de las dependencias utilizadas por wallabag (con sus licencias) :' 269 description: 'Aquí está la lista de bibliotecas de terceros utilizadas por wallabag (con sus licencias) :'
270 package: 'Paquete' 270 package: 'Paquete'
271 license: 'Licencia' 271 license: 'Licencia'
272 272
273howto: 273howto:
274 page_title: 'Ayuda' 274 page_title: 'Ayuda'
275 page_description: 'Hay muchas maneras para guardar un artículo:'
276 tab_menu: 275 tab_menu:
277 # add_link: "Add a link" 276 add_link: "Añadir un artículo"
278 # shortcuts: "Use shortcuts" 277 shortcuts: "Utilizar atajos de teclado"
278 page_description: 'Hay muchas maneras de guardar un artículo:'
279 top_menu: 279 top_menu:
280 browser_addons: 'Extensiones de navigador' 280 browser_addons: 'Extensiones de navegador'
281 mobile_apps: 'Aplicaciones para smartphone' 281 mobile_apps: 'Aplicaciones para smartphone'
282 bookmarklet: 'Bookmarklet' 282 bookmarklet: 'Bookmarklet'
283 form: 283 form:
284 description: 'Gracias a este formulario' 284 description: 'Gracias a este formulario'
285 browser_addons: 285 browser_addons:
286 firefox: 'Extensión Firefox' 286 firefox: 'Extensión para Firefox'
287 chrome: 'Extensión Chrome' 287 chrome: 'Extensión para Chrome'
288 opera: 'Extensión Opera' 288 opera: 'Extensión para Opera'
289 mobile_apps: 289 mobile_apps:
290 android: 290 android:
291 via_f_droid: 'via F-Droid' 291 via_f_droid: 'en F-Droid'
292 via_google_play: 'via Google Play' 292 via_google_play: 'en Google Play'
293 ios: 'por la tienda de iTunes' 293 ios: 'en la tienda de iTunes'
294 windows: 'por la tienda de Microsoft' 294 windows: 'en la tienda de Microsoft'
295 bookmarklet: 295 bookmarklet:
296 description: 'Desplazar y soltar este link en la barra de marcadores :' 296 description: 'Arrastra y suelta este enlace en la barra de marcadores:'
297 shortcuts: 297 shortcuts:
298 # page_description: Here are the shortcuts available in wallabag. 298 page_description: Estos son los atajos de teclado disponibles en wallabag.
299 # shortcut: Shortcut 299 shortcut: Atajo de teclado
300 # action: Action 300 action: Acción
301 # all_pages_title: Shortcuts available in all pages 301 all_pages_title: Atajos de teclado disponibles en todas las páginas
302 # go_unread: Go to unread 302 go_unread: Ir a sin leer
303 # go_starred: Go to starred 303 go_starred: Ir a favoritos
304 # go_archive: Go to archive 304 go_archive: Ir a archivados
305 # go_all: Go to all entries 305 go_all: Ir a todos los artículos
306 # go_tags: Go to tags 306 go_tags: Ir a etiquetas
307 # go_config: Go to config 307 go_config: Ir a configuración
308 # go_import: Go to import 308 go_import: Ir a importar
309 # go_developers: Go to developers 309 go_developers: Ir a desarrolladores
310 # go_howto: Go to howto (this page!) 310 go_howto: Ir a ayuda (esta página!)
311 # go_logout: Logout 311 go_logout: Desconectar
312 # list_title: Shortcuts available in listing pages 312 # list_title: Shortcuts available in listing pages
313 # search: Display the search form 313 # search: Display the search form
314 # article_title: Shortcuts available in entry view 314 # article_title: Shortcuts available in entry view
@@ -324,9 +324,9 @@ howto:
324 324
325quickstart: 325quickstart:
326 page_title: 'Comienzo rápido' 326 page_title: 'Comienzo rápido'
327 # more: 'More…' 327 more: 'Más…'
328 intro: 328 intro:
329 title: 'Bienvenido a wallabag !' 329 title: '¡Bienvenido a wallabag !'
330 paragraph_1: "Le acompañaremos a su visita de wallabag y le mostraremos algunas características que le pueden interesar." 330 paragraph_1: "Le acompañaremos a su visita de wallabag y le mostraremos algunas características que le pueden interesar."
331 paragraph_2: '¡Síganos!' 331 paragraph_2: '¡Síganos!'
332 configure: 332 configure:
@@ -357,7 +357,7 @@ quickstart:
357 readability: 'Migrar desde Readability' 357 readability: 'Migrar desde Readability'
358 instapaper: 'Migrar desde Instapaper' 358 instapaper: 'Migrar desde Instapaper'
359 developer: 359 developer:
360 title: 'Promotores' 360 title: 'Desarrolladores'
361 # description: 'We also thought to the developers: Docker, API, translations, etc.' 361 # description: 'We also thought to the developers: Docker, API, translations, etc.'
362 create_application: 'Cree su tercera aplicación' 362 create_application: 'Cree su tercera aplicación'
363 # use_docker: 'Use Docker to install wallabag' 363 # use_docker: 'Use Docker to install wallabag'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
index bb0ed48d..992ff71c 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.it.yml
@@ -344,7 +344,7 @@ quickstart:
344 export: "Configura l'esportazione" 344 export: "Configura l'esportazione"
345 import: "Configura l'importazione" 345 import: "Configura l'importazione"
346 first_steps: 346 first_steps:
347 title: 'Pimi passi' 347 title: 'Primi passi'
348 # 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." 348 # 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."
349 new_article: 'Salva il tuo primo contenuto' 349 new_article: 'Salva il tuo primo contenuto'
350 unread_articles: 'E classificalo!' 350 unread_articles: 'E classificalo!'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
index ef773dce..f6488565 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
@@ -25,7 +25,7 @@ menu:
25 internal_settings: 'Configuracion interna' 25 internal_settings: 'Configuracion interna'
26 import: 'Importar' 26 import: 'Importar'
27 howto: 'Ajuda' 27 howto: 'Ajuda'
28 # developer: 'API clients management' 28 developer: 'Gestion dels clients API'
29 logout: 'Desconnexion' 29 logout: 'Desconnexion'
30 about: 'A prepaus' 30 about: 'A prepaus'
31 search: 'Cercar' 31 search: 'Cercar'
@@ -71,16 +71,16 @@ config:
71 300_word: "Legissi a l'entorn de 300 mots per minuta" 71 300_word: "Legissi a l'entorn de 300 mots per minuta"
72 400_word: "Legissi a l'entorn de 400 mots per minuta" 72 400_word: "Legissi a l'entorn de 400 mots per minuta"
73 action_mark_as_read: 73 action_mark_as_read:
74 # label: 'Where do you to be redirected after mark an article as read?' 74 label: 'Ont volètz èsser menat aprèp aver marcat un article coma legit ?'
75 # redirect_homepage: 'To the homepage' 75 redirect_homepage: "A la pagina d'acuèlh"
76 # redirect_current_page: 'To the current page' 76 redirect_current_page: 'A la pagina actuala'
77 pocket_consumer_key_label: Clau d'autentificacion Pocket per importar las donadas 77 pocket_consumer_key_label: Clau d'autentificacion Pocket per importar las donadas
78 android_configuration: Configuratz vòstra aplicacion Android 78 android_configuration: Configuratz vòstra aplicacion Android
79 # help_theme: "wallabag is customizable. You can choose your prefered theme here." 79 help_theme: "wallabag es personalizable. Podètz causir vòstre tèma preferit aquí."
80 # help_items_per_page: "You can change the number of articles displayed on each page." 80 help_items_per_page: "Podètz cambiar lo nombre d'articles afichats per pagina."
81 # help_reading_speed: "wallabag calculates a reading time for each article. You can define here, thanks to this list, if you are a fast or a slow reader. wallabag will recalculate the reading time for each article." 81 help_reading_speed: "wallabag calcula lo temps de lectura per cada article. Podètz lo definir aquí, gràcias a aquesta lista, se sètz un legeire rapid o lent. wallabag tornarà calcular lo temps de lectura per cada article."
82 # help_language: "You can change the language of wallabag interface." 82 help_language: "Podètz cambiar la lenga de l'interfàcia de wallabag."
83 # help_pocket_consumer_key: "Required for Pocket import. You can create it in your Pocket account." 83 help_pocket_consumer_key: "Requesida per l'importacion de Pocket. Podètz la crear dins vòstre compte Pocket."
84 form_rss: 84 form_rss:
85 description: "Los fluxes RSS fornits per wallabag vos permeton de legir vòstres articles salvagardats dins vòstre lector de fluxes preferit. Per los poder emplegar, vos cal, d'en primièr crear un geton." 85 description: "Los fluxes RSS fornits per wallabag vos permeton de legir vòstres articles salvagardats dins vòstre lector de fluxes preferit. Per los poder emplegar, vos cal, d'en primièr crear un geton."
86 token_label: 'Geton RSS' 86 token_label: 'Geton RSS'
@@ -98,7 +98,7 @@ config:
98 name_label: 'Nom' 98 name_label: 'Nom'
99 email_label: 'Adreça de corrièl' 99 email_label: 'Adreça de corrièl'
100 twoFactorAuthentication_label: 'Dobla autentificacion' 100 twoFactorAuthentication_label: 'Dobla autentificacion'
101 # help_twoFactorAuthentication: "If you enable 2FA, each time you want to login to wallabag, you'll receive a code by email." 101 help_twoFactorAuthentication: "S'avètz activat 2FA, cada còp que volètz vos connectar a wallabag, recebretz un còdi per corrièl."
102 delete: 102 delete:
103 title: Suprimir mon compte (Mèfi zòna perilhosa) 103 title: Suprimir mon compte (Mèfi zòna perilhosa)
104 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. 104 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.
@@ -112,7 +112,7 @@ config:
112 entries: Levar TOTES los articles 112 entries: Levar TOTES los articles
113 confirm: Sètz vertadièrament segur ? (ES IRREVERSIBLE) 113 confirm: Sètz vertadièrament segur ? (ES IRREVERSIBLE)
114 form_password: 114 form_password:
115 # description: "You can change your password here. Your new password should by at least 8 characters long." 115 description: "Podètz cambiar vòstre senhal aquí. Vòstre senhal deu èsser long d'almens 8 caractèrs."
116 old_password_label: 'Senhal actual' 116 old_password_label: 'Senhal actual'
117 new_password_label: 'Senhal novèl' 117 new_password_label: 'Senhal novèl'
118 repeat_new_password_label: 'Confirmatz vòstre novèl senhal' 118 repeat_new_password_label: 'Confirmatz vòstre novèl senhal'
@@ -161,8 +161,8 @@ entry:
161 starred: 'Articles favorits' 161 starred: 'Articles favorits'
162 archived: 'Articles legits' 162 archived: 'Articles legits'
163 filtered: 'Articles filtrats' 163 filtered: 'Articles filtrats'
164 filtered_tags: 'Filtats per etiquetas:' 164 filtered_tags: 'Articles filtrats per etiquetas :'
165 # filtered_search: 'Filtered by search:' 165 filtered_search: 'Articles filtrats per recèrca :'
166 untagged: 'Articles sens etiqueta' 166 untagged: 'Articles sens etiqueta'
167 list: 167 list:
168 number_on_the_page: "{0} I a pas cap d'article.|{1} I a un article.|]1,Inf[ I a %count% articles." 168 number_on_the_page: "{0} I a pas cap d'article.|{1} I a un article.|]1,Inf[ I a %count% articles."
@@ -186,7 +186,7 @@ entry:
186 preview_picture_label: 'A una fotò' 186 preview_picture_label: 'A una fotò'
187 preview_picture_help: 'Fotò' 187 preview_picture_help: 'Fotò'
188 language_label: 'Lenga' 188 language_label: 'Lenga'
189 # http_status_label: 'HTTP status' 189 http_status_label: 'Estatut HTTP'
190 reading_time: 190 reading_time:
191 label: 'Durada de lectura en minutas' 191 label: 'Durada de lectura en minutas'
192 from: 'de' 192 from: 'de'
@@ -229,7 +229,7 @@ entry:
229 form_new: 229 form_new:
230 url_label: Url 230 url_label: Url
231 search: 231 search:
232 # placeholder: 'What are you looking for?' 232 placeholder: 'Qué cercatz ?'
233 edit: 233 edit:
234 page_title: 'Modificar un article' 234 page_title: 'Modificar un article'
235 title_label: 'Títol' 235 title_label: 'Títol'
@@ -274,8 +274,8 @@ howto:
274 page_title: 'Ajuda' 274 page_title: 'Ajuda'
275 page_description: "I a mai d'un biais d'enregistrar un article :" 275 page_description: "I a mai d'un biais d'enregistrar un article :"
276 tab_menu: 276 tab_menu:
277 # add_link: "Add a link" 277 add_link: "Ajustar un ligam"
278 # shortcuts: "Use shortcuts" 278 shortcuts: "Utilizar d'acorchis"
279 top_menu: 279 top_menu:
280 browser_addons: 'Extensions de navigator' 280 browser_addons: 'Extensions de navigator'
281 mobile_apps: 'Aplicacions mobil' 281 mobile_apps: 'Aplicacions mobil'
@@ -295,32 +295,32 @@ howto:
295 bookmarklet: 295 bookmarklet:
296 description: 'Lisatz-depausatz aqueste ligam dins vòstra barra de favorits :' 296 description: 'Lisatz-depausatz aqueste ligam dins vòstra barra de favorits :'
297 shortcuts: 297 shortcuts:
298 # page_description: Here are the shortcuts available in wallabag. 298 page_description: Aquí son los acorchis disponibles dins wallabag.
299 # shortcut: Shortcut 299 shortcut: Acorchis
300 # action: Action 300 action: Accion
301 # all_pages_title: Shortcuts available in all pages 301 all_pages_title: Acorchis disponibles sus totas las paginas
302 # go_unread: Go to unread 302 go_unread: Anar als pas legits
303 # go_starred: Go to starred 303 go_starred: Anar als favorits
304 # go_archive: Go to archive 304 go_archive: Anar als archius
305 # go_all: Go to all entries 305 go_all: Anar a totes los articles
306 # go_tags: Go to tags 306 go_tags: Anar a las etiquetas
307 # go_config: Go to config 307 go_config: Anar a la config
308 # go_import: Go to import 308 go_import: Anar per importar
309 # go_developers: Go to developers 309 go_developers: Anar al canton desvolopaires
310 # go_howto: Go to howto (this page!) 310 go_howto: Anar a l'ajuda (aquesta quita pagina !)
311 # go_logout: Logout 311 go_logout: Desconnexion
312 # list_title: Shortcuts available in listing pages 312 list_title: Acorchis disponibles dins las paginas de lista
313 # search: Display the search form 313 search: Afichar lo formulari de recèrca
314 # article_title: Shortcuts available in entry view 314 article_title: Acorchis disponibles dins la vista article
315 # open_original: Open original URL of the entry 315 open_original: Dobrir l'URL originala de l'article
316 # toggle_favorite: Toggle star status for the entry 316 toggle_favorite: Cambiar l'estatut Favorit per l'article
317 # toggle_archive: Toggle read status for the entry 317 toggle_archive: Cambiar l'estatut Legit per l'article
318 # delete: Delete the entry 318 delete: Suprimir l'article
319 # material_title: Shortcuts available with Material theme only 319 material_title: Acorchis solament disponibles amb lo tèma Material
320 # add_link: Add a new link 320 add_link: Apondre un acorchi
321 # hide_form: Hide the current form (search or new link) 321 hide_form: Rescondre lo formulari actual (recèrca o nòu ligam)
322 # arrows_navigation: Navigate through articles 322 arrows_navigation: Navigar dins los articles
323 # open_article: Display the selected entry 323 open_article: Afichar l'article seleccionat
324 324
325quickstart: 325quickstart:
326 page_title: 'Per ben començar' 326 page_title: 'Per ben començar'
@@ -328,7 +328,7 @@ quickstart:
328 intro: 328 intro:
329 title: 'Benvenguda sus wallabag !' 329 title: 'Benvenguda sus wallabag !'
330 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." 330 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."
331 paragraph_2: 'Seguètz-nos ' 331 paragraph_2: 'Seguètz-nos !'
332 configure: 332 configure:
333 title: "Configuratz l'aplicacion" 333 title: "Configuratz l'aplicacion"
334 description: "Per fin d'aver una aplicacion que vos va ben, anatz veire la configuracion de wallabag." 334 description: "Per fin d'aver una aplicacion que vos va ben, anatz veire la configuracion de wallabag."
@@ -382,8 +382,8 @@ tag:
382 number_on_the_page: "{0} I a pas cap d'etiquetas.|{1} I a una etiqueta.|]1,Inf[ I a %count% etiquetas." 382 number_on_the_page: "{0} I a pas cap d'etiquetas.|{1} I a una etiqueta.|]1,Inf[ I a %count% etiquetas."
383 see_untagged_entries: "Afichar las entradas sens pas cap d'etiquetas" 383 see_untagged_entries: "Afichar las entradas sens pas cap d'etiquetas"
384 new: 384 new:
385 # add: 'Add' 385 add: 'Ajustar'
386 # placeholder: 'You can add several tags, separated by a comma.' 386 placeholder: "Podètz ajustar mai qu'una etiqueta, separadas per de virgula."
387 387
388import: 388import:
389 page_title: 'Importar' 389 page_title: 'Importar'
@@ -410,13 +410,13 @@ import:
410 how_to: "Causissètz lo fichièr de vòstra exportacion wallabag v1 e clicatz sul boton çai-jos per l'importar." 410 how_to: "Causissètz lo fichièr de vòstra exportacion wallabag v1 e clicatz sul boton çai-jos per l'importar."
411 wallabag_v2: 411 wallabag_v2:
412 page_title: 'Importar > Wallabag v2' 412 page_title: 'Importar > Wallabag v2'
413 description: "Aquesta aisina importarà totas vòstras donadas d'una instància mai de wallabag v2. Anatz dins totes vòstres articles, puèi, sus la barra laterala, clicatz sus \"JSON\". Traparatz un fichièr \"All articles.json\"" 413 description: "Aquesta aisina importarà totas vòstras donadas d'una instància mai de wallabag v2. Anatz dins totes vòstres articles, puèi, sus la barra laterala, clicatz sus \"JSON\". Traparatz un fichièr \"All articles.json\"."
414 readability: 414 readability:
415 page_title: 'Importar > Readability' 415 page_title: 'Importar > Readability'
416 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)." 416 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)."
417 how_to: "Mercés de seleccionar vòstre Readability fichièr e de clicar sul boton dejós per lo telecargar e l'importar." 417 how_to: "Mercés de seleccionar vòstre Readability fichièr e de clicar sul boton dejós per lo telecargar e l'importar."
418 worker: 418 worker:
419 enabled: "L'importacion se fa de manièra asincròna. Un còp l'importacion lançada, una aisina externa s'ocuparà dels messatges un per un. Lo servici actual es : " 419 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 : "
420 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." 420 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."
421 firefox: 421 firefox:
422 page_title: 'Importar > Firefox' 422 page_title: 'Importar > Firefox'
@@ -429,14 +429,14 @@ import:
429 instapaper: 429 instapaper:
430 page_title: 'Importar > Instapaper' 430 page_title: 'Importar > Instapaper'
431 description: "Aquesta aisina importarà totas vòstres articles d'Instapaper. Sus la pagina de paramètres (https://www.instapaper.com/user), clicatz sus \"Download .CSV file\" dins la seccion \"Export\". Un fichièr CSV serà telecargat (aital \"instapaper-export.csv\")." 431 description: "Aquesta aisina importarà totas vòstres articles d'Instapaper. Sus la pagina de paramètres (https://www.instapaper.com/user), clicatz sus \"Download .CSV file\" dins la seccion \"Export\". Un fichièr CSV serà telecargat (aital \"instapaper-export.csv\")."
432 how_to: "Mercés de causir vòstre fichièr Instapaper e de clicar sul boton dejós per lo telecargar e l'importar" 432 how_to: "Mercés de causir vòstre fichièr Instapaper e de clicar sul boton dejós per lo telecargar e l'importar."
433 pinboard: 433 pinboard:
434 # page_title: "Import > Pinboard" 434 page_title: "Importar > Pinboard"
435 # description: 'This importer will import all your Instapaper articles. On the backup (https://pinboard.in/settings/backup) page, click on "JSON" in the "Bookmarks" section. A JSON file will be downloaded (like "pinboard_export").' 435 description: 'Aquesta aisina importarà totas vòstres articles de Pinboard. Sus la pagina de salvagarda (https://pinboard.in/settings/backup) , clicatz sus "JSON" dins la seccion "Bookmarks". Se poirà telecargar un fichièr JSON (coma "pinboard_export").'
436 # how_to: 'Please select your Pinboard export and click on the below button to upload and import it.' 436 how_to: "Mercés de causir vòstre fichièr Pinboard e de clicar sul boton dejós per lo telecargar e l'importar."
437 437
438developer: 438developer:
439 # page_title: 'API clients management' 439 page_title: 'Gestion dels clients API'
440 welcome_message: "Benvenguda sus l'API de wallabag" 440 welcome_message: "Benvenguda sus l'API de wallabag"
441 documentation: 'Documentacion' 441 documentation: 'Documentacion'
442 how_to_first_app: 'Cossí crear vòstra primièra aplicacion' 442 how_to_first_app: 'Cossí crear vòstra primièra aplicacion'
@@ -451,13 +451,13 @@ developer:
451 field_secret: 'Clé secreta' 451 field_secret: 'Clé secreta'
452 field_uris: 'URLs de redireccion' 452 field_uris: 'URLs de redireccion'
453 field_grant_types: 'Tipe de privilègi acordat' 453 field_grant_types: 'Tipe de privilègi acordat'
454 no_client: 'Pas cap de client pel moment' 454 no_client: 'Pas cap de client pel moment.'
455 remove: 455 remove:
456 warn_message_1: 'Avètz la possibilitat de supriimr un client. Aquesta accion es IRREVERSIBLA !' 456 warn_message_1: 'Avètz la possibilitat de supriimr un client. Aquesta accion es IRREVERSIBLA !'
457 warn_message_2: "Se suprimissètz un client, totas las aplicacions que l'emplegan foncionaràn pas mai amb vòstre compte wallabag." 457 warn_message_2: "Se suprimissètz un client, totas las aplicacions que l'emplegan foncionaràn pas mai amb vòstre compte wallabag."
458 action: 'Suprimir aqueste client' 458 action: 'Suprimir aqueste client'
459 client: 459 client:
460 # page_title: 'API clients management > Novèl client' 460 page_title: 'Gestion dels clients API > Novèl client'
461 page_description: "Anatz crear un novèl client. Mercés de cumplir l'url de redireccion cap a vòstra aplicacion." 461 page_description: "Anatz crear un novèl client. Mercés de cumplir l'url de redireccion cap a vòstra aplicacion."
462 form: 462 form:
463 name_label: "Nom del client" 463 name_label: "Nom del client"
@@ -465,15 +465,15 @@ developer:
465 save_label: 'Crear un novèl client' 465 save_label: 'Crear un novèl client'
466 action_back: 'Retorn' 466 action_back: 'Retorn'
467 client_parameter: 467 client_parameter:
468 # page_title: 'API clients management > Los paramètres de vòstre client' 468 page_title: 'Gestion dels clients API > Los paramètres de vòstre client'
469 page_description: 'Vaquí los paramètres de vòstre client' 469 page_description: 'Vaquí los paramètres de vòstre client.'
470 field_name: 'Nom del client' 470 field_name: 'Nom del client'
471 field_id: 'ID Client' 471 field_id: 'ID Client'
472 field_secret: 'Clau secreta' 472 field_secret: 'Clau secreta'
473 back: 'Retour' 473 back: 'Retour'
474 read_howto: 'Legir "cossí crear ma primièra aplicacion"' 474 read_howto: 'Legir "cossí crear ma primièra aplicacion"'
475 howto: 475 howto:
476 # page_title: 'API clients management > Cossí crear ma primièra aplicacion' 476 page_title: 'Gestion dels clients API > Cossí crear ma primièra aplicacion'
477 description: 477 description:
478 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." 478 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."
479 paragraph_2: "Vos cal un geton per escambiar entre vòstra aplicacion e l'API de wallabar." 479 paragraph_2: "Vos cal un geton per escambiar entre vòstra aplicacion e l'API de wallabar."
@@ -546,7 +546,7 @@ flashes:
546 tag_added: 'Etiqueta ajustada' 546 tag_added: 'Etiqueta ajustada'
547 import: 547 import:
548 notice: 548 notice:
549 failed: "L'importacion a fracassat, mercés de tornar ensajar" 549 failed: "L'importacion a fracassat, mercés de tornar ensajar."
550 failed_on_file: "Errorr pendent du tractament de l'import. Mercés de verificar vòstre fichièr." 550 failed_on_file: "Errorr pendent du tractament de l'import. Mercés de verificar vòstre fichièr."
551 summary: "Rapòrt d'import: %imported% importats, %skipped% ja presents." 551 summary: "Rapòrt d'import: %imported% importats, %skipped% ja presents."
552 summary_with_queue: "Rapòrt d'import : %queued% en espèra de tractament." 552 summary_with_queue: "Rapòrt d'import : %queued% en espèra de tractament."
@@ -555,7 +555,7 @@ flashes:
555 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." 555 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."
556 developer: 556 developer:
557 notice: 557 notice:
558 client_created: 'Novèl client creat' 558 client_created: 'Novèl client creat.'
559 client_deleted: 'Client suprimit' 559 client_deleted: 'Client suprimit'
560 user: 560 user:
561 notice: 561 notice:
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
index 00ddfddf..eda9bbbf 100644
--- a/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
+++ b/src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
@@ -82,7 +82,7 @@ config:
82 help_language: "Możesz zmienić język interfejsu wallabag." 82 help_language: "Możesz zmienić język interfejsu wallabag."
83 help_pocket_consumer_key: "Wymagane dla importu z Pocket. Możesz go stworzyć na swoim koncie Pocket." 83 help_pocket_consumer_key: "Wymagane dla importu z Pocket. Możesz go stworzyć na swoim koncie Pocket."
84 form_rss: 84 form_rss:
85 description: 'Kanały RSS prowadzone przez wallabag pozwalają Ci na czytanie twoich zapisanych artykułów w twoium ulubionym czytniku RSS. Musisz najpierw wynegenerować tokena.‌' 85 description: 'Kanały RSS prowadzone przez wallabag pozwalają Ci na czytanie twoich zapisanych artykułów w twoim ulubionym czytniku RSS. Musisz najpierw wynegenerować tokena.‌'
86 token_label: 'Token RSS' 86 token_label: 'Token RSS'
87 no_token: 'Brak tokena' 87 no_token: 'Brak tokena'
88 token_create: 'Stwórz tokena' 88 token_create: 'Stwórz tokena'
@@ -94,7 +94,7 @@ config:
94 archive: 'archiwum' 94 archive: 'archiwum'
95 rss_limit: 'Link do RSS' 95 rss_limit: 'Link do RSS'
96 form_user: 96 form_user:
97 two_factor_description: "Włączenie autoryzacji dwuetapowej oznacza, że będziesz otrzymywał maile z kodem przy każdym nowym, niezaufanyum połączeniu" 97 two_factor_description: "Włączenie autoryzacji dwuetapowej oznacza, że będziesz otrzymywał maile z kodem przy każdym nowym, niezaufanym połączeniu"
98 name_label: 'Nazwa' 98 name_label: 'Nazwa'
99 email_label: 'Adres email' 99 email_label: 'Adres email'
100 twoFactorAuthentication_label: 'Autoryzacja dwuetapowa' 100 twoFactorAuthentication_label: 'Autoryzacja dwuetapowa'
@@ -126,9 +126,9 @@ config:
126 faq: 126 faq:
127 title: 'FAQ' 127 title: 'FAQ'
128 tagging_rules_definition_title: 'Co oznaczają « reguły tagowania » ?' 128 tagging_rules_definition_title: 'Co oznaczają « reguły tagowania » ?'
129 tagging_rules_definition_description: 'Istnieją reguły używane przez wallabag służące do automatycznego tagowania nowych wpisów.<br />Za każdym razem kiedy dodasz nowi wpis, zostaną użyte wszystkie skonfigurowane przez ciebie regułu. Dzięki temu unikniesz konieczności ręcznego ich klasyfikowania.' 129 tagging_rules_definition_description: 'Istnieją reguły używane przez wallabag służące do automatycznego tagowania nowych wpisów.<br />Za każdym razem kiedy dodasz nowy wpis, zostaną użyte wszystkie skonfigurowane przez ciebie reguły. Dzięki temu unikniesz konieczności ręcznego ich klasyfikowania.'
130 how_to_use_them_title: 'Jak ich użyć?' 130 how_to_use_them_title: 'Jak ich użyć?'
131 how_to_use_them_description: 'Załóżmy, że chcesz otagować nowe wpisy jako « <i>do szybkiego przeczytania</i> » jeżeli czas czytania wynosi mniej niż 3 minuty.<br />W tym przypadku ponienieneś umieścić « czasCzytania &lt;= 3 » w polu <i>Reguła</i> i « <i><do szybkiego przeczytania/i> » w polu <i>Tagi</i>.<br />Wiele tagów może zostać dodanych jednocześnie rozdzielając je przecinkami: « <i>do szybkiego przeczytania, koniecznie przeczytać</i> »<br />Kompleksowe reguły mogą być napisane przy użyciu operatorów: jeżeli « <i>czasCzytania &gt;= 5 I nazwaDomeny = "github.com"</i> » wtedy otagój jako « <i>dłuższy tekst, github </i> »' 131 how_to_use_them_description: 'Załóżmy, że chcesz otagować nowe wpisy jako « <i>do szybkiego przeczytania</i> » jeżeli czas czytania wynosi mniej niż 3 minuty.<br />W tym przypadku ponienieneś umieścić « czasCzytania &lt;= 3 » w polu <i>Reguła</i> i « <i><do szybkiego przeczytania/i> » w polu <i>Tagi</i>.<br />Wiele tagów może zostać dodanych jednocześnie rozdzielając je przecinkami: « <i>do szybkiego przeczytania, koniecznie przeczytać</i> »<br />Kompleksowe reguły mogą być napisane przy użyciu operatorów: jeżeli « <i>czasCzytania &gt;= 5 I nazwaDomeny = "github.com"</i> » wtedy otaguj jako « <i>dłuższy tekst, github </i> »'
132 variables_available_title: 'Jakich zmiennych i operatorów mogę użyć przy pisaniu reguł?' 132 variables_available_title: 'Jakich zmiennych i operatorów mogę użyć przy pisaniu reguł?'
133 variables_available_description: 'Następujące zmienne i operatory mogą być użyte przy tworzeniu reguł tagowania:' 133 variables_available_description: 'Następujące zmienne i operatory mogą być użyte przy tworzeniu reguł tagowania:'
134 meaning: 'Znaczenie' 134 meaning: 'Znaczenie'
@@ -387,7 +387,7 @@ tag:
387 387
388import: 388import:
389 page_title: 'Import' 389 page_title: 'Import'
390 page_description: 'Witaj w importerze Wallabag. Wybierz swoją poprzednią usługę, z której chcech migrować.' 390 page_description: 'Witaj w importerze Wallabag. Wybierz swoją poprzednią usługę, z której chcesz migrować.'
391 action: 391 action:
392 import_contents: 'Import zawartości' 392 import_contents: 'Import zawartości'
393 form: 393 form:
@@ -397,7 +397,7 @@ import:
397 save_label: 'WÅ‚aduj plik' 397 save_label: 'WÅ‚aduj plik'
398 pocket: 398 pocket:
399 page_title: 'Import > Pocket' 399 page_title: 'Import > Pocket'
400 description: "Ten importer, zaimportuje dane z usługi Pocket. Pocket nie pozwala na nam na pobranie zawartości ze swojej usługi, więc kontent każdego arthykuł\u zostanie ponownie pobrany przez wallabag." 400 description: "Ten importer, zaimportuje dane z usługi Pocket. Pocket nie pozwala na nam na pobranie zawartości ze swojej usługi, więc kontent każdego artykułu zostanie ponownie pobrany przez wallabag."
401 config_missing: 401 config_missing:
402 description: "Import z Pocket nie jest skonfigurowany." 402 description: "Import z Pocket nie jest skonfigurowany."
403 admin_message: 'Musisz zdefiniować %keyurls%a pocket_consumer_key%keyurle%.' 403 admin_message: 'Musisz zdefiniować %keyurls%a pocket_consumer_key%keyurle%.'
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_full_image.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_full_image.html.twig
index 91a1bac0..58757158 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_full_image.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_full_image.html.twig
@@ -11,8 +11,8 @@
11 11
12 <div class="card-content"> 12 <div class="card-content">
13 <span class="card-title dot-ellipsis dot-resize-update"> 13 <span class="card-title dot-ellipsis dot-resize-update">
14 <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title| e | raw | striptags }}"> 14 <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title| striptags | e('html_attr') }}">
15 {{ entry.title | e | raw | striptags | truncate(80, true, '…') }} 15 {{ entry.title | striptags | truncate(80, true, '…') | raw }}
16 </a> 16 </a>
17 </span> 17 </span>
18 18
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_list.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_list.html.twig
index bb9b64ce..3ba6253a 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_list.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_list.html.twig
@@ -2,7 +2,7 @@
2 <div class="card-stacked"> 2 <div class="card-stacked">
3 <div class="card-content"> 3 <div class="card-content">
4 <span class="card-title dot-ellipsis dot-resize-update"> 4 <span class="card-title dot-ellipsis dot-resize-update">
5 <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | raw | striptags }}"> 5 <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | striptags | e('html_attr') }}">
6 {{ entry.title| striptags | truncate(120, true, '…') | raw }} 6 {{ entry.title| striptags | truncate(120, true, '…') | raw }}
7 </a> 7 </a>
8 </span> 8 </span>
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_no_preview.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_no_preview.html.twig
index ed916e79..eb158659 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_no_preview.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_no_preview.html.twig
@@ -2,8 +2,8 @@
2 <div class="card-body"> 2 <div class="card-body">
3 <div class="card-content"> 3 <div class="card-content">
4 <span class="card-title dot-ellipsis dot-resize-update"> 4 <span class="card-title dot-ellipsis dot-resize-update">
5 <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | e | raw | striptags }}"> 5 <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | striptags | e('html_attr') }}">
6 {{ entry.title | e | raw | striptags | truncate(80, true, '…') }} 6 {{ entry.title | striptags | truncate(80, true, '…') | raw }}
7 </a> 7 </a>
8 </span> 8 </span>
9 9
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_preview.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_preview.html.twig
index d23be4d0..fb5301c8 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_preview.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/_card_preview.html.twig
@@ -13,8 +13,8 @@
13 <i class="grey-text text-darken-4 activator material-icons right">more_vert</i> 13 <i class="grey-text text-darken-4 activator material-icons right">more_vert</i>
14 14
15 <span class="card-title dot-ellipsis dot-resize-update"> 15 <span class="card-title dot-ellipsis dot-resize-update">
16 <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | e | raw | striptags }}"> 16 <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | striptags | e('html_attr') }}">
17 {{ entry.title | e | striptags | truncate(80, true, '…') | raw }} 17 {{ entry.title | striptags | truncate(80, true, '…') | raw }}
18 </a> 18 </a>
19 </span> 19 </span>
20 20
@@ -29,8 +29,8 @@
29 <div class="card-reveal"> 29 <div class="card-reveal">
30 <i class="card-title activator grey-text text-darken-4 material-icons right">clear</i> 30 <i class="card-title activator grey-text text-darken-4 material-icons right">clear</i>
31 <span class="card-title"> 31 <span class="card-title">
32 <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | e | raw | striptags }}"> 32 <a href="{{ path('view', { 'id': entry.id }) }}" title="{{ entry.title | striptags | e('html_attr') }}">
33 {{ entry.title | e | raw | striptags | truncate(80, true, '…') }} 33 {{ entry.title | striptags | truncate(80, true, '…') | raw }}
34 </a> 34 </a>
35 </span> 35 </span>
36 36
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig
index 15428b92..c3508083 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig
@@ -1,6 +1,6 @@
1{% extends "WallabagCoreBundle::layout.html.twig" %} 1{% extends "WallabagCoreBundle::layout.html.twig" %}
2 2
3{% block title %}{{ entry.title|e|raw }} ({{ entry.domainName|removeWww }}){% endblock %} 3{% block title %}{{ entry.title|striptags|raw }} ({{ entry.domainName|removeWww }}){% endblock %}
4 4
5{% block body_class %}entry{% endblock %} 5{% block body_class %}entry{% endblock %}
6 6
@@ -118,14 +118,14 @@
118 {% endif %} 118 {% endif %}
119 {% if craue_setting('share_twitter') %} 119 {% if craue_setting('share_twitter') %}
120 <li> 120 <li>
121 <a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool icon-twitter" title="twitter"> 121 <a href="https://twitter.com/home?status={{entry.title|striptags|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool icon-twitter" title="twitter">
122 <span>twitter</span> 122 <span>twitter</span>
123 </a> 123 </a>
124 </li> 124 </li>
125 {% endif %} 125 {% endif %}
126 {% if craue_setting('share_shaarli') %} 126 {% if craue_setting('share_shaarli') %}
127 <li> 127 <li>
128 <a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|url_encode }}&amp;tags={{ entry.tags|join(',')|url_encode }}" target="_blank"> 128 <a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&amp;title={{ entry.title|striptags|url_encode }}&amp;tags={{ entry.tags|join(',')|striptags|url_encode }}" target="_blank">
129 <i class="tool icon-image icon-image--shaarli" title="shaarli"></i> 129 <i class="tool icon-image icon-image--shaarli" title="shaarli"></i>
130 <span>shaarli</span> 130 <span>shaarli</span>
131 </a> 131 </a>
@@ -133,7 +133,7 @@
133 {% endif %} 133 {% endif %}
134 {% if craue_setting('share_diaspora') %} 134 {% if craue_setting('share_diaspora') %}
135 <li> 135 <li>
136 <a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}&notes=&v=1&noui=1&jump=doclose" target="_blank"> 136 <a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&amp;title={{ entry.title|striptags|url_encode }}&amp;notes=&amp;v=1&amp;noui=1&amp;jump=doclose" target="_blank">
137 <i class="tool icon-image icon-image--diaspora" title="diaspora"></i> 137 <i class="tool icon-image icon-image--diaspora" title="diaspora"></i>
138 <span>diaspora*</span> 138 <span>diaspora*</span>
139 </a> 139 </a>
@@ -141,7 +141,7 @@
141 {% endif %} 141 {% endif %}
142 {% if craue_setting('share_unmark') %} 142 {% if craue_setting('share_unmark') %}
143 <li> 143 <li>
144 <a href="{{ craue_setting('unmark_url') }}/mark/add?url={{ entry.url|url_encode }}&amp;title={{entry.title|url_encode}}&amp;v=6" target="_blank"> 144 <a href="{{ craue_setting('unmark_url') }}/mark/add?url={{ entry.url|url_encode }}&amp;title={{entry.title|striptags|url_encode}}&amp;v=6" target="_blank">
145 <i class="tool icon-image icon-image--unmark" title="unmark"></i> 145 <i class="tool icon-image icon-image--unmark" title="unmark"></i>
146 <span>unmark.it</span> 146 <span>unmark.it</span>
147 </a> 147 </a>
@@ -149,7 +149,7 @@
149 {% endif %} 149 {% endif %}
150 {% if craue_setting('carrot') %} 150 {% if craue_setting('carrot') %}
151 <li> 151 <li>
152 <a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" title="carrot"> 152 <a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&amp;title={{ entry.title|striptags|url_encode }}" target="_blank" title="carrot">
153 <i class="tool icon-image icon-image--carrot"></i> 153 <i class="tool icon-image icon-image--carrot"></i>
154 <span>Carrot</span> 154 <span>Carrot</span>
155 </a> 155 </a>
@@ -157,7 +157,7 @@
157 {% endif %} 157 {% endif %}
158 {% if craue_setting('share_mail') %} 158 {% if craue_setting('share_mail') %}
159 <li> 159 <li>
160 <a href="mailto:?subject={{ entry.title|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" title="{{ 'entry.view.left_menu.share_email_label'|trans }}" class="tool email icon icon-mail"> 160 <a href="mailto:?subject={{ entry.title|striptags|url_encode }}&amp;body={{ entry.url|url_encode }}%20via%20@wallabagapp" title="{{ 'entry.view.left_menu.share_email_label'|trans }}" class="tool email icon icon-mail">
161 <span>{{ 'entry.view.left_menu.share_email_label'|trans }}</span> 161 <span>{{ 'entry.view.left_menu.share_email_label'|trans }}</span>
162 </a> 162 </a>
163 </li> 163 </li>
@@ -209,7 +209,7 @@
209{% block content %} 209{% block content %}
210 <div id="article"> 210 <div id="article">
211 <header class="mbm"> 211 <header class="mbm">
212 <h1>{{ entry.title|e|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1> 212 <h1>{{ entry.title|striptags|raw }} <a href="{{ path('edit', { 'id': entry.id }) }}" title="{{ 'entry.view.edit_title'|trans }}">✎</a></h1>
213 </header> 213 </header>
214 <aside> 214 <aside>
215 <ul class="tools"> 215 <ul class="tools">
@@ -222,7 +222,7 @@
222 </li> 222 </li>
223 <li> 223 <li>
224 <i class="material-icons link">link</i> 224 <i class="material-icons link">link</i>
225 <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|e }}" class="tool"> 225 <a href="{{ entry.url|e }}" target="_blank" title="{{ 'entry.view.original_article'|trans }} : {{ entry.title|striptags }}" class="tool">
226 {{ entry.domainName|removeWww }} 226 {{ entry.domainName|removeWww }}
227 </a> 227 </a>
228 </li> 228 </li>
@@ -244,7 +244,7 @@
244 </div> 244 </div>
245 245
246 {% if entry.previewPicture is not null %} 246 {% if entry.previewPicture is not null %}
247 <div><img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /></div> 247 <div><img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|striptags|e('html_attr') }}" /></div>
248 {% endif %} 248 {% endif %}
249 249
250 </aside> 250 </aside>
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig
index d9fb5d73..3c169c04 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig
@@ -33,17 +33,29 @@
33 {% endblock %} 33 {% endblock %}
34 34
35 {% set currentRoute = app.request.attributes.get('_route') %} 35 {% set currentRoute = app.request.attributes.get('_route') %}
36 {% set currentRouteFromQueryParams = app.request.query.get('currentRoute') %}
36 37
37 <li class="bold {% if currentRoute == 'unread' or currentRoute == 'homepage' %}active{% endif %}"> 38 {% set activeRoute = null %}
39 {% if currentRoute == 'all' or currentRouteFromQueryParams == 'all' %}
40 {% set activeRoute = 'all' %}
41 {% elseif currentRoute == 'archive' or currentRouteFromQueryParams == 'archive' %}
42 {% set activeRoute = 'archive' %}
43 {% elseif currentRoute == 'starred' or currentRouteFromQueryParams == 'starred' %}
44 {% set activeRoute = 'starred' %}
45 {% elseif currentRoute == 'unread' or currentRoute == 'homepage' or currentRouteFromQueryParams == 'unread' %}
46 {% set activeRoute = 'unread' %}
47 {% endif %}
48
49 <li class="bold {% if activeRoute == 'unread' %}active{% endif %}">
38 <a class="waves-effect" href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }} <span class="numberItems grey-text">{{ count_entries('unread') }}</span></a> 50 <a class="waves-effect" href="{{ path('unread') }}">{{ 'menu.left.unread'|trans }} <span class="numberItems grey-text">{{ count_entries('unread') }}</span></a>
39 </li> 51 </li>
40 <li class="bold {% if currentRoute == 'starred' %}active{% endif %}"> 52 <li class="bold {% if activeRoute == 'starred' %}active{% endif %}">
41 <a class="waves-effect" href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }} <span class="numberItems grey-text">{{ count_entries('starred') }}</span></a> 53 <a class="waves-effect" href="{{ path('starred') }}">{{ 'menu.left.starred'|trans }} <span class="numberItems grey-text">{{ count_entries('starred') }}</span></a>
42 </li> 54 </li>
43 <li class="bold {% if currentRoute == 'archive' %}active{% endif %}"> 55 <li class="bold {% if activeRoute == 'archive' %}active{% endif %}">
44 <a class="waves-effect" href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }} <span class="numberItems grey-text">{{ count_entries('archive') }}</span></a> 56 <a class="waves-effect" href="{{ path('archive') }}">{{ 'menu.left.archive'|trans }} <span class="numberItems grey-text">{{ count_entries('archive') }}</span></a>
45 </li> 57 </li>
46 <li class="bold {% if currentRoute == 'all' %}active{% endif %}"> 58 <li class="bold {% if activeRoute == 'all' %}active{% endif %}">
47 <a class="waves-effect" href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }} <span class="numberItems grey-text">{{ count_entries('all') }}</span></a> 59 <a class="waves-effect" href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }} <span class="numberItems grey-text">{{ count_entries('all') }}</span></a>
48 </li> 60 </li>
49 <li class="bold border-bottom {% if currentRoute == 'tags' %}active{% endif %}"> 61 <li class="bold border-bottom {% if currentRoute == 'tags' %}active{% endif %}">
diff --git a/src/Wallabag/UserBundle/Resources/translations/wallabag_user.es.yml b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.es.yml
new file mode 100644
index 00000000..eb867a76
--- /dev/null
+++ b/src/Wallabag/UserBundle/Resources/translations/wallabag_user.es.yml
@@ -0,0 +1,11 @@
1# Two factor mail
2auth_code:
3 on: 'on'
4 mailer:
5 subject: 'código de autenticación de wallabag'
6 body:
7 hello: "Hola %user%,"
8 first_para: "Debido a que tienes activada la autenticación en dos pasos y acabas de iniciar sesión en un nuevo dispositivo (ordenador, teléfono, etc.), hemos enviado un código para validar tu conexión."
9 second_para: "Este es el código:"
10 support: "Por favor, no dudes en contactarnos si tienes algún problema:"
11 signature: "El equipo de wallabag"
diff --git a/web/bundles/wallabagcore/themes/baggy/css/style.min.css b/web/bundles/wallabagcore/themes/baggy/css/style.min.css
index f2cb4ad1..d8df459f 100644
--- a/web/bundles/wallabagcore/themes/baggy/css/style.min.css
+++ b/web/bundles/wallabagcore/themes/baggy/css/style.min.css
@@ -1 +1 @@
@font-face{font-family:PT Sans;font-style:normal;font-weight:700;src:local("PT Sans Bold"),local("PTSans-Bold"),url(../fonts/ptsansbold.woff) format("woff")}html{min-height:100%}body{background-color:#eee}.login{background-color:#333}.login #main{padding:0;margin:0}.login form{background-color:#fff;padding:1.5em;box-shadow:0 1px 8px rgba(0,0,0,.9);width:20em;top:8em;margin-left:-10em}.login .logo,.login form{position:absolute;left:50%}.login .logo{top:2em;margin-left:-55px}::-moz-selection{color:#fff;background-color:#000}::selection{color:#fff;background-color:#000}.desktopHide{display:none}.logo{position:fixed;z-index:5;top:.4em;left:.6em}h2,h3,h4{font-family:PT Sans,sans-serif;text-transform:uppercase}label,li,p{color:#666}a{color:#000;font-weight:700}a.nostyle,a:focus,a:hover{text-decoration:none}form fieldset{border:0;padding:0;margin:0}form input[type=email],form input[type=number],form input[type=password],form input[type=text],form input[type=url],select{border:1px solid #999;padding:.5em 1em;min-width:12em;color:#666}@media screen and (-webkit-min-device-pixel-ratio:0){select{-webkit-appearance:none;border-radius:0;background:#fff url(../../_global/img/bg-select.png) no-repeat 100%}}.inline .row{display:inline-block;margin-right:.5em}.inline label{min-width:6em}fieldset label{display:inline-block;min-width:12.5em;color:#666}label{margin-right:.5em}form .row{margin-bottom:.5em}form button,input[type=submit]{cursor:pointer;background-color:#000;color:#fff;padding:.5em 1em;display:inline-block;border:1px solid #000}form button:focus,form button:hover,input[type=submit]:focus,input[type=submit]:hover{background-color:#fff;color:#000;transition:all .5s ease}#bookmarklet{cursor:move}h2:after{content:"";height:4px;width:70px;background-color:#000;display:block}.links,.links li{padding:0;margin:0}.links li{list-style:none}#links{position:fixed;top:0;width:10em;left:0;text-align:right;background-color:#333;padding-top:9.5em;height:100%;box-shadow:inset -4px 0 20px rgba(0,0,0,.6);z-index:4}#main{margin-left:12em;position:relative;z-index:1;padding-right:5%;padding-bottom:1em}#links>li>a{display:block;padding:.5em 2em .5em 1em;color:#fff;position:relative;text-transform:uppercase;text-decoration:none;font-weight:400;font-family:PT Sans,sans-serif;transition:all .5s ease}#links>li>a:focus,#links>li>a:hover{background-color:#999;color:#000}#links .current:after{content:"";width:0;height:0;position:absolute;border-style:solid;border-width:10px;border-color:transparent #eee transparent transparent;right:0;top:50%;margin-top:-10px}#links li:last-child{position:fixed;bottom:1em;width:10em}#links li:last-child a:before{font-size:1.2em;position:relative;top:2px}#sort{padding:0;list-style-type:none;opacity:.5;display:inline-block}#sort li{display:inline;font-size:.9em}#sort li+li{margin-left:10px}#sort a{padding:2px 2px 0;vertical-align:middle}#sort img{vertical-align:baseline}#sort img:hover{cursor:pointer}#display-mode{float:right;margin-top:10px;margin-bottom:10px;opacity:.5}#listmode{width:16px;display:inline-block;text-decoration:none}#listmode.tablemode{background-image:url(../../_global/img/table.png)}#listmode.listmode,#listmode.tablemode{background-repeat:no-repeat;background-position:bottom}#listmode.listmode{background-image:url(../../_global/img/list.png)}#warning_message{position:fixed;background-color:tomato;z-index:7;bottom:0;left:0;width:100%;color:#000}#content{margin-top:2em;min-height:30em}footer{text-align:right;position:relative;bottom:0;right:5em;color:#999;font-size:.8em;font-style:italic;z-index:5}footer a{color:#999;font-weight:400}.list-entries{letter-spacing:-5px}.listmode.entry{width:100%;height:inherit}.card-entry-labels{position:absolute;top:100px;left:-1em;z-index:6;max-width:50%;padding-left:0}.card-entry-labels li{margin:10px 10px 10px auto;padding:5px 12px 5px 25px;background-color:rgba(0,0,0,.6);border-radius:0 3px 3px 0;color:#fff;cursor:default;max-height:2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-entry-tags{max-height:2em;overflow-y:hidden;padding:0;margin:0}.card-entry-tags li,.card-entry-tags span{display:inline-block;margin:0 5px;padding:5px 12px;background-color:rgba(0,0,0,.6);border-radius:3px;max-height:2em;overflow:hidden;text-overflow:ellipsis}.card-entry-labels a,.card-entry-tags a{text-decoration:none;font-weight:400;color:#fff}.nav-panel-add-tag{margin-top:10px}.list-entries+.results{margin-bottom:2em}.created-at,.reading-time{color:#999;font-style:italic;font-weight:400;font-size:.9em}.estimatedTime small{position:relative;top:-1px}.entry{background-color:#fff;letter-spacing:normal;box-shadow:0 3px 7px rgba(0,0,0,.3);display:inline-block;width:32%;margin-bottom:1.5em;vertical-align:top;margin-right:1%;position:relative;overflow:hidden;padding:1.5em 1.5em 3em;height:440px}.entry:before{width:0;height:0;border-style:solid;border-color:transparent transparent #000;border-width:10px;bottom:.3em;z-index:1;right:1.5em}.entry:after,.entry:before{content:"";position:absolute;transition:all .5s ease}.entry:after{height:7px;width:100%;bottom:0;left:0;background-color:#000}.entry:hover{box-shadow:0 3px 10px #000}.entry:hover:after{height:40px}.entry:hover:before{bottom:2.4em}.entry:hover h2 a{color:#666}.entry h2{text-transform:none;margin-bottom:0;line-height:1.2}.entry h2:after{content:none}.entry h2 a{display:block;text-decoration:none;color:#000;word-wrap:break-word;transition:all .5s ease}img.preview{max-width:calc(100% + 3em);left:-1.5em;position:relative}.entry p{color:#666;font-size:.9em;line-height:1.7;margin-top:5px}.entry h2 a:first-letter{text-transform:uppercase}.entry:hover .tools{bottom:0}.entry .tools{position:absolute;bottom:-50px;left:0;width:100%;z-index:1;padding-right:.5em;text-align:right;transition:all .5s ease}.entry .tools a{color:#666;text-decoration:none;display:block;padding:.4em}.entry .tools a:hover{color:#fff}.entry .tools li{display:inline-block}.entry:nth-child(3n+1){margin-left:0}.results{letter-spacing:-5px;padding:0 0 .5em}.results>*{display:inline-block;vertical-align:top;letter-spacing:normal;width:50%}.results>*,div.pagination ul{text-align:right}.nb-results{text-align:left;font-style:italic;color:#999;display:-ms-inline-flexbox;display:inline-flex}div.pagination ul>*{display:inline-block;margin-left:.5em}div.pagination ul a{color:#999;text-decoration:none}div.pagination ul a:focus,div.pagination ul a:hover{text-decoration:underline}div.pagination ul .next.disabled,div.pagination ul .prev.disabled{display:none}div.pagination ul .current{height:25px;padding:4px 8px;border:1px solid #d5d5d5;text-decoration:none;font-weight:700;color:#000;background-color:#ccc}.hide{display:none}.popup-form{background:rgba(0,0,0,.5);left:10em;height:100%;width:100%;margin:0;margin-top:-30%!important;display:none;border-left:1px solid #eee}.popup-form,.popup-form form{position:absolute;top:0;z-index:5;padding:2em}.popup-form form{background-color:#fff;left:0;border:10px solid #000;width:400px;height:200px}#bagit-form-form .addurl{margin-left:0}.close-button,.closeMessage{background-color:#000;color:#fff;font-size:1.2em;line-height:1.6;width:1.6em;height:1.6em;text-align:center;text-decoration:none}.close-button:focus,.close-button:hover,.closeMessage:focus,.closeMessage:hover{background-color:#999;color:#000}.close-button--popup{display:inline-block;position:absolute;top:0;right:0;font-size:1.4em}.active-current{background-color:#999}.active-current:after{content:"";width:0;height:0;position:absolute;border-style:solid;border-width:10px;border-color:transparent #eee transparent transparent;right:0;top:50%;margin-top:-10px}.opacity03{opacity:.3}.add-to-wallabag-link-after{background-color:#000;color:#fff;padding:0 3px 2px}a.add-to-wallabag-link-after{visibility:hidden;position:absolute;opacity:0;transition-duration:2s;transition-timing-function:ease-out}#article article a:hover+a.add-to-wallabag-link-after,a.add-to-wallabag-link-after:hover{opacity:1;visibility:visible;transition-duration:.3s;transition-timing-function:ease-in}a.add-to-wallabag-link-after:after{content:"w"}#add-link-result{font-weight:700;font-size:.9em}.btn-clickable{cursor:pointer}@font-face{font-family:icomoon;src:url(../fonts/IcoMoon-Free.ttf);font-weight:400;font-style:normal}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(../fonts/MaterialIcons-Regular.eot);src:local("Material Icons"),local("MaterialIcons-Regular"),url(../fonts/MaterialIcons-Regular.woff2) format("woff2"),url(../fonts/MaterialIcons-Regular.woff) format("woff"),url(../fonts/MaterialIcons-Regular.ttf) format("truetype")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:1em;width:1em;height:1em;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.material-icons.md-18{font-size:18px}.material-icons.md-24{font-size:24px}.material-icons.md-36{font-size:36px}.material-icons.md-48{font-size:48px}.icon-image span,.icon span{position:absolute;top:-9999px}[class*=" icon-"]:before,[class^=icon-]:before{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;letter-spacing:0;-ms-font-feature-settings:"liga" 1;-o-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-flattr:before{content:"\ead4"}.icon-mail:before{content:"\ea86"}.icon-up-open:before{content:"\e80b"}.icon-star:before{content:"\e9d9"}.icon-check:before{content:"\ea10"}.icon-link:before{content:"\e9cb"}.icon-reply:before{content:"\e806"}.icon-menu:before{content:"\e9bd"}.icon-clock:before{content:"\e803"}.icon-twitter:before{content:"\ea96"}.icon-down-open:before{content:"\e809"}.icon-trash:before{content:"\e9ac"}.icon-delete:before{content:"\ea0d"}.icon-power:before{content:"\ea14"}.icon-arrow-up-thick:before{content:"\ea3a"}.icon-rss:before{content:"\e808"}.icon-print:before{content:"\e954"}.icon-reload:before{content:"\ea2e"}.icon-price-tags:before{content:"\e936"}.icon-eye:before{content:"\e9ce"}.icon-no-eye:before{content:"\e9d1"}.icon-calendar:before{content:"\e953"}.icon-time:before{content:"\e952"}.icon-image{background-size:16px 16px;background-repeat:no-repeat;background-position:50%;padding-right:1em!important;padding-left:1em!important}.icon-image--carrot{background-image:url(../../_global/img/icons/carrot-icon--white.png)}.icon-image--diaspora{background-image:url(../../_global/img/icons/diaspora-icon--black.png)}.icon-image--unmark{background-image:url(../../_global/img/icons/unmark-icon--black.png)}.icon-image--shaarli{background-image:url(../../_global/img/icons/shaarli.png)}.icon-check.archive:before,.icon-star.fav:before{color:#fff}.messages{text-align:left;margin-top:1em}.messages>*{display:inline-block}.warning{font-weight:700;display:block;width:100%}.more-info{font-size:.85em;line-height:1.5;color:#aaa}.more-info a{color:#aaa}#article{width:70%;margin-bottom:3em;text-align:justify}#article .tags{margin-bottom:1em}#article i{font-style:normal}blockquote{border:1px solid #999;background-color:#fff;padding:1em;margin:0}#article h1{text-align:left}#article h2,#article h3,#article h4{text-transform:none}#article h2:after{content:none}.topPosF{position:fixed;right:20%;bottom:2em;font-size:1.5em}#article_toolbar{margin-bottom:1em}#article_toolbar li{display:inline-block;margin:3px auto}#article_toolbar a{background-color:#000;padding:.3em .5em .2em;color:#fff;text-decoration:none}#article_toolbar a:focus,#article_toolbar a:hover{background-color:#999}#nav-btn-add-tag{cursor:pointer}.shaarli:before{content:"*"}.return{text-decoration:none;margin-top:1em;display:block}.return:before{margin-right:.5em}.notags{font-style:italic;color:#999}.icon-rss{background-color:#000;color:#fff;padding:.2em .5em}.icon-rss:before{position:relative;top:2px}.list-tags li{margin-bottom:.5em}.list-tags .icon-rss:focus,.list-tags .icon-rss:hover{background-color:#fff;color:#000;text-decoration:none}.list-tags a{text-decoration:none}.list-tags a:focus,.list-tags a:hover{text-decoration:underline}pre code{font-family:Courier New,Courier,monospace}#filters{position:fixed;width:20%;height:100%;top:0;right:0;background-color:#fff;padding:15px;padding-right:30px;padding-top:30px;border-left:1px solid #333;z-index:3;min-width:300px}#filters form .filter-group{margin:5px}#download-form{position:fixed;width:10%;height:100%;top:0;right:0;background-color:#fff;padding:15px;padding-right:30px;padding-top:30px;border-left:1px solid #333;z-index:3;min-width:200px}#download-form li{display:block;padding:.5em 2em .5em 1em;color:#fff;position:relative;text-transform:uppercase;text-decoration:none;font-weight:400;font-family:PT Sans,sans-serif;transition:all .5s ease}@media screen and (max-width:1050px){.entry{width:49%}.entry:nth-child(3n+1){margin-left:1.5%}.entry:nth-child(2n+1){margin-left:0}}@media screen and (max-width:900px){#article{width:80%}.topPosF{right:2.5em}}@media screen and (max-width:700px){.entry{width:100%;margin-left:0}#display-mode{display:none}}@media screen and (max-height:770px){.menu.developer,.menu.internal,.menu.users{display:none}}@media screen and (max-width:500px){.entry{width:100%;margin-left:0}body>header{background-color:#333;position:fixed;top:0;width:100%;height:3em;z-index:2}#links li:last-child{position:static;width:auto}#links li:last-child a:before{content:none}.logo{width:1.25em;height:1.25em;left:0;top:0}.login>header,.login form{position:static}.login form{width:100%;margin-left:0}.login .logo{height:auto;top:.5em;width:75px;margin-left:-37.5px}.desktopHide{display:block;position:fixed;z-index:5;top:0;right:0;border:0;width:2.5em;height:2.5em;cursor:pointer;background-color:#999;font-size:1.2em}.desktopHide:focus,.desktopHide:hover{background-color:#fff}#links{display:none;width:100%;height:auto;padding-top:3em}#links.menu--open{display:block}footer{margin-right:3em}#main,footer{position:static}#main{margin-left:1.5em;padding-right:1.5em;margin-top:3em}#article_toolbar .topPosF,.card-entry-labels{display:none}#article{width:100%}#article h1{font-size:1.5em}#article_toolbar a{padding:.3em .4em .2em}#display-mode{display:none}#bagit-form,#search-form,.popup-form{left:0;width:100%;border-left:none}#bagit-form form,#search-form form,.popup-form form{width:100%}};.messages.error.install{border:1px solid #c42608;color:#c00!important;background:#fff0ef;text-align:left}.messages.notice.install{border:1px solid #ebcd41;color:#000;background:#fffcd3;text-align:left}.messages.success.install{border:1px solid #6dc70c;background:#e0fbcc!important;text-align:left};@media print{body{font-family:Serif;background-color:#fff}@page{margin:1cm}img{max-width:100%!important}#article-informations,#article .mbm a,#article_toolbar,#links,#sort,.entrie+.results,.messages,.top_link,body>footer,body>header,div.tools,header div{display:none!important}article{border:none!important}.vieworiginal a:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.pagination span.current{border-style:dashed}#main{padding:0;margin:0;margin-left:0;padding-right:0;padding-bottom:0}#article,#main{width:100%}}*{box-sizing:border-box}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{font-size:1em;line-height:1.5;margin:0}dl:first-child,h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child,ol:first-child,p:first-child,ul:first-child{margin-top:0}code,kbd,pre,samp{font-family:monospace,serif}pre{white-space:pre-wrap}.upper{text-transform:uppercase}.bold{font-weight:700}.inner{margin:0 auto;max-width:61.25em}figure,img,table{max-width:100%;height:auto}iframe{max-width:100%}.fl{float:left}.fr{float:right}table{border-collapse:collapse}figure{margin:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}input[type=search]{-webkit-appearance:textfield}.dib{display:inline-block;vertical-align:middle}.dnone{display:none}.dtable{display:table}.dtable>*{display:table-row}.dtable>*>*{display:table-cell}.element-invisible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.small{font-size:.8em}.big{font-size:1.2em}.w100{width:100%}.w90{width:90%}.w80{width:80%}.w70{width:70%}.w60{width:60%}.w50{width:50%}.w40{width:40%}.w30{width:30%}.w20{width:20%}.w10{width:10%}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}@media screen and (-webkit-min-device-pixel-ratio:0){select{-webkit-appearance:none;border-radius:0}} \ No newline at end of file @font-face{font-family:PT Sans;font-style:normal;font-weight:700;src:local("PT Sans Bold"),local("PTSans-Bold"),url(../fonts/ptsansbold.woff) format("woff")}html{min-height:100%}body{background-color:#eee}.login{background-color:#333}.login #main{padding:0;margin:0}.login form{background-color:#fff;padding:1.5em;box-shadow:0 1px 8px rgba(0,0,0,.9);width:20em;top:8em;margin-left:-10em}.login .logo,.login form{position:absolute;left:50%}.login .logo{top:2em;margin-left:-55px}::-moz-selection{color:#fff;background-color:#000}::selection{color:#fff;background-color:#000}.desktopHide{display:none}.logo{position:fixed;z-index:5;top:.4em;left:.6em}h2,h3,h4{font-family:PT Sans,sans-serif;text-transform:uppercase}label,li,p{color:#666}a{color:#000;font-weight:700}a.nostyle,a:focus,a:hover{text-decoration:none}form fieldset{border:0;padding:0;margin:0}form input[type=email],form input[type=number],form input[type=password],form input[type=text],form input[type=url],select{border:1px solid #999;padding:.5em 1em;min-width:12em;color:#666}@media screen and (-webkit-min-device-pixel-ratio:0){select{-webkit-appearance:none;border-radius:0;background:#fff url(../../_global/img/bg-select.png) no-repeat 100%}}.inline .row{display:inline-block;margin-right:.5em}.inline label{min-width:6em}fieldset label{display:inline-block;min-width:12.5em;color:#666}label{margin-right:.5em}form .row{margin-bottom:.5em}form button,input[type=submit]{cursor:pointer;background-color:#000;color:#fff;padding:.5em 1em;display:inline-block;border:1px solid #000}form button:focus,form button:hover,input[type=submit]:focus,input[type=submit]:hover{background-color:#fff;color:#000;transition:all .5s ease}#bookmarklet{cursor:move}h2:after{content:"";height:4px;width:70px;background-color:#000;display:block}.links,.links li{padding:0;margin:0}.links li{list-style:none}#links{position:fixed;top:0;width:10em;left:0;text-align:right;background-color:#333;padding-top:9.5em;height:100%;box-shadow:inset -4px 0 20px rgba(0,0,0,.6);z-index:4}#main{margin-left:12em;position:relative;z-index:1;padding-right:5%;padding-bottom:1em}#links>li>a{display:block;padding:.5em 2em .5em 1em;color:#fff;position:relative;text-transform:uppercase;text-decoration:none;font-weight:400;font-family:PT Sans,sans-serif;transition:all .5s ease}#links>li>a:focus,#links>li>a:hover{background-color:#999;color:#000}#links .current:after{content:"";width:0;height:0;position:absolute;border-style:solid;border-width:10px;border-color:transparent #eee transparent transparent;right:0;top:50%;margin-top:-10px}#links li:last-child{position:fixed;bottom:1em;width:10em}#links li:last-child a:before{font-size:1.2em;position:relative;top:2px}#sort{padding:0;list-style-type:none;opacity:.5;display:inline-block}#sort li{display:inline;font-size:.9em}#sort li+li{margin-left:10px}#sort a{padding:2px 2px 0;vertical-align:middle}#sort img{vertical-align:baseline}#sort img:hover{cursor:pointer}#display-mode{float:right;margin-top:10px;margin-bottom:10px;opacity:.5}#listmode{width:16px;display:inline-block;text-decoration:none}#listmode.tablemode{background-image:url(../../_global/img/table.png)}#listmode.listmode,#listmode.tablemode{background-repeat:no-repeat;background-position:bottom}#listmode.listmode{background-image:url(../../_global/img/list.png)}#warning_message{position:fixed;background-color:tomato;z-index:7;bottom:0;left:0;width:100%;color:#000}#content{margin-top:2em;min-height:30em}footer{text-align:right;position:relative;bottom:0;right:5em;color:#999;font-size:.8em;font-style:italic;z-index:5}footer a{color:#999;font-weight:400}.list-entries{letter-spacing:-5px}.listmode.entry{width:100%;height:inherit}.card-entry-labels{position:absolute;top:100px;left:-1em;z-index:6;max-width:50%;padding-left:0}.card-entry-labels li{margin:10px 10px 10px auto;padding:5px 12px 5px 25px;background-color:rgba(0,0,0,.6);border-radius:0 3px 3px 0;color:#fff;cursor:default;max-height:2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-entry-tags{max-height:2em;overflow-y:hidden;padding:0;margin:0}.card-entry-tags li,.card-entry-tags span{display:inline-block;margin:0 5px;padding:5px 12px;background-color:rgba(0,0,0,.6);border-radius:3px;max-height:2em;overflow:hidden;text-overflow:ellipsis}.card-entry-labels a,.card-entry-tags a{text-decoration:none;font-weight:400;color:#fff}.nav-panel-add-tag{margin-top:10px}.list-entries+.results{margin-bottom:2em}.created-at,.reading-time{color:#999;font-style:italic;font-weight:400;font-size:.9em}.estimatedTime small{position:relative;top:-1px}.entry{background-color:#fff;letter-spacing:normal;box-shadow:0 3px 7px rgba(0,0,0,.3);display:inline-block;width:32%;margin-bottom:1.5em;vertical-align:top;margin-right:1%;position:relative;overflow:hidden;padding:1.5em 1.5em 3em;height:440px}.entry:before{width:0;height:0;border-style:solid;border-color:transparent transparent #000;border-width:10px;bottom:.3em;z-index:1;right:1.5em}.entry:after,.entry:before{content:"";position:absolute;transition:all .5s ease}.entry:after{height:7px;width:100%;bottom:0;left:0;background-color:#000}.entry:hover{box-shadow:0 3px 10px #000}.entry:hover:after{height:40px}.entry:hover:before{bottom:2.4em}.entry:hover h2 a{color:#666}.entry h2{text-transform:none;margin-bottom:0;line-height:1.2}.entry h2:after{content:none}.entry h2 a{display:block;text-decoration:none;color:#000;word-wrap:break-word;transition:all .5s ease}img.preview{max-width:calc(100% + 3em);left:-1.5em;position:relative}.entry p{color:#666;font-size:.9em;line-height:1.7;margin-top:5px}.entry h2 a:first-letter{text-transform:uppercase}.entry:hover .tools{bottom:0}.entry .tools{position:absolute;bottom:-50px;left:0;width:100%;z-index:1;padding-right:.5em;text-align:right;transition:all .5s ease}.entry .tools a{color:#666;text-decoration:none;display:block;padding:.4em}.entry .tools a:hover{color:#fff}.entry .tools li{display:inline-block}.entry:nth-child(3n+1){margin-left:0}.results{letter-spacing:-5px;padding:0 0 .5em}.results>*{display:inline-block;vertical-align:top;letter-spacing:normal;width:50%}.results>*,div.pagination ul{text-align:right}.nb-results{text-align:left;font-style:italic;color:#999;display:-ms-inline-flexbox;display:inline-flex}div.pagination ul>*{display:inline-block;margin-left:.5em}div.pagination ul a{color:#999;text-decoration:none}div.pagination ul a:focus,div.pagination ul a:hover{text-decoration:underline}div.pagination ul .next.disabled,div.pagination ul .prev.disabled{display:none}div.pagination ul .current{height:25px;padding:4px 8px;border:1px solid #d5d5d5;text-decoration:none;font-weight:700;color:#000;background-color:#ccc}.hide{display:none}.popup-form{background:rgba(0,0,0,.5);left:10em;height:100%;width:100%;margin:0;margin-top:-30%!important;display:none;border-left:1px solid #eee}.popup-form,.popup-form form{position:absolute;top:0;z-index:5;padding:2em}.popup-form form{background-color:#fff;left:0;border:10px solid #000;width:400px;height:200px}#bagit-form-form .addurl{margin-left:0}.close-button,.closeMessage{background-color:#000;color:#fff;font-size:1.2em;line-height:1.6;width:1.6em;height:1.6em;text-align:center;text-decoration:none}.close-button:focus,.close-button:hover,.closeMessage:focus,.closeMessage:hover{background-color:#999;color:#000}.close-button--popup{display:inline-block;position:absolute;top:0;right:0;font-size:1.4em}.active-current{background-color:#999}.active-current:after{content:"";width:0;height:0;position:absolute;border-style:solid;border-width:10px;border-color:transparent #eee transparent transparent;right:0;top:50%;margin-top:-10px}.opacity03{opacity:.3}.add-to-wallabag-link-after{background-color:#000;color:#fff;padding:0 3px 2px}a.add-to-wallabag-link-after{visibility:hidden;position:absolute;opacity:0;transition-duration:2s;transition-timing-function:ease-out}#article article a:hover+a.add-to-wallabag-link-after,a.add-to-wallabag-link-after:hover{opacity:1;visibility:visible;transition-duration:.3s;transition-timing-function:ease-in}a.add-to-wallabag-link-after:after{content:"w"}#add-link-result{font-weight:700;font-size:.9em}.btn-clickable{cursor:pointer}@font-face{font-family:icomoon;src:url(../fonts/IcoMoon-Free.ttf);font-weight:400;font-style:normal}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(../fonts/MaterialIcons-Regular.eot);src:local("Material Icons"),local("MaterialIcons-Regular"),url(../fonts/MaterialIcons-Regular.woff2) format("woff2"),url(../fonts/MaterialIcons-Regular.woff) format("woff"),url(../fonts/MaterialIcons-Regular.ttf) format("truetype")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:1em;width:1em;height:1em;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.material-icons.md-18{font-size:18px}.material-icons.md-24{font-size:24px}.material-icons.md-36{font-size:36px}.material-icons.md-48{font-size:48px}.icon-image span,.icon span{position:absolute;top:-9999px}[class*=" icon-"]:before,[class^=icon-]:before{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;letter-spacing:0;-ms-font-feature-settings:"liga" 1;-o-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-flattr:before{content:"\ead4"}.icon-mail:before{content:"\ea86"}.icon-up-open:before{content:"\e80b"}.icon-star:before{content:"\e9d9"}.icon-check:before{content:"\ea10"}.icon-link:before{content:"\e9cb"}.icon-reply:before{content:"\e806"}.icon-menu:before{content:"\e9bd"}.icon-clock:before{content:"\e803"}.icon-twitter:before{content:"\ea96"}.icon-down-open:before{content:"\e809"}.icon-trash:before{content:"\e9ac"}.icon-delete:before{content:"\ea0d"}.icon-power:before{content:"\ea14"}.icon-arrow-up-thick:before{content:"\ea3a"}.icon-rss:before{content:"\e808"}.icon-print:before{content:"\e954"}.icon-reload:before{content:"\ea2e"}.icon-price-tags:before{content:"\e936"}.icon-eye:before{content:"\e9ce"}.icon-no-eye:before{content:"\e9d1"}.icon-calendar:before{content:"\e953"}.icon-time:before{content:"\e952"}.icon-image{background-size:16px 16px;background-repeat:no-repeat;background-position:50%;padding-right:1em!important;padding-left:1em!important}.icon-image--carrot{background-image:url(../../_global/img/icons/carrot-icon--white.png)}.icon-image--diaspora{background-image:url(../../_global/img/icons/diaspora-icon--black.png)}.icon-image--unmark{background-image:url(../../_global/img/icons/unmark-icon--black.png)}.icon-image--shaarli{background-image:url(../../_global/img/icons/shaarli.png)}.icon-check.archive:before,.icon-star.fav:before{color:#fff}.messages{text-align:left;margin-top:1em}.messages>*{display:inline-block}.warning{font-weight:700;display:block;width:100%}.more-info{font-size:.85em;line-height:1.5;color:#aaa}.more-info a{color:#aaa}#article{width:70%;margin-bottom:3em;text-align:justify}#article .tags{margin-bottom:1em}#article i{font-style:normal}blockquote{border:1px solid #999;background-color:#fff;padding:1em;margin:0}#article h1{text-align:left}#article h2,#article h3,#article h4{text-transform:none}#article h2:after{content:none}.topPosF{position:fixed;right:20%;bottom:2em;font-size:1.5em}#article_toolbar{margin-bottom:1em}#article_toolbar li{display:inline-block;margin:3px auto}#article_toolbar a{background-color:#000;padding:.3em .5em .2em;color:#fff;text-decoration:none}#article_toolbar a:focus,#article_toolbar a:hover{background-color:#999}#nav-btn-add-tag{cursor:pointer}.shaarli:before{content:"*"}.return{text-decoration:none;margin-top:1em;display:block}.return:before{margin-right:.5em}.notags{font-style:italic;color:#999}.icon-rss{background-color:#000;color:#fff;padding:.2em .5em}.icon-rss:before{position:relative;top:2px}.list-tags li{margin-bottom:.5em}.list-tags .icon-rss:focus,.list-tags .icon-rss:hover{background-color:#fff;color:#000;text-decoration:none}.list-tags a{text-decoration:none}.list-tags a:focus,.list-tags a:hover{text-decoration:underline}pre code{font-family:Courier New,Courier,monospace}#filters{position:fixed;width:20%;height:100%;top:0;right:0;background-color:#fff;padding:15px;padding-right:30px;padding-top:30px;border-left:1px solid #333;z-index:3;min-width:300px}#filters form .filter-group{margin:5px}#download-form{position:fixed;width:10%;height:100%;top:0;right:0;background-color:#fff;padding:15px;padding-right:30px;padding-top:30px;border-left:1px solid #333;z-index:3;min-width:200px}#download-form li{display:block;padding:.5em 2em .5em 1em;color:#fff;position:relative;text-transform:uppercase;text-decoration:none;font-weight:400;font-family:PT Sans,sans-serif;transition:all .5s ease}@media screen and (max-width:1050px){.entry{width:49%}.entry:nth-child(3n+1){margin-left:1.5%}.entry:nth-child(odd){margin-left:0}}@media screen and (max-width:900px){#article{width:80%}.topPosF{right:2.5em}}@media screen and (max-width:700px){.entry{width:100%;margin-left:0}#display-mode{display:none}}@media screen and (max-height:770px){.menu.developer,.menu.internal,.menu.users{display:none}}@media screen and (max-width:500px){.entry{width:100%;margin-left:0}body>header{background-color:#333;position:fixed;top:0;width:100%;height:3em;z-index:2}#links li:last-child{position:static;width:auto}#links li:last-child a:before{content:none}.logo{width:1.25em;height:1.25em;left:0;top:0}.login>header,.login form{position:static}.login form{width:100%;margin-left:0}.login .logo{height:auto;top:.5em;width:75px;margin-left:-37.5px}.desktopHide{display:block;position:fixed;z-index:5;top:0;right:0;border:0;width:2.5em;height:2.5em;cursor:pointer;background-color:#999;font-size:1.2em}.desktopHide:focus,.desktopHide:hover{background-color:#fff}#links{display:none;width:100%;height:auto;padding-top:3em}#links.menu--open{display:block}footer{margin-right:3em}#main,footer{position:static}#main{margin-left:1.5em;padding-right:1.5em;margin-top:3em}#article_toolbar .topPosF,.card-entry-labels{display:none}#article{width:100%}#article h1{font-size:1.5em}#article_toolbar a{padding:.3em .4em .2em}#display-mode{display:none}#bagit-form,#search-form,.popup-form{left:0;width:100%;border-left:none}#bagit-form form,#search-form form,.popup-form form{width:100%}};.messages.error.install{border:1px solid #c42608;color:#c00!important;background:#fff0ef;text-align:left}.messages.notice.install{border:1px solid #ebcd41;color:#000;background:#fffcd3;text-align:left}.messages.success.install{border:1px solid #6dc70c;background:#e0fbcc!important;text-align:left};@media print{body{font-family:Serif;background-color:#fff}@page{margin:1cm}img{max-width:100%!important}#article-informations,#article .mbm a,#article_toolbar,#links,#sort,.entrie+.results,.messages,.top_link,body>footer,body>header,div.tools,header div{display:none!important}article{border:none!important}.vieworiginal a:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.pagination span.current{border-style:dashed}#main{padding:0;margin:0;margin-left:0;padding-right:0;padding-bottom:0}#article,#main{width:100%}}*{box-sizing:border-box}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{font-size:1em;line-height:1.5;margin:0}dl:first-child,h1:first-child,h2:first-child,h3:first-child,h4:first-child,h5:first-child,h6:first-child,ol:first-child,p:first-child,ul:first-child{margin-top:0}code,kbd,pre,samp{font-family:monospace,serif}pre{white-space:pre-wrap}.upper{text-transform:uppercase}.bold{font-weight:700}.inner{margin:0 auto;max-width:61.25em}figure,img,table{max-width:100%;height:auto}iframe{max-width:100%}.fl{float:left}.fr{float:right}table{border-collapse:collapse}figure{margin:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}input[type=search]{-webkit-appearance:textfield}.dib{display:inline-block;vertical-align:middle}.dnone{display:none}.dtable{display:table}.dtable>*{display:table-row}.dtable>*>*{display:table-cell}.element-invisible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.small{font-size:.8em}.big{font-size:1.2em}.w100{width:100%}.w90{width:90%}.w80{width:80%}.w70{width:70%}.w60{width:60%}.w50{width:50%}.w40{width:40%}.w30{width:30%}.w20{width:20%}.w10{width:10%}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}@media screen and (-webkit-min-device-pixel-ratio:0){select{-webkit-appearance:none;border-radius:0}} \ No newline at end of file
diff --git a/web/bundles/wallabagcore/themes/material/css/style.min.css b/web/bundles/wallabagcore/themes/material/css/style.min.css
index 7e9a23bc..2df5d79c 100644
--- a/web/bundles/wallabagcore/themes/material/css/style.min.css
+++ b/web/bundles/wallabagcore/themes/material/css/style.min.css
@@ -13,4 +13,4 @@
13/*! 13/*!
14 * Default mobile-first, responsive styling for pickadate.js 14 * Default mobile-first, responsive styling for pickadate.js
15 * Demo: http://amsul.github.io/pickadate.js 15 * Demo: http://amsul.github.io/pickadate.js
16 */.picker__frame,.picker__holder{bottom:0;left:0;right:0;top:100%}.picker__holder{position:fixed;transition:background .15s ease-out,top 0s .15s;-webkit-backface-visibility:hidden}.picker__frame{position:absolute;margin:0 auto;min-width:256px;width:300px;max-height:350px;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;transition:all .15s ease-out}@media (min-height:28.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}}@media (min-height:40.125em){.picker__frame{margin-bottom:7.5%}}.picker__wrap{display:table;width:100%;height:100%}@media (min-height:28.875em){.picker__wrap{display:block}}.picker__box{background:#fff;display:table-cell;vertical-align:middle}@media (min-height:28.875em){.picker__box{display:block;border:1px solid #777;border-top-color:#898989;border-bottom-width:0;border-radius:5px 5px 0 0;box-shadow:0 12px 36px 16px rgba(0,0,0,.24)}}.picker--opened .picker__holder{top:0;background:transparent;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";zoom:1;background:rgba(0,0,0,.32);transition:background .15s ease-out}.picker--opened .picker__frame{top:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}@media (min-height:35.875em){.picker--opened .picker__frame{top:10%;bottom:20%auto}}.picker__input.picker__input--active{border-color:#e3f2fd}.picker__frame{margin:0 auto;max-width:325px}@media (min-height:38.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{display:inline-block;margin-left:.25em;margin-right:.25em}.picker__select--month,.picker__select--year{height:2em;padding:0;margin-left:.25em;margin-right:.25em}.picker__select--month.browser-default{display:inline;background-color:#fff;width:40%}.picker__select--year.browser-default{display:inline;background-color:#fff;width:25%}.picker__select--month:focus,.picker__select--year:focus{border-color:rgba(0,0,0,.05)}.picker__nav--next,.picker__nav--prev{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}.picker__nav--disabled,.picker__nav--disabled:before,.picker__nav--disabled:before:hover,.picker__nav--disabled:hover{cursor:default;background:none;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:16px;font-size:1rem;width:100%;margin-top:.75em;margin-bottom:.5em}.picker__table,.picker__table td,.picker__table th{text-align:center}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999;font-weight:500}@media (min-height:33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day--today{position:relative;color:#595959;letter-spacing:-.3;padding:12px 0;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day--disabled:before{border-top-color:#aaa}.picker__day--infocus:hover{cursor:pointer;color:#000;font-weight:500}.picker__day--outfocus{display:none;padding:12px 0;padding:.75rem 0;color:#fff}.picker__day--outfocus:hover{cursor:pointer;color:#ddd;font-weight:500}.picker--focused .picker__day--highlighted,.picker__day--highlighted:hover{cursor:pointer}.picker--focused .picker__day--selected,.picker__day--selected,.picker__day--selected:hover{border-radius:50%;transform:scale(.75);background:#0089ec;color:#fff}.picker--focused .picker__day--disabled,.picker__day--disabled,.picker__day--disabled:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbb}.picker__footer{text-align:center;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.picker__button--clear,.picker__button--close,.picker__button--today{border:1px solid #fff;background:#fff;font-size:.8em;padding:.66em 0;font-weight:700;width:33%;display:inline-block;vertical-align:bottom}.picker__button--clear:hover,.picker__button--close:hover,.picker__button--today:hover{cursor:pointer;color:#000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--clear:focus,.picker__button--close:focus,.picker__button--today:focus{background:#b1dcfb;border-color:rgba(0,0,0,.05);outline:none}.picker__button--clear:before,.picker__button--close:before,.picker__button--today:before{position:relative;display:inline-block;height:0}.picker__button--clear:before,.picker__button--today:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-.05em;width:0;border-top:.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-.25em;width:.66em;border-top:3px solid #e20}.picker__button--close:before{content:"\D7";top:-.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaa}.picker__box{border-radius:2px;overflow:hidden}.picker__date-display{text-align:center;background-color:#26a69a;color:#fff;padding-bottom:15px;font-weight:300}.picker__nav--next:hover,.picker__nav--prev:hover{cursor:pointer;color:#000;background:#a1ded8}.picker__weekday-display{background-color:#1f897f;padding:10px;font-weight:200;letter-spacing:.5;font-size:16px;font-size:1rem;margin-bottom:15px}.picker__month-display{text-transform:uppercase;font-size:32px;font-size:2rem}.picker__day-display{font-size:72px;font-size:4.5rem;font-weight:400}.picker__year-display{font-size:28.8px;font-size:1.8rem;color:hsla(0,0%,100%,.4)}.picker__box{padding:0}.picker__calendar-container{padding:0 16px;padding:0 1rem}.picker__calendar-container thead{border:none}.picker__table{margin-top:0;margin-bottom:.5em}.picker__day--infocus{color:#595959;letter-spacing:-.3;padding:12px 0;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day.picker__day--today{color:#26a69a}.picker__day.picker__day--today.picker__day--selected{color:#fff}.picker__weekday{font-size:14.4px;font-size:.9rem}.picker--focused .picker__day--selected,.picker__day--selected,.picker__day--selected:hover{border-radius:50%;transform:scale(.9);background-color:#26a69a;color:#fff}.picker--focused .picker__day--selected.picker__day--outfocus,.picker__day--selected.picker__day--outfocus,.picker__day--selected:hover.picker__day--outfocus{background-color:#a1ded8}.picker__footer{text-align:right;padding:5px 10px}.picker__close,.picker__today{font-size:17.6px;font-size:1.1rem;padding:0 16px;padding:0 1rem;color:#26a69a}.picker__nav--next:before,.picker__nav--prev:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:.75em solid #676767;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:.75em solid #676767}button.picker__clear:focus,button.picker__close:focus,button.picker__today:focus{background-color:#a1ded8}.picker__list{list-style:none;padding:.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-bottom:-1px;position:relative;background:#fff;padding:.75em 1.25em}@media (min-height:46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__list-item--highlighted,.picker__list-item:hover{border-color:#0089ec;z-index:10}.picker--focused .picker__list-item--highlighted,.picker__list-item--highlighted:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker--focused .picker__list-item--selected,.picker__list-item--selected,.picker__list-item--selected:hover{background:#0089ec;color:#fff;z-index:10}.picker--focused .picker__list-item--disabled,.picker__list-item--disabled,.picker__list-item--disabled:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default;border-color:#ddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:none;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:focus,.picker--time .picker__button--clear:hover{color:#000;background:#b1dcfb;background:#e20;border-color:#e20;cursor:pointer;color:#fff;outline:none}.picker--time .picker__button--clear:before{top:-.25em;color:#666;font-size:1.25em;font-weight:700}.picker--time .picker__button--clear:focus:before,.picker--time .picker__button--clear:hover:before{color:#fff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media (min-height:40.125em){.picker--time .picker__box{margin-bottom:5em}}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(../fonts/MaterialIcons-Regular.eot);src:local("Material Icons"),local("MaterialIcons-Regular"),url(../fonts/MaterialIcons-Regular.woff2) format("woff2"),url(../fonts/MaterialIcons-Regular.woff) format("woff"),url(../fonts/MaterialIcons-Regular.ttf) format("truetype")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;width:1em;height:1em;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.material-icons.md-18{font-size:18px}.material-icons.md-24{font-size:24px}.material-icons.md-36{font-size:36px}.material-icons.md-48{font-size:48px}.material-icons.md-dark{color:rgba(0,0,0,.54)}.material-icons.md-dark.md-inactive{color:rgba(0,0,0,.26)}.material-icons.md-light{color:#fff}.material-icons.md-light.md-inactive{color:hsla(0,0%,100%,.3)}@font-face{font-family:icomoon;src:url(../fonts/IcoMoon-Free.ttf);font-weight:400;font-style:normal}[class*=" icon-"]:before,[class^=icon-]:before{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;background-size:24px;letter-spacing:0;-ms-font-feature-settings:"liga" 1;-o-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-image{background-size:16px;background-repeat:no-repeat;padding-right:1em!important;padding-left:1em!important}.icon-eye:before{content:"\e9ce"}.icon-no-eye:before{content:"\e9d1"}.icon-calendar:before{content:"\e953"}.icon-mail:before{content:"\ea86"}.icon-time:before{content:"\e952"}.icon-image--carrot{background-image:url(../../_global/img/icons/carrot-icon--black.png)}.icon-image--diaspora{background-image:url(../../_global/img/icons/diaspora-icon--black.png)}.icon-image--unmark{background-image:url(../../_global/img/icons/unmark-icon--black.png)}.icon-image--shaarli{background-image:url(../../_global/img/icons/shaarli.png)}body{display:-ms-flexbox;display:flex;min-height:100vh;-ms-flex-direction:column;flex-direction:column;background:#fafafa}body.login main{padding:0;min-height:100vh}.border-bottom{border-bottom:1px solid #ddd}footer,main,nav{padding-left:240px}#content,.valign-wrapper,main{height:100%}#main{-ms-flex:1 0 auto;flex:1 0 auto}.results{height:1em}.results .nb-results,.results .pagination{margin:15px;margin-bottom:0}.results .nb-results{display:-ms-inline-flexbox;display:inline-flex}.results a{color:#444}.pagination{float:right}.pagination ul{margin:0!important}.pagination li{padding:0}.pagination a{padding:0 10px;height:30px;display:block}.pagination .disabled{margin-right:10px;margin-left:10px}div.pagination ul .next.disabled,div.pagination ul .prev.disabled{display:none}.pagination li.active span{padding:0 10px;height:30px;display:block;color:#fff}.page-footer .footer-copyright{min-width:50px;height:auto!important;line-height:1em!important}.page-footer .footer-copyright p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block}.hidden,.picker__date-display{display:none}footer.page-footer{margin-top:10px;padding-top:0}footer .row{margin-bottom:10px}nav input{color:#aaa}nav{height:auto}.nav-wrapper{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between}.nav-wrapper .button-collapse{padding:0 15px}.nav-input{display:none}.nav-panel-buttom{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-pack:end;justify-content:flex-end}.nav-panel-buttom li{max-height:64px}.nav-panels{transition:background .2s ease}.nav-panel-add .add,.nav-panel-search .search,.nav-panels .close{color:#444!important}.nav-panels .action{padding-left:12px;padding-left:.75rem;font-size:33.6px;font-size:2.1rem;white-space:nowrap}.nav-panels .input-field input{display:block;line-height:inherit;padding-left:64px!important;padding-left:4rem!important;width:calc(100% - 8rem)}.nav-panels .input-field input:focus{background-color:#fff;border:0;box-shadow:none;color:#444}.input-field.nav-panel-add label,.input-field.nav-panel-search label{left:16px;left:1rem}.input-field.nav-panel-add .close,.input-field.nav-panel-search .close{position:absolute;top:0;right:16px;right:1rem;color:transparent;cursor:pointer;font-size:32px;font-size:2rem;transition:color .3s}#button_export,#button_filters{display:none}.input-field.nav-panel-add,.input-field.nav-panel-add form,.input-field.nav-panel-search,.input-field.nav-panel-search form{-ms-flex-positive:1;flex-grow:1}.side-nav.fixed a{font-size:13px;line-height:44px;height:44px}.side-nav .collapsible-header,.side-nav.fixed .collapsible-header{height:45px;line-height:44px;padding:0 20px}.bold>a{font-weight:700}.side-nav>li.logo{line-height:0;text-align:center}#main .logo a{height:100pt}#main .logo img{height:100pt;width:100pt}#main .logo:hover{background:transparent}.side-nav li{padding:0}.side-nav a{margin:0 16px;margin:0 1rem}span.numberItems{float:right}nav ul a:hover{background-color:initial}#filters button{padding:0;width:100%}.side-nav.fixed.right-aligned{right:-250px;left:auto!important}#filters div.with-checkbox{height:48px;height:3rem;margin-top:0}main #content{padding:0 8px;padding:0 .5rem}main ul.row{padding:0 12px;padding:0 .75rem}.data .card .card-body{height:19em;overflow:hidden}.card .card-content .card-title,.card .card-reveal .card-title{line-height:22.8px;max-height:80px;font-size:19px;font-family:roberto,Helvetica Neue,Helvetica,Arial,sans-serif;color:#313131}.card .card-content .activator,.card .card-reveal .activator{cursor:pointer;font-family:Material Icons}.card .card-content i.right,.card .card-reveal i.right{margin-left:0}.card .card-content .original{line-height:24px;font-size:15px}a.original{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block}.card .card-entry-labels{position:absolute;top:10px;z-index:90;max-width:50%}.card-tag-labels li,.card .card-entry-labels li{margin:10px 10px 10px auto;padding:5px 12px 5px 16px!important;background-color:rgba(0,151,167,.85);border-radius:0 3px 3px 0;color:#fff;cursor:default;max-height:2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .card-entry-labels-hidden{margin:2.5px auto}.card .card-entry-labels-hidden li{display:inline-block;background-color:rgba(0,151,167,.85);margin:0 5px;padding:5px 12px;border-radius:3px;color:#fff;max-height:2em;max-width:calc(100% - 15px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .card-entry-labels-hidden li:first-child{margin-left:0}#list .chip a,.card-entry-labels-hidden a,.card-entry-labels a,.card-entry-tags a,.card-tag-labels a{text-decoration:none;font-weight:400;color:#fff}.card .card-content .estimatedTime{margin-bottom:10px}.card .card-action{padding:10px 5px 10px 15px}.card .card-action ul.links{margin:0;font-size:24px;line-height:24px}.card .card-action ul.tools li a.tool{margin-right:5px!important}.card-stacked:hover ul.tools-list{display:block}.card-stacked ul.tools-list{display:none}.card .card-action a{color:#fff;margin:0}.card .card-action a:hover{color:#fff}.card .card-action .reading-time{display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.quickstart .card .card-action a,.quickstart .card .card-action a:hover{color:#fff!important}.settings .div_tabs{padding-bottom:15px}.card.sw{max-width:370px;margin-left:auto;margin-right:auto}.card .card-image{height:10em}.card .card-fullimage{height:13.5em}.card .card-fullimage .preview,.card .card-image .preview{height:14em;background-size:cover;background-repeat:no-repeat;background-position:50%}#article{font-size:20px;margin:0 auto;max-width:45em}#article article{color:#424242;font-size:18px;line-height:1.7em}#article article h1,#article article h2,#article article h3,#article article h4,#article article h5,#article article h6{color:#212121}#article article h1 strong,#article article h2 strong,#article article h3 strong,#article article h4 strong,#article article h5 strong,#article article h6 strong{font-weight:500}#article article h6{font-size:19.2px;font-size:1.2rem}#article article h5{font-size:25.6px;font-size:1.6rem}#article article h4{font-size:30.4px;font-size:1.9rem}#article article h3{font-size:35.2px;font-size:2.2rem}#article article h2{font-size:40px;font-size:2.5rem}#article article h1{font-size:43.2px;font-size:2.7rem}#article figure,#article img{max-width:100%;height:auto}#article article a{border-bottom:1px dotted #03a9f4;text-decoration:none}#article article a:hover{border-bottom-style:solid}#article article ul{padding-left:30px}#article article ul,#article article ul li{list-style-type:disc}#article article blockquote{font-style:italic}#article article strong{font-weight:700}#article article pre{box-sizing:border-box;margin:0 0 1.75em;border:1px solid #e3f2fd;width:100%;padding:10px;font-family:monospace;font-size:.8em;white-space:pre;overflow:auto;background:#f5f5f5;border-radius:3px}#article>header>h1{font-size:2em;margin:33.6px 0 10.88px;margin:2.1rem 0 .68rem}.reader-mode{width:95px!important;transition:width .2s ease}.reader-mode:hover{width:240px!important}.reader-mode .collapsible-body{height:0;overflow:hidden}.reader-mode:hover .collapsible-body{height:auto}.reader-mode span{opacity:0;transition:opacity .2s ease}.reader-mode:hover span{opacity:1}.progress{position:fixed;top:0;width:100%;height:3px;margin:0;z-index:9999}#article aside .tools{font-size:.8em;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin:0 auto}article aside .tools li{display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}#article aside .tools a{color:#000;text-decoration:none}#article aside #list{float:right;margin:0 15px 10px}#article aside .chip{background-color:rgba(0,151,167,.85);padding:0 15px 0 10px;margin:auto 2px}#article aside .chip a,#article aside .chip i{color:#fff}@media only screen and (max-width:992px){footer,header,main,nav{padding-left:0}.pagination{width:auto}.nav-panels .action{padding-right:.75rem}.nav-panel-buttom{-ms-flex-pack:distribute;justify-content:space-around}#article{max-width:35em;margin-left:auto;margin-right:auto;font-size:18px}#article>header>h1{font-size:1.33em}.reader-mode{width:240px!important}.reader-mode span{opacity:1}.tabs{display:inline-block;height:auto}.tab{min-width:100%}.indicator{display:none}.pagination li.next,.pagination li.prev{width:auto}.drag-target+.drag-target{height:50%}.drag-target+.drag-target+.drag-target{top:50%}}@media only screen and (min-width:1200px) and (max-width:1650px){.row .col.l3{width:33.33333%;margin-left:0}}@media only screen and (min-width:993px) and (max-width:1200px){.row .col.l1{width:25%;margin-left:0}.row .col.l2{width:33.33333%;margin-left:0}.row .col.l3{width:41.66667%;margin-left:0}.row .col.l4{width:50%;margin-left:0}.row .col.l5{width:58.33333%;margin-left:0}.row .col.l6{width:66.66667%;margin-left:0}.row .col.l7{width:75%;margin-left:0}.row .col.l8{width:83.33333%;margin-left:0}.row .col.l9{width:91.66667%;margin-left:0}.row .col.l10{width:100%;margin-left:0}}@media only screen and (max-width:350px){.nb-results{display:none}.row .col,main ul.row{padding:0}}.icon-google-plus2:before{content:"\ea89"}.icon-facebook2:before{content:"\ea8d"}.icon-twitter:before{content:"\ea96"}.icon-apple:before{content:"\eabf"}.icon-android:before{content:"\eac1"}.icon-chrome:before{content:"\eae5"}.icon-firefox:before{content:"\eae6"}.icon-link:before{content:"\e9cb"}footer [class*=" icon-"],footer [class^=icon-]{font-size:2em;transition:text-shadow .2s ease;padding-right:10px}footer [class*=" icon-"]:hover,footer [class^=icon-]:hover{text-shadow:0 0 10px rgba(0,0,0,.3)}div.settings div.input-field div,div.settings div.input-field ul{margin-top:40px}div.settings div.file-field div{margin-top:inherit}.input-field label.active{font-size:16px;font-size:1rem}nav .input-field input{margin:0};@media print{body{font-family:Serif;background-color:#fff}@page{margin:1cm}img{max-width:100%!important}#article .mbm a,#article>aside,#article_toolbar,#links,#slide-out,#sort,.entry+.results,.hide-on-large-only,.messages,.progress,.top_link,body>footer,body>header,div.tools,header div{display:none!important}main{padding-left:0!important}#article{margin:inherit!important}article{border:none!important}.vieworiginal a:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.pagination span.current{border-style:dashed}#main{padding:0;margin:0;margin-left:0;padding-right:0;padding-bottom:0}#article,#main{width:100%}} \ No newline at end of file 16 */.picker__frame,.picker__holder{bottom:0;left:0;right:0;top:100%}.picker__holder{position:fixed;transition:background .15s ease-out,top 0s .15s;-webkit-backface-visibility:hidden}.picker__frame{position:absolute;margin:0 auto;min-width:256px;width:300px;max-height:350px;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";filter:alpha(opacity=0);-moz-opacity:0;opacity:0;transition:all .15s ease-out}@media (min-height:28.875em){.picker__frame{overflow:visible;top:auto;bottom:-100%;max-height:80%}}@media (min-height:40.125em){.picker__frame{margin-bottom:7.5%}}.picker__wrap{display:table;width:100%;height:100%}@media (min-height:28.875em){.picker__wrap{display:block}}.picker__box{background:#fff;display:table-cell;vertical-align:middle}@media (min-height:28.875em){.picker__box{display:block;border:1px solid #777;border-top-color:#898989;border-bottom-width:0;border-radius:5px 5px 0 0;box-shadow:0 12px 36px 16px rgba(0,0,0,.24)}}.picker--opened .picker__holder{top:0;background:transparent;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#1E000000,endColorstr=#1E000000)";zoom:1;background:rgba(0,0,0,.32);transition:background .15s ease-out}.picker--opened .picker__frame{top:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";filter:alpha(opacity=100);-moz-opacity:1;opacity:1}@media (min-height:35.875em){.picker--opened .picker__frame{top:10%;bottom:20%auto}}.picker__input.picker__input--active{border-color:#e3f2fd}.picker__frame{margin:0 auto;max-width:325px}@media (min-height:38.875em){.picker--opened .picker__frame{top:10%;bottom:auto}}.picker__box{padding:0 1em}.picker__header{text-align:center;position:relative;margin-top:.75em}.picker__month,.picker__year{display:inline-block;margin-left:.25em;margin-right:.25em}.picker__select--month,.picker__select--year{height:2em;padding:0;margin-left:.25em;margin-right:.25em}.picker__select--month.browser-default{display:inline;background-color:#fff;width:40%}.picker__select--year.browser-default{display:inline;background-color:#fff;width:25%}.picker__select--month:focus,.picker__select--year:focus{border-color:rgba(0,0,0,.05)}.picker__nav--next,.picker__nav--prev{position:absolute;padding:.5em 1.25em;width:1em;height:1em;box-sizing:content-box;top:-.25em}.picker__nav--prev{left:-1em;padding-right:1.25em}.picker__nav--next{right:-1em;padding-left:1.25em}.picker__nav--disabled,.picker__nav--disabled:before,.picker__nav--disabled:before:hover,.picker__nav--disabled:hover{cursor:default;background:none;border-right-color:#f5f5f5;border-left-color:#f5f5f5}.picker__table{border-collapse:collapse;border-spacing:0;table-layout:fixed;font-size:16px;font-size:1rem;width:100%;margin-top:.75em;margin-bottom:.5em}.picker__table,.picker__table td,.picker__table th{text-align:center}.picker__table td{margin:0;padding:0}.picker__weekday{width:14.285714286%;font-size:.75em;padding-bottom:.25em;color:#999;font-weight:500}@media (min-height:33.875em){.picker__weekday{padding-bottom:.5em}}.picker__day--today{position:relative;color:#595959;letter-spacing:-.3;padding:12px 0;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day--disabled:before{border-top-color:#aaa}.picker__day--infocus:hover{cursor:pointer;color:#000;font-weight:500}.picker__day--outfocus{display:none;padding:12px 0;padding:.75rem 0;color:#fff}.picker__day--outfocus:hover{cursor:pointer;color:#ddd;font-weight:500}.picker--focused .picker__day--highlighted,.picker__day--highlighted:hover{cursor:pointer}.picker--focused .picker__day--selected,.picker__day--selected,.picker__day--selected:hover{border-radius:50%;transform:scale(.75);background:#0089ec;color:#fff}.picker--focused .picker__day--disabled,.picker__day--disabled,.picker__day--disabled:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__day--highlighted.picker__day--disabled,.picker__day--highlighted.picker__day--disabled:hover{background:#bbb}.picker__footer{text-align:center;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.picker__button--clear,.picker__button--close,.picker__button--today{border:1px solid #fff;background:#fff;font-size:.8em;padding:.66em 0;font-weight:700;width:33%;display:inline-block;vertical-align:bottom}.picker__button--clear:hover,.picker__button--close:hover,.picker__button--today:hover{cursor:pointer;color:#000;background:#b1dcfb;border-bottom-color:#b1dcfb}.picker__button--clear:focus,.picker__button--close:focus,.picker__button--today:focus{background:#b1dcfb;border-color:rgba(0,0,0,.05);outline:none}.picker__button--clear:before,.picker__button--close:before,.picker__button--today:before{position:relative;display:inline-block;height:0}.picker__button--clear:before,.picker__button--today:before{content:" ";margin-right:.45em}.picker__button--today:before{top:-.05em;width:0;border-top:.66em solid #0059bc;border-left:.66em solid transparent}.picker__button--clear:before{top:-.25em;width:.66em;border-top:3px solid #e20}.picker__button--close:before{content:"\D7";top:-.1em;vertical-align:top;font-size:1.1em;margin-right:.35em;color:#777}.picker__button--today[disabled],.picker__button--today[disabled]:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default}.picker__button--today[disabled]:before{border-top-color:#aaa}.picker__box{border-radius:2px;overflow:hidden}.picker__date-display{text-align:center;background-color:#26a69a;color:#fff;padding-bottom:15px;font-weight:300}.picker__nav--next:hover,.picker__nav--prev:hover{cursor:pointer;color:#000;background:#a1ded8}.picker__weekday-display{background-color:#1f897f;padding:10px;font-weight:200;letter-spacing:.5;font-size:16px;font-size:1rem;margin-bottom:15px}.picker__month-display{text-transform:uppercase;font-size:32px;font-size:2rem}.picker__day-display{font-size:72px;font-size:4.5rem;font-weight:400}.picker__year-display{font-size:28.8px;font-size:1.8rem;color:hsla(0,0%,100%,.4)}.picker__box{padding:0}.picker__calendar-container{padding:0 16px;padding:0 1rem}.picker__calendar-container thead{border:none}.picker__table{margin-top:0;margin-bottom:.5em}.picker__day--infocus{color:#595959;letter-spacing:-.3;padding:12px 0;padding:.75rem 0;font-weight:400;border:1px solid transparent}.picker__day.picker__day--today{color:#26a69a}.picker__day.picker__day--today.picker__day--selected{color:#fff}.picker__weekday{font-size:14.4px;font-size:.9rem}.picker--focused .picker__day--selected,.picker__day--selected,.picker__day--selected:hover{border-radius:50%;transform:scale(.9);background-color:#26a69a;color:#fff}.picker--focused .picker__day--selected.picker__day--outfocus,.picker__day--selected.picker__day--outfocus,.picker__day--selected:hover.picker__day--outfocus{background-color:#a1ded8}.picker__footer{text-align:right;padding:5px 10px}.picker__close,.picker__today{font-size:17.6px;font-size:1.1rem;padding:0 16px;padding:0 1rem;color:#26a69a}.picker__nav--next:before,.picker__nav--prev:before{content:" ";border-top:.5em solid transparent;border-bottom:.5em solid transparent;border-right:.75em solid #676767;width:0;height:0;display:block;margin:0 auto}.picker__nav--next:before{border-right:0;border-left:.75em solid #676767}button.picker__clear:focus,button.picker__close:focus,button.picker__today:focus{background-color:#a1ded8}.picker__list{list-style:none;padding:.75em 0 4.2em;margin:0}.picker__list-item{border-bottom:1px solid #ddd;border-top:1px solid #ddd;margin-bottom:-1px;position:relative;background:#fff;padding:.75em 1.25em}@media (min-height:46.75em){.picker__list-item{padding:.5em 1em}}.picker__list-item:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker__list-item--highlighted,.picker__list-item:hover{border-color:#0089ec;z-index:10}.picker--focused .picker__list-item--highlighted,.picker__list-item--highlighted:hover{cursor:pointer;color:#000;background:#b1dcfb}.picker--focused .picker__list-item--selected,.picker__list-item--selected,.picker__list-item--selected:hover{background:#0089ec;color:#fff;z-index:10}.picker--focused .picker__list-item--disabled,.picker__list-item--disabled,.picker__list-item--disabled:hover{background:#f5f5f5;border-color:#f5f5f5;color:#ddd;cursor:default;border-color:#ddd;z-index:auto}.picker--time .picker__button--clear{display:block;width:80%;margin:1em auto 0;padding:1em 1.25em;background:none;border:0;font-weight:500;font-size:.67em;text-align:center;text-transform:uppercase;color:#666}.picker--time .picker__button--clear:focus,.picker--time .picker__button--clear:hover{color:#000;background:#b1dcfb;background:#e20;border-color:#e20;cursor:pointer;color:#fff;outline:none}.picker--time .picker__button--clear:before{top:-.25em;color:#666;font-size:1.25em;font-weight:700}.picker--time .picker__button--clear:focus:before,.picker--time .picker__button--clear:hover:before{color:#fff}.picker--time .picker__frame{min-width:256px;max-width:320px}.picker--time .picker__box{font-size:1em;background:#f2f2f2;padding:0}@media (min-height:40.125em){.picker--time .picker__box{margin-bottom:5em}}@font-face{font-family:Material Icons;font-style:normal;font-weight:400;src:url(../fonts/MaterialIcons-Regular.eot);src:local("Material Icons"),local("MaterialIcons-Regular"),url(../fonts/MaterialIcons-Regular.woff2) format("woff2"),url(../fonts/MaterialIcons-Regular.woff) format("woff"),url(../fonts/MaterialIcons-Regular.ttf) format("truetype")}.material-icons{font-family:Material Icons;font-weight:400;font-style:normal;font-size:24px;width:1em;height:1em;display:inline-block;line-height:1;text-transform:none;letter-spacing:normal;word-wrap:normal;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga"}.material-icons.md-18{font-size:18px}.material-icons.md-24{font-size:24px}.material-icons.md-36{font-size:36px}.material-icons.md-48{font-size:48px}.material-icons.md-dark{color:rgba(0,0,0,.54)}.material-icons.md-dark.md-inactive{color:rgba(0,0,0,.26)}.material-icons.md-light{color:#fff}.material-icons.md-light.md-inactive{color:hsla(0,0%,100%,.3)}@font-face{font-family:icomoon;src:url(../fonts/IcoMoon-Free.ttf);font-weight:400;font-style:normal}[class*=" icon-"]:before,[class^=icon-]:before{font-family:icomoon;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;background-size:24px;letter-spacing:0;-ms-font-feature-settings:"liga" 1;-o-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-image{background-size:16px;background-repeat:no-repeat;padding-right:1em!important;padding-left:1em!important}.icon-eye:before{content:"\e9ce"}.icon-no-eye:before{content:"\e9d1"}.icon-calendar:before{content:"\e953"}.icon-mail:before{content:"\ea86"}.icon-time:before{content:"\e952"}.icon-image--carrot{background-image:url(../../_global/img/icons/carrot-icon--black.png)}.icon-image--diaspora{background-image:url(../../_global/img/icons/diaspora-icon--black.png)}.icon-image--unmark{background-image:url(../../_global/img/icons/unmark-icon--black.png)}.icon-image--shaarli{background-image:url(../../_global/img/icons/shaarli.png)}body{display:-ms-flexbox;display:flex;min-height:100vh;-ms-flex-direction:column;flex-direction:column;background:#fafafa}body.login main{padding:0;min-height:100vh}.border-bottom{border-bottom:1px solid #ddd}footer,main,nav{padding-left:240px}#content,.valign-wrapper,main{height:100%}#main{-ms-flex:1 0 auto;flex:1 0 auto}.results{height:1em}.results .nb-results,.results .pagination{margin:15px;margin-bottom:0}.results .nb-results{display:-ms-inline-flexbox;display:inline-flex}.results a{color:#444}.pagination{float:right}.pagination ul{margin:0!important}.pagination li{padding:0}.pagination a{padding:0 10px;height:30px;display:block}.pagination .disabled{margin-right:10px;margin-left:10px}div.pagination ul .next.disabled,div.pagination ul .prev.disabled{display:none}.pagination li.active span{padding:0 10px;height:30px;display:block;color:#fff}.page-footer .footer-copyright{min-width:50px;height:auto!important;line-height:1em!important}.page-footer .footer-copyright p{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block}.hidden,.picker__date-display{display:none}footer.page-footer{margin-top:10px;padding-top:0}footer .row{margin-bottom:10px}nav input{color:#aaa}nav{height:auto}.nav-wrapper{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;min-height:64px}.nav-wrapper .button-collapse{padding:0 15px}.nav-input{display:none}.nav-panel-buttom{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-pack:end;justify-content:flex-end}.nav-panel-buttom li{max-height:64px}.nav-panels{transition:background .2s ease}.nav-panel-add .add,.nav-panel-search .search,.nav-panels .close{color:#444!important}.nav-panels .action{padding-left:12px;padding-left:.75rem;font-size:33.6px;font-size:2.1rem;white-space:nowrap}.nav-panels .input-field input{display:block;line-height:inherit;padding-left:64px!important;padding-left:4rem!important;width:calc(100% - 8rem)}.nav-panels .input-field input:focus{background-color:#fff;border:0;box-shadow:none;color:#444}.input-field.nav-panel-add label,.input-field.nav-panel-search label{left:16px;left:1rem}.input-field.nav-panel-add .close,.input-field.nav-panel-search .close{position:absolute;top:0;right:16px;right:1rem;color:transparent;cursor:pointer;font-size:32px;font-size:2rem;transition:color .3s}#button_export,#button_filters{display:none}.input-field.nav-panel-add,.input-field.nav-panel-add form,.input-field.nav-panel-search,.input-field.nav-panel-search form{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}.side-nav.fixed a{font-size:13px;line-height:44px;height:44px}.side-nav .collapsible-header,.side-nav.fixed .collapsible-header{height:45px;line-height:44px;padding:0 20px}.bold>a{font-weight:700}.side-nav>li.logo{line-height:0;text-align:center}#main .logo a{height:100pt}#main .logo img{height:100pt;width:100pt}#main .logo:hover{background:transparent}.side-nav li{padding:0}.side-nav a{margin:0 16px;margin:0 1rem}span.numberItems{float:right}nav ul a:hover{background-color:initial}#filters button{padding:0;width:100%}.side-nav.fixed.right-aligned{right:-250px;left:auto!important}#filters div.with-checkbox{height:48px;height:3rem;margin-top:0}main #content{padding:0 8px;padding:0 .5rem}main ul.row{padding:0 12px;padding:0 .75rem}.data .card .card-body{height:19em;overflow:hidden}.card .card-content .card-title,.card .card-reveal .card-title{line-height:22.8px;max-height:80px;font-size:19px;font-family:roberto,Helvetica Neue,Helvetica,Arial,sans-serif;color:#313131}.card .card-content .activator,.card .card-reveal .activator{cursor:pointer;font-family:Material Icons}.card .card-content i.right,.card .card-reveal i.right{margin-left:0}.card .card-content .original{line-height:24px;font-size:15px}a.original{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:block}.card .card-entry-labels{position:absolute;top:10px;z-index:90;max-width:50%}.card-tag-labels li,.card .card-entry-labels li{margin:10px 10px 10px auto;padding:5px 12px 5px 16px!important;background-color:rgba(0,151,167,.85);border-radius:0 3px 3px 0;color:#fff;cursor:default;max-height:2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .card-entry-labels-hidden{margin:2.5px auto}.card .card-entry-labels-hidden li{display:inline-block;background-color:rgba(0,151,167,.85);margin:0 5px;padding:5px 12px;border-radius:3px;color:#fff;max-height:2em;max-width:calc(100% - 15px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .card-entry-labels-hidden li:first-child{margin-left:0}#list .chip a,.card-entry-labels-hidden a,.card-entry-labels a,.card-entry-tags a,.card-tag-labels a{text-decoration:none;font-weight:400;color:#fff}.card .card-content .estimatedTime{margin-bottom:10px}.card .card-action{padding:10px 5px 10px 15px}.card .card-action ul.links{margin:0;font-size:24px;line-height:24px}.card .card-action ul.tools li a.tool{margin-right:5px!important}.card-stacked:hover ul.tools-list{display:block}.card-stacked ul.tools-list{display:none}.card .card-action a{color:#fff;margin:0}.card .card-action a:hover{color:#fff}.card .card-action .reading-time{display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.quickstart .card .card-action a,.quickstart .card .card-action a:hover{color:#fff!important}.settings .div_tabs{padding-bottom:15px}.card.sw{max-width:370px;margin-left:auto;margin-right:auto}.card .card-image{height:10em}.card .card-fullimage{height:13.5em}.card .card-fullimage .preview,.card .card-image .preview{height:14em;background-size:cover;background-repeat:no-repeat;background-position:50%}#article{font-size:20px;margin:0 auto;max-width:45em}#article article{color:#424242;font-size:18px;line-height:1.7em}#article article h1,#article article h2,#article article h3,#article article h4,#article article h5,#article article h6{color:#212121}#article article h1 strong,#article article h2 strong,#article article h3 strong,#article article h4 strong,#article article h5 strong,#article article h6 strong{font-weight:500}#article article h6{font-size:19.2px;font-size:1.2rem}#article article h5{font-size:25.6px;font-size:1.6rem}#article article h4{font-size:30.4px;font-size:1.9rem}#article article h3{font-size:35.2px;font-size:2.2rem}#article article h2{font-size:40px;font-size:2.5rem}#article article h1{font-size:43.2px;font-size:2.7rem}#article figure,#article img{max-width:100%;height:auto}#article article a{border-bottom:1px dotted #03a9f4;text-decoration:none}#article article a:hover{border-bottom-style:solid}#article article ul{padding-left:30px}#article article ul,#article article ul li{list-style-type:disc}#article article blockquote{font-style:italic}#article article strong{font-weight:700}#article article pre{box-sizing:border-box;margin:0 0 1.75em;border:1px solid #e3f2fd;width:100%;padding:10px;font-family:monospace;font-size:.8em;white-space:pre;overflow:auto;background:#f5f5f5;border-radius:3px}#article>header>h1{font-size:2em;margin:33.6px 0 10.88px;margin:2.1rem 0 .68rem}.reader-mode{width:95px!important;transition:width .2s ease}.reader-mode:hover{width:240px!important}.reader-mode .collapsible-body{height:0;overflow:hidden}.reader-mode:hover .collapsible-body{height:auto}.reader-mode span{opacity:0;transition:opacity .2s ease}.reader-mode:hover span{opacity:1}.progress{position:fixed;top:0;width:100%;height:3px;margin:0;z-index:9999}#article aside .tools{font-size:.8em;display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin:0 auto}article aside .tools li{display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}#article aside .tools a{color:#000;text-decoration:none}#article aside #list{float:right;margin:0 15px 10px}#article aside .chip{background-color:rgba(0,151,167,.85);padding:0 15px 0 10px;margin:auto 2px}#article aside .chip a,#article aside .chip i{color:#fff}@media only screen and (max-width:992px){footer,header,main,nav{padding-left:0}.pagination{width:auto}.nav-panels .action{padding-right:.75rem}.nav-panel-buttom{-ms-flex-pack:distribute;justify-content:space-around}#article{max-width:35em;margin-left:auto;margin-right:auto;font-size:18px}#article>header>h1{font-size:1.33em}.reader-mode{width:240px!important}.reader-mode span{opacity:1}.tabs{display:inline-block;height:auto}.tab{min-width:100%}.indicator{display:none}.pagination li.next,.pagination li.prev{width:auto}.drag-target+.drag-target{height:50%}.drag-target+.drag-target+.drag-target{top:50%}}@media only screen and (min-width:1200px) and (max-width:1650px){.row .col.l3{width:33.33333%;margin-left:0}}@media only screen and (min-width:993px) and (max-width:1200px){.row .col.l1{width:25%;margin-left:0}.row .col.l2{width:33.33333%;margin-left:0}.row .col.l3{width:41.66667%;margin-left:0}.row .col.l4{width:50%;margin-left:0}.row .col.l5{width:58.33333%;margin-left:0}.row .col.l6{width:66.66667%;margin-left:0}.row .col.l7{width:75%;margin-left:0}.row .col.l8{width:83.33333%;margin-left:0}.row .col.l9{width:91.66667%;margin-left:0}.row .col.l10{width:100%;margin-left:0}}@media only screen and (max-width:350px){.nb-results{display:none}.row .col,main ul.row{padding:0}}.icon-google-plus2:before{content:"\ea89"}.icon-facebook2:before{content:"\ea8d"}.icon-twitter:before{content:"\ea96"}.icon-apple:before{content:"\eabf"}.icon-android:before{content:"\eac1"}.icon-chrome:before{content:"\eae5"}.icon-firefox:before{content:"\eae6"}.icon-link:before{content:"\e9cb"}footer [class*=" icon-"],footer [class^=icon-]{font-size:2em;transition:text-shadow .2s ease;padding-right:10px}footer [class*=" icon-"]:hover,footer [class^=icon-]:hover{text-shadow:0 0 10px rgba(0,0,0,.3)}div.settings div.input-field div,div.settings div.input-field ul{margin-top:40px}div.settings div.file-field div{margin-top:inherit}.input-field label.active{font-size:16px;font-size:1rem}nav .input-field input{margin:0};@media print{body{font-family:Serif;background-color:#fff}@page{margin:1cm}img{max-width:100%!important}#article .mbm a,#article>aside,#article_toolbar,#links,#slide-out,#sort,.entry+.results,.hide-on-large-only,.messages,.progress,.top_link,body>footer,body>header,div.tools,header div{display:none!important}main{padding-left:0!important}#article{margin:inherit!important}article{border:none!important}.vieworiginal a:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}.pagination span.current{border-style:dashed}#main{padding:0;margin:0;margin-left:0;padding-right:0;padding-bottom:0}#article,#main{width:100%}} \ No newline at end of file