]> git.immae.eu Git - github/wallabag/wallabag.git/commitdiff
Merge pull request #1824 from wallabag/v2-alternative-env
authorJeremy Benoist <j0k3r@users.noreply.github.com>
Fri, 8 Apr 2016 19:03:17 +0000 (21:03 +0200)
committerJeremy Benoist <j0k3r@users.noreply.github.com>
Fri, 8 Apr 2016 19:03:17 +0000 (21:03 +0200)
Remove SMTP configuration environment overrides

42 files changed:
.github/ISSUE_TEMPLATE.md
README.md
app/Resources/CraueConfigBundle/translations/CraueConfigBundle.oc.yml [new file with mode: 0644]
app/Resources/FOSUserBundle/translations/FOSUserBundle.oc.yml [new file with mode: 0644]
app/config/config.yml
composer.json
docs/en/developer/api.rst [new file with mode: 0644]
docs/en/index.rst
docs/en/user/installation.rst
docs/en/user/migration.rst
docs/fr/developer/api.rst [new file with mode: 0644]
docs/fr/index.rst
docs/fr/user/installation.rst
docs/fr/user/migration.rst
src/Wallabag/CoreBundle/Command/InstallCommand.php
src/Wallabag/CoreBundle/Resources/config/services.yml
src/Wallabag/CoreBundle/Resources/public/themes/baggy/js/saveLink.js
src/Wallabag/CoreBundle/Resources/public/themes/material/css/main.css
src/Wallabag/CoreBundle/Resources/translations/messages.da.yml
src/Wallabag/CoreBundle/Resources/translations/messages.de.yml
src/Wallabag/CoreBundle/Resources/translations/messages.en.yml
src/Wallabag/CoreBundle/Resources/translations/messages.es.yml
src/Wallabag/CoreBundle/Resources/translations/messages.fa.yml
src/Wallabag/CoreBundle/Resources/translations/messages.fr.yml
src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml [new file with mode: 0644]
src/Wallabag/CoreBundle/Resources/translations/messages.pl.yml
src/Wallabag/CoreBundle/Resources/translations/messages.ro.yml
src/Wallabag/CoreBundle/Resources/translations/messages.tr.yml
src/Wallabag/CoreBundle/Resources/views/base.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Config/index.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Developer/index.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Entry/entries.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/about.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/Static/howto.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/baggy/layout.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Config/index.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Developer/index.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entry.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Static/about.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/Static/howto.html.twig
src/Wallabag/CoreBundle/Resources/views/themes/material/layout.html.twig

index 87e1d42f49c1b52c30247c1ed3cec1384e0cbe57..6e8a87a98e677eefc694a6cea12bf59c3fa9cb6c 100644 (file)
@@ -6,7 +6,7 @@ Remember, this is _not_ a place to ask questions. For that, go to http://gitter.
 ### Environment
 
 * wallabag version (or git revision) that exhibits the issue:
-* How did you install wallabag? Via `composer create-project` or by downloading the package?
+* How did you install wallabag? Via `git clone` or by downloading the package?
 * Last wallabag version that did not exhibit the issue (if applicable):
 * php version:
 * OS:
index e175b6c32bf21c09ab0b144a61d74cf05047dadc..0e59e40ff20fc1f95304d21e5eeca735eeb60684 100644 (file)
--- a/README.md
+++ b/README.md
@@ -8,8 +8,7 @@ Click, save and read it when you can. It extracts content so that you can read i
 
 More informations on our website: [wallabag.org](https://wallabag.org)
 
-# Want to test the v2?
-Keep in mind it's an **unstable** branch, everything can be broken :)
+# Install wallabag
 
 If you don't have it yet, please [install composer](https://getcomposer.org/download/).
 Then you can install wallabag by executing the following commands:
@@ -17,7 +16,7 @@ Then you can install wallabag by executing the following commands:
 ```
     git clone https://github.com/wallabag/wallabag.git
     cd wallabag
-    git checkout 2.0.0-beta.2
+    git checkout 2.0.0
     SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
     php bin/console wallabag:install --env=prod
     php bin/console server:run --env=prod
diff --git a/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.oc.yml b/app/Resources/CraueConfigBundle/translations/CraueConfigBundle.oc.yml
new file mode 100644 (file)
index 0000000..67880b8
--- /dev/null
@@ -0,0 +1,29 @@
+download_pictures: Telecargar los imatges sul servidor
+carrot: Activar lo partatge cap a Carrot
+diaspora_url: URL de Diaspora, se lo servici Diaspora es activat
+export_epub: Activar l'expòrt ePub
+export_mobi: Activar l'expòrt .mobi
+export_pdf: Activar l'expòrt PDF
+export_csv: Activar l'expòrt CSV
+export_json: Activar l'expòrt JSON
+export_txt: Activar l'expòrt TXT
+export_xml: Activar l'expòrt XML
+pocket_consumer_key: Clau d'autentificacion Pocket per importar las donadas (https://getpocket.com/developer/docs/authentication)
+shaarli_url: URL de Shaarli, se lo servici Shaarli es activat
+share_diaspora: Activar lo partatge cap a Diaspora
+share_mail: Activar lo partatge per corrièl
+share_shaarli: Activar lo partatge cap a Shaarli
+share_twitter: Activar lo partatge cap a Twitter
+show_printlink: Afichar un ligam per imprimir
+wallabag_support_url: URL d'assisténcia de wallabag
+wallabag_url: URL de *vòstra* instància de wallabag
+entry: "article"
+export: "expòrt"
+import: "impòrt"
+misc: "divèrs"
+modify_settings: "aplicar"
+piwik_host: URL de vòstre site dins Piwik
+piwik_site_id: ID de vòstre site dins Piwik
+piwik_enabled: Activar Piwik
+demo_mode_enabled: "Activar lo mode demostracion ? (utilizar solament per la demostracion publica de wallabag)"
+demo_mode_username: "Utilizaire de la demostracion"
diff --git a/app/Resources/FOSUserBundle/translations/FOSUserBundle.oc.yml b/app/Resources/FOSUserBundle/translations/FOSUserBundle.oc.yml
new file mode 100644 (file)
index 0000000..b8a7517
--- /dev/null
@@ -0,0 +1,2 @@
+Login: "Se connectar"
+Enter your email address below and we'll send you password reset instructions.: "Picatz vòstra adreça de corrièl çai-jos, vos mandarem las instruccions per reïnicializar vòstre senhal."
index 5265be8afa7ec18cf37b7cc03ea14f5073ae9dbe..a876669407caf66826d9b54974b25669682d6342 100644 (file)
@@ -28,7 +28,7 @@ framework:
     assets: ~
 
 wallabag_core:
-    version: 2.0.0-beta.2
+    version: 2.0.0
     paypal_url: "https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9UBA65LG3FX9Y&lc=gb"
     languages:
         en: 'English'
@@ -40,6 +40,7 @@ wallabag_core:
         pl: 'Polish'
         da: 'Dansk'
         es: 'Español'
+        oc: 'Occitan'
     items_on_page: 12
     theme: material
     language: en
index 4c3fbdafe13398d50861d224a2194da21aa7cc91..7dbc6772d41f9839faf46153cc4ef24a4b33a5c2 100644 (file)
@@ -80,7 +80,8 @@
         "paragonie/random_compat": "~1.0",
         "craue/config-bundle": "~1.4",
         "mnapoli/piwik-twig-extension": "^1.0",
-        "lexik/maintenance-bundle": "~2.1"
+        "lexik/maintenance-bundle": "~2.1",
+        "ocramius/proxy-manager": "1.*"
     },
     "require-dev": {
         "doctrine/doctrine-fixtures-bundle": "~2.2",
diff --git a/docs/en/developer/api.rst b/docs/en/developer/api.rst
new file mode 100644 (file)
index 0000000..ac00d3a
--- /dev/null
@@ -0,0 +1,235 @@
+API documentation
+=================
+
+Thanks to this documentation, we'll see how to interact with the wallabag API.
+
+Requirements
+------------
+
+* wallabag freshly (or not) installed on http://localhost:8000
+* ``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.
+* all the API methods are documented here http://localhost:8000/api/doc
+
+Creating a new API client
+-------------------------
+
+In your wallabag account, you can create a new API client at this URL http://localhost:8000/developer/client/create.
+
+Just give the redirect URL of your application and create your client. If your application is a desktop one, put whatever URL suits you the most.
+
+You get information like this:
+
+::
+
+    Client ID:
+
+    1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc
+
+    Client secret:
+
+    636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4
+
+
+Obtaining a refresh token
+-------------------------
+
+For each API call, you'll need a token. Let's create it with this command (replace ``client_id``, ``client_secret``, ``username`` and ``password`` with their values):
+
+::
+
+    http POST http://localhost:8000/oauth/v2/token \
+        grant_type=password \
+        client_id=1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc \
+        client_secret=636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4 \
+        username=wallabag \
+        password=wallabag
+
+You'll have this in return:
+
+::
+
+    HTTP/1.1 200 OK
+    Cache-Control: no-store, private
+    Connection: close
+    Content-Type: application/json
+    Date: Tue, 05 Apr 2016 08:44:33 GMT
+    Host: localhost:8000
+    Pragma: no-cache
+    X-Debug-Token: 19c8e0
+    X-Debug-Token-Link: /_profiler/19c8e0
+    X-Powered-By: PHP/7.0.4
+
+    {
+        "access_token": "ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA",
+        "expires_in": 3600,
+        "refresh_token": "OTNlZGE5OTJjNWQwYzc2NDI5ZGE5MDg3ZTNjNmNkYTY0ZWZhZDVhNDBkZTc1ZTNiMmQ0MjQ0OThlNTFjNTQyMQ",
+        "scope": null,
+        "token_type": "bearer"
+    }
+
+We'll work with the ``access_token`` value in our next calls.
+
+Getting existing entries
+------------------------
+
+Documentation for this method: http://localhost:8000/api/doc#get--api-entries.{_format}
+
+As we work on a fresh wallabag installation, we'll have no result with this command:
+
+::
+
+    http GET http://localhost:8000/api/entries.json \
+    "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA"
+
+returns:
+
+::
+
+    HTTP/1.1 200 OK
+    0: application/json
+    Cache-Control: no-cache
+    Connection: close
+    Content-Type: application/json
+    Date: Tue, 05 Apr 2016 08:51:32 GMT
+    Host: localhost:8000
+    Set-Cookie: PHPSESSID=nrogm748md610ovhu6j70c3q63; path=/; HttpOnly
+    X-Debug-Token: 4fbbc4
+    X-Debug-Token-Link: /_profiler/4fbbc4
+    X-Powered-By: PHP/7.0.4
+
+    {
+        "_embedded": {
+            "items": []
+        },
+        "_links": {
+            "first": {
+                "href": "http://localhost:8000/api/entries?page=1&perPage=30"
+            },
+            "last": {
+                "href": "http://localhost:8000/api/entries?page=1&perPage=30"
+            },
+            "self": {
+                "href": "http://localhost:8000/api/entries?page=1&perPage=30"
+            }
+        },
+        "limit": 30,
+        "page": 1,
+        "pages": 1,
+        "total": 0
+    }
+
+The ``items`` array is empty.
+
+Adding your first entry
+-----------------------
+
+Documentation for this method: http://localhost:8000/api/doc#post--api-entries.{_format}
+
+::
+
+    http POST http://localhost:8000/api/entries.json \
+    "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" \
+    url="http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html"
+
+returns
+
+::
+
+    HTTP/1.1 200 OK
+    0: application/json
+    Cache-Control: no-cache
+    Connection: close
+    Content-Type: application/json
+    Date: Tue, 05 Apr 2016 09:07:54 GMT
+    Host: localhost:8000
+    Set-Cookie: PHPSESSID=bjie40ck72kp2pst3i71gf43a4; path=/; HttpOnly
+    X-Debug-Token: e01c51
+    X-Debug-Token-Link: /_profiler/e01c51
+    X-Powered-By: PHP/7.0.4
+
+    {
+        "_links": {
+            "self": {
+                "href": "/api/entries/1"
+            }
+        },
+        "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",
+        "created_at": "2016-04-05T09:07:54+0000",
+        "domain_name": "www.numerama.com",
+        "id": 1,
+        "is_archived": 0,
+        "is_starred": 0,
+        "language": "fr-FR",
+        "mimetype": "text/html",
+        "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg",
+        "reading_time": 2,
+        "tags": [],
+        "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama",
+        "updated_at": "2016-04-05T09:07:54+0000",
+        "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html",
+        "user_email": "",
+        "user_id": 1,
+        "user_name": "wallabag"
+    }
+
+Now, if you execute the previous command (see **Get existing entries**), you'll have data.
+
+Deleting an entry
+-----------------
+
+Documentation for this method: http://localhost:8000/api/doc#delete--api-entries-{entry}.{_format}
+
+::
+
+    http DELETE http://localhost:8000/api/entries/1.json \
+    "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA"
+
+returns
+
+::
+
+    HTTP/1.1 200 OK
+    0: application/json
+    Cache-Control: no-cache
+    Connection: close
+    Content-Type: application/json
+    Date: Tue, 05 Apr 2016 09:19:07 GMT
+    Host: localhost:8000
+    Set-Cookie: PHPSESSID=jopgnfvmuc9a62b27sqm6iulr6; path=/; HttpOnly
+    X-Debug-Token: 887cef
+    X-Debug-Token-Link: /_profiler/887cef
+    X-Powered-By: PHP/7.0.4
+
+    {
+        "_links": {
+            "self": {
+                "href": "/api/entries/"
+            }
+        },
+        "annotations": [],
+        "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",
+        "created_at": "2016-04-05T09:07:54+0000",
+        "domain_name": "www.numerama.com",
+        "is_archived": 0,
+        "is_starred": 0,
+        "language": "fr-FR",
+        "mimetype": "text/html",
+        "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg",
+        "reading_time": 2,
+        "tags": [],
+        "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama",
+        "updated_at": "2016-04-05T09:07:54+0000",
+        "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html",
+        "user_email": "",
+        "user_id": 1,
+        "user_name": "wallabag"
+    }
+
+And if you want to list the existing entries (see **Get existing entries**), the array is empty.
+
+Other methods
+-------------
+
+We won't write samples for each API method.
+
+Have a look on the listing here: http://localhost:8000/api/doc to know each method.
index 3367c8a96b5b7c4c1e650c36d71fb53fa07ce79f..87b62121a167cd37af55419dc17c5e99c2582ada 100644 (file)
@@ -24,6 +24,7 @@ The main documentation for this application is organized into a couple sections:
    :caption: User documentation
 
    user/installation
+   user/migration
    user/create_account
    user/login
    user/configuration
@@ -41,7 +42,7 @@ The main documentation for this application is organized into a couple sections:
    :maxdepth: 2
    :caption: Developer documentation
 
+   developer/api
    developer/docker
    developer/translate
    developer/maintenance
-   developer/releasing
index 28da67b7e15f0ab968af4a2200473afffeebf906..586b01ad54be9bf86c600f22842a3d3783d6b290 100644 (file)
@@ -4,9 +4,9 @@ Install wallabag
 Requirements
 ------------
 
-wallabag is compatible with php >= 5.5, including php 7.
+wallabag is compatible with PHP >= 5.5, including PHP 7.
 
-You'll need the following extensions for wallabag to work. Some of these may already activated in your version of php, so you may not have to install all corresponding packages.
+You'll need the following extensions for wallabag to work. Some of these may already activated in your version of PHP, so you may not have to install all corresponding packages.
 
 - php-session
 - php-ctype
@@ -25,9 +25,9 @@ You'll need the following extensions for wallabag to work. Some of these may alr
 
 wallabag uses PDO to connect to database, so you'll need one of:
 
-- php-pdo_mysql
-- php-pdo_sqlite
-- php-pdo_pgsql
+- pdo_mysql
+- pdo_sqlite
+- pdo_pgsql
 
 and it's corresponding database server.
 
@@ -50,7 +50,7 @@ To install wallabag itself, you must run these two commands:
 
     git clone https://github.com/wallabag/wallabag.git
     cd wallabag
-    git checkout 2.0.0-beta.2
+    git checkout 2.0.0
     SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
     php bin/console wallabag:install --env=prod
 
index 9e7d1a1eb5ed7cf63c98700ec214887234eb7986..e1fee9611a626fa71ef3f28cb7372f3acd3b92be 100644 (file)
@@ -24,6 +24,28 @@ After creating an user account on your new wallabag v2 instance, you must head o
    :alt: Import from wallabag v1
    :align: center
 
+Import via command-line interface (CLI)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+If you have a CLI access on your web server, you can execute this command to import your wallabag v1 export:
+
+::
+
+    bin/console wallabag:import-v1 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
+
+Please replace values:
+
+* ``1`` is the user identifier in database (The ID of the first user created on wallabag is 1)
+* ``~/Downloads/wallabag-export-1-2016-04-05.json`` is the path of your wallabag v1 export
+
+You'll have this in return:
+
+::
+
+    Start : 05-04-2016 11:36:07 ---
+    403 imported
+    0 already saved
+    End : 05-04-2016 11:36:09 ---
 
 From wallabag 2.x
 -----------------
diff --git a/docs/fr/developer/api.rst b/docs/fr/developer/api.rst
new file mode 100644 (file)
index 0000000..9c8e25a
--- /dev/null
@@ -0,0 +1,235 @@
+Documentation de l'API
+======================
+
+Grâce à cette documentation, nous allons voir comment interagir avec l'API de wallabag.
+
+Pré-requis
+----------
+
+* wallabag fraichement installé et disponible à http://localhost:8000
+* ``httpie`` installé sur votre ordinateur (`voir le site du projet <https://github.com/jkbrzt/httpie>`__). Vous pouvez également adapter les commandes en utilisant curl ou wget. 
+* toutes les méthodes de l'API documentées ici http://localhost:8000/api/doc
+
+Créer un nouveau client d'API
+-----------------------------
+
+Depuis votre wallabag, vous pouvez créer un nouveau client d'API à cette URL http://localhost:8000/developer/client/create.
+
+Vous devez renseigner l'URL de redirection de votre application et créer votre client. Si votre application est une application desktop, renseignez l'URL que vous souhaitez.
+
+Vous obtiendrez les informations suivantes :
+
+::
+
+    Client ID:
+
+    1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc
+
+    Client secret:
+
+    636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4
+
+
+Créer un jeton
+--------------
+
+Pour chaque appel d'API, vous aurez besoin d'un jeton. Créons-le avec la commande suivante (remplacez ``client_id``, ``client_secret``, ``username`` and ``password`` par leur valeur):
+
+::
+
+    http POST http://localhost:8000/oauth/v2/token \
+        grant_type=password \
+        client_id=1_3o53gl30vhgk0c8ks4cocww08o84448osgo40wgw4gwkoo8skc \
+        client_secret=636ocbqo978ckw0gsw4gcwwocg8044sco0w8w84cws48ggogs4 \
+        username=wallabag \
+        password=wallabag
+
+Vous obtiendrez :
+
+::
+
+    HTTP/1.1 200 OK
+    Cache-Control: no-store, private
+    Connection: close
+    Content-Type: application/json
+    Date: Tue, 05 Apr 2016 08:44:33 GMT
+    Host: localhost:8000
+    Pragma: no-cache
+    X-Debug-Token: 19c8e0
+    X-Debug-Token-Link: /_profiler/19c8e0
+    X-Powered-By: PHP/7.0.4
+
+    {
+        "access_token": "ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA",
+        "expires_in": 3600,
+        "refresh_token": "OTNlZGE5OTJjNWQwYzc2NDI5ZGE5MDg3ZTNjNmNkYTY0ZWZhZDVhNDBkZTc1ZTNiMmQ0MjQ0OThlNTFjNTQyMQ",
+        "scope": null,
+        "token_type": "bearer"
+    }
+
+Nous allons utiliser la valeur de ``access_token`` dans nos prochains appels.
+
+Récupérer les articles existants
+--------------------------------
+
+Documentation pour cette méthode : http://localhost:8000/api/doc#get--api-entries.{_format}
+
+Comme nous venons tout juste d'installer wallabag, nous n'aurons aucun résultat avec cette commande :
+
+::
+
+    http GET http://localhost:8000/api/entries.json \
+    "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA"
+
+retournera :
+
+::
+
+    HTTP/1.1 200 OK
+    0: application/json
+    Cache-Control: no-cache
+    Connection: close
+    Content-Type: application/json
+    Date: Tue, 05 Apr 2016 08:51:32 GMT
+    Host: localhost:8000
+    Set-Cookie: PHPSESSID=nrogm748md610ovhu6j70c3q63; path=/; HttpOnly
+    X-Debug-Token: 4fbbc4
+    X-Debug-Token-Link: /_profiler/4fbbc4
+    X-Powered-By: PHP/7.0.4
+
+    {
+        "_embedded": {
+            "items": []
+        },
+        "_links": {
+            "first": {
+                "href": "http://localhost:8000/api/entries?page=1&perPage=30"
+            },
+            "last": {
+                "href": "http://localhost:8000/api/entries?page=1&perPage=30"
+            },
+            "self": {
+                "href": "http://localhost:8000/api/entries?page=1&perPage=30"
+            }
+        },
+        "limit": 30,
+        "page": 1,
+        "pages": 1,
+        "total": 0
+    }
+
+Le tableau ``items`` est vide.
+
+Créer votre premier article
+---------------------------
+
+Documentation pour cette méthode : http://localhost:8000/api/doc#post--api-entries.{_format}
+
+::
+
+    http POST http://localhost:8000/api/entries.json \
+    "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA" \
+    url="http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html"
+
+retournera :
+
+::
+
+    HTTP/1.1 200 OK
+    0: application/json
+    Cache-Control: no-cache
+    Connection: close
+    Content-Type: application/json
+    Date: Tue, 05 Apr 2016 09:07:54 GMT
+    Host: localhost:8000
+    Set-Cookie: PHPSESSID=bjie40ck72kp2pst3i71gf43a4; path=/; HttpOnly
+    X-Debug-Token: e01c51
+    X-Debug-Token-Link: /_profiler/e01c51
+    X-Powered-By: PHP/7.0.4
+
+    {
+        "_links": {
+            "self": {
+                "href": "/api/entries/1"
+            }
+        },
+        "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",
+        "created_at": "2016-04-05T09:07:54+0000",
+        "domain_name": "www.numerama.com",
+        "id": 1,
+        "is_archived": 0,
+        "is_starred": 0,
+        "language": "fr-FR",
+        "mimetype": "text/html",
+        "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg",
+        "reading_time": 2,
+        "tags": [],
+        "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama",
+        "updated_at": "2016-04-05T09:07:54+0000",
+        "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html",
+        "user_email": "",
+        "user_id": 1,
+        "user_name": "wallabag"
+    }
+
+Maintenant, si vous exécutez la précédente commande (voir **Récupérer les articles existants**), vous obtiendrez quelque chose.
+
+Supprimer un article
+--------------------
+
+Documentation pour cette méthode : http://localhost:8000/api/doc#delete--api-entries-{entry}.{_format}
+
+::
+
+    http DELETE http://localhost:8000/api/entries/1.json \
+    "Authorization:Bearer ZGJmNTA2MDdmYTdmNWFiZjcxOWY3MWYyYzkyZDdlNWIzOTU4NWY3NTU1MDFjOTdhMTk2MGI3YjY1ZmI2NzM5MA"
+
+retournera :
+
+::
+
+    HTTP/1.1 200 OK
+    0: application/json
+    Cache-Control: no-cache
+    Connection: close
+    Content-Type: application/json
+    Date: Tue, 05 Apr 2016 09:19:07 GMT
+    Host: localhost:8000
+    Set-Cookie: PHPSESSID=jopgnfvmuc9a62b27sqm6iulr6; path=/; HttpOnly
+    X-Debug-Token: 887cef
+    X-Debug-Token-Link: /_profiler/887cef
+    X-Powered-By: PHP/7.0.4
+
+    {
+        "_links": {
+            "self": {
+                "href": "/api/entries/"
+            }
+        },
+        "annotations": [],
+        "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",
+        "created_at": "2016-04-05T09:07:54+0000",
+        "domain_name": "www.numerama.com",
+        "is_archived": 0,
+        "is_starred": 0,
+        "language": "fr-FR",
+        "mimetype": "text/html",
+        "preview_picture": "http://www.numerama.com/content/uploads/2016/04/post-it.jpg",
+        "reading_time": 2,
+        "tags": [],
+        "title": "Le Pocket libre Wallabag fait le plein de fonctionnalités - Tech - Numerama",
+        "updated_at": "2016-04-05T09:07:54+0000",
+        "url": "http://www.numerama.com/tech/160115-le-pocket-libre-wallabag-fait-le-plein-de-fonctionnalites.html",
+        "user_email": "",
+        "user_id": 1,
+        "user_name": "wallabag"
+    }
+
+Et si vous voulez voir la liste des articles existants (voir **Récupérer les articles existants**), le tableau sera vide.
+
+Autres méthodes
+---------------
+
+Nous n'écrirons pas d'exemples pour toutes les méthodes de l'API.
+
+Jetez un œil à la liste complète ici http://localhost:8000/api/doc pour connaitre chaque méthode.
index 483106800bf1d7f28c902d9f752e080e37231367..628c62a5bfcec0ad567b104a65ae9e5ae1c2865d 100644 (file)
@@ -25,6 +25,7 @@ La documentation principale de cette application est découpée en plusieurs sec
    :caption: Documentation utilisateur
 
    user/installation
+   user/migration
    user/create_account
    user/login
    user/configuration
@@ -42,6 +43,7 @@ La documentation principale de cette application est découpée en plusieurs sec
    :maxdepth: 2
    :caption: Documentation développeur
 
+   developer/api
    developer/docker
    developer/translate
    developer/maintenance
index 49e72f83610b4e9b59e40e16f5c8f5d5c79379c4..53cc4adfed62d9a947a7736ec71a0b97a8ce47fc 100644 (file)
@@ -4,9 +4,9 @@ Installer wallabag
 Pré-requis
 ------------
 
-wallabag est compatible avec php >= 5.5, php 7 inclus.
+wallabag est compatible avec PHP >= 5.5, PHP 7 inclus.
 
-Vous aurez besoin des extensions suivantes pour que wallabag fonctionne. Il est possible que certaines de ces extensions soient déjà activées dans votre version de php, donc vous n'avez pas forcément besoin d'installer tous les paquets correspondants.
+Vous aurez besoin des extensions suivantes pour que wallabag fonctionne. Il est possible que certaines de ces extensions soient déjà activées dans votre version de PHP, donc vous n'avez pas forcément besoin d'installer tous les paquets correspondants.
 
 - php-session
 - php-ctype
@@ -25,9 +25,9 @@ Vous aurez besoin des extensions suivantes pour que wallabag fonctionne. Il est
 
 wallabag utilise PDO afin de se connecter à une base de données, donc vous aurez besoin d'une extension et d'un système de bases de données parmi :
 
-- php-pdo_mysql
-- php-pdo_sqlite
-- php-pdo_pgsql
+- pdo_mysql
+- pdo_sqlite
+- pdo_pgsql
 
 Installation
 ------------
@@ -48,7 +48,7 @@ Pour installer wallabag, vous devez exécuter ces deux commandes :
 
     git clone https://github.com/wallabag/wallabag.git
     cd wallabag
-    git checkout 2.0.0-beta.2
+    git checkout 2.0.0
     SYMFONY_ENV=prod composer install --no-dev -o --prefer-dist
     php bin/console wallabag:install --env=prod
 
index b315ff5ce5ca93ccf1e90cad0e5572076c3243b1..9e09b0c45a5cfd14d321e85d0fd5043d3be4bea9 100644 (file)
@@ -24,6 +24,28 @@ Une fois que vous avez créé un compte utilisateur sur votre nouvelle instance
    :alt: Import depuis wallabag v1
    :align: center
 
+Import via via la ligne de commande (CLI)
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Si vous avez accès à la ligne de commandes de votre serveur web, vous pouvez exécuter cette commande pour import votre fichier wallabag v1 :
+
+::
+
+    bin/console wallabag:import-v1 1 ~/Downloads/wallabag-export-1-2016-04-05.json --env=prod
+
+Remplacez les valeurs :
+
+* ``1`` est l'identifiant de votre utilisateur en base (l'ID de votre premier utilisateur créé sur wallabag est 1)
+* ``~/Downloads/wallabag-export-1-2016-04-05.json`` est le chemin de votre export wallabag v1
+
+Vous obtiendrez :
+
+::
+
+    Start : 05-04-2016 11:36:07 ---
+    403 imported
+    0 already saved
+    End : 05-04-2016 11:36:09 ---
 
 Depuis wallabag 2.x
 -------------------
index 7c3d1c523f95fdd2f41451355e43cef131b3f8eb..6665f4b5b7d503ad9cab5eb81ea1bd2da3995673 100644 (file)
@@ -73,13 +73,14 @@ class InstallCommand extends ContainerAwareCommand
 
         $fulfilled = true;
 
-        $label = '<comment>PDO Drivers</comment>';
+        $label = '<comment>PDO Driver</comment>';
         $status = '<info>OK!</info>';
         $help = '';
-        if (!(extension_loaded('pdo_sqlite') || extension_loaded('pdo_mysql') || extension_loaded('pdo_pgsql'))) {
+
+        if (!extension_loaded($this->getContainer()->getParameter('database_driver'))) {
             $fulfilled = false;
             $status = '<error>ERROR!</error>';
-            $help = 'Needs one of sqlite, mysql or pgsql PDO drivers';
+            $help = 'Database driver "'.$this->getContainer()->getParameter('database_driver').'" is not installed.';
         }
 
         $rows = [];
index 677c33daa7f39181f155fb2bc3ee49ca619e3f7b..a36f33922e8805ecd00d7727ddb13293f084c898 100644 (file)
@@ -39,7 +39,22 @@ services:
     wallabag_core.graby:
         class: Graby\Graby
         arguments:
-            - { error_message: "wallabag can't retrieve contents for this article. Please report this issue to us." }
+            -
+                error_message: "wallabag can't retrieve contents for this article. Please report this issue to us."
+                http_client:
+                    user_agents:
+                        'lifehacker.com': 'PHP/5.2'
+                        'gawker.com': 'PHP/5.2'
+                        'deadspin.com': 'PHP/5.2'
+                        'kotaku.com': 'PHP/5.2'
+                        'jezebel.com': 'PHP/5.2'
+                        'io9.com': 'PHP/5.2'
+                        'jalopnik.com': 'PHP/5.2'
+                        'gizmodo.com': 'PHP/5.2'
+                        '.wikipedia.org': 'Mozilla/5.2'
+                        '.fok.nl': 'Googlebot/2.1'
+                        'getpocket.com': 'PHP/5.2'
+                        'iansommerville.com': 'PHP/5.2'
         calls:
             - [ setLogger, [ "@logger" ] ]
         tags:
index a7acd84c3e808969cac189ca5cf57d267cdba8d6..34e934ccd9d9f39913dabac8eed669598b5d720a 100755 (executable)
@@ -78,19 +78,6 @@ $.fn.ready(function() {
     event.preventDefault();
   });
 
-  /* ==========================================================================
-   Keyboard gestion
-   ========================================================================== */
-
-  $(window).keydown(function(e){
-    if ( ( e.target.tagName.toLowerCase() !== 'input' && e.keyCode == 83 ) || (e.keyCode == 27 && $bagitForm.is(':visible') ) ) {
-      $bagit.removeClass("current");
-      $("#bagit-arrow").removeClass("arrow-down");
-      toggleSaveLinkForm();
-      return false;
-    }
-  });
-
   /* ==========================================================================
    Process all links inside an article
    ========================================================================== */
index 6f44e1dac7725bda35296dfe9a9e0df26037cfeb..96c38822e4133b7f79ce541435bc862570d7e2b2 100755 (executable)
@@ -54,20 +54,6 @@ body.login main {
     padding: 0;
 }
 
-#warning_message {
-    position: fixed;
-    background-color: #ff6347;
-    z-index: 1000;
-    bottom: 0;
-    left: 0;
-    width: 100%;
-    color: #000;
-}
-
-#warning_message a {
-    color: #555;
-}
-
 .border-bottom {
     border-bottom: 1px solid #DDD;
 }
index 40ae4e5a25a84725614ad51f711f24f91baa5cb2..d19cf1bf8b5fcc5b89e8073a734242dd5aa49299 100644 (file)
@@ -137,7 +137,7 @@ entry:
     page_titles:
         # unread: 'Unread entries'
         # starred: 'Starred entries'
-        # archive: 'Archived entries'
+        # archived: 'Archived entries'
         # filtered: 'Filtered entries'
     list:
         # number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.'
@@ -338,6 +338,7 @@ developer:
     # documentation: 'Documentation'
     # how_to_first_app: 'How to create my first application'
     # full_documentation: 'View full API documentation'
+    # list_methods: 'List API methods'
     # clients:
     #     title: 'Clients'
     #     create_new: 'Create a new client'
index ff6255b755c76a5fc73021c02c90298d3dcb99cd..f1e7b6b8efdc5d9aadd86d2721304110f30da15a 100644 (file)
@@ -137,7 +137,7 @@ entry:
     page_titles:
         unread: 'Ungelesene Einträge'
         starred: 'Favorisierte Einträge'
-        archive: 'Archivierte Einträge'
+        archived: 'Archivierte Einträge'
         filtered: 'Gefilterte Einträge'
     list:
         number_on_the_page: '{0} Es gibt keine Einträge.|{1} Es gibt einen Eintrag.|]1,Inf[ Es gibt %count% Einträge.'
@@ -338,6 +338,7 @@ developer:
     documentation: 'Dokumentation'
     how_to_first_app: 'Wie erstelle ich meine erste Anwendung'
     full_documentation: 'Komplette API-Dokumentation einsehen'
+    # list_methods: 'List API methods'
     clients:
         title: 'Clients'
         create_new: 'Neuen Client erstellen'
index 1e49d4ba147dd2f324206b4f507af9f938578449..3dc229983ee9c94ebdae7e885e0c767280a4facd 100644 (file)
@@ -137,7 +137,7 @@ entry:
     page_titles:
         unread: 'Unread entries'
         starred: 'Starred entries'
-        archive: 'Archived entries'
+        archived: 'Archived entries'
         filtered: 'Filtered entries'
     list:
         number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.'
@@ -338,6 +338,7 @@ developer:
     documentation: 'Documentation'
     how_to_first_app: 'How to create my first application'
     full_documentation: 'View full API documentation'
+    list_methods: 'List API methods'
     clients:
         title: 'Clients'
         create_new: 'Create a new client'
index f1ac5b2fc8fc449fbee69a7972b488c118f0a102..a8fcbcf66d0ed8a26681ac9aa4f54b1636c347ce 100644 (file)
@@ -137,7 +137,7 @@ entry:
     page_titles:
         # unread: 'Unread entries'
         # starred: 'Starred entries'
-        # archive: 'Archived entries'
+        # archived: 'Archived entries'
         # filtered: 'Filtered entries'
     list:
         number_on_the_page: '{0} No hay artículos.|{1} Hay un artículo.|]1,Inf[ Hay %count% artículos.'
@@ -338,6 +338,7 @@ developer:
     # documentation: 'Documentation'
     # how_to_first_app: 'How to create my first application'
     # full_documentation: 'View full API documentation'
+    # list_methods: 'List API methods'
     # clients:
     #     title: 'Clients'
     #     create_new: 'Create a new client'
index 97f52a78415305ac5315198b9a4cc7b04d3427d1..6be7d22ef15a6d62267c85523c71236131505db3 100644 (file)
@@ -137,7 +137,7 @@ entry:
     page_titles:
         # unread: 'Unread entries'
         # starred: 'Starred entries'
-        # archive: 'Archived entries'
+        # archived: 'Archived entries'
         # filtered: 'Filtered entries'
     list:
         # number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.'
@@ -338,6 +338,7 @@ developer:
     # documentation: 'Documentation'
     # how_to_first_app: 'How to create my first application'
     # full_documentation: 'View full API documentation'
+    # list_methods: 'List API methods'
     # clients:
     #     title: 'Clients'
     #     create_new: 'Create a new client'
index 56172463848a493f6b792297d018cc40262749e6..6ff1a3b1ad73cedafe95417cbb76fbad58c6378f 100644 (file)
@@ -137,7 +137,7 @@ entry:
     page_titles:
         unread: 'Articles non lus'
         starred: 'Articles favoris'
-        archive: 'Articles lus'
+        archived: 'Articles lus'
         filtered: 'Articles filtrés'
     list:
         number_on_the_page: "{0} Il n'y a pas d'articles.|{1} Il y a un article.|]1,Inf[ Il y a %count% articles."
@@ -338,6 +338,7 @@ developer:
     documentation: 'Documentation'
     how_to_first_app: 'Comment créer votre première application'
     full_documentation: "Voir la documentation complète de l'API"
+    list_methods: "Lister toutes les méthodes de l'API"
     clients:
         title: 'Clients'
         create_new: 'Créer une nouveau client'
diff --git a/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml b/src/Wallabag/CoreBundle/Resources/translations/messages.oc.yml
new file mode 100644 (file)
index 0000000..bbd813e
--- /dev/null
@@ -0,0 +1,425 @@
+security:
+    login:
+        page_title: 'Benvenguda sus wallabag !'
+        keep_logged_in: 'Demorar connectat'
+        forgot_password: 'Senhal doblidat ?'
+        submit: 'Se connectar'
+        register: 'Crear un compte'
+        username: "Nom d'utilizaire"
+        password: 'Senhal'
+        cancel: 'Anullar'
+    resetting:
+        description: "Picatz vòstra adreça de corrièl çai-jos, vos mandarem las instruccions per reïnicializar vòstre senhal."
+    register:
+        page_title: 'Se crear un compte'
+        go_to_account: 'Anar sus vòstre compte'
+
+menu:
+    left:
+        unread: 'Pas legits'
+        starred: 'Favorits'
+        archive: 'Legits'
+        all_articles: 'Tots los articles'
+        config: 'Configuracion'
+        tags: 'Etiquetas'
+        internal_settings: 'Configuracion interna'
+        import: 'Importar'
+        howto: 'Ajuda'
+        developer: 'Desvolopador'
+        logout: 'Déconnexion'
+        about: 'A prepaus'
+        search: 'Cercar'
+        save_link: 'Enregistrar un novèl article'
+        back_to_unread: 'Tornar als articles pas legits'
+    top:
+        add_new_entry: 'Enregistrar un novèl article'
+        search: 'Cercar'
+        filter_entries: 'Filtrar los articles'
+        export: 'Exportar'
+    search_form:
+        input_label: 'Picatz vòstre mot-clau a cercar aquí'
+
+footer:
+    wallabag:
+        elsewhere: 'Emportatz wallabag amb vosaultres'
+        social: 'Social'
+        powered_by: 'propulsat per'
+        about: 'A prepaus'
+    page_title: 'Configuracion'
+
+config:
+    tab_menu:
+        settings: 'Paramètres'
+        rss: 'RSS'
+        user_info: 'Mon compte'
+        password: 'Senhal'
+        rules: "Règlas d'etiquetas automaticas"
+        new_user: 'Crear un compte'
+    form:
+        save: 'Enregistrar'
+    form_settings:
+        theme_label: 'Tèma'
+        items_per_page_label: "Nombre d'articles per pagina"
+        language_label: 'Lenga'
+        reading_speed:
+            label: 'Velocitat  de lectura'
+            help_message: 'Podètz utilizar una aisina en linha per estimar vòstra velocitat de lectura :'
+            100_word: "Legissi a l'entorn de 100 mots per minuta"
+            200_word: "Legissi a l'entorn de 200 mots per minuta"
+            300_word: "Legissi a l'entorn de 300 mots per minuta"
+            400_word: "Legissi a l'entorn de 400 mots per minuta"
+    form_rss:
+        description: "Los fluxes RSS fornits per wallabag vos permeton de legir vòstres articles salvagardats dins vòstre lector de fluxes preferit. Per los poder emplegar, vos cal, d'en primièr crear un geton."
+        token_label: 'Geton RSS'
+        no_token: 'Aucun jeton généré'
+        token_create: 'Pas cap de geton generat'
+        token_reset: 'Reïnicializatz vòstre geton'
+        rss_links: 'URL de vòstres fluxes RSS'
+        rss_link:
+            unread: 'pas legits'
+            starred: 'favorits'
+            archive: 'legits'
+        rss_limit: "Nombre d'articles dins un flux RSS"
+    form_user:
+        two_factor_description: "Activar l'autentificacion doble-factor vòl dire que recebretz un còdi per corrièl per cada novèla connexion pas aprovada."
+        name_label: 'Nom'
+        email_label: 'Adreça de corrièl'
+        twoFactorAuthentication_label: 'Dobla autentificacion'
+    form_password:
+        old_password_label: 'Senhal actual'
+        new_password_label: 'Senhal novèl'
+        repeat_new_password_label: 'Confirmatz vòstre novèl senhal'
+    form_rules:
+        if_label: 'se'
+        then_tag_as_label: 'alara atribuir las etiquetas'
+        delete_rule_label: 'suprimir'
+        rule_label: 'Règla'
+        tags_label: 'Etiquetas'
+        faq:
+            title: 'FAQ'
+            tagging_rules_definition_title: "Qué significa las règlas d'etiquetas automaticas ?"
+            tagging_rules_definition_description: "Son de règlas utilizadas per wallabad per classar automaticament vòstres novèls articles.<br />Cada còp qu'un novèl article es apondut, totas las règlas d'etiquetas automaticas seràn utilizadas per ajustar d'etiquetas qu'avètz configuradas, en vos esparnhant l'esfòrç de classificar vòstres articles manualament."
+            how_to_use_them_title: 'Cossí las utilizar ?'
+            how_to_use_them_description: "Imaginem que volètz atribuir als novèls article l'etiqueta « <i>lectura corta</i> » quand lo temps per legir es inferior a 3 minutas.<br />Dins aquel cas, deuriatz metre « readingTime &lt;= 3 » dins lo camp <i>Règla</i> e « <i>lectura corta</i> » dins lo camp <i>Etiqueta</i>.<br />Mai d'una etiquetas pòdon èsser apondudas simultanèament ne las separant amb de virgulas : « <i>lectura corta, per ligir</i> »<br />De règlas complèxas pòdon èsser creadas en emplegant d'operators predefinits :  se « <i>readingTime &gt;= 5 AND domainName = \"github.com\"</i> » alara atribuir las etiquetas « <i>lectura longa, github </i> »"
+            variables_available_title: 'Quinas variablas e operators pòdi utilizar per escriure de règlas ?'
+            variables_available_description: "Las variablas e operators seguents pòdon èsser utilizats per escriure de règlas d'etiquetas automaticas :"
+            meaning: 'Significacion'
+            variable_description:
+                label: 'Variabla'
+                title: "Títol de l'article"
+                url: "URL de l'article"
+                isArchived: "Se l'article es archivat o pas"
+                isStarred: "Se l'article es favorit o pas"
+                content: "Lo contengut de l'article"
+                language: "La lenga de l'article"
+                mimetype: "Lo tipe MIME de l'article"
+                readingTime: "Lo temps de lectura estimat de l'article, en minutas"
+                domainName: "Lo nom de domeni de l'article"
+            operator_description:
+                label: 'Operator'
+                less_than: 'Mens que…...'
+                strictly_less_than: 'Estrictament mens que…'
+                greater_than: 'Mai que…'
+                strictly_greater_than: 'Estrictament mai que…'
+                equal_to: 'Egal a…'
+                not_equal_to: 'Diferent de…'
+                or: "Una règla O l'autra"
+                and: "Una règla E l'autra"
+                matches: 'Teste se un <i>subjècte</i> correspond a una <i>recerca</i> (non sensibla a la cassa).<br />Exemple : <code>title matches \"football\"</code>'
+    form_new_user:
+        username_label: "Nom d'utilizaire"
+        password_label: 'Senhal'
+        repeat_new_password_label: 'Confirmatz vòstre novèl senhal'
+        plain_password_label: 'Senhal en clar'
+        email_label: 'Adreça de corrièl'
+
+entry:
+    page_titles:
+        unread: 'Articles pas legits'
+        starred: 'Articles favorits'
+        archived: 'Articles legits'
+        filtered: 'Articles filtrats'
+    list:
+        number_on_the_page: "{0} I a pas cap d'article.|{1} I a un article.|]1,Inf[ I a %count% articles."
+        reading_time: 'durada de lectura'
+        reading_time_minutes: 'durada de lectura : %readingTime% min'
+        reading_time_less_one_minute: 'durada de lectura : <small class="inferieur">&lt;</small> 1 min'
+        original_article: 'original'
+        toogle_as_read: 'Marcar coma legit/pas legit'
+        toogle_as_star: 'Marcar coma favorit'
+        delete: 'Suprimir'
+        export_title: 'Exportar'
+    filters:
+        title: 'Filtres'
+        status_label: 'Estatus'
+        archived_label: 'Legits'
+        starred_label: 'Favorits'
+        preview_picture_label: 'A una fotò'
+        preview_picture_help: 'Fotò'
+        language_label: 'Lenga'
+        reading_time:
+            label: 'Durada de lectura en minutas'
+            from: 'de'
+            to: 'per'
+        domain_label: 'Nom de domeni'
+        created_at:
+            label: 'Data de creacion'
+            from: 'de'
+            to: 'per'
+        action:
+            clear: 'Escafar'
+            filter: 'Filtrar'
+    view:
+        left_menu:
+            back_to_top: 'Tornar en naut'
+            back_to_homepage: 'Tornar'
+            set_as_read: 'Marcar coma legit'
+            set_as_unread: 'Marcar coma pas legit'
+            set_as_favorite: 'Metre en favori'
+            view_original_article: 'Article original'
+            re_fetch_content: 'Tornar cargar lo contengut'
+            delete: 'Suprimir'
+            add_a_tag: 'Ajustar una etiqueta'
+            share_content: 'Partatjar'
+            share_email_label: 'Corrièl'
+            download: 'Telecargar'
+            print: 'Imprimir'
+            problem:
+                label: 'Un problèma ?'
+                description: "Marca mal la presentacion d'aqueste article ?"
+        edit_title: 'Modificar lo títol'
+        original_article: 'original'
+        annotations_on_the_entry: "{0} Pas cap d'anotacion|{1} Una anotacion|]1,Inf[ %nbAnnotations% anotacions"
+    new:
+        page_title: 'Enregistrar un novèl article'
+        placeholder: 'http://website.com'
+        form_new:
+            url_label: Url
+    edit:
+        page_title: 'Modificar un article'
+        title_label: 'Títol'
+        url_label: 'Url'
+        is_public_label: 'Public'
+        save_label: 'Enregistrar'
+
+about:
+    page_title: 'A prepaus'
+    top_menu:
+        who_behind_wallabag: "L'equipa darrèr wallabag"
+        getting_help: "Besonh d'ajuda"
+        helping: 'Ajudar wallabag'
+        contributors: 'Contributors'
+        third_party: 'Bibliotècas tèrças'
+    who_behind_wallabag:
+        developped_by: 'Desvolopat per'
+        website: 'Site web'
+        many_contributors: 'E un fum de contributors ♥ <a href="https://github.com/wallabag/wallabag/graphs/contributors">sur Github</a>'
+        project_website: 'Site web del projète'
+        license: 'Licéncia'
+        version: 'Version'
+    getting_help:
+        documentation: 'Documentacion'
+        bug_reports: 'Rapòrt de bugs'
+        support: "<a href=\"https://support.wallabag.org\">Sus nòstre site d'assisténcia</a> ou <a href=\"https://github.com/wallabag/wallabag/issues\">sur GitHub</a>"
+    helping:
+        description: 'wallabag es a gratuit e opensource. Nos podètz ajudar :'
+        by_contributing: 'en ajudant lo projècte :'
+        by_contributing_2: 'un bilhet recensa totes nòstres besonhs'
+        by_paypal: 'via Paypal'
+    contributors:
+        description: "Mercés als contributors de l'aplicacion web de wallabag"
+    third_party:
+        description: 'Aquí la lista de las dependéncias utilizadas dins wallabag (e lor licéncia) :'
+        package: 'Dependéncia'
+        license: 'Licéncia'
+
+howto:
+    page_title: 'Ajuda'
+    page_description: "I a mai d'un biai d'enregistrar un article :"
+    top_menu:
+        browser_addons: 'Extensions de navigator'
+        mobile_apps: 'Aplicacions mobil'
+        bookmarklet: 'Bookmarklet'
+    form:
+        description: 'Gràcias a aqueste formulari'
+    browser_addons:
+        firefox: 'Extension Firefox'
+        chrome: 'Extension Chrome'
+    mobile_apps:
+        android:
+            via_f_droid: 'via F-Droid'
+            via_google_play: 'via Google Play'
+        ios: 'sus iTunes Store'
+        windows: 'sus Microsoft Store'
+    bookmarklet:
+        description: 'Lisatz-depausatz aqueste ligam dins vòstra barra de favorits :'
+
+quickstart:
+    page_title: 'Per ben començar'
+    intro:
+        title: 'Benvenguda sus wallabag !'
+        paragraph_1: "Anem vos guidar per far lo torn de la proprietat e vos presentar unas fonccionalitats que vos poirián interessar per vos apropriar aquesta aisina."
+        paragraph_2: 'Seguètz-nos '
+    configure:
+        title: "Configuratz l'aplicacio"
+        language: "Cambiatz la lenga e l'estil de l'aplicacion"
+        rss: 'Activatz los fluxes RSS'
+        tagging_rules: 'Escrivètz de règlas per classar automaticament vòstres articles'
+    admin:
+        title: 'Administracion'
+        description: "En qualitat d'adminitrastor sus wallabag, avètz de privilègis que vos permeton de :"
+        new_user: 'Crear un novèl utilizaire'
+        analytics: 'Configurar las estadisticas'
+        sharing: 'Activar de paramètres de partatge'
+        export: 'Configurar los expòrt'
+        import: 'Configurar los impòrt'
+    first_steps:
+        title: 'Primièrs passes'
+        new_article: 'Ajustatz vòstre primièr article'
+        unread_articles: 'E racaptatz-lo !'
+    migrate:
+        title: 'Migrar dempuèi un servici existent'
+        description: "Sètz un ancian utilizaire d'un servici existent ? Vos ajudarem a trapar vòstras donadas sus wallabag."
+        pocket: 'Migrar dempuèi Pocket'
+        wallabag_v1: 'Migrar dempuèi wallabag v1'
+        wallabag_v2: 'Migrar dempuèi wallabag v2'
+    developer:
+        title: 'Pels desvolopadors'
+        create_application: 'Crear vòstra aplicacion tèrça'
+    docs:
+        title: 'Documentacion complèta'
+        annotate: 'Anotatar vòstre article'
+        export: 'Convertissètz vòstres articles en ePub o en PDF'
+        search_filters: "Aprenètz a utilizar lo motor de recèrca e los filtres per retrobar l'article que vos interèssa"
+        fetching_errors: "Qué far se mon article es pas recuperat coma cal ?"
+        all_docs: "E encara plen de causas mai !"
+    support:
+        title: 'Assisténcia'
+        description: 'Perque avètz benlèu besonh de nos pausar una question, sèm disponibles per vosautres.'
+        github: 'Sus GitHub'
+        email: 'Per e-mail'
+        gitter: 'Sus Gitter'
+
+tag:
+    page_title: 'Etiquetas'
+    list:
+        number_on_the_page: "{0} I a pas cap d'etiquetas.|{1} I a una etiqueta.|]1,Inf[ I a %count% etiquetas."
+
+import:
+    page_title: 'Importar'
+    page_description: "Benvenguda sus l'aisina de migracion de wallabag. Causissètz çai-jos lo servici dempuèi lo qual volètz migrar."
+    action:
+        import_contents: 'Importar los contenguts'
+    form:
+        mark_as_read_title: 'Tot marcar coma legit ?'
+        mark_as_read_label: 'Marcar tot los contenguts importats coma legits'
+        file_label: 'Fichièr'
+        save_label: 'Importar lo fichièr'
+    pocket:
+        page_title: 'Importer > Pocket'
+        description: "Aquesta aisina importarà totas vòstras donadas de Pocket. Pocket nos permet pas de recuperar lo contengut dempuèi lor servidor, alara wallabag deu tornar fulhetar cada article per recuperar son contengut."
+        config_missing:
+            description: "L'importacion dempuèi Pocket es pas configurada."
+            admin_message: "Vos cal definir %keyurls% una clau per l'API Pocket %keyurle%."
+            user_message: "L'administrator de vòstre servidor deu definir una clau per l'API Pocket."
+        authorize_message: "Podètz importar vòstras donadas dempuèi vòstre compte Pocket. Vos cal pas que clicar sul boton çai-jos e autorizar wallabag a se connectar a getpocket.com."
+        connect_to_pocket: 'Se connectar a Pocket e importar las donadas'
+    wallabag_v1:
+        page_title: 'Importer > Wallabag v1'
+        description: 'Aquesta aisina importarà totas vòstras donadas de wallabag v1. Sus vòstre pagina de configuracion de wallabag v1, clicatz sus \"Export JSON\" dins la seccion \"Exportar vòstras donadas de wallabag\". Traparatz un fichièr \"wallabag-export-1-xxxx-xx-xx.json\".'
+        how_to: "Causissètz lo fichièr de vòstra exportacion wallabag v1 e clicatz sul boton çai-jos per l'importar."
+    wallabag_v2:
+        page_title: 'Importer > Wallabag v2'
+        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\""
+
+developer:
+    page_title: 'Desvolopador'
+    welcome_message: "Benvenguda sus l'API de wallabag"
+    documentation: 'Documentacion'
+    how_to_first_app: 'Cossí crear vòstra primièra aplicacion'
+    full_documentation: "Veire la documentacion completa de l'API"
+    # list_methods: 'List API methods'
+    clients:
+        title: 'Clients'
+        create_new: 'Crear un novèl client'
+    existing_clients:
+        title: 'Los clients existents'
+        field_id: 'ID Client'
+        field_secret: 'Clé secreta'
+        field_uris: 'URLs de redireccion'
+        field_grant_types: 'Tipe de privilègi acordat'
+        no_client: 'Pas cap de client pel moment'
+    remove:
+        warn_message_1: 'Avètz la possibilitat de supriimr un client. Aquesta accion es IRREVERSIBLA !'
+        warn_message_2: "Se suprimissètz un client, totas las aplicacions que l'emplegan foncionaràn pas mai amb vòstre compte wallabag."
+        action: 'Suprimir aqueste client'
+    client:
+        page_title: 'Desvlopador > Novèl client'
+        page_description: "Anatz crear un novèl client. Mercés de cumplir l'url de redireccion cap a vòstra aplicacion."
+        form:
+            redirect_uris_label: 'URLs de redireccion'
+            save_label: 'Crear un novèl client'
+        action_back: 'Retorn'
+    client_parameter:
+        page_title: 'Desvolopador > Los paramètres de vòstre client'
+        page_description: 'Vaquí los paramètres de vòstre client'
+        field_id: 'ID Client'
+        field_secret: 'Clau secreta'
+        back: 'Retour'
+        read_howto: 'Legir \"cossí crear ma primièra aplicacion\"'
+    howto:
+        page_title: 'Desvolopador > Cossí crear ma primièra aplicacion'
+        description:
+            paragraph_1: "Las comandas seguentas utilizan la <a href=\"https://github.com/jkbrzt/httpie\">libraria HTTPie</a>. Asseguratz-vos que siasqueòu installadas abans de l'utilizar."
+            paragraph_2: "Vos cal un geton per escambiar entre vòstra aplicacion e l'API de wallabar."
+            paragraph_3: 'Per crear un geton, vos cal crear <a href=\"%link%\">crear un novèl client</a>.'
+            paragraph_4: 'Ara creatz un geton (remplaçar client_id, client_secret, username e password amb las bonas valors) :'
+            paragraph_5: "L'API vos tornarà una responsa coma aquò :"
+            paragraph_6: "L'access_token deu èsser emplegat per far una requèsta a l'API. Per exemple :"
+            paragraph_7: "Aquesta requèsta tornarà totes los articles de l'utilizaire."
+            paragraph_8: "Se volètz totas las adreças d'accès de l'API, donatz un còp d’uèlh <a href=\"%link%\">a la documentacion de l'API</a>."
+        back: 'Retorn'
+
+validator:
+    password_must_match: 'Cal que los dos senhals siasquen los meteisses'
+    password_too_short: 'Lo senhal deu aver almens 8 caractèrs'
+    password_wrong_value: 'Vòstre senhal actual es pas bon'
+    item_per_page_too_high: "Aquò li agradarà pas a l'aplicacion"
+    rss_limit_too_hight: "Aquò li agradarà pas a l'aplicacion"
+
+flashes:
+    config:
+        notice:
+            config_saved: 'Los paramètres son ben estats meses a jorn. Certans seràn aplicats aprèp desconnexion.'
+            password_updated: 'Vòstre senhal es ben estat mes a jorn'
+            password_not_updated_demo: "En demostration, podètz pas cambiar lo senhal d'aqueste utilizaire."
+            user_updated: 'Vòstres informacions personnelas son ben estadas mesas a jorn'
+            rss_updated: 'La configuracion dels fluxes RSS es ben estada mesa a jorn'
+            tagging_rules_updated: 'Règlas misa a jorn'
+            tagging_rules_deleted: 'Règla suprimida'
+            user_added: 'Utilizaire "%username%" apondut'
+            rss_token_updated: 'Geton RSS mes a jorn'
+    entry:
+        notice:
+            entry_already_saved: 'Article ja salvargardat lo %date%'
+            entry_saved: 'Article enregistrat'
+            entry_updated: 'Article mes a jorn'
+            entry_reloaded: 'Article recargat'
+            entry_reload_failed: "Fracàs de l'actualizacion de l'article"
+            entry_archived: 'Article marcat coma legit'
+            entry_unarchived: 'Article marcat coma pas legit'
+            entry_starred: 'Article apondut dins los favorits'
+            entry_unstarred: 'Article quitat dels favorits'
+            entry_deleted: 'Article suprimit'
+    tag:
+        notice:
+            tag_added: 'Etiqueta aponduda'
+    import:
+        notice:
+            failed: "L'importacion a fracassat, mercés de tornar ensajar"
+            failed_on_file: "Errorr pendent du tractament de l'import. Mercés de verificar vòstre fichièr."
+            summary: "Rapòrt d'import: %imported% importats, %skipped% ja presents."
+    developer:
+        notice:
+            client_created: 'Novèl client creat'
+            client_deleted: 'Client suprimit'
index 1ca3e6b04e2306d3d308209cad47da269660836f..fb26de89f2e1740ea45a50b8e61ae3fcbf7521a0 100644 (file)
@@ -137,7 +137,7 @@ entry:
     page_titles:
         unread: 'Nieprzeczytane wpisy'
         starred: 'Wpisy oznaczone gwiazdką'
-        archive: 'Zarchiwizowane wpisy'
+        archived: 'Zarchiwizowane wpisy'
         filtered: 'Odfiltrowane wpisy'
     list:
         number_on_the_page: '{0} Nie ma wpisów.|{1} Jest jeden wpis.|]1,Inf[ Są %count% wpisy.'
@@ -338,6 +338,7 @@ developer:
     documentation: 'Dokumentacja'
     how_to_first_app: 'Jak stworzyć moją pierwszą aplikację'
     full_documentation: 'Pokaż pełne API'
+    # list_methods: 'List API methods'
     clients:
          title: 'Klienci'
          create_new: 'Utwórz nowego klienta'
index af4470b2fa20cfc5716b625b0bd65180b1a81f4b..bb817cb3f5231f03b0d3cd5aa981b1dceedd7e7c 100644 (file)
@@ -137,7 +137,7 @@ entry:
     page_titles:
         # unread: 'Unread entries'
         # starred: 'Starred entries'
-        # archive: 'Archived entries'
+        # archived: 'Archived entries'
         # filtered: 'Filtered entries'
     list:
         # number_on_the_page: '{0} There is no entry.|{1} There is one entry.|]1,Inf[ There are %count% entries.'
@@ -338,6 +338,7 @@ developer:
     # documentation: 'Documentation'
     # how_to_first_app: 'How to create my first application'
     # full_documentation: 'View full API documentation'
+    # list_methods: 'List API methods'
     # clients:
     #     title: 'Clients'
     #     create_new: 'Create a new client'
index 5d859950d858a190e9c64ed29c85895be893e638..897cc2f49999d02fbca45c0d334e4f454a605c4a 100644 (file)
@@ -137,7 +137,7 @@ entry:
     page_titles:
         # unread: 'Unread entries'
         # starred: 'Starred entries'
-        # archive: 'Archived entries'
+        # archived: 'Archived entries'
         # filtered: 'Filtered entries'
     list:
         number_on_the_page: '{0} Herhangi bir makale yok.|{1} Burada bir adet makale var.|]1,Inf[ Burada %count% adet makale var.'
@@ -338,6 +338,7 @@ developer:
     # documentation: 'Documentation'
     # how_to_first_app: 'How to create my first application'
     # full_documentation: 'View full API documentation'
+    # list_methods: 'List API methods'
     # clients:
     #     title: 'Clients'
     #     create_new: 'Create a new client'
index dacdb9ca7437d6286bcf9a7188efd7089860733d..f024b633876da683968bc1faa4d8f70fd69ad0dd 100644 (file)
 
         {% block footer %}{% endblock %}
 
-        <div id="warning_message">
-            You're trying wallabag v2, which is in beta version. If you find a bug, please have a look to <a href="https://github.com/wallabag/wallabag/issues">our issues list</a> and <a href="https://github.com/wallabag/wallabag/issues/new">open a new one if necessary</a>.
-        </div>
-
         {% if craue_setting('piwik_enabled') %}
             {{ piwik(craue_setting('piwik_host'), craue_setting('piwik_site_id')) }}
         {% endif %}
index 89e6e0765ce4e76e6326de03440eff056cb6a9a6..0798962ca2d854ec0bbf030894154775c82f5146 100644 (file)
@@ -49,7 +49,7 @@
 
     <h2>{{ 'config.tab_menu.rss'|trans }}</h2>
 
-    {{ form_start(form.rss) }}
+        {{ form_start(form.rss) }}
         {{ form_errors(form.rss) }}
 
         <div class="row">
         {{ form_rest(form.pwd) }}
     </form>
 
-    <h2>{{ 'config.tab_menu.rules'|trans }}}</h2>
+    <h2>{{ 'config.tab_menu.rules'|trans }}</h2>
 
     <ul>
         {% for tagging_rule in app.user.config.taggingRules %}
         {% endfor %}
     </ul>
 
-    {{ form_start(form.new_tagging_rule) }}
+        {{ form_start(form.new_tagging_rule) }}
         {{ form_errors(form.new_tagging_rule) }}
 
         <fieldset class="w500p inline">
         {{ form_rest(form.new_tagging_rule) }}
     </form>
 
+    <div class="row">
+        <div class="input-field col s12">
+            <h3>{{ 'config.form_rules.faq.title'|trans }}</h3>
+
+            <h4>{{ 'config.form_rules.faq.tagging_rules_definition_title'|trans }}</h4>
+            <p class="help">{{ 'config.form_rules.faq.tagging_rules_definition_description'|trans|raw }}</p>
+
+            <h4>{{ 'config.form_rules.faq.how_to_use_them_title'|trans }}</h4>
+            <p class="help">{{ 'config.form_rules.faq.how_to_use_them_description'|trans|raw }}</p>
+
+            <h4>{{ 'config.form_rules.faq.variables_available_title'|trans }}</h4>
+            <p class="help">
+                {{ 'config.form_rules.faq.variables_available_description'|trans }}
+            </p>
+
+            <table class="bordered">
+                <thead>
+                <tr>
+                    <th>{{ 'config.form_rules.faq.variable_description.label'|trans }}</th>
+                    <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
+                    <th>{{ 'config.form_rules.faq.operator_description.label'|trans }}</th>
+                    <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
+                </tr>
+                </thead>
+
+                <tbody>
+                <tr>
+                    <td>title</td>
+                    <td>{{ 'config.form_rules.faq.variable_description.title'|trans }}</td>
+                    <td>&lt;=</td>
+                    <td>{{ 'config.form_rules.faq.operator_description.less_than'|trans }}</td>
+                </tr>
+                <tr>
+                    <td>url</td>
+                    <td>{{ 'config.form_rules.faq.variable_description.url'|trans }}</td>
+                    <td>&lt;</td>
+                    <td>{{ 'config.form_rules.faq.operator_description.strictly_less_than'|trans }}</td>
+                </tr>
+                <tr>
+                    <td>isArchived</td>
+                    <td>{{ 'config.form_rules.faq.variable_description.isArchived'|trans }}</td>
+                    <td>=&gt;</td>
+                    <td>{{ 'config.form_rules.faq.operator_description.greater_than'|trans }}</td>
+                </tr>
+                <tr>
+                    <td>isStarred</td>
+                    <td>{{ 'config.form_rules.faq.variable_description.isStarred'|trans }}</td>
+                    <td>&gt;</td>
+                    <td>{{ 'config.form_rules.faq.operator_description.strictly_greater_than'|trans }}</td>
+                </tr>
+                <tr>
+                    <td>content</td>
+                    <td>{{ 'config.form_rules.faq.variable_description.content'|trans }}</td>
+                    <td>=</td>
+                    <td>{{ 'config.form_rules.faq.operator_description.equal_to'|trans }}</td>
+                </tr>
+                <tr>
+                    <td>language</td>
+                    <td>{{ 'config.form_rules.faq.variable_description.language'|trans }}</td>
+                    <td>!=</td>
+                    <td>{{ 'config.form_rules.faq.operator_description.not_equal_to'|trans }}</td>
+                </tr>
+                <tr>
+                    <td>mimetype</td>
+                    <td>{{ 'config.form_rules.faq.variable_description.mimetype'|trans }}</td>
+                    <td>OR</td>
+                    <td>{{ 'config.form_rules.faq.operator_description.or'|trans }}</td>
+                </tr>
+                <tr>
+                    <td>readingTime</td>
+                    <td>{{ 'config.form_rules.faq.variable_description.readingTime'|trans }}</td>
+                    <td>AND</td>
+                    <td>{{ 'config.form_rules.faq.operator_description.and'|trans }}</td>
+                </tr>
+                <tr>
+                    <td>domainName</td>
+                    <td>{{ 'config.form_rules.faq.variable_description.domainName'|trans }}</td>
+                    <td>matches</td>
+                    <td>{{ 'config.form_rules.faq.operator_description.matches'|trans|raw }}</td>
+                </tr>
+                </tbody>
+            </table>
+        </div>
+    </div>
+
     {% if is_granted('ROLE_SUPER_ADMIN') %}
     <h2>{{ 'config.tab_menu.new_user'|trans }}</h2>
 
index e12779b75370897cb2ad4d8486078e98e5a5999b..7ff64ca67e6c0b1fc5e42bcf874be22cfec9b5e4 100644 (file)
@@ -14,7 +14,8 @@
 
                 <ul>
                     <li><a href="{{ path('developer_howto_firstapp') }}">{{ 'developer.how_to_first_app'|trans }}</a></li>
-                    <li><a href="{{ path('nelmio_api_doc_index') }}">{{ 'developer.full_documentation'|trans }}</a></li>
+                    <li><a href="http://doc.wallabag.org/en/v2-documentation-api/developer/api.html">{{ 'developer.full_documentation'|trans }}</a></li>
+                    <li><a href="{{ path('nelmio_api_doc_index') }}">{{ 'developer.list_methods'|trans }}</a></li>
                 </ul>
 
                 <h4>{{ 'developer.clients.title'|trans }}</h4>
index f718043b05ffedc383c99011b4177ff558019a09..22f456daac03b2ce6b09f81c1d8cf5b38ac33537 100644 (file)
     {% for entry in entries %}
         <div id="entry-{{ entry.id|e }}" class="entry">
             <h2><a href="{{ path('view', { 'id': entry.id }) }}">{{ entry.title|raw }}</a></h2>
-            {% if entry.readingTime > 0 %}
-                <div class="estimatedTime">
+
+            {% set readingTime = entry.readingTime / app.user.config.readingSpeed %}
+            <div class="estimatedTime">
                     <span class="tool reading-time">
-                        {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': entry.readingTime}) }}
-                    </span>
-                </div>
+            {% if readingTime > 0 %}
+                {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime|round}) }}
             {% else %}
-                <div class="estimatedTime">
-                    <span class="tool reading-time">
-                    {{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
-                    </span>
-                </div>
+                {{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
             {% endif %}
+                    </span>
+            </div>
 
             <ul class="tools links">
                 <li><a title="{{ 'entry.list.toogle_as_read'|trans }}" class="tool icon-check icon {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{{ 'entry.list.toogle_as_read'|trans }}</span></a></li>
index 5c0046d1020bce1ff31f11556f5b646f12cc0485..5687e48c936c240f4e26e1e516f33fbdf5d21da0 100644 (file)
@@ -7,7 +7,7 @@
 
     <dl>
         <dt>{{ 'about.who_behind_wallabag.developped_by'|trans }}</dt>
-        <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
+        <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://www.loeuillet.org">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
         <dd>Thomas Citharel — <a href="https://tcit.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
         <dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
 
@@ -25,9 +25,8 @@
 
     <dl>
         <dt>{{ 'about.getting_help.documentation'|trans }}</dt>
-        <dd><a href="https://doc.wallabag.org/en">english</a></dd>
-        <dd><a href="https://doc.wallabag.org/fr">français</a></dd>
-        <dd><a href="https://doc.wallabag.org/de">deutsch</a></dd>
+        <dd><a href="http://doc.wallabag.org/en/v2/">english</a></dd>
+        <dd><a href="http://doc.wallabag.org/fr/v2/">français</a></dd>
 
         <dt>{{ 'about.getting_help.bug_reports'|trans }}</dt>
         <dd>{{ 'about.getting_help.support'|trans|raw }}</dd>
index 8da1afa0f8c7c5f89d97993776d9163fc07ea343..eab092c7fe42322f8b219eda9ef44c02fe592640 100644 (file)
@@ -11,7 +11,7 @@
     </ul>
     <h3>{{ 'howto.top_menu.browser_addons'|trans }}</h3>
     <ul>
-        <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{{ 'howto.browser_addons.firefox'|trans }}</a></li>
+        <li><a href="https://addons.mozilla.org/firefox/addon/wallabag-v2/" target="_blank">{{ 'howto.browser_addons.firefox'|trans }}</a></li>
         <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{{ 'howto.browser_addons.chrome'|trans }}</a></li>
     </ul>
     <h3>{{ 'howto.top_menu.mobile_apps'|trans }}</h3>
index bac92ffa4928dd193d35b44a67148325229a412d..2c15ad954fc28b9a48ce98ba853855bdd9e1f10a 100644 (file)
@@ -39,7 +39,7 @@
         <li><a href="{{ path('all') }}">{{ 'menu.left.all_articles'|trans }}</a></li>
         <li><a href="{{ path('tag') }}">{{ 'menu.left.tags'|trans }}</a></li>
         <li><a href="{{ path('new') }}">{{ 'menu.left.save_link'|trans }}</a></li>
-        <li style="position: relative;"><a href="javascript: void(null);" id="search">{{ 'menu.left.search'|trans }}</a>
+        <!--<li style="position: relative;"><a href="javascript: void(null);" id="search">{{ 'menu.left.search'|trans }}</a>
             <div id="search-form" class="messages info popup-form">
                 <form method="get" action="index.php">
                     <h2>{{ 'menu.left.search'|trans }}</h2>
@@ -49,7 +49,7 @@
                     <input id="submit-search" type="submit" value="{{ 'menu.left.search'|trans }}">
                 </form>
             </div>
-        </li>
+        </li>-->
         <li><a href="{{ path('config') }}">{{ 'menu.left.config'|trans }}</a></li>
         {% if is_granted('ROLE_SUPER_ADMIN') %}
             <li><a href="{{ path('craue_config_settings_modify') }}">{{ 'menu.left.internal_settings'|trans }}</a></li>
index 3343a1d21f083ce67a55c2fa1965b99865043264..5b94f01c7c9b5ab94d96494820ca499041b162ff 100644 (file)
                                 <h5>{{ 'config.form_rules.faq.variables_available_title'|trans }}</h5>
                                 <p class="help">
                                     {{ 'config.form_rules.faq.variables_available_description'|trans }}
-
-                                    <table class="bordered">
-                                        <thead>
-                                            <tr>
-                                                <th>{{ 'config.form_rules.faq.variable_description.label'|trans }}</th>
-                                                <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
-                                                <th>{{ 'config.form_rules.faq.operator_description.label'|trans }}</th>
-                                                <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
-                                            </tr>
-                                        </thead>
-
-                                        <tbody>
-                                            <tr>
-                                                <td>title</td>
-                                                <td>{{ 'config.form_rules.faq.variable_description.title'|trans }}</td>
-                                                <td>&lt;=</td>
-                                                <td>{{ 'config.form_rules.faq.operator_description.less_than'|trans }}</td>
-                                            </tr>
-                                            <tr>
-                                                <td>url</td>
-                                                <td>{{ 'config.form_rules.faq.variable_description.url'|trans }}</td>
-                                                <td>&lt;</td>
-                                                <td>{{ 'config.form_rules.faq.operator_description.strictly_less_than'|trans }}</td>
-                                            </tr>
-                                            <tr>
-                                                <td>isArchived</td>
-                                                <td>{{ 'config.form_rules.faq.variable_description.isArchived'|trans }}</td>
-                                                <td>=&gt;</td>
-                                                <td>{{ 'config.form_rules.faq.operator_description.greater_than'|trans }}</td>
-                                            </tr>
-                                            <tr>
-                                                <td>isStarred</td>
-                                                <td>{{ 'config.form_rules.faq.variable_description.isStarred'|trans }}</td>
-                                                <td>&gt;</td>
-                                                <td>{{ 'config.form_rules.faq.operator_description.strictly_greater_than'|trans }}</td>
-                                            </tr>
-                                            <tr>
-                                                <td>content</td>
-                                                <td>{{ 'config.form_rules.faq.variable_description.content'|trans }}</td>
-                                                <td>=</td>
-                                                <td>{{ 'config.form_rules.faq.operator_description.equal_to'|trans }}</td>
-                                            </tr>
-                                            <tr>
-                                                <td>language</td>
-                                                <td>{{ 'config.form_rules.faq.variable_description.language'|trans }}</td>
-                                                <td>!=</td>
-                                                <td>{{ 'config.form_rules.faq.operator_description.not_equal_to'|trans }}</td>
-                                            </tr>
-                                            <tr>
-                                                <td>mimetype</td>
-                                                <td>{{ 'config.form_rules.faq.variable_description.mimetype'|trans }}</td>
-                                                <td>OR</td>
-                                                <td>{{ 'config.form_rules.faq.operator_description.or'|trans }}</td>
-                                            </tr>
-                                            <tr>
-                                                <td>readingTime</td>
-                                                <td>{{ 'config.form_rules.faq.variable_description.readingTime'|trans }}</td>
-                                                <td>AND</td>
-                                                <td>{{ 'config.form_rules.faq.operator_description.and'|trans }}</td>
-                                            </tr>
-                                            <tr>
-                                                <td>domainName</td>
-                                                <td>{{ 'config.form_rules.faq.variable_description.domainName'|trans }}</td>
-                                                <td>matches</td>
-                                                <td>{{ 'config.form_rules.faq.operator_description.matches'|trans|raw }}</td>
-                                            </tr>
-                                        </tbody>
-                                    </table>
                                 </p>
+
+                                <table class="bordered">
+                                    <thead>
+                                        <tr>
+                                            <th>{{ 'config.form_rules.faq.variable_description.label'|trans }}</th>
+                                            <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
+                                            <th>{{ 'config.form_rules.faq.operator_description.label'|trans }}</th>
+                                            <th>{{ 'config.form_rules.faq.meaning'|trans }}</th>
+                                        </tr>
+                                    </thead>
+
+                                    <tbody>
+                                        <tr>
+                                            <td>title</td>
+                                            <td>{{ 'config.form_rules.faq.variable_description.title'|trans }}</td>
+                                            <td>&lt;=</td>
+                                            <td>{{ 'config.form_rules.faq.operator_description.less_than'|trans }}</td>
+                                        </tr>
+                                        <tr>
+                                            <td>url</td>
+                                            <td>{{ 'config.form_rules.faq.variable_description.url'|trans }}</td>
+                                            <td>&lt;</td>
+                                            <td>{{ 'config.form_rules.faq.operator_description.strictly_less_than'|trans }}</td>
+                                        </tr>
+                                        <tr>
+                                            <td>isArchived</td>
+                                            <td>{{ 'config.form_rules.faq.variable_description.isArchived'|trans }}</td>
+                                            <td>=&gt;</td>
+                                            <td>{{ 'config.form_rules.faq.operator_description.greater_than'|trans }}</td>
+                                        </tr>
+                                        <tr>
+                                            <td>isStarred</td>
+                                            <td>{{ 'config.form_rules.faq.variable_description.isStarred'|trans }}</td>
+                                            <td>&gt;</td>
+                                            <td>{{ 'config.form_rules.faq.operator_description.strictly_greater_than'|trans }}</td>
+                                        </tr>
+                                        <tr>
+                                            <td>content</td>
+                                            <td>{{ 'config.form_rules.faq.variable_description.content'|trans }}</td>
+                                            <td>=</td>
+                                            <td>{{ 'config.form_rules.faq.operator_description.equal_to'|trans }}</td>
+                                        </tr>
+                                        <tr>
+                                            <td>language</td>
+                                            <td>{{ 'config.form_rules.faq.variable_description.language'|trans }}</td>
+                                            <td>!=</td>
+                                            <td>{{ 'config.form_rules.faq.operator_description.not_equal_to'|trans }}</td>
+                                        </tr>
+                                        <tr>
+                                            <td>mimetype</td>
+                                            <td>{{ 'config.form_rules.faq.variable_description.mimetype'|trans }}</td>
+                                            <td>OR</td>
+                                            <td>{{ 'config.form_rules.faq.operator_description.or'|trans }}</td>
+                                        </tr>
+                                        <tr>
+                                            <td>readingTime</td>
+                                            <td>{{ 'config.form_rules.faq.variable_description.readingTime'|trans }}</td>
+                                            <td>AND</td>
+                                            <td>{{ 'config.form_rules.faq.operator_description.and'|trans }}</td>
+                                        </tr>
+                                        <tr>
+                                            <td>domainName</td>
+                                            <td>{{ 'config.form_rules.faq.variable_description.domainName'|trans }}</td>
+                                            <td>matches</td>
+                                            <td>{{ 'config.form_rules.faq.operator_description.matches'|trans|raw }}</td>
+                                        </tr>
+                                    </tbody>
+                                </table>
                             </div>
                         </div>
                     </div>
index e12779b75370897cb2ad4d8486078e98e5a5999b..7ff64ca67e6c0b1fc5e42bcf874be22cfec9b5e4 100644 (file)
@@ -14,7 +14,8 @@
 
                 <ul>
                     <li><a href="{{ path('developer_howto_firstapp') }}">{{ 'developer.how_to_first_app'|trans }}</a></li>
-                    <li><a href="{{ path('nelmio_api_doc_index') }}">{{ 'developer.full_documentation'|trans }}</a></li>
+                    <li><a href="http://doc.wallabag.org/en/v2-documentation-api/developer/api.html">{{ 'developer.full_documentation'|trans }}</a></li>
+                    <li><a href="{{ path('nelmio_api_doc_index') }}">{{ 'developer.list_methods'|trans }}</a></li>
                 </ul>
 
                 <h4>{{ 'developer.clients.title'|trans }}</h4>
index 433b1caeb5218bb1598e25835661fa3d22bff2ea..8782d6396ce28d6fcf4088d189fabf4a32933b03 100644 (file)
@@ -54,7 +54,7 @@
                                 <span class="tool reading-time">
                                     {% set readingTime = entry.readingTime / app.user.config.readingSpeed %}
                                     {% if readingTime > 0 %}
-                                        {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime}) }}
+                                        {{ 'entry.list.reading_time_minutes'|trans({'%readingTime%': readingTime|round}) }}
                                     {% else %}
                                         {{ 'entry.list.reading_time_less_one_minute'|trans|raw }}
                                     {% endif %}
index 032d2d9b9b6278d3ce08a8cd3a253ada036f9b90..6643569946c1c4bdbcde82351b578f82d4e8fe90 100644 (file)
                 {% endfor %}
             </div>
 
-            {% if entry.previewPicture is not null %}
-                <div><img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /></div>
-            {% endif %}
-
             <div class="input-field nav-panel-add-tag" style="display: none">
                 {{ render(controller( "WallabagCoreBundle:Tag:addTagForm", { 'id': entry.id } )) }}
             </div>
 
+            {% if entry.previewPicture is not null %}
+                <div><img class="preview" src="{{ entry.previewPicture }}" alt="{{ entry.title|raw }}" /></div>
+            {% endif %}
+
         </aside>
         <article>
             {{ entry.content | raw }}
index a294b74dba35d5114eea9ce756fd225042de81e4..4b1fdcce4691222c3cd0219f76ac04d0346eeff6 100644 (file)
@@ -21,7 +21,7 @@
 
                     <div id="set1" class="col s12">
                         <dt>{{ 'about.who_behind_wallabag.developped_by'|trans }}</dt>
-                        <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://cdetc.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
+                        <dd><a href="mailto:nicolas@loeuillet.org">Nicolas Lœuillet</a> — <a href="http://www.loeuillet.org">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
                         <dd>Thomas Citharel — <a href="https://tcit.fr">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
                         <dd>Jérémy Benoist — <a href="http://www.j0k3r.net">{{ 'about.who_behind_wallabag.website'|trans }}</a></dd>
                         <dt>{{ 'about.who_behind_wallabag.many_contributors'|trans|raw }}</dt>
@@ -34,9 +34,8 @@
                     <div id="set2" class="col s12">
                         <dl>
                             <dt>{{ 'about.getting_help.documentation'|trans }}</dt>
-                            <dd><a href="https://doc.wallabag.org/en">english</a></dd>
-                            <dd><a href="https://doc.wallabag.org/fr">français</a></dd>
-                            <dd><a href="https://doc.wallabag.org/de">deutsch</a></dd>
+                            <dd><a href="http://doc.wallabag.org/en/v2/">english</a></dd>
+                            <dd><a href="http://doc.wallabag.org/fr/v2/">français</a></dd>
 
                             <dt>{{ 'about.getting_help.bug_reports'|trans }}</dt>
                             <dd>{{ 'about.getting_help.support'|trans|raw }}</dd>
index 15b548d8915a28eb48c89594dd0beae3e3f61081..4354a6b7fb80aa30c513b784d8128a2ee9391450 100644 (file)
@@ -18,7 +18,7 @@
                     <div class="col s12">
                         <h5>{{ 'howto.top_menu.browser_addons'|trans }}</h5>
                         <ul>
-                            <li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{{ 'howto.browser_addons.firefox'|trans }}</a></li>
+                            <li><a href="https://addons.mozilla.org/firefox/addon/wallabag-v2/" target="_blank">{{ 'howto.browser_addons.firefox'|trans }}</a></li>
                             <li><a href="https://chrome.google.com/webstore/detail/wallabag/bepdcjnnkglfjehplaogpoonpffbdcdj" target="_blank">{{ 'howto.browser_addons.chrome'|trans }}</a></li>
                         </ul>
                     </div>
index 48eaca817b4b265b4636ef2661315544211f52a1..75170f91a2651168aaf7da884983a348529f940b 100644 (file)
                             <i class="mdi-content-add"></i>
                         </a>
                     </li>
-                    <li>
+                    <!--<li>
                         <a title="{{ 'menu.top.search'|trans }}" class="waves-effect" href="javascript: void(null);" id="nav-btn-search">
                             <i class="mdi-action-search"></i>
                         </a>
-                    </li>
+                    </li>-->
                     <li id="button_filters">
                         <a title="{{ 'menu.top.filter_entries'|trans }}" href="#" data-activates="filters" class="nav-panel-menu button-collapse-right">
                             <i class="mdi-content-filter-list"></i>