aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--README.md2
-rw-r--r--inc/poche/Poche.class.php36
-rw-r--r--inc/poche/User.class.php33
-rw-r--r--inc/poche/config.inc.php3
-rw-r--r--inc/store/sqlite.class.php68
-rw-r--r--inc/store/store.class.php6
-rw-r--r--locale/fr_FR.UTF8/LC_MESSAGES/fr_FR.UTF8.mobin2777 -> 5699 bytes
-rw-r--r--locale/fr_FR.UTF8/LC_MESSAGES/fr_FR.UTF8.po399
-rw-r--r--tpl/css/style.css6
-rw-r--r--tpl/login.twig2
10 files changed, 424 insertions, 131 deletions
diff --git a/README.md b/README.md
index 65e2f03a..f4015620 100644
--- a/README.md
+++ b/README.md
@@ -52,7 +52,7 @@ location ~ /(db) {
52See the documentation on our website : [inthepoche.com](http://inthepoche.com). 52See the documentation on our website : [inthepoche.com](http://inthepoche.com).
53 53
54## License 54## License
55Copyright © 2010-2013 Nicolas Lœuillet <nicolas@loeuillet.org> 55Copyright © 2010-2013 Nicolas Lœuillet <nicolas.loeuillet@gmail.com>
56This work is free. You can redistribute it and/or modify it under the 56This work is free. You can redistribute it and/or modify it under the
57terms of the Do What The Fuck You Want To Public License, Version 2, 57terms of the Do What The Fuck You Want To Public License, Version 2,
58as published by Sam Hocevar. See the COPYING file for more details. \ No newline at end of file 58as published by Sam Hocevar. See the COPYING file for more details. \ No newline at end of file
diff --git a/inc/poche/Poche.class.php b/inc/poche/Poche.class.php
index 789d6647..2c0c73f9 100644
--- a/inc/poche/Poche.class.php
+++ b/inc/poche/Poche.class.php
@@ -10,6 +10,7 @@
10 10
11class Poche 11class Poche
12{ 12{
13 public $user;
13 public $store; 14 public $store;
14 public $tpl; 15 public $tpl;
15 public $messages; 16 public $messages;
@@ -26,17 +27,20 @@ class Poche
26 { 27 {
27 $this->install(); 28 $this->install();
28 } 29 }
29
30 $this->saveUser();
31 } 30 }
32 31
33 private function init() 32 private function init()
34 { 33 {
34 Tools::initPhp();
35 Session::init();
36 $this->user = isset($_SESSION['poche_user']) ? $_SESSION['poche_user'] : array();
37
35 # l10n 38 # l10n
36 putenv('LC_ALL=' . LANG); 39 $language = ($this->user->getConfigValue('language')) ? $this->user->getConfigValue('language') : LANG;
37 setlocale(LC_ALL, LANG); 40 putenv('LC_ALL=' . $language);
38 bindtextdomain(LANG, LOCALE); 41 setlocale(LC_ALL, $language);
39 textdomain(LANG); 42 bindtextdomain($language, LOCALE);
43 textdomain($language);
40 44
41 # template engine 45 # template engine
42 $loader = new Twig_Loader_Filesystem(TPL); 46 $loader = new Twig_Loader_Filesystem(TPL);
@@ -48,10 +52,9 @@ class Poche
48 $filter = new Twig_SimpleFilter('getDomain', 'Tools::getDomain'); 52 $filter = new Twig_SimpleFilter('getDomain', 'Tools::getDomain');
49 $this->tpl->addFilter($filter); 53 $this->tpl->addFilter($filter);
50 54
51 $this->pagination = new Paginator(PAGINATION, 'p'); 55 # Pagination
52 56 $pager = ($this->user->getConfigValue('pager')) ? $this->user->getConfigValue('pager') : PAGINATION;
53 Tools::initPhp(); 57 $this->pagination = new Paginator($pager, 'p');
54 Session::init();
55 } 58 }
56 59
57 private function install() 60 private function install()
@@ -77,12 +80,6 @@ class Poche
77 exit(); 80 exit();
78 } 81 }
79 82
80 private function saveUser()
81 {
82 $_SESSION['login'] = (isset ($_SESSION['login'])) ? $_SESSION['login'] : $this->store->getLogin();
83 $_SESSION['pass'] = (isset ($_SESSION['pass'])) ? $_SESSION['pass'] : $this->store->getPassword();
84 }
85
86 /** 83 /**
87 * Call action (mark as fav, archive, delete, etc.) 84 * Call action (mark as fav, archive, delete, etc.)
88 */ 85 */
@@ -221,7 +218,11 @@ class Poche
221 public function login($referer) 218 public function login($referer)
222 { 219 {
223 if (!empty($_POST['login']) && !empty($_POST['password'])) { 220 if (!empty($_POST['login']) && !empty($_POST['password'])) {
224 if (Session::login($_SESSION['login'], $_SESSION['pass'], $_POST['login'], Tools::encodeString($_POST['password'] . $_POST['login']))) { 221 $user = $this->store->login($_POST['login'], Tools::encodeString($_POST['password'] . $_POST['login']));
222 if ($user != array()) {
223 # Save login into Session
224 Session::login($user['username'], $user['password'], $_POST['login'], Tools::encodeString($_POST['password'] . $_POST['login']), array('poche_user' => new User($user)));
225
225 Tools::logm('login successful'); 226 Tools::logm('login successful');
226 $this->messages->add('s', 'welcome to your poche'); 227 $this->messages->add('s', 'welcome to your poche');
227 if (!empty($_POST['longlastingsession'])) { 228 if (!empty($_POST['longlastingsession'])) {
@@ -248,6 +249,7 @@ class Poche
248 { 249 {
249 $this->messages->add('s', 'see you soon!'); 250 $this->messages->add('s', 'see you soon!');
250 Tools::logm('logout'); 251 Tools::logm('logout');
252 $this->user = array();
251 Session::logout(); 253 Session::logout();
252 Tools::redirect(); 254 Tools::redirect();
253 } 255 }
diff --git a/inc/poche/User.class.php b/inc/poche/User.class.php
new file mode 100644
index 00000000..ef47730f
--- /dev/null
+++ b/inc/poche/User.class.php
@@ -0,0 +1,33 @@
1<?php
2/**
3 * poche, a read it later open source system
4 *
5 * @category poche
6 * @author Nicolas Lœuillet <support@inthepoche.com>
7 * @copyright 2013
8 * @license http://www.wtfpl.net/ see COPYING file
9 */
10
11class User
12{
13 public $id;
14 public $username;
15 public $name;
16 public $password;
17 public $email;
18 public $config;
19
20 function __construct($user)
21 {
22 $this->id = $user['id'];
23 $this->username = $user['username'];
24 $this->name = $user['name'];
25 $this->password = $user['password'];
26 $this->email = $user['email'];
27 $this->config = $user['config'];
28 }
29
30 function getConfigValue($name) {
31 return (isset($this->config[$name])) ? $this->config[$name] : FALSE;
32 }
33} \ No newline at end of file
diff --git a/inc/poche/config.inc.php b/inc/poche/config.inc.php
index ee0f6616..d0c686f0 100644
--- a/inc/poche/config.inc.php
+++ b/inc/poche/config.inc.php
@@ -21,12 +21,13 @@ define ('ABS_PATH', 'assets/');
21define ('TPL', './tpl'); 21define ('TPL', './tpl');
22define ('LOCALE', './locale'); 22define ('LOCALE', './locale');
23define ('CACHE', './cache'); 23define ('CACHE', './cache');
24define ('LANG', 'fr_FR.UTF8'); 24define ('LANG', 'en_EN.UTF8');
25define ('PAGINATION', '10'); 25define ('PAGINATION', '10');
26define ('THEME', 'light'); 26define ('THEME', 'light');
27$storage_type = 'sqlite'; # sqlite, mysql, (file, not yet) 27$storage_type = 'sqlite'; # sqlite, mysql, (file, not yet)
28 28
29# /!\ Be careful if you change the lines below /!\ 29# /!\ Be careful if you change the lines below /!\
30require_once './inc/poche/User.class.php';
30require_once './inc/poche/Tools.class.php'; 31require_once './inc/poche/Tools.class.php';
31require_once './inc/poche/Url.class.php'; 32require_once './inc/poche/Url.class.php';
32require_once './inc/3rdparty/class.messages.php'; 33require_once './inc/3rdparty/class.messages.php';
diff --git a/inc/store/sqlite.class.php b/inc/store/sqlite.class.php
index 3e391e40..3cc5276d 100644
--- a/inc/store/sqlite.class.php
+++ b/inc/store/sqlite.class.php
@@ -25,59 +25,59 @@ class Sqlite extends Store {
25 } 25 }
26 26
27 public function isInstalled() { 27 public function isInstalled() {
28 $sql = "SELECT name FROM sqlite_sequence WHERE name=?"; 28 $sql = "SELECT username FROM users WHERE id=?";
29 $query = $this->executeQuery($sql, array('config')); 29 $query = $this->executeQuery($sql, array('1'));
30 $hasConfig = $query->fetchAll(); 30 $hasAdmin = $query->fetchAll();
31 31
32 if (count($hasConfig) == 0) 32 if (count($hasAdmin) == 0)
33 return FALSE;
34
35 if (!$this->getLogin() || !$this->getPassword())
36 return FALSE; 33 return FALSE;
37 34
38 return TRUE; 35 return TRUE;
39 } 36 }
40 37
41 public function install($login, $password) { 38 public function install($login, $password) {
42 $this->getHandle()->exec('CREATE TABLE IF NOT EXISTS "config" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "name" VARCHAR UNIQUE, "value" BLOB)'); 39 $sql = 'INSERT INTO users ( username, password ) VALUES (?, ?)';
43 40 $params = array($login, $password);
44 $this->handle->exec('CREATE TABLE IF NOT EXISTS "entries" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "title" VARCHAR, "url" VARCHAR UNIQUE , "is_read" INTEGER DEFAULT 0, "is_fav" INTEGER DEFAULT 0, "content" BLOB)'); 41 $query = $this->executeQuery($sql, $params);
45 42
46 if (!$this->getLogin()) { 43 return TRUE;
47 $sql_login = 'INSERT INTO config ( name, value ) VALUES (?, ?)'; 44 }
48 $params_login = array('login', $login);
49 $query = $this->executeQuery($sql_login, $params_login);
50 }
51 45
52 if (!$this->getPassword()) { 46 private function getConfigUser($id) {
53 $sql_pass = 'INSERT INTO config ( name, value ) VALUES (?, ?)'; 47 $sql = "SELECT * FROM users_config WHERE user_id = ?";
54 $params_pass = array('password', $password); 48 $query = $this->executeQuery($sql, array($id));
55 $query = $this->executeQuery($sql_pass, $params_pass); 49 $result = $query->fetchAll();
50 $user_config = array();
51
52 foreach ($result as $key => $value) {
53 $user_config[$value['name']] = $value['value'];
56 } 54 }
57 55
58 return TRUE; 56 return $user_config;
59 } 57 }
60 58
61 public function getLogin() { 59 public function login($username, $password) {
62 $sql = "SELECT value FROM config WHERE name=?"; 60 $sql = "SELECT * FROM users WHERE username=? AND password=?";
63 $query = $this->executeQuery($sql, array('login')); 61 $query = $this->executeQuery($sql, array($username, $password));
64 $login = $query->fetchAll(); 62 $login = $query->fetchAll();
65 63
66 return isset($login[0]['value']) ? $login[0]['value'] : FALSE; 64 $user = array();
67 } 65 if (isset($login[0])) {
68 66 $user['id'] = $login[0]['id'];
69 public function getPassword() { 67 $user['username'] = $login[0]['username'];
70 $sql = "SELECT value FROM config WHERE name=?"; 68 $user['password'] = $login[0]['password'];
71 $query = $this->executeQuery($sql, array('password')); 69 $user['name'] = $login[0]['name'];
72 $pass = $query->fetchAll(); 70 $user['email'] = $login[0]['email'];
71 $user['config'] = $this->getConfigUser($login[0]['id']);
72 }
73 73
74 return isset($pass[0]['value']) ? $pass[0]['value'] : FALSE; 74 return $user;
75 } 75 }
76 76
77 public function updatePassword($password) 77 public function updatePassword($id, $password)
78 { 78 {
79 $sql_update = "UPDATE config SET value=? WHERE name='password'"; 79 $sql_update = "UPDATE users SET password=? WHERE id=?";
80 $params_update = array($password); 80 $params_update = array($password, $id);
81 $query = $this->executeQuery($sql_update, $params_update); 81 $query = $this->executeQuery($sql_update, $params_update);
82 } 82 }
83 83
diff --git a/inc/store/store.class.php b/inc/store/store.class.php
index dd7d4cfe..5f8939b9 100644
--- a/inc/store/store.class.php
+++ b/inc/store/store.class.php
@@ -13,14 +13,10 @@ class Store {
13 13
14 } 14 }
15 15
16 public function getLogin() { 16 public function login() {
17 17
18 } 18 }
19 19
20 public function getPassword() {
21
22 }
23
24 public function add() { 20 public function add() {
25 21
26 } 22 }
diff --git a/locale/fr_FR.UTF8/LC_MESSAGES/fr_FR.UTF8.mo b/locale/fr_FR.UTF8/LC_MESSAGES/fr_FR.UTF8.mo
index 70d310d9..c0d4a9d6 100644
--- a/locale/fr_FR.UTF8/LC_MESSAGES/fr_FR.UTF8.mo
+++ b/locale/fr_FR.UTF8/LC_MESSAGES/fr_FR.UTF8.mo
Binary files differ
diff --git a/locale/fr_FR.UTF8/LC_MESSAGES/fr_FR.UTF8.po b/locale/fr_FR.UTF8/LC_MESSAGES/fr_FR.UTF8.po
index a33a6a6e..7f8cf784 100644
--- a/locale/fr_FR.UTF8/LC_MESSAGES/fr_FR.UTF8.po
+++ b/locale/fr_FR.UTF8/LC_MESSAGES/fr_FR.UTF8.po
@@ -1,8 +1,8 @@
1msgid "" 1msgid ""
2msgstr "" 2msgstr ""
3"Project-Id-Version: poche\n" 3"Project-Id-Version: poche\n"
4"POT-Creation-Date: 2013-08-02 15:38+0100\n" 4"POT-Creation-Date: 2013-08-06 08:35+0100\n"
5"PO-Revision-Date: 2013-08-02 21:57+0100\n" 5"PO-Revision-Date: 2013-08-06 08:35+0100\n"
6"Last-Translator: Nicolas Lœuillet <nicolas.loeuillet@gmail.com>\n" 6"Last-Translator: Nicolas Lœuillet <nicolas.loeuillet@gmail.com>\n"
7"Language-Team: poche <support@inthepoche.com>\n" 7"Language-Team: poche <support@inthepoche.com>\n"
8"Language: Français\n" 8"Language: Français\n"
@@ -16,96 +16,361 @@ msgstr ""
16"X-Poedit-SourceCharset: UTF-8\n" 16"X-Poedit-SourceCharset: UTF-8\n"
17"X-Poedit-SearchPath-0: /var/www/poche-i18n\n" 17"X-Poedit-SearchPath-0: /var/www/poche-i18n\n"
18 18
19#: /var/www/poche-i18n/import.php:17 19#: /var/www/poche-i18n/index.php:43
20msgid "poche, a read it later open source system"
21msgstr "poche, a read it later open source system"
22
23#: /var/www/poche-i18n/inc/poche/Poche.class.php:101
24msgid "the link has been added successfully"
25msgstr "le lien a été ajouté avec succès"
26
27#: /var/www/poche-i18n/inc/poche/Poche.class.php:104
28msgid "error during insertion : the link wasn't added"
29msgstr "erreur durant l'insertion : le lien n'a pas été ajouté"
30
31#: /var/www/poche-i18n/inc/poche/Poche.class.php:109
32msgid "error during fetching content : the link wasn't added"
33msgstr "erreur durant la récupération du contenu : le lien n'a pas été ajouté"
34
35#: /var/www/poche-i18n/inc/poche/Poche.class.php:119
36msgid "the link has been deleted successfully"
37msgstr "le lien a été supprimé avec succès"
38
39#: /var/www/poche-i18n/inc/poche/Poche.class.php:123
40msgid "the link wasn't deleted"
41msgstr "le lien n'a pas été supprimé"
42
43#: /var/www/poche-i18n/inc/poche/Tools.class.php:18
44msgid "Oops, it seems you don't have PHP 5."
45msgstr "Oups, il semblerait que PHP 5 ne soit pas installé. "
46
47#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:32
48#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:70
49#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:50
50msgid "config"
51msgstr "config"
52
53#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:46
54#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:31
55#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:26
56#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:34
57msgid "home"
58msgstr "accueil"
59
60#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:54
61#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:34
62msgid "favorites"
63msgstr "favoris"
64
65#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:62
66#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:42
67msgid "archive"
68msgstr "archives"
69
70#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:74
71#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:76
72#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:54
73#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:56
74msgid "logout"
75msgstr "déconnexion"
76
77#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:87
78msgid "Bookmarklet"
79msgstr "Bookmarklet"
80
81#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:91
82msgid ""
83"Thanks to the bookmarklet, you will be able to easily add a link to your "
84"poche."
85msgstr ""
86"Grâce au bookmarklet, vous pouvez ajouter facilement un lien dans votre "
87"poche."
88
89#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:93
90msgid "Have a look to this documentation:"
91msgstr "Jetez un œil à la documentation :"
92
93#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:97
94msgid "Drag & drop this link to your bookmarks bar and have fun with poche."
95msgstr ""
96"Glissez / déposez ce lien dans votre barre de favoris de votre navigateur et "
97"prenez du bon temps avec poche."
98
99#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:103
100msgid "poche it!"
101msgstr "poche-le !"
102
103#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:108
104msgid "Updating poche"
105msgstr "Mettre à jour poche"
106
107#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:113
108msgid "your version"
109msgstr "votre version"
110
111#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:119
112msgid "latest stable version"
113msgstr "dernière version stable"
114
115#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:125
116msgid "a more recent stable version is available."
117msgstr "une version stable plus récente est disponible."
118
119#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:128
120#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:142
121msgid "you are up to date."
122msgstr "vous êtes à jour."
123
124#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:133
125msgid "latest dev version"
126msgstr "dernière version de développement"
127
128#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:139
129msgid "a more recent development version is available."
130msgstr "une version de développement plus récente est disponible."
131
132#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:150
133msgid "Change your password"
134msgstr "Modifier votre mot de passe"
135
136#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:157
137msgid "New password:"
138msgstr "Nouveau mot de passe :"
139
140#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:161
141#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:171
142#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:60
143#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:68
144msgid "Password"
145msgstr "Mot de passe"
146
147#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:167
148msgid "Repeat your new password:"
149msgstr "Répétez le nouveau mot de passe :"
150
151#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:177
152msgid "Update"
153msgstr "Mettre à jour"
154
155#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:193
156msgid "Import"
157msgstr "Import"
158
159#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:197
20msgid "Please execute the import script locally, it can take a very long time." 160msgid "Please execute the import script locally, it can take a very long time."
21msgstr "Merci d'exécuter l'import en local, cela peut prendre du temps. " 161msgstr "Merci d'exécuter l'import en local, cela peut prendre du temps. "
22 162
23#: /var/www/poche-i18n/import.php:17 163#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:201
24msgid "Please choose between Pocket & Readabilty :" 164msgid "More infos in the official doc:"
25msgstr "Merci de choisir entre Pocket & Readability :" 165msgstr "Plus d'infos sur la documentation officielle :"
26 166
27#: /var/www/poche-i18n/import.php:17 167#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:206
28msgid "Bye bye Pocket, let's go !" 168msgid "import from Pocket"
29msgstr "Bye bye Pocket, en route !" 169msgstr "l'import depuis Pocket est terminé."
30 170
31#: /var/www/poche-i18n/import.php:17 171#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:210
32msgid "Bye bye Readability, let's go !" 172msgid "import from Readability"
33msgstr "Bye bye Readability, en route !" 173msgstr "l'import depuis Readability est terminé."
34 174
35#: /var/www/poche-i18n/import.php:48 175#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:214
36msgid "Import from Pocket completed." 176msgid "import from Instapaper"
37msgstr "L'import depuis Poche est terminé." 177msgstr "Import depuis Instapaper"
38 178
39#: /var/www/poche-i18n/import.php:48 /var/www/poche-i18n/import.php:66 179#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:220
40msgid "Welcome to poche !" 180msgid "Export your poche datas"
41msgstr "Bienvenue dans poche !" 181msgstr "Exporter vos données de poche"
42 182
43#: /var/www/poche-i18n/import.php:66 183#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:224
44msgid "Import from Readability completed." 184msgid "Click here"
45msgstr "L'import depuis Readability est terminé." 185msgstr "Cliquez-ici"
46 186
47#: /var/www/poche-i18n/import.php:70 187#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:226
48msgid "Error with the import." 188msgid "to export your poche datas."
49msgstr "Erreur durant l'import." 189msgstr "pour exporter vos données de poche."
50 190
51#: /var/www/poche-i18n/import.php:70 191#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:46
52msgid "Back to poche" 192#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:139
53msgstr "Retour à poche" 193#: /var/www/poche-i18n/cache/30/97/b548692380c89d047a16cec7af79.php:22
194msgid "back to home"
195msgstr "retour à l'accueil"
54 196
55#: /var/www/poche-i18n/index.php:18 197#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:50
56msgid "Wrong token." 198#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:147
57msgstr "Mauvais jeton." 199#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:119
200msgid "toggle mark as read"
201msgstr "marquer comme lu"
58 202
59#: /var/www/poche-i18n/index.php:43 203#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:60
60msgid "Login failed !" 204#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:157
61msgstr "Connexion échouée." 205#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:129
206msgid "toggle favorite"
207msgstr "favori"
208
209#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:70
210#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:167
211#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:139
212msgid "delete"
213msgstr "supprimer"
214
215#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:82
216#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:179
217msgid "tweet"
218msgstr "tweeter"
219
220#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:93
221#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:190
222msgid "email"
223msgstr "envoyer par email"
224
225#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:109
226#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:125
227#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:153
228msgid "original"
229msgstr "original"
230
231#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:143
232msgid "back to top"
233msgstr "retour en haut de page"
234
235#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:198
236msgid "this article appears wrong?"
237msgstr "cet article s'affiche mal ?"
238
239#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:200
240msgid "create an issue"
241msgstr "créer un ticket"
242
243#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:202
244msgid "or"
245msgstr "ou"
246
247#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:206
248msgid "contact us by mail"
249msgstr "contactez-nous par email"
250
251#: /var/www/poche-i18n/cache/88/8a/ee3b7080c13204391c14947a0c2c.php:22
252msgid "powered by"
253msgstr "propulsé par"
62 254
63#: /var/www/poche-i18n/index.php:59 255#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:31
64msgid "your password has been updated" 256msgid "installation"
65msgstr "Votre mot de passe a été mis à jour. " 257msgstr "installation"
66 258
67#: /var/www/poche-i18n/index.php:62 259#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:42
68msgid "in demo mode, you can't update password" 260msgid "install your poche"
69msgstr "En mode démo, le mot de passe ne peut être modifié." 261msgstr "installez votre poche"
70 262
71#: /var/www/poche-i18n/index.php:66 263#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:47
72msgid "" 264msgid ""
73"your password can't be empty and you have to repeat it in the second field" 265"poche is still not installed. Please fill the below form to install it. "
266"Don't hesitate to <a href='http://inthepoche.com/?pages/Documentation'>read "
267"the documentation on poche website</a>."
74msgstr "" 268msgstr ""
75"Votre mot de passe ne peut être vide et vous devez le répéter dans le second " 269"poche n'est pas encore installé. Merci de remplir les champs ci-dessous pour "
76"champ." 270"l'installer. N'hésitez pas à <a href='http://inthepoche.com/?pages/"
271"Documentation'>lire la documentation sur le site de poche</a>."
77 272
78#: /var/www/poche-i18n/index.php:84 273#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:53
79msgid "poche, a read it later open source system" 274#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:55
80msgstr "poche, a read it later open source system" 275msgid "Login"
276msgstr "Nom d'utilisateur"
81 277
82#: /var/www/poche-i18n/inc/MyTool.class.php:18 278#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:67
83msgid "Oops, it seems you don't have PHP 5." 279msgid "Repeat your password"
84msgstr "Oups, il semblerait que PHP 5 ne soit pas installé. " 280msgstr "pétez votre mot de passe"
85 281
86#: /var/www/poche-i18n/inc/functions.php:354 282#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:74
87msgid "the link has been added successfully" 283msgid "Install"
88msgstr "le lien a été ajouté avec succès" 284msgstr "Installer"
89 285
90#: /var/www/poche-i18n/inc/functions.php:357 286#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:31
91msgid "error during insertion : the link wasn't added" 287#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:42
92msgstr "erreur durant l'insertion : le lien n'a pas été ajouté" 288msgid "login to your poche"
289msgstr "Se connecter à votre poche"
93 290
94#: /var/www/poche-i18n/inc/functions.php:361 291#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:48
95msgid "error during url preparation : the link wasn't added" 292msgid "you are in demo mode, some features may be disabled."
96msgstr "erreur durant l'insertion : le lien n'a pas été ajouté" 293msgstr ""
294"vous êtes en mode démo, certaines fonctionnalités sont peut-être désactivées."
97 295
98#: /var/www/poche-i18n/inc/functions.php:366 296#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:80
99msgid "error during url preparation : the link is not valid" 297msgid "Stay signed in"
100msgstr "erreur durant la préparation de l'URL : le lien n'est pas valide" 298msgstr "rester connecté"
101 299
102#: /var/www/poche-i18n/inc/functions.php:375 300#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:86
103msgid "the link has been deleted successfully" 301msgid "(Do not check on public computers)"
104msgstr "le lien a été supprimé avec succès" 302msgstr " ne pas cocher sur un ordinateur public)"
105 303
106#: /var/www/poche-i18n/inc/functions.php:379 304#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:93
107msgid "the link wasn't deleted" 305msgid "Sign in"
108msgstr "le lien n'a pas été supprimé" 306msgstr ""
307
308#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:55
309#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:57
310msgid "by date asc"
311msgstr "par date asc"
312
313#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:59
314msgid "by date"
315msgstr "par date"
316
317#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:65
318#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:67
319msgid "by date desc"
320msgstr "par date desc"
321
322#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:75
323#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:77
324msgid "by title asc"
325msgstr "par titre asc"
326
327#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:79
328msgid "by title"
329msgstr "par titre"
330
331#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:85
332#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:87
333msgid "by title desc"
334msgstr "par titre desc"
335
336#~ msgid "Please choose between Pocket & Readabilty :"
337#~ msgstr "Merci de choisir entre Pocket & Readability :"
338
339#~ msgid "Bye bye Pocket, let's go !"
340#~ msgstr "Bye bye Pocket, en route !"
341
342#~ msgid "Bye bye Readability, let's go !"
343#~ msgstr "Bye bye Readability, en route !"
344
345#~ msgid "Welcome to poche !"
346#~ msgstr "Bienvenue dans poche !"
347
348#~ msgid "Error with the import."
349#~ msgstr "Erreur durant l'import."
350
351#~ msgid "Wrong token."
352#~ msgstr "Mauvais jeton."
353
354#~ msgid "Login failed !"
355#~ msgstr "Connexion échouée."
356
357#~ msgid "your password has been updated"
358#~ msgstr "Votre mot de passe a été mis à jour. "
359
360#~ msgid "in demo mode, you can't update password"
361#~ msgstr "En mode démo, le mot de passe ne peut être modifié."
362
363#~ msgid ""
364#~ "your password can't be empty and you have to repeat it in the second field"
365#~ msgstr ""
366#~ "Votre mot de passe ne peut être vide et vous devez le répéter dans le "
367#~ "second champ."
368
369#~ msgid "error during url preparation : the link wasn't added"
370#~ msgstr "erreur durant l'insertion : le lien n'a pas été ajouté"
371
372#~ msgid "error during url preparation : the link is not valid"
373#~ msgstr "erreur durant la préparation de l'URL : le lien n'est pas valide"
109 374
110#~ msgid "TEST" 375#~ msgid "TEST"
111#~ msgstr "NICOLAS" 376#~ msgstr "NICOLAS"
diff --git a/tpl/css/style.css b/tpl/css/style.css
index 8808b7ed..d23c1896 100644
--- a/tpl/css/style.css
+++ b/tpl/css/style.css
@@ -80,11 +80,7 @@ header h1 {
80} 80}
81 81
82#main #content .entrie { 82#main #content .entrie {
83 border-bottom: 1px solid #222222; 83 border-bottom: 1px dashed #222222;
84}
85
86#main .entrie h2 a {
87 text-decoration: none;
88} 84}
89 85
90#main .entrie ul.tools { 86#main .entrie ul.tools {
diff --git a/tpl/login.twig b/tpl/login.twig
index b24674e2..0ae130bc 100644
--- a/tpl/login.twig
+++ b/tpl/login.twig
@@ -23,7 +23,7 @@
23 </div> 23 </div>
24 </div> 24 </div>
25 <div class="row mts txtcenter"> 25 <div class="row mts txtcenter">
26 <button class="bouton" type="submit" tabindex="4">{% trans "Sign in" %}</button> 26 <button class="bouton" type="submit" tabindex="4">{% trans "Login" %}</button>
27 </div> 27 </div>
28 </fieldset> 28 </fieldset>
29 <input type="hidden" name="returnurl" value="{{ referer }}"> 29 <input type="hidden" name="returnurl" value="{{ referer }}">