diff options
author | Nicolas Lœuillet <nicolas.loeuillet@gmail.com> | 2013-08-06 14:18:03 +0200 |
---|---|---|
committer | Nicolas Lœuillet <nicolas.loeuillet@gmail.com> | 2013-08-06 14:18:03 +0200 |
commit | 7ce7ec4c942e0a3567858ad0ec8e654000b49a3f (patch) | |
tree | 8de9df7ff2ddfe980f8247e2305ad4b1b27194fa | |
parent | 17a9cb96088d4634deca29c8be9f90d94c0f6473 (diff) | |
download | wallabag-7ce7ec4c942e0a3567858ad0ec8e654000b49a3f.tar.gz wallabag-7ce7ec4c942e0a3567858ad0ec8e654000b49a3f.tar.zst wallabag-7ce7ec4c942e0a3567858ad0ec8e654000b49a3f.zip |
prepare to multi users
-rw-r--r-- | README.md | 2 | ||||
-rw-r--r-- | inc/poche/Poche.class.php | 36 | ||||
-rw-r--r-- | inc/poche/User.class.php | 33 | ||||
-rw-r--r-- | inc/poche/config.inc.php | 3 | ||||
-rw-r--r-- | inc/store/sqlite.class.php | 68 | ||||
-rw-r--r-- | inc/store/store.class.php | 6 | ||||
-rw-r--r-- | locale/fr_FR.UTF8/LC_MESSAGES/fr_FR.UTF8.mo | bin | 2777 -> 5699 bytes | |||
-rw-r--r-- | locale/fr_FR.UTF8/LC_MESSAGES/fr_FR.UTF8.po | 399 | ||||
-rw-r--r-- | tpl/css/style.css | 6 | ||||
-rw-r--r-- | tpl/login.twig | 2 |
10 files changed, 424 insertions, 131 deletions
@@ -52,7 +52,7 @@ location ~ /(db) { | |||
52 | See the documentation on our website : [inthepoche.com](http://inthepoche.com). | 52 | See the documentation on our website : [inthepoche.com](http://inthepoche.com). |
53 | 53 | ||
54 | ## License | 54 | ## License |
55 | Copyright © 2010-2013 Nicolas Lœuillet <nicolas@loeuillet.org> | 55 | Copyright © 2010-2013 Nicolas Lœuillet <nicolas.loeuillet@gmail.com> |
56 | This work is free. You can redistribute it and/or modify it under the | 56 | This work is free. You can redistribute it and/or modify it under the |
57 | terms of the Do What The Fuck You Want To Public License, Version 2, | 57 | terms of the Do What The Fuck You Want To Public License, Version 2, |
58 | as published by Sam Hocevar. See the COPYING file for more details. \ No newline at end of file | 58 | as 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 | ||
11 | class Poche | 11 | class 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 | |||
11 | class 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/'); | |||
21 | define ('TPL', './tpl'); | 21 | define ('TPL', './tpl'); |
22 | define ('LOCALE', './locale'); | 22 | define ('LOCALE', './locale'); |
23 | define ('CACHE', './cache'); | 23 | define ('CACHE', './cache'); |
24 | define ('LANG', 'fr_FR.UTF8'); | 24 | define ('LANG', 'en_EN.UTF8'); |
25 | define ('PAGINATION', '10'); | 25 | define ('PAGINATION', '10'); |
26 | define ('THEME', 'light'); | 26 | define ('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 /!\ |
30 | require_once './inc/poche/User.class.php'; | ||
30 | require_once './inc/poche/Tools.class.php'; | 31 | require_once './inc/poche/Tools.class.php'; |
31 | require_once './inc/poche/Url.class.php'; | 32 | require_once './inc/poche/Url.class.php'; |
32 | require_once './inc/3rdparty/class.messages.php'; | 33 | require_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 @@ | |||
1 | msgid "" | 1 | msgid "" |
2 | msgstr "" | 2 | msgstr "" |
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 |
20 | msgid "poche, a read it later open source system" | ||
21 | msgstr "poche, a read it later open source system" | ||
22 | |||
23 | #: /var/www/poche-i18n/inc/poche/Poche.class.php:101 | ||
24 | msgid "the link has been added successfully" | ||
25 | msgstr "le lien a été ajouté avec succès" | ||
26 | |||
27 | #: /var/www/poche-i18n/inc/poche/Poche.class.php:104 | ||
28 | msgid "error during insertion : the link wasn't added" | ||
29 | msgstr "erreur durant l'insertion : le lien n'a pas été ajouté" | ||
30 | |||
31 | #: /var/www/poche-i18n/inc/poche/Poche.class.php:109 | ||
32 | msgid "error during fetching content : the link wasn't added" | ||
33 | msgstr "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 | ||
36 | msgid "the link has been deleted successfully" | ||
37 | msgstr "le lien a été supprimé avec succès" | ||
38 | |||
39 | #: /var/www/poche-i18n/inc/poche/Poche.class.php:123 | ||
40 | msgid "the link wasn't deleted" | ||
41 | msgstr "le lien n'a pas été supprimé" | ||
42 | |||
43 | #: /var/www/poche-i18n/inc/poche/Tools.class.php:18 | ||
44 | msgid "Oops, it seems you don't have PHP 5." | ||
45 | msgstr "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 | ||
50 | msgid "config" | ||
51 | msgstr "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 | ||
57 | msgid "home" | ||
58 | msgstr "accueil" | ||
59 | |||
60 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:54 | ||
61 | #: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:34 | ||
62 | msgid "favorites" | ||
63 | msgstr "favoris" | ||
64 | |||
65 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:62 | ||
66 | #: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:42 | ||
67 | msgid "archive" | ||
68 | msgstr "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 | ||
74 | msgid "logout" | ||
75 | msgstr "déconnexion" | ||
76 | |||
77 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:87 | ||
78 | msgid "Bookmarklet" | ||
79 | msgstr "Bookmarklet" | ||
80 | |||
81 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:91 | ||
82 | msgid "" | ||
83 | "Thanks to the bookmarklet, you will be able to easily add a link to your " | ||
84 | "poche." | ||
85 | msgstr "" | ||
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 | ||
90 | msgid "Have a look to this documentation:" | ||
91 | msgstr "Jetez un œil à la documentation :" | ||
92 | |||
93 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:97 | ||
94 | msgid "Drag & drop this link to your bookmarks bar and have fun with poche." | ||
95 | msgstr "" | ||
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 | ||
100 | msgid "poche it!" | ||
101 | msgstr "poche-le !" | ||
102 | |||
103 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:108 | ||
104 | msgid "Updating poche" | ||
105 | msgstr "Mettre à jour poche" | ||
106 | |||
107 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:113 | ||
108 | msgid "your version" | ||
109 | msgstr "votre version" | ||
110 | |||
111 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:119 | ||
112 | msgid "latest stable version" | ||
113 | msgstr "dernière version stable" | ||
114 | |||
115 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:125 | ||
116 | msgid "a more recent stable version is available." | ||
117 | msgstr "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 | ||
121 | msgid "you are up to date." | ||
122 | msgstr "vous êtes à jour." | ||
123 | |||
124 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:133 | ||
125 | msgid "latest dev version" | ||
126 | msgstr "dernière version de développement" | ||
127 | |||
128 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:139 | ||
129 | msgid "a more recent development version is available." | ||
130 | msgstr "une version de développement plus récente est disponible." | ||
131 | |||
132 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:150 | ||
133 | msgid "Change your password" | ||
134 | msgstr "Modifier votre mot de passe" | ||
135 | |||
136 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:157 | ||
137 | msgid "New password:" | ||
138 | msgstr "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 | ||
144 | msgid "Password" | ||
145 | msgstr "Mot de passe" | ||
146 | |||
147 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:167 | ||
148 | msgid "Repeat your new password:" | ||
149 | msgstr "Répétez le nouveau mot de passe :" | ||
150 | |||
151 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:177 | ||
152 | msgid "Update" | ||
153 | msgstr "Mettre à jour" | ||
154 | |||
155 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:193 | ||
156 | msgid "Import" | ||
157 | msgstr "Import" | ||
158 | |||
159 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:197 | ||
20 | msgid "Please execute the import script locally, it can take a very long time." | 160 | msgid "Please execute the import script locally, it can take a very long time." |
21 | msgstr "Merci d'exécuter l'import en local, cela peut prendre du temps. " | 161 | msgstr "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 |
24 | msgid "Please choose between Pocket & Readabilty :" | 164 | msgid "More infos in the official doc:" |
25 | msgstr "Merci de choisir entre Pocket & Readability :" | 165 | msgstr "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 |
28 | msgid "Bye bye Pocket, let's go !" | 168 | msgid "import from Pocket" |
29 | msgstr "Bye bye Pocket, en route !" | 169 | msgstr "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 |
32 | msgid "Bye bye Readability, let's go !" | 172 | msgid "import from Readability" |
33 | msgstr "Bye bye Readability, en route !" | 173 | msgstr "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 |
36 | msgid "Import from Pocket completed." | 176 | msgid "import from Instapaper" |
37 | msgstr "L'import depuis Poche est terminé." | 177 | msgstr "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 |
40 | msgid "Welcome to poche !" | 180 | msgid "Export your poche datas" |
41 | msgstr "Bienvenue dans poche !" | 181 | msgstr "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 |
44 | msgid "Import from Readability completed." | 184 | msgid "Click here" |
45 | msgstr "L'import depuis Readability est terminé." | 185 | msgstr "Cliquez-ici" |
46 | 186 | ||
47 | #: /var/www/poche-i18n/import.php:70 | 187 | #: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:226 |
48 | msgid "Error with the import." | 188 | msgid "to export your poche datas." |
49 | msgstr "Erreur durant l'import." | 189 | msgstr "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 |
52 | msgid "Back to poche" | 192 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:139 |
53 | msgstr "Retour à poche" | 193 | #: /var/www/poche-i18n/cache/30/97/b548692380c89d047a16cec7af79.php:22 |
194 | msgid "back to home" | ||
195 | msgstr "retour à l'accueil" | ||
54 | 196 | ||
55 | #: /var/www/poche-i18n/index.php:18 | 197 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:50 |
56 | msgid "Wrong token." | 198 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:147 |
57 | msgstr "Mauvais jeton." | 199 | #: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:119 |
200 | msgid "toggle mark as read" | ||
201 | msgstr "marquer comme lu" | ||
58 | 202 | ||
59 | #: /var/www/poche-i18n/index.php:43 | 203 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:60 |
60 | msgid "Login failed !" | 204 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:157 |
61 | msgstr "Connexion échouée." | 205 | #: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:129 |
206 | msgid "toggle favorite" | ||
207 | msgstr "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 | ||
212 | msgid "delete" | ||
213 | msgstr "supprimer" | ||
214 | |||
215 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:82 | ||
216 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:179 | ||
217 | msgid "tweet" | ||
218 | msgstr "tweeter" | ||
219 | |||
220 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:93 | ||
221 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:190 | ||
222 | msgid "email" | ||
223 | msgstr "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 | ||
228 | msgid "original" | ||
229 | msgstr "original" | ||
230 | |||
231 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:143 | ||
232 | msgid "back to top" | ||
233 | msgstr "retour en haut de page" | ||
234 | |||
235 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:198 | ||
236 | msgid "this article appears wrong?" | ||
237 | msgstr "cet article s'affiche mal ?" | ||
238 | |||
239 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:200 | ||
240 | msgid "create an issue" | ||
241 | msgstr "créer un ticket" | ||
242 | |||
243 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:202 | ||
244 | msgid "or" | ||
245 | msgstr "ou" | ||
246 | |||
247 | #: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:206 | ||
248 | msgid "contact us by mail" | ||
249 | msgstr "contactez-nous par email" | ||
250 | |||
251 | #: /var/www/poche-i18n/cache/88/8a/ee3b7080c13204391c14947a0c2c.php:22 | ||
252 | msgid "powered by" | ||
253 | msgstr "propulsé par" | ||
62 | 254 | ||
63 | #: /var/www/poche-i18n/index.php:59 | 255 | #: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:31 |
64 | msgid "your password has been updated" | 256 | msgid "installation" |
65 | msgstr "Votre mot de passe a été mis à jour. " | 257 | msgstr "installation" |
66 | 258 | ||
67 | #: /var/www/poche-i18n/index.php:62 | 259 | #: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:42 |
68 | msgid "in demo mode, you can't update password" | 260 | msgid "install your poche" |
69 | msgstr "En mode démo, le mot de passe ne peut être modifié." | 261 | msgstr "installez votre poche" |
70 | 262 | ||
71 | #: /var/www/poche-i18n/index.php:66 | 263 | #: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:47 |
72 | msgid "" | 264 | msgid "" |
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>." | ||
74 | msgstr "" | 268 | msgstr "" |
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 |
79 | msgid "poche, a read it later open source system" | 274 | #: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:55 |
80 | msgstr "poche, a read it later open source system" | 275 | msgid "Login" |
276 | msgstr "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 |
83 | msgid "Oops, it seems you don't have PHP 5." | 279 | msgid "Repeat your password" |
84 | msgstr "Oups, il semblerait que PHP 5 ne soit pas installé. " | 280 | msgstr "Ré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 |
87 | msgid "the link has been added successfully" | 283 | msgid "Install" |
88 | msgstr "le lien a été ajouté avec succès" | 284 | msgstr "Installer" |
89 | 285 | ||
90 | #: /var/www/poche-i18n/inc/functions.php:357 | 286 | #: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:31 |
91 | msgid "error during insertion : the link wasn't added" | 287 | #: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:42 |
92 | msgstr "erreur durant l'insertion : le lien n'a pas été ajouté" | 288 | msgid "login to your poche" |
289 | msgstr "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 |
95 | msgid "error during url preparation : the link wasn't added" | 292 | msgid "you are in demo mode, some features may be disabled." |
96 | msgstr "erreur durant l'insertion : le lien n'a pas été ajouté" | 293 | msgstr "" |
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 |
99 | msgid "error during url preparation : the link is not valid" | 297 | msgid "Stay signed in" |
100 | msgstr "erreur durant la préparation de l'URL : le lien n'est pas valide" | 298 | msgstr "rester connecté" |
101 | 299 | ||
102 | #: /var/www/poche-i18n/inc/functions.php:375 | 300 | #: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:86 |
103 | msgid "the link has been deleted successfully" | 301 | msgid "(Do not check on public computers)" |
104 | msgstr "le lien a été supprimé avec succès" | 302 | msgstr "(à 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 |
107 | msgid "the link wasn't deleted" | 305 | msgid "Sign in" |
108 | msgstr "le lien n'a pas été supprimé" | 306 | msgstr "" |
307 | |||
308 | #: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:55 | ||
309 | #: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:57 | ||
310 | msgid "by date asc" | ||
311 | msgstr "par date asc" | ||
312 | |||
313 | #: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:59 | ||
314 | msgid "by date" | ||
315 | msgstr "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 | ||
319 | msgid "by date desc" | ||
320 | msgstr "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 | ||
324 | msgid "by title asc" | ||
325 | msgstr "par titre asc" | ||
326 | |||
327 | #: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:79 | ||
328 | msgid "by title" | ||
329 | msgstr "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 | ||
333 | msgid "by title desc" | ||
334 | msgstr "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 }}"> |