Compare commits
87 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d47d2533ac | |||
| 27a74816da | |||
| 47baa1077e | |||
| f0f7b94362 | |||
| 747c6698b6 | |||
| 8f91e10faa | |||
| 6cd8af85da | |||
| 34d67c835e | |||
| 7f17a38d35 | |||
| 07ae20eeed | |||
| 4cc3c2ac17 | |||
| 66e074b43d | |||
| eb44ca4213 | |||
| dfbbc14b33 | |||
| 34bf601a56 | |||
| 969a91a1e3 | |||
| fbe8e27568 | |||
| 4ee705a79c | |||
| 8623a53200 | |||
| 4e5b04113d | |||
| 3cc22aab82 | |||
| be2b9055b9 | |||
| 92cd6e9af8 | |||
| 58ace4941e | |||
| 37527034ab | |||
| 88e1108f11 | |||
| 3408ed48ba | |||
| b8c67f8068 | |||
| 6a6c1c1172 | |||
| 18bd1cc3b1 | |||
| 74c0733c1e | |||
| f55f734fda | |||
| d477db2cfb | |||
| 6fe07ab815 | |||
| 1a1142893f | |||
| 7bda34c66b | |||
| 2af5015668 | |||
| 5801355cbc | |||
| d6b28d43c8 | |||
| 6d7e6f5e36 | |||
| 469590fde5 | |||
| 00dbaf90bc | |||
| 705250b93d | |||
| 0d64be15de | |||
| f6597c7cb9 | |||
| a8778dc23e | |||
| d62dfd88d2 | |||
| d081f272b0 | |||
| 1b2abab6dd | |||
| 10ab20d8e2 | |||
| 48207b6814 | |||
| 1a08e7b6f6 | |||
| b9523a0ba0 | |||
| 084ec2a63d | |||
| b9e0514783 | |||
| 3e05742568 | |||
| 660b998eb7 | |||
| b084cde854 | |||
| 8ca368e7e3 | |||
| a0fd7c5b44 | |||
| 7eb64927cc | |||
| 9074534c93 | |||
| 12d9cfbcaa | |||
| f3a6080fce | |||
| f16b0747a4 | |||
| 964481d023 | |||
| d143cae25a | |||
| d11e2bcf48 | |||
| 3c33e40b61 | |||
| eaf2c769be | |||
| ce4a1dcc19 | |||
| 2230a38cd6 | |||
| ef6051b95e | |||
| af1d279226 | |||
| d5ce28df67 | |||
| 693b3f8677 | |||
| a322312740 | |||
| 2edde7fe33 | |||
| 08a12b6dbb | |||
| 876bb3af42 | |||
| 7f9f5281e5 | |||
| 3eb049036e | |||
| 093f1efb21 | |||
| 7d1778bbd2 | |||
| 5ebf6eeca1 | |||
| 6fb4600334 | |||
| b6b36e1b5a |
4
.gitignore
vendored
@ -3,6 +3,4 @@ cache/*
|
||||
vendor
|
||||
composer.phar
|
||||
db/poche.sqlite
|
||||
output
|
||||
phpdoc*
|
||||
inc/poche/myconfig.inc.php
|
||||
inc/poche/config.inc.php
|
||||
49
inc/3rdparty/FlattrItem.class.php
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
<?php
|
||||
/*
|
||||
* Class for Flattr querying
|
||||
*/
|
||||
class FlattrItem {
|
||||
|
||||
public $status;
|
||||
public $urltoflattr;
|
||||
public $flattrItemURL;
|
||||
public $numflattrs;
|
||||
|
||||
public function checkItem($urltoflattr,$id) {
|
||||
$this->cacheflattrfile($urltoflattr, $id);
|
||||
$flattrResponse = file_get_contents(CACHE . "/flattr/".$id.".cache");
|
||||
if($flattrResponse != FALSE) {
|
||||
$result = json_decode($flattrResponse);
|
||||
if (isset($result->message)){
|
||||
if ($result->message == "flattrable") {
|
||||
$this->status = FLATTRABLE;
|
||||
}
|
||||
}
|
||||
elseif ($result->link) {
|
||||
$this->status = FLATTRED;
|
||||
$this->flattrItemURL = $result->link;
|
||||
$this->numflattrs = $result->flattrs;
|
||||
}
|
||||
else {
|
||||
$this->status = NOT_FLATTRABLE;
|
||||
}
|
||||
}
|
||||
else {
|
||||
$this->status = "FLATTR_ERR_CONNECTION";
|
||||
}
|
||||
}
|
||||
|
||||
private function cacheflattrfile($urltoflattr, $id) {
|
||||
if (!is_dir(CACHE . '/flattr')) {
|
||||
mkdir(CACHE . '/flattr', 0777);
|
||||
}
|
||||
|
||||
// if a cache flattr file for this url already exists and it's been less than one day than it have been updated, see in /cache
|
||||
if ((!file_exists(CACHE . "/flattr/".$id.".cache")) || (time() - filemtime(CACHE . "/flattr/".$id.".cache") > 86400)) {
|
||||
$askForFlattr = Tools::getFile(FLATTR_API . $urltoflattr);
|
||||
$flattrCacheFile = fopen(CACHE . "/flattr/".$id.".cache", 'w+');
|
||||
fwrite($flattrCacheFile, $askForFlattr);
|
||||
fclose($flattrCacheFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
283
inc/3rdparty/Session.class.php
vendored
@ -1,136 +1,279 @@
|
||||
<?php
|
||||
/**
|
||||
* Session management class
|
||||
*
|
||||
* http://www.developpez.net/forums/d51943/php/langage/sessions/
|
||||
* http://sebsauvage.net/wiki/doku.php?id=php:session
|
||||
* http://sebsauvage.net/wiki/doku.php?id=php:shaarli
|
||||
*
|
||||
*
|
||||
* Features:
|
||||
* - Everything is stored on server-side (we do not trust client-side data,
|
||||
* such as cookie expiration)
|
||||
* - IP addresses + user agent are checked on each access to prevent session
|
||||
* cookie hijacking (such as Firesheep)
|
||||
* - IP addresses are checked on each access to prevent session cookie hijacking
|
||||
* (such as Firesheep)
|
||||
* - Session expires on user inactivity (Session expiration date is
|
||||
* automatically updated everytime the user accesses a page.)
|
||||
* - A unique secret key is generated on server-side for this session
|
||||
* (and never sent over the wire) which can be used
|
||||
* to sign forms (HMAC) (See $_SESSION['uid'] )
|
||||
* - Token management to prevent XSRF attacks.
|
||||
* (and never sent over the wire) which can be used to sign forms (HMAC)
|
||||
* (See $_SESSION['uid'])
|
||||
* - Token management to prevent XSRF attacks
|
||||
* - Brute force protection with ban management
|
||||
*
|
||||
* TODO:
|
||||
* - log login fail
|
||||
* - prevent brute force (ban IP)
|
||||
* TODOs
|
||||
* - Replace globals with variables in Session class
|
||||
*
|
||||
* HOWTOUSE:
|
||||
* - Just call Session::init(); to initialize session and
|
||||
* check if connected with Session::isLogged()
|
||||
* How to use:
|
||||
* - http://tontof.net/kriss/php5/session
|
||||
*/
|
||||
|
||||
class Session
|
||||
{
|
||||
// Personnalize PHP session name
|
||||
public static $sessionName = '';
|
||||
// If the user does not access any page within this time,
|
||||
// his/her session is considered expired (in seconds).
|
||||
public static $inactivity_timeout = 3600;
|
||||
private static $_instance;
|
||||
// his/her session is considered expired (3600 sec. = 1 hour)
|
||||
public static $inactivityTimeout = 3600;
|
||||
// If you get disconnected often or if your IP address changes often.
|
||||
// Let you disable session cookie hijacking protection
|
||||
public static $disableSessionProtection = false;
|
||||
// Ban IP after this many failures.
|
||||
public static $banAfter = 4;
|
||||
// Ban duration for IP address after login failures (in seconds).
|
||||
// (1800 sec. = 30 minutes)
|
||||
public static $banDuration = 1800;
|
||||
// File storage for failures and bans. If empty, no ban management.
|
||||
public static $banFile = '';
|
||||
|
||||
// constructor
|
||||
private function __construct()
|
||||
/**
|
||||
* Initialize session
|
||||
*/
|
||||
public static function init()
|
||||
{
|
||||
// Force cookie path (but do not change lifetime)
|
||||
$cookie = session_get_cookie_params();
|
||||
// Default cookie expiration and path.
|
||||
$cookiedir = '';
|
||||
if (dirname($_SERVER['SCRIPT_NAME'])!='/') {
|
||||
$cookiedir = dirname($_SERVER["SCRIPT_NAME"]).'/';
|
||||
}
|
||||
$ssl = false;
|
||||
if (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") {
|
||||
$ssl = true;
|
||||
}
|
||||
session_set_cookie_params($cookie['lifetime'], $cookiedir, $_SERVER['HTTP_HOST'], $ssl);
|
||||
// Use cookies to store session.
|
||||
ini_set('session.use_cookies', 1);
|
||||
// Force cookies for session (phpsessionID forbidden in URL)
|
||||
ini_set('session.use_only_cookies', 1);
|
||||
if (!session_id()){
|
||||
if (!session_id()) {
|
||||
// Prevent php to use sessionID in URL if cookies are disabled.
|
||||
ini_set('session.use_trans_sid', false);
|
||||
session_start('poche');
|
||||
if (!empty(self::$sessionName)) {
|
||||
session_name(self::$sessionName);
|
||||
}
|
||||
session_start();
|
||||
}
|
||||
}
|
||||
|
||||
// initialize session
|
||||
public static function init()
|
||||
/**
|
||||
* Returns the IP address
|
||||
* (Used to prevent session cookie hijacking.)
|
||||
*
|
||||
* @return string IP addresses
|
||||
*/
|
||||
private static function _allIPs()
|
||||
{
|
||||
if (!isset(self::$_instance)) {
|
||||
self::$_instance = new Session();
|
||||
}
|
||||
$ip = $_SERVER["REMOTE_ADDR"];
|
||||
$ip.= isset($_SERVER['HTTP_X_FORWARDED_FOR']) ? '_'.$_SERVER['HTTP_X_FORWARDED_FOR'] : '';
|
||||
$ip.= isset($_SERVER['HTTP_CLIENT_IP']) ? '_'.$_SERVER['HTTP_CLIENT_IP'] : '';
|
||||
|
||||
return $ip;
|
||||
}
|
||||
|
||||
// Returns the IP address, user agent and language of the client
|
||||
// (Used to prevent session cookie hijacking.)
|
||||
private static function _allInfos()
|
||||
/**
|
||||
* Check that user/password is correct and then init some SESSION variables.
|
||||
*
|
||||
* @param string $login Login reference
|
||||
* @param string $password Password reference
|
||||
* @param string $loginTest Login to compare with login reference
|
||||
* @param string $passwordTest Password to compare with password reference
|
||||
* @param array $pValues Array of variables to store in SESSION
|
||||
*
|
||||
* @return true|false True if login and password are correct, false
|
||||
* otherwise
|
||||
*/
|
||||
public static function login (
|
||||
$login,
|
||||
$password,
|
||||
$loginTest,
|
||||
$passwordTest,
|
||||
$pValues = array())
|
||||
{
|
||||
$infos = $_SERVER["REMOTE_ADDR"];
|
||||
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
|
||||
$infos.=$_SERVER['HTTP_X_FORWARDED_FOR'];
|
||||
}
|
||||
if (isset($_SERVER['HTTP_CLIENT_IP'])) {
|
||||
$infos.='_'.$_SERVER['HTTP_CLIENT_IP'];
|
||||
}
|
||||
$infos.='_'.$_SERVER['HTTP_USER_AGENT'];
|
||||
$infos.='_'.$_SERVER['HTTP_ACCEPT_LANGUAGE'];
|
||||
return sha1($infos);
|
||||
}
|
||||
self::banInit();
|
||||
if (self::banCanLogin()) {
|
||||
if ($login === $loginTest && $password === $passwordTest) {
|
||||
self::banLoginOk();
|
||||
// Generate unique random number to sign forms (HMAC)
|
||||
$_SESSION['uid'] = sha1(uniqid('', true).'_'.mt_rand());
|
||||
$_SESSION['ip'] = self::_allIPs();
|
||||
$_SESSION['username'] = $login;
|
||||
// Set session expiration.
|
||||
$_SESSION['expires_on'] = time() + self::$inactivityTimeout;
|
||||
|
||||
// Check that user/password is correct and init some SESSION variables.
|
||||
public static function login($login,$password,$login_test,$password_test,
|
||||
$pValues = array())
|
||||
{
|
||||
foreach ($pValues as $key => $value) {
|
||||
$_SESSION[$key] = $value;
|
||||
}
|
||||
if ($login==$login_test && $password==$password_test){
|
||||
// generate unique random number to sign forms (HMAC)
|
||||
$_SESSION['uid'] = sha1(uniqid('',true).'_'.mt_rand());
|
||||
$_SESSION['info']=Session::_allInfos();
|
||||
$_SESSION['username']=$login;
|
||||
// Set session expiration.
|
||||
$_SESSION['expires_on']=time()+Session::$inactivity_timeout;
|
||||
return true;
|
||||
foreach ($pValues as $key => $value) {
|
||||
$_SESSION[$key] = $value;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
self::banLoginFailed();
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
// Force logout
|
||||
/**
|
||||
* Unset SESSION variable to force logout
|
||||
*/
|
||||
public static function logout()
|
||||
{
|
||||
unset($_SESSION['uid'],$_SESSION['info'],$_SESSION['expires_on'],$_SESSION['tokens'], $_SESSION['login'], $_SESSION['pass'], $_SESSION['poche_user']);
|
||||
unset($_SESSION['uid'],$_SESSION['ip'],$_SESSION['expires_on'],$_SESSION['tokens'], $_SESSION['login'], $_SESSION['pass'], $_SESSION['poche_user']);
|
||||
}
|
||||
|
||||
// Make sure user is logged in.
|
||||
/**
|
||||
* Make sure user is logged in.
|
||||
*
|
||||
* @return true|false True if user is logged in, false otherwise
|
||||
*/
|
||||
public static function isLogged()
|
||||
{
|
||||
if (!isset ($_SESSION['uid'])
|
||||
|| $_SESSION['info']!=Session::_allInfos()
|
||||
|| time()>=$_SESSION['expires_on']){
|
||||
Session::logout();
|
||||
|| (self::$disableSessionProtection === false
|
||||
&& $_SESSION['ip'] !== self::_allIPs())
|
||||
|| time() >= $_SESSION['expires_on']) {
|
||||
self::logout();
|
||||
|
||||
return false;
|
||||
}
|
||||
// User accessed a page : Update his/her session expiration date.
|
||||
$_SESSION['expires_on']=time()+Session::$inactivity_timeout;
|
||||
$_SESSION['expires_on'] = time() + self::$inactivityTimeout;
|
||||
if (!empty($_SESSION['longlastingsession'])) {
|
||||
$_SESSION['expires_on'] += $_SESSION['longlastingsession'];
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
// Returns a token.
|
||||
public static function getToken()
|
||||
/**
|
||||
* Create a token, store it in SESSION and return it
|
||||
*
|
||||
* @param string $salt to prevent birthday attack
|
||||
*
|
||||
* @return string Token created
|
||||
*/
|
||||
public static function getToken($salt = '')
|
||||
{
|
||||
if (!isset($_SESSION['tokens'])){
|
||||
if (!isset($_SESSION['tokens'])) {
|
||||
$_SESSION['tokens']=array();
|
||||
}
|
||||
// We generate a random string and store it on the server side.
|
||||
$rnd = sha1(uniqid('',true).'_'.mt_rand());
|
||||
$rnd = sha1(uniqid('', true).'_'.mt_rand().$salt);
|
||||
$_SESSION['tokens'][$rnd]=1;
|
||||
|
||||
return $rnd;
|
||||
}
|
||||
|
||||
// Tells if a token is ok. Using this function will destroy the token.
|
||||
// return true if token is ok.
|
||||
/**
|
||||
* Tells if a token is ok. Using this function will destroy the token.
|
||||
*
|
||||
* @param string $token Token to test
|
||||
*
|
||||
* @return true|false True if token is correct, false otherwise
|
||||
*/
|
||||
public static function isToken($token)
|
||||
{
|
||||
if (isset($_SESSION['tokens'][$token]))
|
||||
{
|
||||
if (isset($_SESSION['tokens'][$token])) {
|
||||
unset($_SESSION['tokens'][$token]); // Token is used: destroy it.
|
||||
|
||||
return true; // Token is ok.
|
||||
}
|
||||
|
||||
return false; // Wrong token, or already used.
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Signal a failed login. Will ban the IP if too many failures:
|
||||
*/
|
||||
public static function banLoginFailed()
|
||||
{
|
||||
if (self::$banFile !== '') {
|
||||
$ip = $_SERVER["REMOTE_ADDR"];
|
||||
$gb = $GLOBALS['IPBANS'];
|
||||
|
||||
if (!isset($gb['FAILURES'][$ip])) {
|
||||
$gb['FAILURES'][$ip] = 0;
|
||||
}
|
||||
$gb['FAILURES'][$ip]++;
|
||||
if ($gb['FAILURES'][$ip] > (self::$banAfter - 1)) {
|
||||
$gb['BANS'][$ip]= time() + self::$banDuration;
|
||||
}
|
||||
|
||||
$GLOBALS['IPBANS'] = $gb;
|
||||
file_put_contents(self::$banFile, "<?php\n\$GLOBALS['IPBANS']=".var_export($gb, true).";\n?>");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Signals a successful login. Resets failed login counter.
|
||||
*/
|
||||
public static function banLoginOk()
|
||||
{
|
||||
if (self::$banFile !== '') {
|
||||
$ip = $_SERVER["REMOTE_ADDR"];
|
||||
$gb = $GLOBALS['IPBANS'];
|
||||
unset($gb['FAILURES'][$ip]); unset($gb['BANS'][$ip]);
|
||||
$GLOBALS['IPBANS'] = $gb;
|
||||
file_put_contents(self::$banFile, "<?php\n\$GLOBALS['IPBANS']=".var_export($gb, true).";\n?>");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Ban init
|
||||
*/
|
||||
public static function banInit()
|
||||
{
|
||||
if (self::$banFile !== '') {
|
||||
if (!is_file(self::$banFile)) {
|
||||
file_put_contents(self::$banFile, "<?php\n\$GLOBALS['IPBANS']=".var_export(array('FAILURES'=>array(), 'BANS'=>array()), true).";\n?>");
|
||||
}
|
||||
include self::$banFile;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the user CAN login. If 'true', the user can try to login.
|
||||
*
|
||||
* @return boolean true if user is banned, false otherwise
|
||||
*/
|
||||
public static function banCanLogin()
|
||||
{
|
||||
if (self::$banFile !== '') {
|
||||
$ip = $_SERVER["REMOTE_ADDR"];
|
||||
$gb = $GLOBALS['IPBANS'];
|
||||
if (isset($gb['BANS'][$ip])) {
|
||||
// User is banned. Check if the ban has expired:
|
||||
if ($gb['BANS'][$ip] <= time()) {
|
||||
// Ban expired, user can try to login again.
|
||||
unset($gb['FAILURES'][$ip]);
|
||||
unset($gb['BANS'][$ip]);
|
||||
file_put_contents(self::$banFile, "<?php\n\$GLOBALS['IPBANS']=".var_export($gb, true).";\n?>");
|
||||
|
||||
return true; // Ban has expired, user can login.
|
||||
}
|
||||
|
||||
return false; // User is banned.
|
||||
}
|
||||
}
|
||||
|
||||
return true; // User is not banned.
|
||||
}
|
||||
}
|
||||
|
||||
0
inc/3rdparty/class.messages.php
vendored
Executable file → Normal file
@ -138,7 +138,7 @@ class ContentExtractor
|
||||
}
|
||||
|
||||
// load and parse html
|
||||
$this->readability = new Readability($html, $url);
|
||||
$this->readability = new PocheReadability($html, $url);
|
||||
|
||||
// we use xpath to find elements in the given HTML document
|
||||
// see http://en.wikipedia.org/wiki/XPath_1.0
|
||||
|
||||
6
inc/3rdparty/site_config/custom/bfmtv.com.txt
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
title: //title
|
||||
body: //h2 | //span[@class='masque'] | //article[@class='corps_article_right']
|
||||
prune: no
|
||||
tidy: no
|
||||
|
||||
test_url: http://www.bfmtv.com/societe/cigarette-electronique-dangers-588622.html
|
||||
0
inc/3rdparty/site_config/custom/palkeo.com.txt
vendored
Normal file
6
inc/3rdparty/site_config/custom/tldp.org.txt
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
title: //title
|
||||
body: //h2 | //p | //ul
|
||||
prune: no
|
||||
tidy: no
|
||||
|
||||
test_url: http://www.tldp.org/HOWTO/Plug-and-Play-HOWTO-7.html
|
||||
@ -60,11 +60,15 @@ class Database {
|
||||
$id_user = intval($this->getLastId($sequence));
|
||||
|
||||
$sql = 'INSERT INTO users_config ( user_id, name, value ) VALUES (?, ?, ?)';
|
||||
$params = array($id_user, 'pager', '10');
|
||||
$params = array($id_user, 'pager', PAGINATION);
|
||||
$query = $this->executeQuery($sql, $params);
|
||||
|
||||
$sql = 'INSERT INTO users_config ( user_id, name, value ) VALUES (?, ?, ?)';
|
||||
$params = array($id_user, 'language', 'en_EN.UTF8');
|
||||
$params = array($id_user, 'language', LANG);
|
||||
$query = $this->executeQuery($sql, $params);
|
||||
|
||||
$sql = 'INSERT INTO users_config ( user_id, name, value ) VALUES (?, ?, ?)';
|
||||
$params = array($id_user, 'theme', DEFAULT_THEME);
|
||||
$query = $this->executeQuery($sql, $params);
|
||||
|
||||
return TRUE;
|
||||
@ -101,11 +105,25 @@ class Database {
|
||||
return $user;
|
||||
}
|
||||
|
||||
public function updatePassword($id, $password)
|
||||
public function updatePassword($userId, $password)
|
||||
{
|
||||
$sql_update = "UPDATE users SET password=? WHERE id=?";
|
||||
$params_update = array($password, $id);
|
||||
$query = $this->executeQuery($sql_update, $params_update);
|
||||
$this->updateUserConfig($userId, 'password', $password);
|
||||
}
|
||||
|
||||
public function updateUserConfig($userId, $key, $value) {
|
||||
$config = $this->getConfigUser($userId);
|
||||
|
||||
if (!isset ($user_config[$key])) {
|
||||
$sql = "INSERT INTO users_config (`value`, `user_id`, `name`) VALUES (?, ?, ?)";
|
||||
}
|
||||
else {
|
||||
$sql = "UPDATE users_config SET `value`=? WHERE `user_id`=? AND `name`=?";
|
||||
}
|
||||
|
||||
$params = array($value, $userId, $key);
|
||||
$query = $this->executeQuery($sql, $params);
|
||||
}
|
||||
|
||||
private function executeQuery($sql, $params) {
|
||||
|
||||
@ -10,95 +10,63 @@
|
||||
|
||||
class Poche
|
||||
{
|
||||
public static $canRenderTemplates = true;
|
||||
public static $configFileAvailable = true;
|
||||
|
||||
public $user;
|
||||
public $store;
|
||||
public $tpl;
|
||||
public $messages;
|
||||
public $pagination;
|
||||
|
||||
private $currentTheme = '';
|
||||
private $notInstalledMessage = '';
|
||||
|
||||
# @todo make this dynamic (actually install themes and save them in the database including author information et cetera)
|
||||
private $installedThemes = array(
|
||||
'default' => array('requires' => array()),
|
||||
'dark' => array('requires' => array('default')),
|
||||
'dmagenta' => array('requires' => array('default')),
|
||||
'solarized' => array('requires' => array('default')),
|
||||
'solarized-dark' => array('requires' => array('default'))
|
||||
);
|
||||
|
||||
function __construct()
|
||||
public function __construct()
|
||||
{
|
||||
$this->initTpl();
|
||||
if (!$this->checkBeforeInstall()) {
|
||||
exit;
|
||||
if (! $this->configFileIsAvailable()) {
|
||||
return;
|
||||
}
|
||||
$this->store = new Database();
|
||||
|
||||
$this->init();
|
||||
|
||||
if (! $this->themeIsInstalled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->initTpl();
|
||||
|
||||
if (! $this->systemIsInstalled()) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->store = new Database();
|
||||
$this->messages = new Messages();
|
||||
|
||||
# installation
|
||||
if(!$this->store->isInstalled())
|
||||
{
|
||||
if (! $this->store->isInstalled()) {
|
||||
$this->install();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* all checks before installation.
|
||||
* @return boolean
|
||||
*/
|
||||
private function checkBeforeInstall()
|
||||
{
|
||||
$msg = '';
|
||||
$allIsGood = TRUE;
|
||||
|
||||
if (!is_writable(CACHE)) {
|
||||
Tools::logm('you don\'t have write access on cache directory');
|
||||
die('You don\'t have write access on cache directory.');
|
||||
}
|
||||
else if (file_exists('./install/update.php') && !DEBUG_POCHE) {
|
||||
$msg = '<h1>setup</h1><p><strong>It\'s your first time here?</strong> Please copy /install/poche.sqlite in db folder. Then, delete install folder.<br /><strong>If you have already installed poche</strong>, an update is needed <a href="install/update.php">by clicking here</a>.</p>';
|
||||
$allIsGood = FALSE;
|
||||
}
|
||||
else if (file_exists('./install') && !DEBUG_POCHE) {
|
||||
$msg = '<h1>setup</h1><p><strong>If you want to update your poche</strong>, you just have to delete /install folder. <br /><strong>To install your poche with sqlite</strong>, copy /install/poche.sqlite in /db and delete the folder /install. you have to delete the /install folder before using poche.</p>';
|
||||
$allIsGood = FALSE;
|
||||
}
|
||||
else if (STORAGE == 'sqlite' && !is_writable(STORAGE_SQLITE)) {
|
||||
Tools::logm('you don\'t have write access on sqlite file');
|
||||
$msg = '<h1>error</h1><p>You don\'t have write access on sqlite file.</p>';
|
||||
$allIsGood = FALSE;
|
||||
}
|
||||
|
||||
if (!$allIsGood) {
|
||||
echo $this->tpl->render('error.twig', array(
|
||||
'msg' => $msg
|
||||
));
|
||||
}
|
||||
|
||||
return $allIsGood;
|
||||
}
|
||||
|
||||
private function initTpl()
|
||||
{
|
||||
# template engine
|
||||
$loader = new Twig_Loader_Filesystem(TPL);
|
||||
if (DEBUG_POCHE) {
|
||||
$twig_params = array();
|
||||
}
|
||||
else {
|
||||
$twig_params = array('cache' => CACHE);
|
||||
}
|
||||
$this->tpl = new Twig_Environment($loader, $twig_params);
|
||||
$this->tpl->addExtension(new Twig_Extensions_Extension_I18n());
|
||||
# filter to display domain name of an url
|
||||
$filter = new Twig_SimpleFilter('getDomain', 'Tools::getDomain');
|
||||
$this->tpl->addFilter($filter);
|
||||
|
||||
# filter for reading time
|
||||
$filter = new Twig_SimpleFilter('getReadingTime', 'Tools::getReadingTime');
|
||||
$this->tpl->addFilter($filter);
|
||||
}
|
||||
|
||||
|
||||
private function init()
|
||||
{
|
||||
Tools::initPhp();
|
||||
Session::$sessionName = 'poche';
|
||||
Session::init();
|
||||
|
||||
if (isset($_SESSION['poche_user']) && $_SESSION['poche_user'] != array()) {
|
||||
$this->user = $_SESSION['poche_user'];
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
# fake user, just for install & login screens
|
||||
$this->user = new User();
|
||||
$this->user->setConfig($this->getDefaultConfig());
|
||||
@ -113,13 +81,152 @@ class Poche
|
||||
|
||||
# Pagination
|
||||
$this->pagination = new Paginator($this->user->getConfigValue('pager'), 'p');
|
||||
|
||||
# Set up theme
|
||||
$themeDirectory = $this->user->getConfigValue('theme');
|
||||
|
||||
if ($themeDirectory === false) {
|
||||
$themeDirectory = DEFAULT_THEME;
|
||||
}
|
||||
|
||||
$this->currentTheme = $themeDirectory;
|
||||
}
|
||||
|
||||
public function configFileIsAvailable() {
|
||||
if (! self::$configFileAvailable) {
|
||||
$this->notInstalledMessage = 'You have to rename <strong>inc/poche/config.inc.php.new</strong> to <strong>inc/poche/config.inc.php</strong>.';
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function themeIsInstalled() {
|
||||
# Twig is an absolute requirement for Poche to function. Abort immediately if the Composer installer hasn't been run yet
|
||||
if (! self::$canRenderTemplates) {
|
||||
$this->notInstalledMessage = 'Twig does not seem to be installed. Please initialize the Composer installation to automatically fetch dependencies. Have a look at <a href="http://doc.inthepoche.com/doku.php?id=users:begin:install">the documentation.</a>';
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if (! is_writable(CACHE)) {
|
||||
$this->notInstalledMessage = '<h1>error</h1><p>You don\'t have write access on cache directory.</p>';
|
||||
|
||||
self::$canRenderTemplates = false;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
# Check if the selected theme and its requirements are present
|
||||
if (! is_dir(THEME . '/' . $this->getTheme())) {
|
||||
$this->notInstalledMessage = 'The currently selected theme (' . $this->getTheme() . ') does not seem to be properly installed (Missing directory: ' . THEME . '/' . $this->getTheme() . ')';
|
||||
|
||||
self::$canRenderTemplates = false;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach ($this->installedThemes[$this->getTheme()]['requires'] as $requiredTheme) {
|
||||
if (! is_dir(THEME . '/' . $requiredTheme)) {
|
||||
$this->notInstalledMessage = 'The required "' . $requiredTheme . '" theme is missing for the current theme (' . $this->getTheme() . ')';
|
||||
|
||||
self::$canRenderTemplates = false;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* all checks before installation.
|
||||
* @todo move HTML to template
|
||||
* @return boolean
|
||||
*/
|
||||
public function systemIsInstalled()
|
||||
{
|
||||
$msg = '';
|
||||
|
||||
$configSalt = defined('SALT') ? constant('SALT') : '';
|
||||
|
||||
if (empty($configSalt)) {
|
||||
$msg = '<h1>error</h1><p>You have not yet filled in the SALT value in the config.inc.php file.</p>';
|
||||
} else if (STORAGE == 'sqlite' && ! file_exists(STORAGE_SQLITE)) {
|
||||
Tools::logm('sqlite file doesn\'t exist');
|
||||
$msg = '<h1>error</h1><p>sqlite file doesn\'t exist, you can find it in install folder. Copy it in /db folder.</p>';
|
||||
} else if (is_dir(ROOT . '/install') && ! DEBUG_POCHE) {
|
||||
$msg = '<h1>install folder</h1><p>you have to delete the /install folder before using poche.</p>';
|
||||
} else if (STORAGE == 'sqlite' && ! is_writable(STORAGE_SQLITE)) {
|
||||
Tools::logm('you don\'t have write access on sqlite file');
|
||||
$msg = '<h1>error</h1><p>You don\'t have write access on sqlite file.</p>';
|
||||
}
|
||||
|
||||
if (! empty($msg)) {
|
||||
$this->notInstalledMessage = $msg;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public function getNotInstalledMessage() {
|
||||
return $this->notInstalledMessage;
|
||||
}
|
||||
|
||||
private function initTpl()
|
||||
{
|
||||
$loaderChain = new Twig_Loader_Chain();
|
||||
|
||||
# add the current theme as first to the loader chain so Twig will look there first for overridden template files
|
||||
try {
|
||||
$loaderChain->addLoader(new Twig_Loader_Filesystem(THEME . '/' . $this->getTheme()));
|
||||
} catch (Twig_Error_Loader $e) {
|
||||
# @todo isInstalled() should catch this, inject Twig later
|
||||
die('The currently selected theme (' . $this->getTheme() . ') does not seem to be properly installed (' . THEME . '/' . $this->getTheme() .' is missing)');
|
||||
}
|
||||
|
||||
# add all required themes to the loader chain
|
||||
foreach ($this->installedThemes[$this->getTheme()]['requires'] as $requiredTheme) {
|
||||
try {
|
||||
$loaderChain->addLoader(new Twig_Loader_Filesystem(THEME . '/' . DEFAULT_THEME));
|
||||
} catch (Twig_Error_Loader $e) {
|
||||
# @todo isInstalled() should catch this, inject Twig later
|
||||
die('The required "' . $requiredTheme . '" theme is missing for the current theme (' . $this->getTheme() . ')');
|
||||
}
|
||||
}
|
||||
|
||||
if (DEBUG_POCHE) {
|
||||
$twig_params = array();
|
||||
} else {
|
||||
$twig_params = array('cache' => CACHE);
|
||||
}
|
||||
|
||||
$this->tpl = new Twig_Environment($loaderChain, $twig_params);
|
||||
$this->tpl->addExtension(new Twig_Extensions_Extension_I18n());
|
||||
|
||||
# filter to display domain name of an url
|
||||
$filter = new Twig_SimpleFilter('getDomain', 'Tools::getDomain');
|
||||
$this->tpl->addFilter($filter);
|
||||
|
||||
# filter for reading time
|
||||
$filter = new Twig_SimpleFilter('getReadingTime', 'Tools::getReadingTime');
|
||||
$this->tpl->addFilter($filter);
|
||||
|
||||
# filter for simple filenames in config view
|
||||
$filter = new Twig_SimpleFilter('getPrettyFilename', function($string) { return str_replace(ROOT, '', $string); });
|
||||
$this->tpl->addFilter($filter);
|
||||
}
|
||||
|
||||
private function install()
|
||||
{
|
||||
Tools::logm('poche still not installed');
|
||||
echo $this->tpl->render('install.twig', array(
|
||||
'token' => Session::getToken()
|
||||
'token' => Session::getToken(),
|
||||
'theme' => $this->getTheme(),
|
||||
'poche_url' => Tools::getPocheUrl()
|
||||
));
|
||||
if (isset($_GET['install'])) {
|
||||
if (($_POST['password'] == $_POST['password_repeat'])
|
||||
@ -139,13 +246,41 @@ class Poche
|
||||
}
|
||||
exit();
|
||||
}
|
||||
|
||||
public function getTheme() {
|
||||
return $this->currentTheme;
|
||||
}
|
||||
|
||||
public function getInstalledThemes() {
|
||||
$handle = opendir(THEME);
|
||||
$themes = array();
|
||||
|
||||
while (($theme = readdir($handle)) !== false) {
|
||||
# Themes are stored in a directory, so all directory names are themes
|
||||
# @todo move theme installation data to database
|
||||
if (! is_dir(THEME . '/' . $theme) || in_array($theme, array('..', '.', '.git'))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$current = false;
|
||||
|
||||
if ($theme === $this->getTheme()) {
|
||||
$current = true;
|
||||
}
|
||||
|
||||
$themes[] = array('name' => $theme, 'current' => $current);
|
||||
}
|
||||
|
||||
return $themes;
|
||||
}
|
||||
|
||||
public function getDefaultConfig()
|
||||
{
|
||||
{
|
||||
return array(
|
||||
'pager' => PAGINATION,
|
||||
'language' => LANG,
|
||||
);
|
||||
'theme' => DEFAULT_THEME
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -166,7 +301,7 @@ class Poche
|
||||
}
|
||||
$last_id = $this->store->getLastId($sequence);
|
||||
if (DOWNLOAD_PICTURES) {
|
||||
$content = filtre_picture($parametres_url['body'], $url->getUrl(), $last_id);
|
||||
$content = filtre_picture($content['body'], $url->getUrl(), $last_id);
|
||||
Tools::logm('updating content article');
|
||||
$this->store->updateContent($last_id, $content, $this->user->getId());
|
||||
}
|
||||
@ -182,7 +317,7 @@ class Poche
|
||||
}
|
||||
|
||||
if (!$import) {
|
||||
Tools::redirect();
|
||||
Tools::redirect('?view=home');
|
||||
}
|
||||
break;
|
||||
case 'delete':
|
||||
@ -198,7 +333,7 @@ class Poche
|
||||
$msg = 'error : can\'t delete link #' . $id;
|
||||
}
|
||||
Tools::logm($msg);
|
||||
Tools::redirect('?');
|
||||
Tools::redirect();
|
||||
break;
|
||||
case 'toggle_fav' :
|
||||
$this->store->favoriteById($id, $this->user->getId());
|
||||
@ -230,7 +365,9 @@ class Poche
|
||||
$prod = $this->getPocheVersion('prod');
|
||||
$compare_dev = version_compare(POCHE_VERSION, $dev);
|
||||
$compare_prod = version_compare(POCHE_VERSION, $prod);
|
||||
$themes = $this->getInstalledThemes();
|
||||
$tpl_vars = array(
|
||||
'themes' => $themes,
|
||||
'dev' => $dev,
|
||||
'prod' => $prod,
|
||||
'compare_dev' => $compare_dev,
|
||||
@ -248,24 +385,37 @@ class Poche
|
||||
$tidy->cleanRepair();
|
||||
$content = $tidy->value;
|
||||
}
|
||||
|
||||
# flattr checking
|
||||
$flattr = new FlattrItem();
|
||||
$flattr->checkItem($entry['url'],$entry['id']);
|
||||
|
||||
$tpl_vars = array(
|
||||
'entry' => $entry,
|
||||
'content' => $content,
|
||||
'entry' => $entry,
|
||||
'content' => $content,
|
||||
'flattr' => $flattr
|
||||
);
|
||||
}
|
||||
else {
|
||||
Tools::logm('error in view call : entry is null');
|
||||
}
|
||||
break;
|
||||
default: # home view
|
||||
default: # home, favorites and archive views
|
||||
$entries = $this->store->getEntriesByView($view, $this->user->getId());
|
||||
$this->pagination->set_total(count($entries));
|
||||
$page_links = $this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . '&');
|
||||
$datas = $this->store->getEntriesByView($view, $this->user->getId(), $this->pagination->get_limit());
|
||||
$tpl_vars = array(
|
||||
'entries' => $datas,
|
||||
'page_links' => $page_links,
|
||||
'entries' => '',
|
||||
'page_links' => '',
|
||||
'nb_results' => '',
|
||||
);
|
||||
|
||||
if (count($entries) > 0) {
|
||||
$this->pagination->set_total(count($entries));
|
||||
$page_links = $this->pagination->page_links('?view=' . $view . '&sort=' . $_SESSION['sort'] . '&');
|
||||
$datas = $this->store->getEntriesByView($view, $this->user->getId(), $this->pagination->get_limit());
|
||||
$tpl_vars['entries'] = $datas;
|
||||
$tpl_vars['page_links'] = $page_links;
|
||||
$tpl_vars['nb_results'] = count($entries);
|
||||
}
|
||||
Tools::logm('display ' . $view . ' view');
|
||||
break;
|
||||
}
|
||||
@ -303,6 +453,44 @@ class Poche
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function updateTheme()
|
||||
{
|
||||
# no data
|
||||
if (empty($_POST['theme'])) {
|
||||
}
|
||||
|
||||
# we are not going to change it to the current theme...
|
||||
if ($_POST['theme'] == $this->getTheme()) {
|
||||
$this->messages->add('w', _('still using the "' . $this->getTheme() . '" theme!'));
|
||||
Tools::redirect('?view=config');
|
||||
}
|
||||
|
||||
$themes = $this->getInstalledThemes();
|
||||
$actualTheme = false;
|
||||
|
||||
foreach ($themes as $theme) {
|
||||
if ($theme['name'] == $_POST['theme']) {
|
||||
$actualTheme = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (! $actualTheme) {
|
||||
$this->messages->add('e', _('that theme does not seem to be installed'));
|
||||
Tools::redirect('?view=config');
|
||||
}
|
||||
|
||||
$this->store->updateUserConfig($this->user->getId(), 'theme', $_POST['theme']);
|
||||
$this->messages->add('s', _('you have changed your theme preferences'));
|
||||
|
||||
$currentConfig = $_SESSION['poche_user']->config;
|
||||
$currentConfig['theme'] = $_POST['theme'];
|
||||
|
||||
$_SESSION['poche_user']->setConfig($currentConfig);
|
||||
|
||||
Tools::redirect('?view=config');
|
||||
}
|
||||
|
||||
/**
|
||||
* checks if login & password are correct and save the user in session.
|
||||
@ -318,16 +506,7 @@ class Poche
|
||||
if ($user != array()) {
|
||||
# Save login into Session
|
||||
Session::login($user['username'], $user['password'], $_POST['login'], Tools::encodeString($_POST['password'] . $_POST['login']), array('poche_user' => new User($user)));
|
||||
|
||||
$this->messages->add('s', _('welcome to your poche'));
|
||||
if (!empty($_POST['longlastingsession'])) {
|
||||
$_SESSION['longlastingsession'] = 31536000;
|
||||
$_SESSION['expires_on'] = time() + $_SESSION['longlastingsession'];
|
||||
session_set_cookie_params($_SESSION['longlastingsession']);
|
||||
} else {
|
||||
session_set_cookie_params(0);
|
||||
}
|
||||
session_regenerate_id(true);
|
||||
Tools::logm('login successful');
|
||||
Tools::redirect($referer);
|
||||
}
|
||||
|
||||
46
inc/poche/PocheReadability.php
Normal file
@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
class PocheReadability extends Readability
|
||||
{
|
||||
/**
|
||||
* Get the article title as an H1.
|
||||
*
|
||||
* @return DOMElement
|
||||
*/
|
||||
protected function getArticleTitle() {
|
||||
$curTitle = '';
|
||||
$origTitle = '';
|
||||
|
||||
try {
|
||||
$curTitle = $origTitle = $this->getInnerText($this->dom->getElementsByTagName('title')->item(0));
|
||||
} catch(Exception $e) {}
|
||||
|
||||
if (preg_match('/ [\|\-] /', $curTitle))
|
||||
{
|
||||
$curTitle = preg_replace('/(.*)[\|\-] .*/i', '$1', $origTitle);
|
||||
|
||||
if (count(explode(' ', $curTitle)) < 3) {
|
||||
$curTitle = preg_replace('/[^\|\-]*[\|\-](.*)/i', '$1', $origTitle);
|
||||
}
|
||||
}
|
||||
else if(strlen($curTitle) > 150 || strlen($curTitle) < 15)
|
||||
{
|
||||
$hOnes = $this->dom->getElementsByTagName('h1');
|
||||
if($hOnes->length == 1)
|
||||
{
|
||||
$curTitle = $this->getInnerText($hOnes->item(0));
|
||||
}
|
||||
}
|
||||
|
||||
$curTitle = trim($curTitle);
|
||||
|
||||
if (count(explode(' ', $curTitle)) <= 4) {
|
||||
$curTitle = $origTitle;
|
||||
}
|
||||
|
||||
$articleTitle = $this->dom->createElement('h1');
|
||||
$articleTitle->innerHTML = $curTitle;
|
||||
|
||||
return $articleTitle;
|
||||
}
|
||||
}
|
||||
@ -84,9 +84,9 @@ class Tools
|
||||
|
||||
public static function getTplFile($view)
|
||||
{
|
||||
$tpl_file = 'home.twig';
|
||||
switch ($view)
|
||||
{
|
||||
$default_tpl = 'home.twig';
|
||||
|
||||
switch ($view) {
|
||||
case 'install':
|
||||
$tpl_file = 'install.twig';
|
||||
break;
|
||||
@ -102,9 +102,20 @@ class Tools
|
||||
case 'view':
|
||||
$tpl_file = 'view.twig';
|
||||
break;
|
||||
|
||||
case 'login':
|
||||
$tpl_file = 'login.twig';
|
||||
break;
|
||||
|
||||
case 'error':
|
||||
$tpl_file = 'error.twig';
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
$tpl_file = $default_tpl;
|
||||
break;
|
||||
}
|
||||
|
||||
return $tpl_file;
|
||||
}
|
||||
|
||||
@ -228,24 +239,8 @@ class Tools
|
||||
return $minutes;
|
||||
}
|
||||
|
||||
|
||||
public static function createMyConfig()
|
||||
{
|
||||
$myconfig_file = './inc/poche/myconfig.inc.php';
|
||||
|
||||
if (!is_writable('./inc/poche/')) {
|
||||
self::logm('you don\'t have write access to create ./inc/poche/myconfig.inc.php');
|
||||
die('You don\'t have write access to create ./inc/poche/myconfig.inc.php.');
|
||||
}
|
||||
|
||||
if (!file_exists($myconfig_file))
|
||||
{
|
||||
$fp = fopen($myconfig_file, 'w');
|
||||
fwrite($fp, '<?php'."\r\n");
|
||||
fwrite($fp, "define ('POCHE_VERSION', '1.0-beta4');" . "\r\n");
|
||||
fwrite($fp, "define ('SALT', '" . md5(time() . $_SERVER['SCRIPT_FILENAME'] . rand()) . "');" . "\r\n");
|
||||
fwrite($fp, "define ('LANG', 'en_EN.utf8');" . "\r\n");
|
||||
fclose($fp);
|
||||
}
|
||||
public static function getDocLanguage($userlanguage) {
|
||||
$lang = explode('.', $userlanguage);
|
||||
return str_replace('_', '-', $lang[0]);
|
||||
}
|
||||
}
|
||||
@ -354,7 +354,7 @@ class Url
|
||||
}
|
||||
if (isset($splink)) {
|
||||
// Build DOM tree from HTML
|
||||
$readability = new Readability($html, $url);
|
||||
$readability = new PocheReadability($html, $url);
|
||||
$xpath = new DOMXPath($readability->dom);
|
||||
// Loop through single_page_link xpath expressions
|
||||
$single_page_url = null;
|
||||
|
||||
@ -1,59 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* poche, a read it later open source system
|
||||
*
|
||||
* @category poche
|
||||
* @author Nicolas Lœuillet <nicolas@loeuillet.org>
|
||||
* @copyright 2013
|
||||
* @license http://www.wtfpl.net/ see COPYING file
|
||||
*/
|
||||
|
||||
require_once __DIR__ . '/../../inc/poche/define.inc.php';
|
||||
|
||||
# /!\ Be careful if you change the lines below /!\
|
||||
if (!file_exists(__DIR__ . '/../../vendor/autoload.php')) {
|
||||
die('Twig does not seem installed. Have a look at <a href="http://inthepoche.com/?pages/Documentation">the documentation.</a>');
|
||||
}
|
||||
|
||||
// if (file_exists(__DIR__ . '/../../inc/poche/myconfig.inc.php')) {
|
||||
// require_once __DIR__ . '/../../inc/poche/myconfig.inc.php';
|
||||
// }
|
||||
require_once __DIR__ . '/../../inc/poche/User.class.php';
|
||||
require_once __DIR__ . '/../../inc/poche/Url.class.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/class.messages.php';
|
||||
require_once __DIR__ . '/../../inc/poche/Poche.class.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/Readability.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/Encoding.php';
|
||||
require_once __DIR__ . '/../../inc/poche/Database.class.php';
|
||||
require_once __DIR__ . '/../../vendor/autoload.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/simple_html_dom.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/paginator.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/Session.class.php';
|
||||
|
||||
require_once __DIR__ . '/../../inc/3rdparty/simplepie/SimplePieAutoloader.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/simplepie/SimplePie/Core.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/content-extractor/ContentExtractor.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/content-extractor/SiteConfig.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/humble-http-agent/HumbleHttpAgent.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/humble-http-agent/SimplePie_HumbleHttpAgent.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/humble-http-agent/CookieJar.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/feedwriter/FeedItem.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/feedwriter/FeedWriter.php';
|
||||
require_once __DIR__ . '/../../inc/3rdparty/feedwriter/DummySingleItemFeed.php';
|
||||
|
||||
if (DOWNLOAD_PICTURES) {
|
||||
require_once __DIR__ . '/../../inc/poche/pochePictures.php';
|
||||
}
|
||||
|
||||
if (!ini_get('date.timezone') || !@date_default_timezone_set(ini_get('date.timezone'))) {
|
||||
date_default_timezone_set('UTC');
|
||||
}
|
||||
|
||||
$poche = new Poche();
|
||||
#XSRF protection with token
|
||||
// if (!empty($_POST)) {
|
||||
// if (!Session::isToken($_POST['token'])) {
|
||||
// die(_('Wrong token'));
|
||||
// }
|
||||
// unset($_SESSION['tokens']);
|
||||
// }
|
||||
60
inc/poche/config.inc.php.new
Executable file
@ -0,0 +1,60 @@
|
||||
<?php
|
||||
/**
|
||||
* poche, a read it later open source system
|
||||
*
|
||||
* @category poche
|
||||
* @author Nicolas Lœuillet <support@inthepoche.com>
|
||||
* @copyright 2013
|
||||
* @license http://www.wtfpl.net/ see COPYING file
|
||||
*/
|
||||
|
||||
define ('SALT', ''); # put a strong string here
|
||||
define ('LANG', 'en_EN.utf8');
|
||||
|
||||
define ('STORAGE', 'sqlite'); # postgres, mysql or sqlite
|
||||
|
||||
define ('STORAGE_SQLITE', ROOT . '/db/poche.sqlite'); # if you are using sqlite, where the database file is located
|
||||
|
||||
# only for postgres & mysql
|
||||
define ('STORAGE_SERVER', 'localhost');
|
||||
define ('STORAGE_DB', 'poche');
|
||||
define ('STORAGE_USER', 'poche');
|
||||
define ('STORAGE_PASSWORD', 'poche');
|
||||
|
||||
#################################################################################
|
||||
# Do not trespass unless you know what you are doing
|
||||
#################################################################################
|
||||
|
||||
define ('MODE_DEMO', FALSE);
|
||||
define ('DEBUG_POCHE', FALSE);
|
||||
define ('DOWNLOAD_PICTURES', FALSE);
|
||||
define ('CONVERT_LINKS_FOOTNOTES', FALSE);
|
||||
define ('REVERT_FORCED_PARAGRAPH_ELEMENTS', FALSE);
|
||||
define ('SHARE_TWITTER', TRUE);
|
||||
define ('SHARE_MAIL', TRUE);
|
||||
define ('SHARE_SHAARLI', FALSE);
|
||||
define ('SHAARLI_URL', 'http://myshaarliurl.com');
|
||||
define ('FLATTR', TRUE);
|
||||
define ('FLATTR_API', 'https://api.flattr.com/rest/v2/things/lookup/?url=');
|
||||
define ('NOT_FLATTRABLE', '0');
|
||||
define ('FLATTRABLE', '1');
|
||||
define ('FLATTRED', '2');
|
||||
define ('ABS_PATH', 'assets/');
|
||||
|
||||
define ('DEFAULT_THEME', 'default');
|
||||
|
||||
define ('THEME', ROOT . '/themes');
|
||||
define ('LOCALE', ROOT . '/locale');
|
||||
define ('CACHE', ROOT . '/cache');
|
||||
|
||||
define ('PAGINATION', '10');
|
||||
|
||||
define ('POCHE_VERSION', '1.0.0');
|
||||
|
||||
define ('POCKET_FILE', '/ril_export.html');
|
||||
define ('READABILITY_FILE', '/readability');
|
||||
define ('INSTAPAPER_FILE', '/instapaper-export.html');
|
||||
|
||||
define ('IMPORT_POCKET_FILE', ROOT . POCKET_FILE);
|
||||
define ('IMPORT_READABILITY_FILE', ROOT . READABILITY_FILE);
|
||||
define ('IMPORT_INSTAPAPER_FILE', ROOT . INSTAPAPER_FILE);
|
||||
@ -1,34 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* poche, a read it later open source system
|
||||
*
|
||||
* @category poche
|
||||
* @author Nicolas Lœuillet <nicolas@loeuillet.org>
|
||||
* @copyright 2013
|
||||
* @license http://www.wtfpl.net/ see COPYING file
|
||||
*/
|
||||
|
||||
define ('STORAGE','sqlite'); # postgres, mysql, sqlite
|
||||
define ('STORAGE_SERVER', 'localhost'); # leave blank for sqlite
|
||||
define ('STORAGE_DB', 'poche'); # only for postgres & mysql
|
||||
define ('STORAGE_SQLITE', __DIR__ . '/../../db/poche.sqlite');
|
||||
define ('STORAGE_USER', 'postgres'); # leave blank for sqlite
|
||||
define ('STORAGE_PASSWORD', 'postgres'); # leave blank for sqlite
|
||||
|
||||
define ('MODE_DEMO', FALSE);
|
||||
define ('DEBUG_POCHE', FALSE);
|
||||
define ('DOWNLOAD_PICTURES', FALSE);
|
||||
define ('SHARE_TWITTER', TRUE);
|
||||
define ('SHARE_MAIL', TRUE);
|
||||
define ('SHARE_SHAARLI', FALSE);
|
||||
define ('SHAARLI_URL', 'http://myshaarliurl.com');
|
||||
define ('ABS_PATH', 'assets/');
|
||||
define ('TPL', __DIR__ . '/../../tpl');
|
||||
define ('LOCALE', __DIR__ . '/../../locale');
|
||||
define ('CACHE', __DIR__ . '/../../cache');
|
||||
define ('PAGINATION', '10');
|
||||
define ('THEME', 'light');
|
||||
|
||||
define ('IMPORT_POCKET_FILE', './ril_export.html');
|
||||
define ('IMPORT_READABILITY_FILE', './readability');
|
||||
define ('IMPORT_INSTAPAPER_FILE', './instapaper-export.html');
|
||||
64
inc/poche/global.inc.php
Normal file
@ -0,0 +1,64 @@
|
||||
<?php
|
||||
/**
|
||||
* poche, a read it later open source system
|
||||
*
|
||||
* @category poche
|
||||
* @author Nicolas Lœuillet <support@inthepoche.com>
|
||||
* @copyright 2013
|
||||
* @license http://www.wtfpl.net/ see COPYING file
|
||||
*/
|
||||
|
||||
# the poche system root directory (/inc)
|
||||
define('INCLUDES', dirname(__FILE__) . '/..');
|
||||
|
||||
# the poche root directory
|
||||
define('ROOT', INCLUDES . '/..');
|
||||
|
||||
require_once INCLUDES . '/poche/Tools.class.php';
|
||||
require_once INCLUDES . '/poche/User.class.php';
|
||||
require_once INCLUDES . '/poche/Url.class.php';
|
||||
require_once INCLUDES . '/3rdparty/class.messages.php';
|
||||
require_once INCLUDES . '/poche/Poche.class.php';
|
||||
|
||||
require_once INCLUDES . '/3rdparty/Readability.php';
|
||||
require_once INCLUDES . '/poche/PocheReadability.php';
|
||||
|
||||
require_once INCLUDES . '/3rdparty/Encoding.php';
|
||||
require_once INCLUDES . '/poche/Database.class.php';
|
||||
require_once INCLUDES . '/3rdparty/simple_html_dom.php';
|
||||
require_once INCLUDES . '/3rdparty/paginator.php';
|
||||
require_once INCLUDES . '/3rdparty/Session.class.php';
|
||||
|
||||
require_once INCLUDES . '/3rdparty/simplepie/SimplePieAutoloader.php';
|
||||
require_once INCLUDES . '/3rdparty/simplepie/SimplePie/Core.php';
|
||||
require_once INCLUDES . '/3rdparty/content-extractor/ContentExtractor.php';
|
||||
require_once INCLUDES . '/3rdparty/content-extractor/SiteConfig.php';
|
||||
require_once INCLUDES . '/3rdparty/humble-http-agent/HumbleHttpAgent.php';
|
||||
require_once INCLUDES . '/3rdparty/humble-http-agent/SimplePie_HumbleHttpAgent.php';
|
||||
require_once INCLUDES . '/3rdparty/humble-http-agent/CookieJar.php';
|
||||
require_once INCLUDES . '/3rdparty/feedwriter/FeedItem.php';
|
||||
require_once INCLUDES . '/3rdparty/feedwriter/FeedWriter.php';
|
||||
require_once INCLUDES . '/3rdparty/feedwriter/DummySingleItemFeed.php';
|
||||
require_once INCLUDES . '/3rdparty/FlattrItem.class.php';
|
||||
|
||||
# Composer its autoloader for automatically loading Twig
|
||||
if (! file_exists(ROOT . '/vendor/autoload.php')) {
|
||||
Poche::$canRenderTemplates = false;
|
||||
} else {
|
||||
require_once ROOT . '/vendor/autoload.php';
|
||||
}
|
||||
|
||||
# system configuration; database credentials et cetera
|
||||
if (! file_exists(INCLUDES . '/poche/config.inc.php')) {
|
||||
Poche::$configFileAvailable = false;
|
||||
} else {
|
||||
require_once INCLUDES . '/poche/config.inc.php';
|
||||
}
|
||||
|
||||
if (Poche::$configFileAvailable && DOWNLOAD_PICTURES) {
|
||||
require_once INCLUDES . '/poche/pochePictures.php';
|
||||
}
|
||||
|
||||
if (!ini_get('date.timezone') || !@date_default_timezone_set(ini_get('date.timezone'))) {
|
||||
date_default_timezone_set('UTC');
|
||||
}
|
||||
73
index.php
@ -8,13 +8,11 @@
|
||||
* @license http://www.wtfpl.net/ see COPYING file
|
||||
*/
|
||||
|
||||
if (file_exists(__DIR__ . '/inc/poche/myconfig.inc.php')) {
|
||||
require_once __DIR__ . '/inc/poche/myconfig.inc.php';
|
||||
}
|
||||
require_once './inc/poche/Tools.class.php';
|
||||
Tools::createMyConfig();
|
||||
require_once 'inc/poche/global.inc.php';
|
||||
|
||||
include dirname(__FILE__).'/inc/poche/config.inc.php';
|
||||
# Start Poche
|
||||
$poche = new Poche();
|
||||
$notInstalledMessage = $poche -> getNotInstalledMessage();
|
||||
|
||||
# Parse GET & REFERER vars
|
||||
$referer = empty($_SERVER['HTTP_REFERER']) ? '' : $_SERVER['HTTP_REFERER'];
|
||||
@ -24,42 +22,57 @@ $id = Tools::checkVar('id');
|
||||
$_SESSION['sort'] = Tools::checkVar('sort', 'id');
|
||||
$url = new Url((isset ($_GET['url'])) ? $_GET['url'] : '');
|
||||
|
||||
# poche actions
|
||||
if (isset($_GET['login'])) {
|
||||
# hello you
|
||||
$poche->login($referer);
|
||||
}
|
||||
elseif (isset($_GET['logout'])) {
|
||||
# see you soon !
|
||||
$poche->logout();
|
||||
}
|
||||
elseif (isset($_GET['config'])) {
|
||||
# Update password
|
||||
$poche->updatePassword();
|
||||
}
|
||||
elseif (isset($_GET['import'])) {
|
||||
$import = $poche->import($_GET['from']);
|
||||
}
|
||||
elseif (isset($_GET['export'])) {
|
||||
$poche->export();
|
||||
}
|
||||
|
||||
# vars to send to templates
|
||||
# vars to _always_ send to templates
|
||||
$tpl_vars = array(
|
||||
'referer' => $referer,
|
||||
'view' => $view,
|
||||
'poche_url' => Tools::getPocheUrl(),
|
||||
'title' => _('poche, a read it later open source system'),
|
||||
'token' => Session::getToken(),
|
||||
'theme' => $poche->getTheme()
|
||||
);
|
||||
|
||||
if (! empty($notInstalledMessage)) {
|
||||
if (! Poche::$canRenderTemplates || ! Poche::$configFileAvailable) {
|
||||
# We cannot use Twig to display the error message
|
||||
die($notInstalledMessage);
|
||||
} else {
|
||||
# Twig is installed, put the error message in the template
|
||||
$tpl_file = Tools::getTplFile('error');
|
||||
$tpl_vars = array_merge($tpl_vars, array('msg' => $poche->getNotInstalledMessage()));
|
||||
echo $poche->tpl->render($tpl_file, $tpl_vars);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
# poche actions
|
||||
if (isset($_GET['login'])) {
|
||||
# hello you
|
||||
$poche->login($referer);
|
||||
} elseif (isset($_GET['logout'])) {
|
||||
# see you soon !
|
||||
$poche->logout();
|
||||
} elseif (isset($_GET['config'])) {
|
||||
# Update password
|
||||
$poche->updatePassword();
|
||||
} elseif (isset($_GET['import'])) {
|
||||
$import = $poche->import($_GET['from']);
|
||||
} elseif (isset($_GET['export'])) {
|
||||
$poche->export();
|
||||
} elseif (isset($_GET['updatetheme'])) {
|
||||
$poche->updateTheme();
|
||||
}
|
||||
elseif (isset($_GET['plainurl']) && !empty($_GET['plainurl'])) {
|
||||
$plain_url = new Url(base64_encode($_GET['plainurl']));
|
||||
$poche->action('add', $plain_url);
|
||||
}
|
||||
|
||||
if (Session::isLogged()) {
|
||||
$poche->action($action, $url, $id);
|
||||
$tpl_file = Tools::getTplFile($view);
|
||||
$tpl_vars = array_merge($tpl_vars, $poche->displayView($view, $id));
|
||||
}
|
||||
else {
|
||||
$tpl_file = 'login.twig';
|
||||
} else {
|
||||
$tpl_file = Tools::getTplFile('login');
|
||||
}
|
||||
|
||||
# because messages can be added in $poche->action(), we have to add this entry now (we can add it before)
|
||||
|
||||
@ -1,77 +0,0 @@
|
||||
<?php
|
||||
require_once dirname(__FILE__).'/../inc/poche/Tools.class.php';
|
||||
include dirname(__FILE__).'/../inc/poche/define.inc.php';
|
||||
include dirname(__FILE__).'/../inc/poche/myconfig.inc.php';
|
||||
require_once __DIR__ . '/../inc/poche/Database.class.php';
|
||||
$store = new Database();
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<!--[if lte IE 6]> <html class="no-js ie6 ie67 ie678" lang="en"> <![endif]-->
|
||||
<!--[if lte IE 7]> <html class="no-js ie7 ie67 ie678" lang="en"> <![endif]-->
|
||||
<!--[if IE 8]> <html class="no-js ie8 ie678" lang="en"> <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>updating poche</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>update poche to 1.0-beta4</h1>
|
||||
|
||||
<h2>Changelog</h2>
|
||||
<ul>
|
||||
<li>enhancement: updating and installing poche are more easier</li>
|
||||
<li>enhancement: poche now uses Full Text RSS to fetch content</li>
|
||||
<li>enhancement: css and twig files are more clean, thanks to NumEricR and nicofrand</li>
|
||||
<li>enhancement: updated german translation, thanks to HLFH</li>
|
||||
<li>enhancement: add db/, cache/ and assets/ directories in versioning</li>
|
||||
<li>enhancement: display messages when error with import, thanks to EliasZ</li>
|
||||
<li>enhancement: poche compatibility test file</li>
|
||||
<li>enhancement: <a href="https://github.com/inthepoche/poche/issues/112">#112</a>: link with shaarli</li>
|
||||
<li>enhancement: <a href="https://github.com/inthepoche/poche/issues/162">#162</a>: links to firefox / chrome / android apps in config screen</li>
|
||||
<li>bug: encode url to share with twitter / email / shaarli</li>
|
||||
<li>bug: Add IPv4 url support (and others beginning by a digit)</li>
|
||||
<li>bug: title page in article view was wrong</li>
|
||||
<li>bug: <a href="https://github.com/inthepoche/poche/issues/148">#148</a>: use of undefined constant POCHE_VERSION</li>
|
||||
<li>bug: <a href="https://github.com/inthepoche/poche/issues/148">#149</a>: can't poche theguardian.com</li>
|
||||
<li>bug: <a href="https://github.com/inthepoche/poche/issues/150">#150</a>: default title for untitled articles</li>
|
||||
<li>bug: <a href="https://github.com/inthepoche/poche/issues/150">#151</a>: HTML entities in titles are encoded twice</li>
|
||||
<li>bug: <a href="https://github.com/inthepoche/poche/issues/169">#169</a>: entries height with short description</li>
|
||||
<li>bug: <a href="https://github.com/inthepoche/poche/issues/175">#175</a>: IP addresses do not appear in "view original"</li>
|
||||
</ul>
|
||||
<p>To update your poche, please fill the following fields.</p>
|
||||
<p>
|
||||
<form name="update" method="post">
|
||||
<div><label for="login">login:</label> <input type="text" name="login" id="login" /></div>
|
||||
<div><label for="password">password:</label> <input type="password" name="password" id="password" /></div>
|
||||
<div><input type="hidden" name="go" value="ok" /><input type="submit" value="update" /></div>
|
||||
</form>
|
||||
</p>
|
||||
<?php
|
||||
if (isset($_POST['go'])) {
|
||||
if (!empty($_POST['login']) && !empty($_POST['password'])) {
|
||||
$user = $store->login($_POST['login'], sha1($_POST['password'] . $_POST['login'] . SALT));
|
||||
if ($user != array()) {
|
||||
$myconfig_file = '../inc/poche/myconfig.inc.php';
|
||||
# just change version number in config file
|
||||
|
||||
if (!is_writable('../inc/poche/myconfig.inc.php')) {
|
||||
die('You don\'t have write access to open ./inc/poche/myconfig.inc.php.');
|
||||
}
|
||||
|
||||
if (file_exists($myconfig_file))
|
||||
{
|
||||
$content = str_replace('1.0-beta3', '1.0-beta4', file_get_contents($myconfig_file));
|
||||
file_put_contents($myconfig_file, $content);
|
||||
}
|
||||
?>
|
||||
<p><span style="color: green;">your poche is up to date!</span></p>
|
||||
<p><span style="color: red;">don't forget to delete ./install/ folder after the update.</span></p>
|
||||
<p><a href="../">go back to your poche</a></p>
|
||||
<?php
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
@ -10,7 +10,7 @@ $old_salt = '464v54gLLw928uz4zUBqkRJeiPY68zCX';
|
||||
<!--[if lte IE 7]> <html class="no-js ie7 ie67 ie678" lang="en"> <![endif]-->
|
||||
<!--[if IE 8]> <html class="no-js ie8 ie678" lang="en"> <![endif]-->
|
||||
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
|
||||
<html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>updating poche</title>
|
||||
|
||||
@ -1,380 +1,229 @@
|
||||
#
|
||||
# Translators:
|
||||
# HLFH <gaspard.dhautefeuille@gmail.com>, 2013
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: poche\n"
|
||||
"POT-Creation-Date: 2013-08-06 08:35+0100\n"
|
||||
"PO-Revision-Date: 2013-08-23 17:42+0100\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Nicolas Lœuillet <nicolas.loeuillet@gmail.com>\n"
|
||||
"Language-Team: German (http://www.transifex.com/projects/p/poche/language/"
|
||||
"de/)\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: de\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 1.5.4\n"
|
||||
"X-Poedit-Basepath: /\n"
|
||||
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-SearchPath-0: /var/www/poche-i18n\n"
|
||||
|
||||
#: /var/www/poche-i18n/index.php:43
|
||||
msgid "poche, a read it later open source system"
|
||||
msgstr "Poche, eine Opensourcelösung, um später zu lesen"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:101
|
||||
msgid "the link has been added successfully"
|
||||
msgstr "der Link wurde erfolgreich hinzugefügt"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:104
|
||||
msgid "error during insertion : the link wasn't added"
|
||||
msgstr "Fehler beim Einfügen: der Link wurde nicht hinzugefügt"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:109
|
||||
msgid "error during fetching content : the link wasn't added"
|
||||
msgstr "Fehler beim Abrufen der Inhalte: der Link wurde nicht hinzugefügt"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:119
|
||||
msgid "the link has been deleted successfully"
|
||||
msgstr "der Link wurde erfolgreich gelöscht"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:123
|
||||
msgid "the link wasn't deleted"
|
||||
msgstr "der Link wurde nicht gelöscht"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Tools.class.php:18
|
||||
msgid "Oops, it seems you don't have PHP 5."
|
||||
msgstr "Hoppla, scheint es, dass PHP 5 nicht installiert ist."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:32
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:70
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:50
|
||||
msgid "config"
|
||||
msgstr "Konfig"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:46
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:31
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:26
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:34
|
||||
msgid "home"
|
||||
msgstr "Hause"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:54
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:34
|
||||
msgid "favorites"
|
||||
msgstr "Favoriten"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:62
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:42
|
||||
msgid "archive"
|
||||
msgstr "Archive"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:74
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:76
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:54
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:56
|
||||
msgid "logout"
|
||||
msgstr "Trennung"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:87
|
||||
msgid "Bookmarklet"
|
||||
msgstr "Bookmarklet"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:91
|
||||
msgid ""
|
||||
"Thanks to the bookmarklet, you will be able to easily add a link to your "
|
||||
"poche."
|
||||
msgid "Poching a link"
|
||||
msgstr ""
|
||||
"Mit dem Bookmarklet, können Sie ganz einfach einen Link in Poche hinzufügen."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:93
|
||||
msgid "Have a look to this documentation:"
|
||||
msgstr "Werfen Sie einen Blick in die Dokumentation:"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:97
|
||||
msgid "Drag & drop this link to your bookmarks bar and have fun with poche."
|
||||
msgid "read the documentation"
|
||||
msgstr ""
|
||||
|
||||
msgid "by filling this field"
|
||||
msgstr ""
|
||||
"Ziehen / Ablegen Sie diesen Link in die Lesezeichenleiste Ihres Browsers und "
|
||||
"genießen Sie mit Poche."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:103
|
||||
msgid "poche it!"
|
||||
msgstr "Pochert es!"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:108
|
||||
msgid "Updating poche"
|
||||
msgstr "Poche aktualisieren "
|
||||
msgstr "Poche aktualisieren"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:113
|
||||
msgid "your version"
|
||||
msgstr "Ihre Version"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:119
|
||||
msgid "latest stable version"
|
||||
msgstr "letzte stabile Version"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:125
|
||||
msgid "a more recent stable version is available."
|
||||
msgstr "eine neuere stabile Version ist verfügbar."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:128
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:142
|
||||
msgid "you are up to date."
|
||||
msgstr "Sie sind auf den neuesten Stand."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:133
|
||||
msgid "latest dev version"
|
||||
msgstr "letzte Entwicklungsversion"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:139
|
||||
msgid "a more recent development version is available."
|
||||
msgstr "eine neuere Entwicklungsversion ist verfügbar."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:150
|
||||
msgid "Change your password"
|
||||
msgstr "Ihr Passwort ändern"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:157
|
||||
msgid "New password:"
|
||||
msgstr "Neues Passwort:"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:161
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:171
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:60
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:68
|
||||
msgid "Password"
|
||||
msgstr "Passwort"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:167
|
||||
msgid "Repeat your new password:"
|
||||
msgstr "neues Passwort wiederholen:"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:177
|
||||
msgid "Update"
|
||||
msgstr "Aktualisieren"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:193
|
||||
msgid "Import"
|
||||
msgstr "Import"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:197
|
||||
msgid "Please execute the import script locally, it can take a very long time."
|
||||
msgstr ""
|
||||
"Wir danken Ihnen, den Import in lokal zu ausführen, kann es einige Zeit "
|
||||
"dauern."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:201
|
||||
msgid "More infos in the official doc:"
|
||||
msgstr "Mehr Informationen auf der offiziellen Dokumentation:"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:206
|
||||
msgid "import from Pocket"
|
||||
msgstr "Der Import aus Pocket ist abgeschlossen."
|
||||
msgstr "import aus Pocket"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:210
|
||||
msgid "import from Readability"
|
||||
msgstr "Der Import aus Readability ist abgeschlossen."
|
||||
msgstr "import aus Readability"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:214
|
||||
msgid "import from Instapaper"
|
||||
msgstr "Import aus Instapaper"
|
||||
msgstr "import aus Instapaper"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:220
|
||||
msgid "Export your poche datas"
|
||||
msgstr "Exportieren Sie Ihre Daten aus Poche."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:224
|
||||
msgid "Click here"
|
||||
msgstr "klicken Sie hier"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:226
|
||||
msgid "to export your poche datas."
|
||||
msgstr "um Ihre Daten aus Poche zu exportieren."
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:46
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:139
|
||||
#: /var/www/poche-i18n/cache/30/97/b548692380c89d047a16cec7af79.php:22
|
||||
msgid "back to home"
|
||||
msgstr "züruck zur Hauptseite"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:50
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:147
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:119
|
||||
msgid "toggle mark as read"
|
||||
msgstr "als gelesen markieren"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:60
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:157
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:129
|
||||
msgid "toggle favorite"
|
||||
msgstr "Favorit"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:70
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:167
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:139
|
||||
msgid "delete"
|
||||
msgstr "löschen"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:82
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:179
|
||||
msgid "tweet"
|
||||
msgstr "twittern"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:93
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:190
|
||||
msgid "email"
|
||||
msgstr "senden per E-Mail"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:109
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:125
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:153
|
||||
msgid "original"
|
||||
msgstr "Original"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:143
|
||||
msgid "back to top"
|
||||
msgstr "zurück nach oben"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:198
|
||||
msgid "this article appears wrong?"
|
||||
msgstr "dieser Artikel erscheint falsch?"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:200
|
||||
msgid "create an issue"
|
||||
msgstr "ein Ticket erstellen"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:202
|
||||
msgid "or"
|
||||
msgstr "oder"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:206
|
||||
msgid "contact us by mail"
|
||||
msgstr "kontaktieren Sie uns per E-Mail"
|
||||
|
||||
#: /var/www/poche-i18n/cache/88/8a/ee3b7080c13204391c14947a0c2c.php:22
|
||||
msgid "powered by"
|
||||
msgstr "bereitgestellt von"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:31
|
||||
msgid "installation"
|
||||
msgstr "Installierung"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:42
|
||||
msgid "install your poche"
|
||||
msgstr "installieren Sie Poche"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:47
|
||||
msgid ""
|
||||
"poche is still not installed. Please fill the below form to install it. "
|
||||
"Don't hesitate to <a href='http://inthepoche.com/?pages/Documentation'>read "
|
||||
"the documentation on poche website</a>."
|
||||
"Don't hesitate to <a href='http://inthepoche.com/doc'>read the documentation "
|
||||
"on poche website</a>."
|
||||
msgstr ""
|
||||
"Poche ist noch nicht installiert. Wir danken Ihnen, die Felder unten zu "
|
||||
"befüllen, um es zu machen. Zögern sie nicht, <a href='http://inthepoche.com/?"
|
||||
"pages/Documentation'> die Dokumentation auf der Website von Poche zu lesen."
|
||||
"befüllen, um es zu machen. Zögern sie nicht, <a href='http://inthepoche.com/"
|
||||
"doc'>die Dokumentation auf der Website von Poche zu lesen."
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:53
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:55
|
||||
msgid "Login"
|
||||
msgstr "Benutzername"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:67
|
||||
msgid "Repeat your password"
|
||||
msgstr "Wiederholen Sie Ihr Passwort"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:74
|
||||
msgid "Install"
|
||||
msgstr "Installieren"
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:31
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:42
|
||||
msgid "login to your poche"
|
||||
msgstr "Verbinden zu Poche"
|
||||
msgid "back to top"
|
||||
msgstr "zurück nach oben"
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:48
|
||||
msgid "you are in demo mode, some features may be disabled."
|
||||
msgstr "Sie sind im Demomodus, können einige Funktionen deaktiviert werden."
|
||||
msgid "favoris"
|
||||
msgstr ""
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:80
|
||||
msgid "Stay signed in"
|
||||
msgstr "bleiben Sie verbunden"
|
||||
msgid "archive"
|
||||
msgstr "Archive"
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:86
|
||||
msgid "(Do not check on public computers)"
|
||||
msgstr "(nicht auf einem öffentlichen Computer überprüfen)"
|
||||
msgid "unread"
|
||||
msgstr ""
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:93
|
||||
msgid "Sign in"
|
||||
msgstr "Einloggen"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:55
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:57
|
||||
msgid "by date asc"
|
||||
msgstr "nach Datum asc"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:59
|
||||
msgid "by date"
|
||||
msgstr "nach Datum"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:65
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:67
|
||||
msgid "by date desc"
|
||||
msgstr "nach Datum desc"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:75
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:77
|
||||
msgid "by title asc"
|
||||
msgstr "nach Titel asc"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:79
|
||||
msgid "by title"
|
||||
msgstr "nach Titel"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:85
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:87
|
||||
msgid "by title desc"
|
||||
msgstr "nach Titel desc"
|
||||
|
||||
#~ msgid "Please choose between Pocket & Readabilty :"
|
||||
#~ msgstr "Merci de choisir entre Pocket & Readability :"
|
||||
msgid "No link available here!"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Bye bye Pocket, let's go !"
|
||||
#~ msgstr "Bye bye Pocket, en route !"
|
||||
msgid "toggle mark as read"
|
||||
msgstr "als gelesen markieren"
|
||||
|
||||
#~ msgid "Bye bye Readability, let's go !"
|
||||
#~ msgstr "Bye bye Readability, en route !"
|
||||
msgid "toggle favorite"
|
||||
msgstr "Favorit"
|
||||
|
||||
#~ msgid "Welcome to poche !"
|
||||
#~ msgstr "Bienvenue dans poche !"
|
||||
msgid "delete"
|
||||
msgstr "löschen"
|
||||
|
||||
#~ msgid "Error with the import."
|
||||
#~ msgstr "Erreur durant l'import."
|
||||
msgid "original"
|
||||
msgstr "Original"
|
||||
|
||||
#~ msgid "Wrong token."
|
||||
#~ msgstr "Mauvais jeton."
|
||||
msgid "results"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "Login failed !"
|
||||
#~ msgstr "Connexion échouée."
|
||||
msgid "tweet"
|
||||
msgstr "twittern"
|
||||
|
||||
#~ msgid "your password has been updated"
|
||||
#~ msgstr "Votre mot de passe a été mis à jour. "
|
||||
msgid "email"
|
||||
msgstr "senden per E-Mail"
|
||||
|
||||
#~ msgid "in demo mode, you can't update password"
|
||||
#~ msgstr "En mode démo, le mot de passe ne peut être modifié."
|
||||
msgid "shaarli"
|
||||
msgstr "shaarli"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "your password can't be empty and you have to repeat it in the second field"
|
||||
#~ msgstr ""
|
||||
#~ "Votre mot de passe ne peut être vide et vous devez le répéter dans le "
|
||||
#~ "second champ."
|
||||
msgid "flattr"
|
||||
msgstr "flattr"
|
||||
|
||||
#~ msgid "error during url preparation : the link wasn't added"
|
||||
#~ msgstr "erreur durant l'insertion : le lien n'a pas été ajouté"
|
||||
msgid "this article appears wrong?"
|
||||
msgstr "dieser Artikel erscheint falsch?"
|
||||
|
||||
#~ msgid "error during url preparation : the link is not valid"
|
||||
#~ msgstr "erreur durant la préparation de l'URL : le lien n'est pas valide"
|
||||
msgid "create an issue"
|
||||
msgstr "ein Ticket erstellen"
|
||||
|
||||
#~ msgid "TEST"
|
||||
#~ msgstr "NICOLAS"
|
||||
msgid "or"
|
||||
msgstr "oder"
|
||||
|
||||
msgid "contact us by mail"
|
||||
msgstr "kontaktieren Sie uns per E-Mail"
|
||||
|
||||
msgid "plop"
|
||||
msgstr "plop"
|
||||
|
||||
msgid "home"
|
||||
msgstr "Hause"
|
||||
|
||||
msgid "favorites"
|
||||
msgstr "Favoriten"
|
||||
|
||||
msgid "logout"
|
||||
msgstr "Trennung"
|
||||
|
||||
msgid "powered by"
|
||||
msgstr "bereitgestellt von"
|
||||
|
||||
msgid "debug mode is on so cache is off."
|
||||
msgstr ""
|
||||
|
||||
msgid "your poche version:"
|
||||
msgstr ""
|
||||
|
||||
msgid "storage:"
|
||||
msgstr ""
|
||||
|
||||
msgid "login to your poche"
|
||||
msgstr "Verbinden zu Poche"
|
||||
|
||||
msgid "you are in demo mode, some features may be disabled."
|
||||
msgstr "Sie sind im Demomodus, können einige Funktionen deaktiviert werden."
|
||||
|
||||
msgid "Stay signed in"
|
||||
msgstr "bleiben Sie verbunden"
|
||||
|
||||
msgid "(Do not check on public computers)"
|
||||
msgstr "(nicht auf einem öffentlichen Computer überprüfen)"
|
||||
|
||||
msgid "Sign in"
|
||||
msgstr "Einloggen"
|
||||
|
||||
BIN
locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.mo
Normal file
228
locale/en_EN.utf8/LC_MESSAGES/en_EN.utf8.po
Normal file
@ -0,0 +1,228 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Nicolas Lœuillet <nicolas.loeuillet@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.5.4\n"
|
||||
|
||||
msgid "config"
|
||||
msgstr "config"
|
||||
|
||||
msgid "Poching a link"
|
||||
msgstr "Poching a link"
|
||||
|
||||
msgid "read the documentation"
|
||||
msgstr "read the documentation"
|
||||
|
||||
msgid "by filling this field"
|
||||
msgstr "by filling this field"
|
||||
|
||||
msgid "poche it!"
|
||||
msgstr "poche it!"
|
||||
|
||||
msgid "Updating poche"
|
||||
msgstr "Updating poche"
|
||||
|
||||
msgid "your version"
|
||||
msgstr "your version"
|
||||
|
||||
msgid "latest stable version"
|
||||
msgstr "latest stable version"
|
||||
|
||||
msgid "a more recent stable version is available."
|
||||
msgstr "a more recent stable version is available."
|
||||
|
||||
msgid "you are up to date."
|
||||
msgstr "you are up to date."
|
||||
|
||||
msgid "latest dev version"
|
||||
msgstr "latest dev version"
|
||||
|
||||
msgid "a more recent development version is available."
|
||||
msgstr "a more recent development version is available."
|
||||
|
||||
msgid "Change your password"
|
||||
msgstr "Change your password"
|
||||
|
||||
msgid "New password:"
|
||||
msgstr "New password:"
|
||||
|
||||
msgid "Password"
|
||||
msgstr "Password"
|
||||
|
||||
msgid "Repeat your new password:"
|
||||
msgstr "Repeat your new password:"
|
||||
|
||||
msgid "Update"
|
||||
msgstr "Update"
|
||||
|
||||
msgid "Import"
|
||||
msgstr "Import"
|
||||
|
||||
msgid "Please execute the import script locally, it can take a very long time."
|
||||
msgstr ""
|
||||
"Please execute the import script locally, it can take a very long time."
|
||||
|
||||
msgid "More infos in the official doc:"
|
||||
msgstr "More infos in the official doc:"
|
||||
|
||||
msgid "import from Pocket"
|
||||
msgstr "import from Pocket"
|
||||
|
||||
msgid "import from Readability"
|
||||
msgstr "import from Readability"
|
||||
|
||||
msgid "import from Instapaper"
|
||||
msgstr "import from Instapaper"
|
||||
|
||||
msgid "Export your poche datas"
|
||||
msgstr "Export your poche datas"
|
||||
|
||||
msgid "Click here"
|
||||
msgstr "Click here"
|
||||
|
||||
msgid "to export your poche datas."
|
||||
msgstr "to export your poche datas."
|
||||
|
||||
msgid "back to home"
|
||||
msgstr "back to home"
|
||||
|
||||
msgid "installation"
|
||||
msgstr "installation"
|
||||
|
||||
msgid "install your poche"
|
||||
msgstr "install your poche"
|
||||
|
||||
msgid ""
|
||||
"poche is still not installed. Please fill the below form to install it. "
|
||||
"Don't hesitate to <a href='http://inthepoche.com/doc'>read the documentation "
|
||||
"on poche website</a>."
|
||||
msgstr ""
|
||||
"poche is still not installed. Please fill the below form to install it. "
|
||||
"Don't hesitate to <a href='http://inthepoche.com/doc'>read the documentation "
|
||||
"on poche website</a>."
|
||||
|
||||
msgid "Login"
|
||||
msgstr "Login"
|
||||
|
||||
msgid "Repeat your password"
|
||||
msgstr "Repeat your password"
|
||||
|
||||
msgid "Install"
|
||||
msgstr "Install"
|
||||
|
||||
msgid "back to top"
|
||||
msgstr "back to top"
|
||||
|
||||
msgid "favoris"
|
||||
msgstr "favoris"
|
||||
|
||||
msgid "archive"
|
||||
msgstr "archive"
|
||||
|
||||
msgid "unread"
|
||||
msgstr "unread"
|
||||
|
||||
msgid "by date asc"
|
||||
msgstr "by date asc"
|
||||
|
||||
msgid "by date"
|
||||
msgstr "by date"
|
||||
|
||||
msgid "by date desc"
|
||||
msgstr "by date desc"
|
||||
|
||||
msgid "by title asc"
|
||||
msgstr "by title asc"
|
||||
|
||||
msgid "by title"
|
||||
msgstr "by title"
|
||||
|
||||
msgid "by title desc"
|
||||
msgstr "by title desc"
|
||||
|
||||
msgid "No link available here!"
|
||||
msgstr "No link available here!"
|
||||
|
||||
msgid "toggle mark as read"
|
||||
msgstr "toggle mark as read"
|
||||
|
||||
msgid "toggle favorite"
|
||||
msgstr "toggle favorite"
|
||||
|
||||
msgid "delete"
|
||||
msgstr "delete"
|
||||
|
||||
msgid "original"
|
||||
msgstr "original"
|
||||
|
||||
msgid "results"
|
||||
msgstr "results"
|
||||
|
||||
msgid "tweet"
|
||||
msgstr "tweet"
|
||||
|
||||
msgid "email"
|
||||
msgstr "email"
|
||||
|
||||
msgid "shaarli"
|
||||
msgstr "shaarli"
|
||||
|
||||
msgid "flattr"
|
||||
msgstr "flattr"
|
||||
|
||||
msgid "this article appears wrong?"
|
||||
msgstr "this article appears wrong?"
|
||||
|
||||
msgid "create an issue"
|
||||
msgstr "create an issue"
|
||||
|
||||
msgid "or"
|
||||
msgstr "or"
|
||||
|
||||
msgid "contact us by mail"
|
||||
msgstr "contact us by mail"
|
||||
|
||||
msgid "plop"
|
||||
msgstr "plop"
|
||||
|
||||
msgid "home"
|
||||
msgstr "home"
|
||||
|
||||
msgid "favorites"
|
||||
msgstr "favorites"
|
||||
|
||||
msgid "logout"
|
||||
msgstr "logout"
|
||||
|
||||
msgid "powered by"
|
||||
msgstr "powered by"
|
||||
|
||||
msgid "debug mode is on so cache is off."
|
||||
msgstr "debug mode is on so cache is off."
|
||||
|
||||
msgid "your poche version:"
|
||||
msgstr "your poche version:"
|
||||
|
||||
msgid "storage:"
|
||||
msgstr "storage:"
|
||||
|
||||
msgid "login to your poche"
|
||||
msgstr "login to your poche"
|
||||
|
||||
msgid "you are in demo mode, some features may be disabled."
|
||||
msgstr "you are in demo mode, some features may be disabled."
|
||||
|
||||
msgid "Stay signed in"
|
||||
msgstr "Stay signed in"
|
||||
|
||||
msgid "(Do not check on public computers)"
|
||||
msgstr "(Do not check on public computers)"
|
||||
|
||||
msgid "Sign in"
|
||||
msgstr "Sign in"
|
||||
@ -1,382 +1,230 @@
|
||||
#
|
||||
# Translators:
|
||||
# Nitche <nicolas.canseco@gmail.com>, 2013
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: poche\n"
|
||||
"POT-Creation-Date: 2013-08-06 08:35+0100\n"
|
||||
"PO-Revision-Date: 2013-08-16 19:09+0100\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Nicolas Lœuillet <nicolas.loeuillet@gmail.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/projects/p/poche/language/"
|
||||
"es/)\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: es\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
"X-Generator: Poedit 1.5.4\n"
|
||||
"X-Poedit-Basepath: /\n"
|
||||
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-SearchPath-0: /var/www/poche-i18n\n"
|
||||
|
||||
#: /var/www/poche-i18n/index.php:43
|
||||
msgid "poche, a read it later open source system"
|
||||
msgstr "poche, a read it later open source system"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:101
|
||||
msgid "the link has been added successfully"
|
||||
msgstr "el enlace a sido agregado con éxito"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:104
|
||||
msgid "error during insertion : the link wasn't added"
|
||||
msgstr "error en la inserción : el enlace no ha sido agregado"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:109
|
||||
msgid "error during fetching content : the link wasn't added"
|
||||
msgstr ""
|
||||
"error durante la recuperación del contenido : el enlace no a sido agregado"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:119
|
||||
msgid "the link has been deleted successfully"
|
||||
msgstr "el enlace a sido suprimido con éxito"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:123
|
||||
msgid "the link wasn't deleted"
|
||||
msgstr "el enlace no ha sido suprimido"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Tools.class.php:18
|
||||
msgid "Oops, it seems you don't have PHP 5."
|
||||
msgstr "Parece que PHP 5 no está instalado"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:32
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:70
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:50
|
||||
msgid "config"
|
||||
msgstr "configuración"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:46
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:31
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:26
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:34
|
||||
msgid "home"
|
||||
msgstr "inicio"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:54
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:34
|
||||
msgid "favorites"
|
||||
msgstr "favoritos"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:62
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:42
|
||||
msgid "archive"
|
||||
msgstr "archivos"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:74
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:76
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:54
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:56
|
||||
msgid "logout"
|
||||
msgstr "desconexión "
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:87
|
||||
msgid "Bookmarklet"
|
||||
msgstr "Bookmarklet"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:91
|
||||
msgid ""
|
||||
"Thanks to the bookmarklet, you will be able to easily add a link to your "
|
||||
"poche."
|
||||
msgid "Poching a link"
|
||||
msgstr ""
|
||||
"Gracias a tu bookmarklet, puedes agregar fácilmente un enlace en tu bolsillo"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:93
|
||||
msgid "Have a look to this documentation:"
|
||||
msgstr "échale un ojo a la documentación :"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:97
|
||||
msgid "Drag & drop this link to your bookmarks bar and have fun with poche."
|
||||
msgid "read the documentation"
|
||||
msgstr ""
|
||||
|
||||
msgid "by filling this field"
|
||||
msgstr ""
|
||||
"Arrastra y suelta ese enlace en tu barra de favoritos en tu navegador y "
|
||||
"disfruta de tu poche."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:103
|
||||
msgid "poche it!"
|
||||
msgstr "pochéalo!"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:108
|
||||
msgid "Updating poche"
|
||||
msgstr "Actualizar"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:113
|
||||
msgid "your version"
|
||||
msgstr "su versión"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:119
|
||||
msgid "latest stable version"
|
||||
msgstr "ultima versión estable"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:125
|
||||
msgid "a more recent stable version is available."
|
||||
msgstr "una versión estable más reciente está disponible"
|
||||
msgstr "una versión estable más reciente está disponible."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:128
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:142
|
||||
msgid "you are up to date."
|
||||
msgstr "estás al día"
|
||||
msgstr "estás al día."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:133
|
||||
msgid "latest dev version"
|
||||
msgstr "ultima versión de desarollo"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:139
|
||||
msgid "a more recent development version is available."
|
||||
msgstr "una versión de desarollo más reciente está disponible"
|
||||
msgstr "una versión de desarollo más reciente está disponible."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:150
|
||||
msgid "Change your password"
|
||||
msgstr "Modificar tu contraseña"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:157
|
||||
msgid "New password:"
|
||||
msgstr "Nueva contraseña :"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:161
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:171
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:60
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:68
|
||||
msgid "Password"
|
||||
msgstr "Contraseña"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:167
|
||||
msgid "Repeat your new password:"
|
||||
msgstr "Repetir la nueva contraseña :"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:177
|
||||
msgid "Update"
|
||||
msgstr "Poner al día"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:193
|
||||
msgid "Import"
|
||||
msgstr "Importar"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:197
|
||||
msgid "Please execute the import script locally, it can take a very long time."
|
||||
msgstr ""
|
||||
"Gracias por ejecutar la importación en local, esto puede demorar un tiempo"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:201
|
||||
msgid "More infos in the official doc:"
|
||||
msgstr "Más información en la documentación oficial :"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:206
|
||||
msgid "import from Pocket"
|
||||
msgstr "la importación desde Pocket está terminada"
|
||||
msgstr "importación desde Pocket"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:210
|
||||
msgid "import from Readability"
|
||||
msgstr "la importación desde Readability está terminada"
|
||||
msgstr "importación desde Readability"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:214
|
||||
msgid "import from Instapaper"
|
||||
msgstr "Importar desde Instapaper"
|
||||
msgstr "importación desde Instapaper"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:220
|
||||
msgid "Export your poche datas"
|
||||
msgstr "Exportar sus datos de poche"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:224
|
||||
msgid "Click here"
|
||||
msgstr "Haga clic aquí"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:226
|
||||
msgid "to export your poche datas."
|
||||
msgstr "Para exportar sus datos de poche"
|
||||
msgstr "para exportar sus datos de poche."
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:46
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:139
|
||||
#: /var/www/poche-i18n/cache/30/97/b548692380c89d047a16cec7af79.php:22
|
||||
msgid "back to home"
|
||||
msgstr "volver a la pagina de inicio"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:50
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:147
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:119
|
||||
msgid "toggle mark as read"
|
||||
msgstr "marcar como leído"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:60
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:157
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:129
|
||||
msgid "toggle favorite"
|
||||
msgstr "favorito"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:70
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:167
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:139
|
||||
msgid "delete"
|
||||
msgstr "suprimir"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:82
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:179
|
||||
msgid "tweet"
|
||||
msgstr "tweetear"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:93
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:190
|
||||
msgid "email"
|
||||
msgstr "enviar por mail"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:109
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:125
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:153
|
||||
msgid "original"
|
||||
msgstr "original"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:143
|
||||
msgid "back to top"
|
||||
msgstr "volver arriba"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:198
|
||||
msgid "this article appears wrong?"
|
||||
msgstr "este articulo no se ve bien ?"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:200
|
||||
msgid "create an issue"
|
||||
msgstr "crear un ticket"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:202
|
||||
msgid "or"
|
||||
msgstr "o"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:206
|
||||
msgid "contact us by mail"
|
||||
msgstr "contactarnos por mail"
|
||||
|
||||
#: /var/www/poche-i18n/cache/88/8a/ee3b7080c13204391c14947a0c2c.php:22
|
||||
msgid "powered by"
|
||||
msgstr "propulsado por"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:31
|
||||
msgid "installation"
|
||||
msgstr "instalacion"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:42
|
||||
msgid "install your poche"
|
||||
msgstr "instala tu poche"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:47
|
||||
msgid ""
|
||||
"poche is still not installed. Please fill the below form to install it. "
|
||||
"Don't hesitate to <a href='http://inthepoche.com/?pages/Documentation'>read "
|
||||
"the documentation on poche website</a>."
|
||||
"Don't hesitate to <a href='http://inthepoche.com/doc'>read the documentation "
|
||||
"on poche website</a>."
|
||||
msgstr ""
|
||||
"poche todavia no està instalado. Gracias de llenar los campos siguientes "
|
||||
"para instalarlo. No dudes de <a href='http://inthepoche.com/?pages/"
|
||||
"Documentation'>leer la documentacion en el sitio de poche</a>."
|
||||
"para instalarlo. No dudes de <a href='http://inthepoche.com/doc'>leer la "
|
||||
"documentacion en el sitio de poche</a>."
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:53
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:55
|
||||
msgid "Login"
|
||||
msgstr "Nombre de usuario"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:67
|
||||
msgid "Repeat your password"
|
||||
msgstr "repita su contraseña"
|
||||
msgstr "Repita su contraseña"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:74
|
||||
msgid "Install"
|
||||
msgstr "Instalar"
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:31
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:42
|
||||
msgid "back to top"
|
||||
msgstr "volver arriba"
|
||||
|
||||
msgid "favoris"
|
||||
msgstr ""
|
||||
|
||||
msgid "archive"
|
||||
msgstr "archivos"
|
||||
|
||||
msgid "unread"
|
||||
msgstr ""
|
||||
|
||||
msgid "by date asc"
|
||||
msgstr "por fecha ascendiente"
|
||||
|
||||
msgid "by date"
|
||||
msgstr "por fecha"
|
||||
|
||||
msgid "by date desc"
|
||||
msgstr "por fecha descendiente"
|
||||
|
||||
msgid "by title asc"
|
||||
msgstr "por titulo ascendiente"
|
||||
|
||||
msgid "by title"
|
||||
msgstr "por fecha"
|
||||
|
||||
msgid "by title desc"
|
||||
msgstr "por fecha descendiente"
|
||||
|
||||
msgid "No link available here!"
|
||||
msgstr ""
|
||||
|
||||
msgid "toggle mark as read"
|
||||
msgstr "marcar como leído"
|
||||
|
||||
msgid "toggle favorite"
|
||||
msgstr "favorito"
|
||||
|
||||
msgid "delete"
|
||||
msgstr "suprimir"
|
||||
|
||||
msgid "original"
|
||||
msgstr "original"
|
||||
|
||||
msgid "results"
|
||||
msgstr ""
|
||||
|
||||
msgid "tweet"
|
||||
msgstr "tweetear"
|
||||
|
||||
msgid "email"
|
||||
msgstr "enviar por mail"
|
||||
|
||||
msgid "shaarli"
|
||||
msgstr "shaarli"
|
||||
|
||||
msgid "flattr"
|
||||
msgstr "flattr"
|
||||
|
||||
msgid "this article appears wrong?"
|
||||
msgstr "este articulo no se ve bien ?"
|
||||
|
||||
msgid "create an issue"
|
||||
msgstr "crear un ticket"
|
||||
|
||||
msgid "or"
|
||||
msgstr "o"
|
||||
|
||||
msgid "contact us by mail"
|
||||
msgstr "contactarnos por mail"
|
||||
|
||||
msgid "plop"
|
||||
msgstr "plop"
|
||||
|
||||
msgid "home"
|
||||
msgstr "inicio"
|
||||
|
||||
msgid "favorites"
|
||||
msgstr "favoritos"
|
||||
|
||||
msgid "logout"
|
||||
msgstr "desconexión"
|
||||
|
||||
msgid "powered by"
|
||||
msgstr "propulsado por"
|
||||
|
||||
msgid "debug mode is on so cache is off."
|
||||
msgstr ""
|
||||
|
||||
msgid "your poche version:"
|
||||
msgstr ""
|
||||
|
||||
msgid "storage:"
|
||||
msgstr ""
|
||||
|
||||
msgid "login to your poche"
|
||||
msgstr "conectarse a tu poche"
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:48
|
||||
msgid "you are in demo mode, some features may be disabled."
|
||||
msgstr ""
|
||||
"este es el modo de demostración, algunas funcionalidades pueden estar "
|
||||
"desactivadas."
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:80
|
||||
msgid "Stay signed in"
|
||||
msgstr "seguir conectado"
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:86
|
||||
msgid "(Do not check on public computers)"
|
||||
msgstr "(no marcar en un ordenador publico)"
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:93
|
||||
msgid "Sign in"
|
||||
msgstr "conectarse"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:55
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:57
|
||||
msgid "by date asc"
|
||||
msgstr "por fecha ascendiente"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:59
|
||||
msgid "by date"
|
||||
msgstr "por fecha"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:65
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:67
|
||||
msgid "by date desc"
|
||||
msgstr "por fecha descendiente"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:75
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:77
|
||||
msgid "by title asc"
|
||||
msgstr "por titulo ascendiente"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:79
|
||||
msgid "by title"
|
||||
msgstr "por titulo"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:85
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:87
|
||||
msgid "by title desc"
|
||||
msgstr "por titulo descendiente"
|
||||
|
||||
#~ msgid "Please choose between Pocket & Readabilty :"
|
||||
#~ msgstr "Merci de choisir entre Pocket & Readability :"
|
||||
|
||||
#~ msgid "Bye bye Pocket, let's go !"
|
||||
#~ msgstr "Bye bye Pocket, en route !"
|
||||
|
||||
#~ msgid "Bye bye Readability, let's go !"
|
||||
#~ msgstr "Bye bye Readability, en route !"
|
||||
|
||||
#~ msgid "Welcome to poche !"
|
||||
#~ msgstr "Bienvenue dans poche !"
|
||||
|
||||
#~ msgid "Error with the import."
|
||||
#~ msgstr "Erreur durant l'import."
|
||||
|
||||
#~ msgid "Wrong token."
|
||||
#~ msgstr "Mauvais jeton."
|
||||
|
||||
#~ msgid "Login failed !"
|
||||
#~ msgstr "Connexion échouée."
|
||||
|
||||
#~ msgid "your password has been updated"
|
||||
#~ msgstr "Votre mot de passe a été mis à jour. "
|
||||
|
||||
#~ msgid "in demo mode, you can't update password"
|
||||
#~ msgstr "En mode démo, le mot de passe ne peut être modifié."
|
||||
|
||||
#~ msgid ""
|
||||
#~ "your password can't be empty and you have to repeat it in the second field"
|
||||
#~ msgstr ""
|
||||
#~ "Votre mot de passe ne peut être vide et vous devez le répéter dans le "
|
||||
#~ "second champ."
|
||||
|
||||
#~ msgid "error during url preparation : the link wasn't added"
|
||||
#~ msgstr "erreur durant l'insertion : le lien n'a pas été ajouté"
|
||||
|
||||
#~ msgid "error during url preparation : the link is not valid"
|
||||
#~ msgstr "erreur durant la préparation de l'URL : le lien n'est pas valide"
|
||||
|
||||
#~ msgid "TEST"
|
||||
#~ msgstr "NICOLAS"
|
||||
|
||||
@ -1,376 +1,228 @@
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: poche\n"
|
||||
"POT-Creation-Date: 2013-08-06 08:35+0100\n"
|
||||
"PO-Revision-Date: 2013-08-24 10:25+0100\n"
|
||||
"Last-Translator: Eric R (NumEricR)\n"
|
||||
"Language-Team: poche <support@inthepoche.com>\n"
|
||||
"Language: Français\n"
|
||||
"Project-Id-Version: \n"
|
||||
"POT-Creation-Date: \n"
|
||||
"PO-Revision-Date: \n"
|
||||
"Last-Translator: Nicolas Lœuillet <nicolas.loeuillet@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Generator: Poedit 1.5.7\n"
|
||||
"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
|
||||
"X-Poedit-Basepath: /\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"X-Poedit-SourceCharset: UTF-8\n"
|
||||
"X-Poedit-SearchPath-0: /var/www/poche-i18n\n"
|
||||
"X-Generator: Poedit 1.5.4\n"
|
||||
|
||||
#: /var/www/poche-i18n/index.php:43
|
||||
msgid "poche, a read it later open source system"
|
||||
msgstr "poche, a read it later open source system"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:101
|
||||
msgid "the link has been added successfully"
|
||||
msgstr "le lien a été ajouté avec succès"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:104
|
||||
msgid "error during insertion : the link wasn't added"
|
||||
msgstr "erreur durant l'insertion : le lien n'a pas été ajouté"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:109
|
||||
msgid "error during fetching content : the link wasn't added"
|
||||
msgstr "erreur durant la récupération du contenu : le lien n'a pas été ajouté"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:119
|
||||
msgid "the link has been deleted successfully"
|
||||
msgstr "le lien a été supprimé avec succès"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Poche.class.php:123
|
||||
msgid "the link wasn't deleted"
|
||||
msgstr "le lien n'a pas été supprimé"
|
||||
|
||||
#: /var/www/poche-i18n/inc/poche/Tools.class.php:18
|
||||
msgid "Oops, it seems you don't have PHP 5."
|
||||
msgstr "Oups, il semblerait que PHP 5 ne soit pas installé. "
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:32
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:70
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:50
|
||||
msgid "config"
|
||||
msgstr "config"
|
||||
msgstr "configuration"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:46
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:31
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:26
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:34
|
||||
msgid "home"
|
||||
msgstr "accueil"
|
||||
msgid "Poching a link"
|
||||
msgstr "Pocher un lien"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:54
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:34
|
||||
msgid "favorites"
|
||||
msgstr "favoris"
|
||||
msgid "read the documentation"
|
||||
msgstr "lisez la documentation"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:62
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:42
|
||||
msgid "archive"
|
||||
msgstr "archives"
|
||||
msgid "by filling this field"
|
||||
msgstr "en remplissant ce champ"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:74
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:76
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:54
|
||||
#: /var/www/poche-i18n/cache/76/a4/e7c21f2e0ba29104fc654cd8ba41.php:56
|
||||
msgid "logout"
|
||||
msgstr "déconnexion"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:87
|
||||
msgid "Bookmarklet"
|
||||
msgstr "Bookmarklet"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:91
|
||||
msgid ""
|
||||
"Thanks to the bookmarklet, you will be able to easily add a link to your "
|
||||
"poche."
|
||||
msgstr ""
|
||||
"Grâce au bookmarklet, vous pouvez ajouter facilement un lien dans votre "
|
||||
"poche."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:93
|
||||
msgid "Have a look to this documentation:"
|
||||
msgstr "Jetez un œil à la documentation :"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:97
|
||||
msgid "Drag & drop this link to your bookmarks bar and have fun with poche."
|
||||
msgstr ""
|
||||
"Glissez / déposez ce lien dans votre barre de favoris de votre navigateur et "
|
||||
"prenez du bon temps avec poche."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:103
|
||||
msgid "poche it!"
|
||||
msgstr "poche-le !"
|
||||
msgstr "pochez-le !"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:108
|
||||
msgid "Updating poche"
|
||||
msgstr "Mettre à jour poche"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:113
|
||||
msgid "your version"
|
||||
msgstr "votre version"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:119
|
||||
msgid "latest stable version"
|
||||
msgstr "dernière version stable"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:125
|
||||
msgid "a more recent stable version is available."
|
||||
msgstr "une version stable plus récente est disponible."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:128
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:142
|
||||
msgid "you are up to date."
|
||||
msgstr "vous êtes à jour."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:133
|
||||
msgid "latest dev version"
|
||||
msgstr "dernière version de développement"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:139
|
||||
msgid "a more recent development version is available."
|
||||
msgstr "une version de développement plus récente est disponible."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:150
|
||||
msgid "Change your password"
|
||||
msgstr "Modifier votre mot de passe"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:157
|
||||
msgid "New password:"
|
||||
msgstr "Nouveau mot de passe :"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:161
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:171
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:60
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:68
|
||||
msgid "Password"
|
||||
msgstr "Mot de passe"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:167
|
||||
msgid "Repeat your new password:"
|
||||
msgstr "Répétez le nouveau mot de passe :"
|
||||
msgstr "Répétez votre nouveau mot de passe :"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:177
|
||||
msgid "Update"
|
||||
msgstr "Mettre à jour"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:193
|
||||
msgid "Import"
|
||||
msgstr "Import"
|
||||
msgstr "Importer"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:197
|
||||
msgid "Please execute the import script locally, it can take a very long time."
|
||||
msgstr "Merci d'exécuter l'import en local, cela peut prendre du temps. "
|
||||
msgstr "Merci d'exécuter l'import en local, cela peut prendre du temps."
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:201
|
||||
msgid "More infos in the official doc:"
|
||||
msgstr "Plus d'infos sur la documentation officielle :"
|
||||
msgstr "Plus d'infos sur la documentation officielle"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:206
|
||||
msgid "import from Pocket"
|
||||
msgstr "l'import depuis Pocket est terminé."
|
||||
msgstr "import depuis Pocket"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:210
|
||||
msgid "import from Readability"
|
||||
msgstr "l'import depuis Readability est terminé."
|
||||
msgstr "import depuis Readability"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:214
|
||||
msgid "import from Instapaper"
|
||||
msgstr "Import depuis Instapaper"
|
||||
msgstr "import depuis Instapaper"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:220
|
||||
msgid "Export your poche datas"
|
||||
msgstr "Exporter vos données de poche"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:224
|
||||
msgid "Click here"
|
||||
msgstr "Cliquez-ici"
|
||||
|
||||
#: /var/www/poche-i18n/cache/c9/b0/845a8dc93165e6c00b6b43068799.php:226
|
||||
msgid "to export your poche datas."
|
||||
msgstr "pour exporter vos données de poche."
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:46
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:139
|
||||
#: /var/www/poche-i18n/cache/30/97/b548692380c89d047a16cec7af79.php:22
|
||||
msgid "back to home"
|
||||
msgstr "retour à l'accueil"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:50
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:147
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:119
|
||||
msgid "toggle mark as read"
|
||||
msgstr "marquer comme lu"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:60
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:157
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:129
|
||||
msgid "toggle favorite"
|
||||
msgstr "favori"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:70
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:167
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:139
|
||||
msgid "delete"
|
||||
msgstr "supprimer"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:82
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:179
|
||||
msgid "tweet"
|
||||
msgstr "tweeter"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:93
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:190
|
||||
msgid "email"
|
||||
msgstr "envoyer par email"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:109
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:125
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:153
|
||||
msgid "original"
|
||||
msgstr "original"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:143
|
||||
msgid "back to top"
|
||||
msgstr "retour en haut de page"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:198
|
||||
msgid "this article appears wrong?"
|
||||
msgstr "cet article s'affiche mal ?"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:200
|
||||
msgid "create an issue"
|
||||
msgstr "créer un ticket"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:202
|
||||
msgid "or"
|
||||
msgstr "ou"
|
||||
|
||||
#: /var/www/poche-i18n/cache/7a/1e/68e6b4aec1301ae024cc85232e7c.php:206
|
||||
msgid "contact us by mail"
|
||||
msgstr "contactez-nous par email"
|
||||
|
||||
#: /var/www/poche-i18n/cache/88/8a/ee3b7080c13204391c14947a0c2c.php:22
|
||||
msgid "powered by"
|
||||
msgstr "propulsé par"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:31
|
||||
msgid "installation"
|
||||
msgstr "installation"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:42
|
||||
msgid "install your poche"
|
||||
msgstr "installez votre poche"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:47
|
||||
msgid ""
|
||||
"poche is still not installed. Please fill the below form to install it. "
|
||||
"Don't hesitate to <a href='http://inthepoche.com/?pages/Documentation'>read "
|
||||
"the documentation on poche website</a>."
|
||||
"Don't hesitate to <a href='http://inthepoche.com/doc'>read the documentation "
|
||||
"on poche website</a>."
|
||||
msgstr ""
|
||||
"poche n'est pas encore installé. Merci de remplir les champs ci-dessous pour "
|
||||
"l'installer. N'hésitez pas à <a href='http://inthepoche.com/?pages/"
|
||||
"Documentation'>lire la documentation sur le site de poche</a>."
|
||||
"poche n'est pas encore installé. Merci de remplir le formulaire suivant pour "
|
||||
"l'installer. N'hésitez pas à <a href='http://inthepoche.com/doc'>lire la "
|
||||
"documentation sur le site de poche</a>."
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:53
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:55
|
||||
msgid "Login"
|
||||
msgstr "Nom d'utilisateur"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:67
|
||||
msgid "Repeat your password"
|
||||
msgstr "Répétez votre mot de passe"
|
||||
|
||||
#: /var/www/poche-i18n/cache/d4/28/e0d08991ec2d8a7b133505e7c651.php:74
|
||||
msgid "Install"
|
||||
msgstr "Installer"
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:31
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:42
|
||||
msgid "login to your poche"
|
||||
msgstr "Se connecter à votre poche"
|
||||
msgid "back to top"
|
||||
msgstr "retour en haut de page"
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:48
|
||||
msgid "you are in demo mode, some features may be disabled."
|
||||
msgstr ""
|
||||
"vous êtes en mode démo, certaines fonctionnalités sont peut-être désactivées."
|
||||
msgid "favoris"
|
||||
msgstr "favoris"
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:80
|
||||
msgid "Stay signed in"
|
||||
msgstr "rester connecté"
|
||||
msgid "archive"
|
||||
msgstr "archive"
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:86
|
||||
msgid "(Do not check on public computers)"
|
||||
msgstr "(à ne pas cocher sur un ordinateur public)"
|
||||
msgid "unread"
|
||||
msgstr "non lus"
|
||||
|
||||
#: /var/www/poche-i18n/cache/ae/26/05eb67771213c16bd8c9aaf2d2c4.php:93
|
||||
msgid "Sign in"
|
||||
msgstr "Se connecter"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:55
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:57
|
||||
msgid "by date asc"
|
||||
msgstr "par date asc"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:59
|
||||
msgid "by date"
|
||||
msgstr "par date"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:65
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:67
|
||||
msgid "by date desc"
|
||||
msgstr "par date desc"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:75
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:77
|
||||
msgid "by title asc"
|
||||
msgstr "par titre asc"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:79
|
||||
msgid "by title"
|
||||
msgstr "par titre"
|
||||
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:85
|
||||
#: /var/www/poche-i18n/cache/dd/a8/530129765655dcde0a70a31a78b6.php:87
|
||||
msgid "by title desc"
|
||||
msgstr "par titre desc"
|
||||
|
||||
#~ msgid "Please choose between Pocket & Readabilty :"
|
||||
#~ msgstr "Merci de choisir entre Pocket & Readability :"
|
||||
msgid "No link available here!"
|
||||
msgstr "Aucun lien n'est disponible ici !"
|
||||
|
||||
#~ msgid "Bye bye Pocket, let's go !"
|
||||
#~ msgstr "Bye bye Pocket, en route !"
|
||||
msgid "toggle mark as read"
|
||||
msgstr "marquer comme lu / non lu"
|
||||
|
||||
#~ msgid "Bye bye Readability, let's go !"
|
||||
#~ msgstr "Bye bye Readability, en route !"
|
||||
msgid "toggle favorite"
|
||||
msgstr "marquer comme favori"
|
||||
|
||||
#~ msgid "Welcome to poche !"
|
||||
#~ msgstr "Bienvenue dans poche !"
|
||||
msgid "delete"
|
||||
msgstr "supprimer"
|
||||
|
||||
#~ msgid "Error with the import."
|
||||
#~ msgstr "Erreur durant l'import."
|
||||
msgid "original"
|
||||
msgstr "original"
|
||||
|
||||
#~ msgid "Wrong token."
|
||||
#~ msgstr "Mauvais jeton."
|
||||
msgid "results"
|
||||
msgstr "résultats"
|
||||
|
||||
#~ msgid "Login failed !"
|
||||
#~ msgstr "Connexion échouée."
|
||||
msgid "tweet"
|
||||
msgstr "tweet"
|
||||
|
||||
#~ msgid "your password has been updated"
|
||||
#~ msgstr "Votre mot de passe a été mis à jour. "
|
||||
msgid "email"
|
||||
msgstr "email"
|
||||
|
||||
#~ msgid "in demo mode, you can't update password"
|
||||
#~ msgstr "En mode démo, le mot de passe ne peut être modifié."
|
||||
msgid "shaarli"
|
||||
msgstr "shaarli"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "your password can't be empty and you have to repeat it in the second field"
|
||||
#~ msgstr ""
|
||||
#~ "Votre mot de passe ne peut être vide et vous devez le répéter dans le "
|
||||
#~ "second champ."
|
||||
msgid "flattr"
|
||||
msgstr "flattr"
|
||||
|
||||
#~ msgid "error during url preparation : the link wasn't added"
|
||||
#~ msgstr "erreur durant l'insertion : le lien n'a pas été ajouté"
|
||||
msgid "this article appears wrong?"
|
||||
msgstr "cet article s'affiche mal ?"
|
||||
|
||||
#~ msgid "error during url preparation : the link is not valid"
|
||||
#~ msgstr "erreur durant la préparation de l'URL : le lien n'est pas valide"
|
||||
msgid "create an issue"
|
||||
msgstr "créez un ticket"
|
||||
|
||||
#~ msgid "TEST"
|
||||
#~ msgstr "NICOLAS"
|
||||
msgid "or"
|
||||
msgstr "ou"
|
||||
|
||||
msgid "contact us by mail"
|
||||
msgstr "contactez-nous par email"
|
||||
|
||||
msgid "plop"
|
||||
msgstr "plop"
|
||||
|
||||
msgid "home"
|
||||
msgstr "accueil"
|
||||
|
||||
msgid "favorites"
|
||||
msgstr "favoris"
|
||||
|
||||
msgid "logout"
|
||||
msgstr "déconnexion"
|
||||
|
||||
msgid "powered by"
|
||||
msgstr "propulsé par"
|
||||
|
||||
msgid "debug mode is on so cache is off."
|
||||
msgstr "le mode de debug est actif, le cache est donc désactivé."
|
||||
|
||||
msgid "your poche version:"
|
||||
msgstr "votre version de poche :"
|
||||
|
||||
msgid "storage:"
|
||||
msgstr "stockage :"
|
||||
|
||||
msgid "login to your poche"
|
||||
msgstr "se connecter à votre poche"
|
||||
|
||||
msgid "you are in demo mode, some features may be disabled."
|
||||
msgstr ""
|
||||
"vous êtes en mode démo, certaines fonctionnalités peuvent être désactivées."
|
||||
|
||||
msgid "Stay signed in"
|
||||
msgstr "Rester connecté"
|
||||
|
||||
msgid "(Do not check on public computers)"
|
||||
msgstr "(ne pas cocher sur un ordinateur public)"
|
||||
|
||||
msgid "Sign in"
|
||||
msgstr "Se connecter"
|
||||
|
||||
@ -1,18 +1,4 @@
|
||||
<?php
|
||||
/*
|
||||
FULL-TEXT-RSS V2 COMPATIBILITY TEST
|
||||
|
||||
1) Upload ftr_compatibility_test.php to the web-accessible root of your website.
|
||||
For example, if your website is www.example.com, upload it so that you can get
|
||||
to it at www.example.com/ftr_compatibility_test.php
|
||||
|
||||
2) Open your web browser and go to the page you just uploaded.
|
||||
|
||||
Note: This compatibility test has been borrowed (and slightly adapted) from the one supplied by
|
||||
SimplePie.org. We have kept most of their checks intact as we use SimplePie in our application.
|
||||
http://github.com/simplepie/simplepie/tree/master/compatibility_test/
|
||||
*/
|
||||
|
||||
$app_name = 'poche 1.0';
|
||||
|
||||
$php_ok = (function_exists('version_compare') && version_compare(phpversion(), '5.2.0', '>='));
|
||||
|
||||
31
themes/README.md
Normal file
@ -0,0 +1,31 @@
|
||||
# poche-themes
|
||||
|
||||
themes created by poche users
|
||||
|
||||
## list of themes
|
||||
|
||||
* dark ([preview](https://raw.github.com/inthepoche/poche-themes/master/dark/screenshot.jpg))
|
||||
* dmagenta ([preview](https://raw.github.com/inthepoche/poche-themes/master/dmagenta/screenshot.jpg))
|
||||
* solarized ([preview](https://raw.github.com/inthepoche/poche-themes/master/solarized/screenshot.jpg))
|
||||
* solarized-dark ([preview](https://raw.github.com/inthepoche/poche-themes/master/solarized-dark/screenshot.jpg))
|
||||
|
||||
## installation
|
||||
|
||||
In your poche folder:
|
||||
|
||||
```
|
||||
git submodule init
|
||||
git submodule update
|
||||
```
|
||||
|
||||
Then, in your config screen, select your favorite theme.
|
||||
|
||||
That's all !
|
||||
|
||||
## create a theme
|
||||
|
||||
Just have a look to this short documentation : http://inthepoche.com/doc/doku.php?id=designers:creating_theme
|
||||
|
||||
## send a theme
|
||||
|
||||
Send your theme by email at support@inthepoche.com.
|
||||
3
themes/dark/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# dark theme
|
||||
|
||||
theme created by Nicolas Lœuillet aka nico_somb
|
||||
74
themes/dark/css/style-dark.css
Normal file
@ -0,0 +1,74 @@
|
||||
body {
|
||||
color: #d4d4d4;
|
||||
background-color: #262627;
|
||||
}
|
||||
|
||||
a,
|
||||
a:hover,
|
||||
a:visited {
|
||||
color: #d4d4d4;
|
||||
}
|
||||
|
||||
a.back span {
|
||||
background-image: url('../img/dark/left.png');
|
||||
}
|
||||
|
||||
a.top span {
|
||||
background-image: url('../img/dark/top.png');
|
||||
}
|
||||
|
||||
a.fav span,
|
||||
a.fav-off span:hover {
|
||||
background-image: url('../img/dark/star-on.png');
|
||||
}
|
||||
|
||||
a.fav span:hover,
|
||||
a.fav-off span {
|
||||
background-image: url('../img/dark/star-off.png');
|
||||
}
|
||||
|
||||
a.archive span,
|
||||
a.archive-off span:hover {
|
||||
background-image: url('../img/dark/checkmark-on.png');
|
||||
}
|
||||
|
||||
a.archive span:hover,
|
||||
a.archive-off span {
|
||||
background-image: url('../img/dark/checkmark-off.png');
|
||||
}
|
||||
|
||||
a.twitter span {
|
||||
background-image: url('../img/dark/twitter.png');
|
||||
}
|
||||
|
||||
a.shaarli span {
|
||||
background-image: url('../img/dark/shaarli.png');
|
||||
}
|
||||
|
||||
a.flattr span {
|
||||
background-image: url('../img/dark/flattr.png');
|
||||
}
|
||||
|
||||
a.email span {
|
||||
background-image: url('../img/dark/envelop.png');
|
||||
}
|
||||
|
||||
a.delete span {
|
||||
background-image: url('../img/dark/remove.png');
|
||||
}
|
||||
|
||||
a.link span {
|
||||
background-image: url('../img/dark/link.png');
|
||||
}
|
||||
|
||||
a.bad-display span {
|
||||
background-image: url('../img/dark/bad-display.png');
|
||||
}
|
||||
|
||||
.pagination a {
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
#article_toolbar {
|
||||
background: #262627;
|
||||
}
|
||||
|
Before Width: | Height: | Size: 326 B After Width: | Height: | Size: 326 B |
BIN
themes/dark/img/dark/bad-display.png
Executable file
|
After Width: | Height: | Size: 343 B |
|
Before Width: | Height: | Size: 277 B After Width: | Height: | Size: 277 B |
|
Before Width: | Height: | Size: 235 B After Width: | Height: | Size: 235 B |
|
Before Width: | Height: | Size: 216 B After Width: | Height: | Size: 216 B |
0
tpl/img/light/envelop.png → themes/dark/img/dark/envelop.png
Executable file → Normal file
|
Before Width: | Height: | Size: 285 B After Width: | Height: | Size: 285 B |
BIN
themes/dark/img/dark/flattr.png
Executable file
|
After Width: | Height: | Size: 270 B |
0
tpl/img/light/left.png → themes/dark/img/dark/left.png
Executable file → Normal file
|
Before Width: | Height: | Size: 196 B After Width: | Height: | Size: 196 B |
BIN
themes/dark/img/dark/link.png
Executable file
|
After Width: | Height: | Size: 341 B |
|
Before Width: | Height: | Size: 252 B After Width: | Height: | Size: 252 B |
|
Before Width: | Height: | Size: 729 B After Width: | Height: | Size: 729 B |
|
Before Width: | Height: | Size: 314 B After Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 281 B After Width: | Height: | Size: 281 B |
0
tpl/img/light/top.png → themes/dark/img/dark/top.png
Executable file → Normal file
|
Before Width: | Height: | Size: 212 B After Width: | Height: | Size: 212 B |
0
tpl/img/light/twitter.png → themes/dark/img/dark/twitter.png
Executable file → Normal file
|
Before Width: | Height: | Size: 297 B After Width: | Height: | Size: 297 B |
BIN
themes/dark/screenshot.jpg
Normal file
|
After Width: | Height: | Size: 649 KiB |
@ -1,4 +1,4 @@
|
||||
<footer class="w600p center mt3 smaller txtright">
|
||||
<footer class="w600p center mt3 mb3 smaller txtright">
|
||||
<p>{% trans "powered by" %} <a href="http://inthepoche.com">poche</a></p>
|
||||
{% if constant('DEBUG_POCHE') == 1 %}<p><strong>{% trans "debug mode is on so cache is off." %} {% trans "your poche version:" %}{{constant('POCHE_VERSION')}}. {% trans "storage:" %} {{constant('STORAGE')}}</strong></p>{% endif %}
|
||||
</footer>
|
||||
11
themes/default/_head.twig
Normal file
@ -0,0 +1,11 @@
|
||||
<link rel="shortcut icon" type="image/x-icon" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/favicon.ico" />
|
||||
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/apple-touch-icon-144x144-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/apple-touch-icon-72x72-precomposed.png">
|
||||
<link rel="apple-touch-icon-precomposed" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/apple-touch-icon-precomposed.png">
|
||||
<link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/knacss.css" media="all">
|
||||
<link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/style.css" media="all">
|
||||
<link rel="stylesheet" href="{{ poche_url }}/themes/{{ theme }}/css/style-{{ theme }}.css" media="all" title="{{ theme }} theme">
|
||||
<link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/messages.css" media="all">
|
||||
<link rel="stylesheet" href="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/css/print.css" media="print">
|
||||
<link href='//fonts.googleapis.com/css?family=Roboto' rel='stylesheet' type='text/css'>
|
||||
<script src="//codeorigin.jquery.com/jquery-2.0.3.min.js"></script>
|
||||
7
themes/default/_top.twig
Normal file
@ -0,0 +1,7 @@
|
||||
<header class="w600p center mbm">
|
||||
<h1>
|
||||
{% if view == 'home' %}{% block logo %}<img src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/img/logo.png" alt="logo poche" />{% endblock %}
|
||||
{% else %}<a href="./" title="{% trans "back to home" %}" >{{ block('logo') }}</a>
|
||||
{% endif %}
|
||||
</h1>
|
||||
</header>
|
||||
80
themes/default/config.twig
Normal file
@ -0,0 +1,80 @@
|
||||
{% extends "layout.twig" %}
|
||||
|
||||
{% block title %}{% trans "config" %}{% endblock %}
|
||||
{% block menu %}
|
||||
{% include '_menu.twig' %}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
<h2>{% trans "Poching a link" %}</h2>
|
||||
<p>{% trans "You can poche a link by several methods:" %} (<a href="http://inthepoche.com/doc" title="{% trans "read the documentation" %}">?</a>)</p>
|
||||
<ul>
|
||||
<li>firefox: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.xpi" title="download the firefox extension">{% trans "download the extension" %}</a></li>
|
||||
<li>chrome: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/poche.crx" title="download the chrome extension">{% trans "download the extension" %}</a></li>
|
||||
<li>android: <a href="https://bitbucket.org/jogaulupeau/poche/downloads/Poche.apk" title="download the application">{% trans "download the application" %}</a></li>
|
||||
<li>
|
||||
<form method="get" action="index.php">
|
||||
<label class="addurl" for="plainurl">{% trans "by filling this field" %}:</label>
|
||||
<input required placeholder="Ex:mywebsite.com/article" class="addurl" id="plainurl" name="plainurl" type="url" />
|
||||
<input type="submit" value="{% trans "poche it!" %}" />
|
||||
</form>
|
||||
</li>
|
||||
<li>{% trans "bookmarklet: drag & drop this link to your bookmarks bar" %} <a id="bookmarklet" ondragend="this.click();" title="i am a bookmarklet, use me !" href="javascript:if(top['bookmarklet-url@inthepoche.com']){top['bookmarklet-url@inthepoche.com'];}else{(function(){var%20url%20=%20location.href%20||%20url;window.open('{{ poche_url }}?action=add&url='%20+%20btoa(url),'_self');})();void(0);}">{% trans "poche it!" %}</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>{% trans "Updating poche" %}</h2>
|
||||
<ul>
|
||||
<li>{% trans "your version" %} : <strong>{{ constant('POCHE_VERSION') }}</strong></li>
|
||||
<li>{% trans "latest stable version" %} : {{ prod }}. {% if compare_prod == -1 %}<strong><a href="http://inthepoche.com/">{% trans "a more recent stable version is available." %}</a></strong>{% else %}{% trans "you are up to date." %}{% endif %}</li>
|
||||
{% if constant('DEBUG_POCHE') == 1 %}<li>{% trans "latest dev version" %} : {{ dev }}. {% if compare_dev == -1 %}<strong><a href="http://inthepoche.com/">{% trans "a more recent development version is available." %}</a></strong>{% else %}{% trans "you are up to date." %}{% endif %}</li>{% endif %}
|
||||
</ul>
|
||||
|
||||
<h2>{% trans "Change your theme" %}</h2>
|
||||
<form method="post" action="?updatetheme" name="changethemeform">
|
||||
<fieldset class="w500p">
|
||||
<div class="row">
|
||||
<label class="col w150p" for="theme">{% trans "Theme:" %}</label>
|
||||
<select class="col" id="theme" name="theme">
|
||||
{% for theme in themes %}
|
||||
<option value="{{ theme.name }}" {{ theme.current ? 'selected' : '' }}>{{ theme.name }}</option>
|
||||
{% endfor %}
|
||||
</select>
|
||||
</div>
|
||||
<div class="row mts txtcenter">
|
||||
<button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
<input type="hidden" name="returnurl" value="{{ referer }}">
|
||||
<input type="hidden" name="token" value="{{ token }}">
|
||||
</form>
|
||||
|
||||
<h2>{% trans "Change your password" %}</h2>
|
||||
<form method="post" action="?config" name="loginform">
|
||||
<fieldset class="w500p">
|
||||
<div class="row">
|
||||
<label class="col w150p" for="password">{% trans "New password:" %}</label>
|
||||
<input class="col" type="password" id="password" name="password" placeholder="{% trans "Password" %}" tabindex="2">
|
||||
</div>
|
||||
<div class="row">
|
||||
<label class="col w150p" for="password_repeat">{% trans "Repeat your new password:" %}</label>
|
||||
<input class="col" type="password" id="password_repeat" name="password_repeat" placeholder="{% trans "Password" %}" tabindex="3">
|
||||
</div>
|
||||
<div class="row mts txtcenter">
|
||||
<button class="bouton" type="submit" tabindex="4">{% trans "Update" %}</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
<input type="hidden" name="returnurl" value="{{ referer }}">
|
||||
<input type="hidden" name="token" value="{{ token }}">
|
||||
</form>
|
||||
|
||||
<h2>{% trans "Import" %}</h2>
|
||||
<p>{% trans "Please execute the import script locally, it can take a very long time." %}</p>
|
||||
<p>{% trans "More infos in the official doc:" %} <a href="http://inthepoche.com/doc">inthepoche.com</a></p>
|
||||
<ul>
|
||||
<li><a href="./?import&from=pocket">{% trans "import from Pocket" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('POCKET_FILE')) }}</li>
|
||||
<li><a href="./?import&from=readability">{% trans "import from Readability" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('READABILITY_FILE')) }}</li>
|
||||
<li><a href="./?import&from=instapaper">{% trans "import from Instapaper" %}</a> {{ '(you must have a %s file on your server)'|trans|format(constant('INSTAPAPER_FILE')) }}</li>
|
||||
</ul>
|
||||
|
||||
<h2>{% trans "Export your poche datas" %}</h2>
|
||||
<p><a href="?export" target="_blank">{% trans "Click here" %}</a> {% trans "to export your poche datas." %}</p>
|
||||
{% endblock %}
|
||||
75
themes/default/css/messages.css
Normal file
@ -0,0 +1,75 @@
|
||||
.messages {
|
||||
display: block;
|
||||
clear: both;
|
||||
width: 400px;
|
||||
margin: 10px auto 10px;
|
||||
padding: 10px 0;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.messages a.closeMessage {
|
||||
display: none;
|
||||
float: right;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin: -14px -8px 0 0;
|
||||
background: url(../img/messages/close.png) no-repeat;
|
||||
}
|
||||
|
||||
/*.messages:hover a.closeMessage { visibility:visible; }*/
|
||||
|
||||
.messages p {
|
||||
margin: 3px 0 3px 10px !important;
|
||||
padding: 0 10px 0 23px !important;
|
||||
font-size: 14px;
|
||||
line-height: 16px;
|
||||
}
|
||||
|
||||
.messages.error {
|
||||
border: 1px solid #c42608;
|
||||
color: #c00 !important;
|
||||
background: #fff0ef;
|
||||
}
|
||||
|
||||
.messages.error p {
|
||||
color: #c00 !important;
|
||||
background: url(../img/messages/cross.png) no-repeat 0 50%;
|
||||
}
|
||||
|
||||
.messages.success {
|
||||
border: 1px solid #6dc70c;
|
||||
background: #e0fbcc;
|
||||
}
|
||||
|
||||
.messages.success p {
|
||||
color: #2b6301 !important;
|
||||
background: url(../img/messages/tick.png) no-repeat 0 50%;
|
||||
}
|
||||
|
||||
.messages.warning {
|
||||
border: 1px solid #ebcd41;
|
||||
color: #000;
|
||||
background: #fffcd3;
|
||||
}
|
||||
|
||||
.messages.warning p {
|
||||
color: #5f4e01;
|
||||
background: url(../img/messages/warning.png) no-repeat 0 50%;
|
||||
}
|
||||
|
||||
.messages.information,
|
||||
.messages.info {
|
||||
border: 1px solid #82aee7;
|
||||
background: #dfebfb;
|
||||
}
|
||||
|
||||
.messages.information p,
|
||||
.messages.info p {
|
||||
color: #064393;
|
||||
background: url(../img/messages/help.png) no-repeat 0 50%;
|
||||
}
|
||||
|
||||
.messages.information a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
48
themes/default/css/print.css
Normal file
@ -0,0 +1,48 @@
|
||||
/* ### Layout ### */
|
||||
|
||||
body {
|
||||
font-family: Serif;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
@page {
|
||||
margin: 1cm;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
/* ### Content ### */
|
||||
|
||||
/* Hide useless blocks */
|
||||
body > header,
|
||||
#links,
|
||||
#sort,
|
||||
body > footer,
|
||||
.top_link,
|
||||
div.tools,
|
||||
header div,
|
||||
.messages,
|
||||
.entrie + .results {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
article {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
/* Add URL after links */
|
||||
.vieworiginal a:after {
|
||||
content: " (" attr(href) ")";
|
||||
}
|
||||
|
||||
/* Add explanation after abbr */
|
||||
abbr[title]:after {
|
||||
content: " (" attr(title) ")";
|
||||
}
|
||||
|
||||
/* Change border on current pager item */
|
||||
.pagination span.current {
|
||||
border-style: dashed;
|
||||
}
|
||||
55
themes/default/css/style-default.css
Normal file
@ -0,0 +1,55 @@
|
||||
a.back span {
|
||||
background-image: url('../img/default/left.png');
|
||||
}
|
||||
|
||||
a.top span {
|
||||
background-image: url('../img/default/top.png');
|
||||
}
|
||||
|
||||
a.fav span,
|
||||
a.fav-off span:hover {
|
||||
background-image: url('../img/default/star-on.png');
|
||||
}
|
||||
|
||||
a.fav span:hover,
|
||||
a.fav-off span {
|
||||
background-image: url('../img/default/star-off.png');
|
||||
}
|
||||
|
||||
a.archive span,
|
||||
a.archive-off span:hover {
|
||||
background-image: url('../img/default/checkmark-on.png');
|
||||
}
|
||||
|
||||
a.archive span:hover,
|
||||
a.archive-off span {
|
||||
background-image: url('../img/default/checkmark-off.png');
|
||||
}
|
||||
|
||||
a.twitter span {
|
||||
background-image: url('../img/default/twitter.png');
|
||||
}
|
||||
|
||||
a.shaarli span {
|
||||
background-image: url('../img/default/shaarli.png');
|
||||
}
|
||||
|
||||
a.flattr span {
|
||||
background-image: url('../img/default/flattr.png');
|
||||
}
|
||||
|
||||
a.email span {
|
||||
background-image: url('../img/default/envelop.png');
|
||||
}
|
||||
|
||||
a.delete span {
|
||||
background-image: url('../img/default/remove.png');
|
||||
}
|
||||
|
||||
a.link span {
|
||||
background-image: url('../img/default/link.png');
|
||||
}
|
||||
|
||||
a.bad-display span {
|
||||
background-image: url('../img/default/bad-display.png');
|
||||
}
|
||||
@ -1,7 +1,7 @@
|
||||
body {
|
||||
font-size: 16px;
|
||||
font-family: 'Roboto', Verdana, Geneva, sans-serif;
|
||||
margin: 10px;
|
||||
font-family: 'Roboto',Verdana,Geneva,sans-serif;
|
||||
font-size: 16px;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
@ -13,19 +13,22 @@ header h1 {
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
a, a:hover, a:visited {
|
||||
a,
|
||||
a:hover,
|
||||
a:visited {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.bouton {
|
||||
background-color: #000;
|
||||
color: #fff;
|
||||
border: none;
|
||||
border-radius: 2px;
|
||||
color: #fff;
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
.bouton:hover {
|
||||
background-color: #222;
|
||||
color: #f1f1f1;
|
||||
background-color: #222;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@ -35,9 +38,9 @@ a, a:hover, a:visited {
|
||||
|
||||
#main #links {
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
text-align: center;
|
||||
font-size: 0.9em;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
#main #links li {
|
||||
@ -45,16 +48,16 @@ a, a:hover, a:visited {
|
||||
}
|
||||
|
||||
#main #links li .current {
|
||||
background-color: #000;
|
||||
color: #fff;
|
||||
-webkit-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
color: #fff;
|
||||
background-color: #000;
|
||||
}
|
||||
|
||||
#main #sort {
|
||||
padding: 0;
|
||||
list-style-type: none;
|
||||
text-align: center;
|
||||
list-style-type: none;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
@ -63,22 +66,36 @@ a, a:hover, a:visited {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
#main #sort li + li {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
#main #sort a {
|
||||
padding: 2px 2px 0;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#main #sort img {
|
||||
vertical-align: baseline;
|
||||
}
|
||||
#main #sort img:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#links a {
|
||||
text-decoration: none;
|
||||
padding: 5px 10px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#links a:hover {
|
||||
background-color: #040707;
|
||||
color: #F1F1F1;
|
||||
-webkit-border-radius: 2px;
|
||||
border-radius: 2px;
|
||||
color: #f1f1f1;
|
||||
background-color: #040707;
|
||||
}
|
||||
|
||||
/*** ***/
|
||||
|
||||
/*** LINKS DISPLAY ***/
|
||||
|
||||
#main .tool {
|
||||
@ -91,71 +108,49 @@ a, a:hover, a:visited {
|
||||
}
|
||||
|
||||
#main #content h2 {
|
||||
font-size: 1.3em;
|
||||
text-decoration: none;
|
||||
font-size: 1.3em;
|
||||
}
|
||||
|
||||
#main #content .entrie {
|
||||
margin-top: 15px;
|
||||
padding-bottom: 15px;
|
||||
border-bottom: 1px dashed #222;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* First entry */
|
||||
#main #content .results + .entrie {
|
||||
clear: both;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
#main .entrie .tools {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
#main .entrie .tools + p {
|
||||
min-height: 5.5em;
|
||||
}
|
||||
|
||||
/*
|
||||
#main .entrie .tools li {
|
||||
display: inline;
|
||||
}
|
||||
*/
|
||||
|
||||
.tools {
|
||||
float: right;
|
||||
text-align: right;
|
||||
list-style-type: none;
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.tools p {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
/*
|
||||
.tools ul {
|
||||
padding: 0; margin: 0;
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
.tools ul li {
|
||||
line-height: 20px;
|
||||
}
|
||||
|
||||
.tools .tool {
|
||||
cursor: pointer;
|
||||
}*/
|
||||
|
||||
#main .entrie .tools .tool span, #article .tools .tool span {
|
||||
#main .entrie .tools .tool span {
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
/* Hide textual content */
|
||||
text-indent: -9999px;
|
||||
text-align: left;
|
||||
overflow: hidden;
|
||||
text-align: left;
|
||||
text-indent: -9999px;
|
||||
}
|
||||
|
||||
|
||||
/*** ***/
|
||||
|
||||
/*** ARTICLE PAGE ***/
|
||||
|
||||
#article {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#article header, #article article {
|
||||
#article header {
|
||||
border-bottom: 1px solid #222;
|
||||
}
|
||||
|
||||
@ -163,70 +158,102 @@ a, a:hover, a:visited {
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
#article header a {
|
||||
text-decoration: none;
|
||||
#article header h1 small {
|
||||
float: right;
|
||||
font-size: 0.6em;
|
||||
}
|
||||
|
||||
.vieworiginal a, .vieworiginal a:hover, .vieworiginal a:visited {
|
||||
#article header a {
|
||||
text-decoration: none;
|
||||
color: #888;
|
||||
}
|
||||
|
||||
.backhome {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
#article .tools {
|
||||
position: relative;
|
||||
display: inline;
|
||||
top: 0;
|
||||
right: 0;
|
||||
.results {
|
||||
padding: 15px 0;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.nb-results {
|
||||
float: left;
|
||||
font-size: 0.9em;
|
||||
line-height: 24px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
#article_toolbar {
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
padding-top: 17px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
opacity: 0.8;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
#article .tools ul li {
|
||||
#article_toolbar li {
|
||||
display: inline;
|
||||
padding-right: 30px;
|
||||
}
|
||||
|
||||
#article_toolbar .tool {
|
||||
padding: 0 2px;
|
||||
}
|
||||
|
||||
#article_toolbar .tool span {
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
/* Hide textual content */
|
||||
overflow: hidden;
|
||||
text-align: left;
|
||||
text-indent: -9999px;
|
||||
}
|
||||
|
||||
/*** ***/
|
||||
|
||||
/*** PAGINATION ***/
|
||||
|
||||
/* Pagination */
|
||||
.pagination {
|
||||
clear: both;
|
||||
padding-bottom: 20px;
|
||||
padding-top: 10px;
|
||||
float: right;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.pagination a {
|
||||
height: 25px;
|
||||
margin: 2px;
|
||||
padding: 4px 8px;
|
||||
border: 1px solid #d5d5d5;
|
||||
color: #333;
|
||||
text-decoration: none;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
height: 25px;
|
||||
padding: 4px 8px;
|
||||
text-decoration: none;
|
||||
margin: 2px;
|
||||
color: #333;
|
||||
}
|
||||
.pagination a:hover, .pagination a:active {
|
||||
|
||||
.pagination a:hover,
|
||||
.pagination a:active {
|
||||
background-color: #efefef;
|
||||
}
|
||||
|
||||
.pagination .current {
|
||||
background-color: #ccc;
|
||||
border: 1px solid #d5d5d5;
|
||||
color: #000;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
height: 25px;
|
||||
margin: 2px;
|
||||
padding: 4px 8px;
|
||||
border: 1px solid #d5d5d5;
|
||||
text-decoration: none;
|
||||
margin: 2px;
|
||||
}
|
||||
.pagination .disabled {
|
||||
border: 1px solid #eee;
|
||||
color: #ddd;
|
||||
margin: 2px;
|
||||
padding: 4px 8px;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
background-color: #ccc;
|
||||
}
|
||||
|
||||
.pagination .disabled {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#bookmarklet {
|
||||
@ -237,17 +264,17 @@ a, a:hover, a:visited {
|
||||
}
|
||||
|
||||
.top_link {
|
||||
display: none;
|
||||
z-index: 2000;
|
||||
position: fixed;
|
||||
right: 15px;
|
||||
bottom: 15px;
|
||||
display: none;
|
||||
padding: 20px;
|
||||
background: #ccc;
|
||||
-moz-border-radius: 40px;
|
||||
-webkit-border-radius: 40px;
|
||||
-moz-border-radius: 40px;
|
||||
border-radius: 40px;
|
||||
opacity: 0.9;
|
||||
z-index: 2000;
|
||||
background: #ccc;
|
||||
}
|
||||
|
||||
footer {
|
||||
@ -257,3 +284,38 @@ footer {
|
||||
.reading-time {
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
#inputform {
|
||||
display: none;
|
||||
margin-top: 5px;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
padding-bottom: 5px;
|
||||
max-width: 300px;
|
||||
border-radius: 3px;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
opacity: 0.8;
|
||||
background-color: rgba(0,0,0,0.9);
|
||||
}
|
||||
|
||||
a.back span,
|
||||
a.top span,
|
||||
a.fav span,
|
||||
a.fav span:hover,
|
||||
a.fav-off span,
|
||||
a.fav-off span:hover,
|
||||
a.archive span,
|
||||
a.archive span:hover,
|
||||
a.archive-off span,
|
||||
a.archive-off span:hover,
|
||||
a.twitter span,
|
||||
a.shaarli span,
|
||||
a.flattr span,
|
||||
a.email span,
|
||||
a.delete span,
|
||||
a.link span,
|
||||
a.bad-display span,
|
||||
a.reading-time span {
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
@ -2,5 +2,5 @@
|
||||
{% block title %}{% trans "plop" %}{% endblock %}
|
||||
{% block content %}
|
||||
{{ msg|raw }}
|
||||
<p>Don't forget <a href="http://inthepoche.com/?pages/Documentation">the documentation</a>.</p>
|
||||
<p>Don't forget <a href="http://inthepoche.com/doc">the documentation</a>.</p>
|
||||
{% endblock %}
|
||||
49
themes/default/home.twig
Normal file
@ -0,0 +1,49 @@
|
||||
{% extends "layout.twig" %}
|
||||
{% block title %}
|
||||
{% if view == 'fav' %}
|
||||
{% trans "favoris" %}
|
||||
{% elseif view == 'archive' %}
|
||||
{% trans "archive" %}
|
||||
{% else %}
|
||||
{% trans "unread" %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block menu %}
|
||||
{% include '_menu.twig' %}
|
||||
{% endblock %}
|
||||
{% block precontent %}
|
||||
{% if entries|length > 1 %}
|
||||
<ul id="sort">
|
||||
<li><a href="./?sort=ia&view={{ view }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by date asc" %}" title="{% trans "by date asc" %}" /></a> {% trans "by date" %} <a href="./?sort=id&view={{ view }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by date desc" %}" title="{% trans "by date desc" %}" /></a></li>
|
||||
<li><a href="./?sort=ta&view={{ view }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/top.png" alt="{% trans "by title asc" %}" title="{% trans "by title asc" %}" /></a> {% trans "by title" %} <a href="./?sort=td&view={{ view }}"><img src="{{ poche_url }}/themes/{{ theme }}/img/{{ theme }}/down.png" alt="{% trans "by title desc" %}" title="{% trans "by title desc" %}" /></a></li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block content %}
|
||||
{% if entries is empty %}
|
||||
<div class="messages warning"><p>{% trans "No link available here!" %}</p></div>
|
||||
{% else %}
|
||||
{% block pager %}
|
||||
{% if nb_results > 1 %}
|
||||
<div class="results">
|
||||
<div class="nb-results">{{ nb_results }} {% trans "results" %}</div>
|
||||
{{ page_links | raw }}
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% for entry in entries %}
|
||||
<div id="entry-{{ entry.id|e }}" class="entrie">
|
||||
<h2><a href="index.php?view=view&id={{ entry.id|e }}">{{ entry.title|raw }}</a></h2>
|
||||
<ul class="tools">
|
||||
<li><a title="{% trans "toggle mark as read" %}" class="tool {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&id={{ entry.id|e }}"><span>{% trans "toggle mark as read" %}</span></a></li>
|
||||
<li><a title="{% trans "toggle favorite" %}" class="tool {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
|
||||
<li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
|
||||
<li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link"><span>{{ entry.url | e | getDomain }}</span></a></li>
|
||||
<li><a target="_blank" title="{% trans "estimated reading time:" %} {{ entry.content| getReadingTime }} min" class="reading-time"><span>{{ entry.content| getReadingTime }} min</span></a></li>
|
||||
</ul>
|
||||
<p>{{ entry.content|striptags|slice(0, 300) }}...</p>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{{ block('pager') }}
|
||||
{% endblock %}
|
||||
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 5.7 KiB |
BIN
themes/default/img/default/backtotop.png
Normal file
|
After Width: | Height: | Size: 326 B |
BIN
themes/default/img/default/bad-display.png
Executable file
|
After Width: | Height: | Size: 343 B |
BIN
themes/default/img/default/checkmark-off.png
Normal file
|
After Width: | Height: | Size: 277 B |
BIN
themes/default/img/default/checkmark-on.png
Normal file
|
After Width: | Height: | Size: 235 B |
BIN
themes/default/img/default/down.png
Normal file
|
After Width: | Height: | Size: 216 B |
BIN
themes/default/img/default/envelop.png
Normal file
|
After Width: | Height: | Size: 285 B |
BIN
themes/default/img/default/flattr.png
Executable file
|
After Width: | Height: | Size: 270 B |
BIN
themes/default/img/default/left.png
Normal file
|
After Width: | Height: | Size: 196 B |
BIN
themes/default/img/default/link.png
Executable file
|
After Width: | Height: | Size: 341 B |
BIN
themes/default/img/default/remove.png
Normal file
|
After Width: | Height: | Size: 252 B |
BIN
themes/default/img/default/shaarli.png
Normal file
|
After Width: | Height: | Size: 729 B |
BIN
themes/default/img/default/star-off.png
Normal file
|
After Width: | Height: | Size: 314 B |
BIN
themes/default/img/default/star-on.png
Normal file
|
After Width: | Height: | Size: 281 B |
BIN
themes/default/img/default/top.png
Normal file
|
After Width: | Height: | Size: 212 B |
BIN
themes/default/img/default/twitter.png
Normal file
|
After Width: | Height: | Size: 297 B |
|
Before Width: | Height: | Size: 346 B After Width: | Height: | Size: 346 B |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
0
tpl/img/messages/close.png → themes/default/img/messages/close.png
Executable file → Normal file
|
Before Width: | Height: | Size: 662 B After Width: | Height: | Size: 662 B |
0
tpl/img/messages/cross.png → themes/default/img/messages/cross.png
Executable file → Normal file
|
Before Width: | Height: | Size: 655 B After Width: | Height: | Size: 655 B |
0
tpl/img/messages/help.png → themes/default/img/messages/help.png
Executable file → Normal file
|
Before Width: | Height: | Size: 786 B After Width: | Height: | Size: 786 B |
0
tpl/img/messages/tick.png → themes/default/img/messages/tick.png
Executable file → Normal file
|
Before Width: | Height: | Size: 537 B After Width: | Height: | Size: 537 B |
0
tpl/img/messages/warning.png → themes/default/img/messages/warning.png
Executable file → Normal file
|
Before Width: | Height: | Size: 666 B After Width: | Height: | Size: 666 B |
@ -5,7 +5,7 @@
|
||||
<fieldset class="w500p center">
|
||||
<h2 class="mbs txtcenter">{% trans "install your poche" %}</h2>
|
||||
<p>
|
||||
{% trans "poche is still not installed. Please fill the below form to install it. Don't hesitate to <a href='http://inthepoche.com/?pages/Documentation'>read the documentation on poche website</a>." %}
|
||||
{% trans "poche is still not installed. Please fill the below form to install it. Don't hesitate to <a href='http://inthepoche.com/doc'>read the documentation on poche website</a>." %}
|
||||
</p>
|
||||
<p class="row">
|
||||
<label class="col w150p" for="login">{% trans "Login" %}</label>
|
||||
25
themes/default/js/restoreScroll.js
Normal file
@ -0,0 +1,25 @@
|
||||
function supportsLocalStorage() {
|
||||
try {
|
||||
return 'localStorage' in window && window['localStorage'] !== null;
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function savePercent(id, percent) {
|
||||
if (!supportsLocalStorage()) { return false; }
|
||||
localStorage["poche.article." + id + ".percent"] = percent;
|
||||
return true;
|
||||
}
|
||||
|
||||
function retrievePercent(id) {
|
||||
if (!supportsLocalStorage()) { return false; }
|
||||
|
||||
var bheight = $(document).height();
|
||||
var percent = localStorage["poche.article." + id + ".percent"];
|
||||
var scroll = bheight * percent;
|
||||
|
||||
$('html,body').animate({scrollTop: scroll}, 'fast');
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -1,9 +1,9 @@
|
||||
<!DOCTYPE html>
|
||||
<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="en"><![endif]-->
|
||||
<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="en"><![endif]-->
|
||||
<!--[if IE 8]><html class="no-js ie8 ie678" lang="en"><![endif]-->
|
||||
<!--[if gt IE 8]><html class="no-js" lang="en"><![endif]-->
|
||||
<html>
|
||||
<!--[if lte IE 6]><html class="no-js ie6 ie67 ie678" lang="{{ lang }}"><![endif]-->
|
||||
<!--[if lte IE 7]><html class="no-js ie7 ie67 ie678" lang="{{ lang }}"><![endif]-->
|
||||
<!--[if IE 8]><html class="no-js ie8 ie678" lang="{{ lang }}"><![endif]-->
|
||||
<!--[if gt IE 8]><html class="no-js" lang="{{ lang }}"><![endif]-->
|
||||
<html lang="{{ lang }}">
|
||||
<head>
|
||||
<meta name="viewport" content="initial-scale=1.0">
|
||||
<meta charset="utf-8">
|
||||
@ -23,7 +23,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mts txtcenter">
|
||||
<button class="bouton" type="submit" tabindex="4">{% trans "Sign in" %}</button>
|
||||
<button class="bouton" type="submit" tabindex="4">{% trans "Login" %}</button>
|
||||
</div>
|
||||
</fieldset>
|
||||
<input type="hidden" name="returnurl" value="{{ referer }}">
|
||||
51
themes/default/view.twig
Normal file
@ -0,0 +1,51 @@
|
||||
{% extends "layout.twig" %}
|
||||
{% block title %}{{ entry.title|raw }} ({{ entry.url | e | getDomain }}){% endblock %}
|
||||
{% block content %}
|
||||
<div id="article_toolbar">
|
||||
<ul>
|
||||
<li><a href="./" title="{% trans "back to home" %}" class="tool back"><span>{% trans "back to home" %}</span></a></li>
|
||||
<li><a href="#top" title="{% trans "back to top" %}" class="tool top"><span>{% trans "back to top" %}</span></a></li>
|
||||
<li><a href="{{ entry.url|e }}" target="_blank" title="{% trans "original" %} : {{ entry.title|e }}" class="tool link"><span>{{ entry.url | e | getDomain }}</span></a></li>
|
||||
<li><a title="{% trans "toggle mark as read" %}" class="tool {% if entry.is_read == 0 %}archive-off{% else %}archive{% endif %}" href="./?action=toggle_archive&id={{ entry.id|e }}"><span>{% trans "toggle mark as read" %}</span></a></li>
|
||||
<li><a title="{% trans "toggle favorite" %}" class="tool {% if entry.is_fav == 0 %}fav-off{% else %}fav{% endif %}" href="./?action=toggle_fav&id={{ entry.id|e }}"><span>{% trans "toggle favorite" %}</span></a></li>
|
||||
<li><a title="{% trans "delete" %}" class="tool delete" href="./?action=delete&id={{ entry.id|e }}"><span>{% trans "delete" %}</span></a></li>
|
||||
{% if constant('SHARE_TWITTER') == 1 %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@getpoche" target="_blank" class="tool twitter" title="{% trans "tweet" %}"><span>{% trans "tweet" %}</span></a></li>{% endif %}
|
||||
{% if constant('SHARE_MAIL') == 1 %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@getpoche" class="tool email" title="{% trans "email" %}"><span>{% trans "email" %}</span></a></li>{% endif %}
|
||||
{% if constant('SHARE_SHAARLI') == 1 %}<li><a href="{{ constant('SHAARLI_URL') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans "shaarli" %}"><span>{% trans "shaarli" %}</span></a></li>{% endif %}
|
||||
{% if constant('FLATTR') == 1 %}{% if flattr.status == constant('FLATTRABLE') %}<li><a href="http://flattr.com/submit/auto?url={{ entry.url }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span></a></li>{% elseif flattr.status == constant('FLATTRED') %}<li><a href="{{ flattr.flattrItemURL }}" class="tool flattr" target="_blank" title="{% trans "flattr" %}"><span>{% trans "flattr" %}</span>{{ flattr.numflattrs }}</a></li>{% endif %}{% endif %}
|
||||
<li><a href="mailto:support@inthepoche.com?subject=Wrong%20display%20in%20poche&body={{ entry.url|url_encode }}" title="{% trans "this article appears wrong?" %}" class="tool bad-display"><span>{% trans "this article appears wrong?" %}</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="article">
|
||||
<header class="mbm">
|
||||
<h1>{{ entry.title|raw }}</h1>
|
||||
</header>
|
||||
<article>
|
||||
{{ content | raw }}
|
||||
</article>
|
||||
</div>
|
||||
<script src="{{ poche_url }}/themes/{{ constant('DEFAULT_THEME') }}/js/restoreScroll.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
|
||||
$(window).scroll(function(e){
|
||||
var scrollTop = $(window).scrollTop();
|
||||
var docHeight = $(document).height();
|
||||
var scrollPercent = (scrollTop) / (docHeight);
|
||||
var scrollPercentRounded = Math.round(scrollPercent*100)/100;
|
||||
savePercent({{ entry.id|e }}, scrollPercentRounded);
|
||||
});
|
||||
|
||||
retrievePercent({{ entry.id|e }});
|
||||
|
||||
$(window).resize(function(){
|
||||
retrievePercent({{ entry.id|e }});
|
||||
});
|
||||
|
||||
// Hide useless "back to top" link when there is no scrollbar
|
||||
if ($("body").height() <= $(window).height()) {
|
||||
$('#article_toolbar .tool.top').parent().hide();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
3
themes/dmagenta/README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# dmagenta (dark magenta) theme
|
||||
|
||||
theme created by Nicolas Lœuillet aka nico_somb
|
||||
78
themes/dmagenta/css/style-dmagenta.css
Normal file
@ -0,0 +1,78 @@
|
||||
body {
|
||||
color: #d4d4d4;
|
||||
background-color: #372d37;
|
||||
}
|
||||
|
||||
a,
|
||||
a:hover,
|
||||
a:visited {
|
||||
color: #8d748d;
|
||||
}
|
||||
|
||||
a.back span {
|
||||
background-image: url('../img/dmagenta/left.png');
|
||||
}
|
||||
|
||||
a.top span {
|
||||
background-image: url('../img/dmagenta/top.png');
|
||||
}
|
||||
|
||||
a.fav span,
|
||||
a.fav-off span:hover {
|
||||
background-image: url('../img/dmagenta/star-on.png');
|
||||
}
|
||||
|
||||
a.fav span:hover,
|
||||
a.fav-off span {
|
||||
background-image: url('../img/dmagenta/star-off.png');
|
||||
}
|
||||
|
||||
a.archive span,
|
||||
a.archive-off span:hover {
|
||||
background-image: url('../img/dmagenta/checkmark-on.png');
|
||||
}
|
||||
|
||||
a.archive span:hover,
|
||||
a.archive-off span {
|
||||
background-image: url('../img/dmagenta/checkmark-off.png');
|
||||
}
|
||||
|
||||
a.twitter span {
|
||||
background-image: url('../img/dmagenta/twitter.png');
|
||||
}
|
||||
|
||||
a.flattr span {
|
||||
background-image: url('../img/dmagenta/flattr.png');
|
||||
}
|
||||
|
||||
a.shaarli span {
|
||||
background-image: url('../img/dmagenta/shaarli.png');
|
||||
}
|
||||
|
||||
a.email span {
|
||||
background-image: url('../img/dmagenta/envelop.png');
|
||||
}
|
||||
|
||||
a.delete span {
|
||||
background-image: url('../img/dmagenta/remove.png');
|
||||
}
|
||||
|
||||
a.link span {
|
||||
background-image: url('../img/dmagenta/link.png');
|
||||
}
|
||||
|
||||
a.bad-display span {
|
||||
background-image: url('../img/dmagenta/bad-display.png');
|
||||
}
|
||||
|
||||
.pagination a {
|
||||
color: #aaa;
|
||||
}
|
||||
|
||||
#main #links li .current {
|
||||
background-color: #2d372d;
|
||||
}
|
||||
|
||||
#article_toolbar {
|
||||
background: #372d37;
|
||||
}
|
||||
BIN
themes/dmagenta/img/dmagenta/backtotop.png
Executable file
|
After Width: | Height: | Size: 326 B |
BIN
themes/dmagenta/img/dmagenta/bad-display.png
Executable file
|
After Width: | Height: | Size: 343 B |
BIN
themes/dmagenta/img/dmagenta/checkmark-off.png
Normal file
|
After Width: | Height: | Size: 277 B |
BIN
themes/dmagenta/img/dmagenta/checkmark-on.png
Normal file
|
After Width: | Height: | Size: 235 B |