$symfonyRequirements = new SymfonyRequirements();
$iniPath = $symfonyRequirements->getPhpIniConfigPath();
-echo_title('Symfony2 Requirements Checker');
+echo_title('Symfony Requirements Checker');
echo '> PHP is using the following php.ini file:'.PHP_EOL;
if ($iniPath) {
}
if ($checkPassed) {
- echo_block('success', 'OK', 'Your system is ready to run Symfony2 projects');
+ echo_block('success', 'OK', 'Your system is ready to run Symfony projects');
} else {
- echo_block('error', 'ERROR', 'Your system is not ready to run Symfony2 projects');
+ echo_block('error', 'ERROR', 'Your system is not ready to run Symfony projects');
echo_title('Fix the following mandatory requirements', 'red');
;
$output->writeln('<info>Wallabag has been successfully installed.</info>');
- $output->writeln('<comment>Just execute `php bin/console server:run` for using wallabag: http://localhost:8000</comment>');
+ $output->writeln('<comment>Just execute `php bin/console server:run --env=prod` for using wallabag: http://localhost:8000</comment>');
}
protected function checkRequirements()
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\JsonResponse;
+use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Wallabag\CoreBundle\Entity\Config;
use Wallabag\CoreBundle\Entity\TaggingRule;
'Password updated'
);
- return $this->redirect($this->generateUrl('config'));
+ return $this->redirect($this->generateUrl('config').'#set4');
}
// handle changing user information
'Information updated'
);
- return $this->redirect($this->generateUrl('config'));
+ return $this->redirect($this->generateUrl('config').'#set3');
}
// handle rss information
'RSS information updated'
);
- return $this->redirect($this->generateUrl('config'));
+ return $this->redirect($this->generateUrl('config').'#set2');
}
// handle tagging rule
'Tagging rules updated'
);
- return $this->redirect($this->generateUrl('config'));
+ return $this->redirect($this->generateUrl('config').'#set5');
}
// handle adding new user
$this->get('session')->getFlashBag()->add(
'notice',
- sprintf('User "%s" added', $newUser->getUsername())
+ $this->get('translator')->trans('User "%username%" added', array('%username%' => $newUser->getUsername()))
);
- return $this->redirect($this->generateUrl('config'));
+ return $this->redirect($this->generateUrl('config').'#set6');
}
return $this->render('WallabagCoreBundle:Config:index.html.twig', array(
*
* @Route("/generate-token", name="generate_token")
*
- * @return JsonResponse
+ * @return RedirectResponse|JsonResponse
*/
public function generateTokenAction(Request $request)
{
return new JsonResponse(array('token' => $config->getRssToken()));
}
- return $request->headers->get('referer') ? $this->redirect($request->headers->get('referer')) : $this->redirectToRoute('config');
+ $this->get('session')->getFlashBag()->add(
+ 'notice',
+ 'RSS token updated'
+ );
+
+ return $this->redirect($this->generateUrl('config').'#set2');
}
/**
*
* @Route("/tagging-rule/delete/{id}", requirements={"id" = "\d+"}, name="delete_tagging_rule")
*
- * @return \Symfony\Component\HttpFoundation\RedirectResponse
+ * @return RedirectResponse
*/
public function deleteTaggingRuleAction(TaggingRule $rule)
{
'Tagging rule deleted'
);
- return $this->redirect($this->generateUrl('config'));
+ return $this->redirect($this->generateUrl('config').'#set5');
}
/**
->add('plainPassword', RepeatedType::class, array(
'type' => PasswordType::class,
'invalid_message' => 'The password fields must match',
- 'first_options' => array('label' => 'Password'),
+ 'first_options' => array('label' => 'Password'),
'second_options' => array('label' => 'Repeat new password'),
'constraints' => array(
new Constraints\Length(array(
Filter entries: 'Filtrer les articles'
Enter your search here: 'Saisissez votre terme de recherche'
Save new entry: 'Sauvegarder un nouvel article'
+Export: Exporter
# Config screen
Settings: 'Paramètres'
Language: 'Langue'
Save: 'Enregistrer'
RSS token: 'Jeton RSS'
+RSS token updated: 'Jeton RSS mis à jour'
Name: 'Nom'
Email: 'Adresse e-mail'
No token: 'Aucun jeton généré'
New password: 'Nouveau mot de passe'
Repeat new password: 'Confirmez votre nouveau mot de passe'
Username: "Nom d'utilisateur"
+Two factor authentication: Double authentification
# Tagging rules
Tagging rules: "Règles de tag automatiques"
The domain name of the entry: "Le nom de domaine de l'article"
"Tests that a <i>subject</i> is matches a <i>search</i> (case-insensitive).<br />Example: <code>title matches \"football\"</code>": "Teste si un <i>sujet</i> correspond à une <i>recherche</i> (non sensible à la casse).<br />Exemple : <code>title matches \"football\"</code>"
Rule: "Règle"
+FAQ: "FAQ"
# Entries
'estimated reading time': 'durée de lecture'
Title: "Titre"
Is public: "Public"
+# tag
+Tags: Tags
+"{0} There is no tag.|{1} There is one tag.|]1,Inf[ There are %count% tags.": "{0} Il n'y a pas de tag.|{1} Il y a un tag.|]1,Inf[ Il y a %count% tags."
+
# Filters
Filters: 'Filtres'
Status: 'Statut'
website.com: 'website.com'
Domain name: 'Nom de domaine'
Creation date: 'Date de création'
-dd/mm/yyyy: 'dd/mm/aaaa'
+dd/mm/yyyy: 'jj/mm/aaaa'
Clear: 'Effacer'
Filter: 'Filtrer'
website.com: "siteweb.com"
Entry archived: "Article marqué comme lu"
Entry unarchived: "Article marqué comme non lu"
Entry deleted: "Article supprimé"
+Tagging rule deleted: "Règle supprimée"
+Tagging rules updated: "Règles mises à jour"
+User "%username%" added: 'Utilisateur "%username%" ajouté'
# Entry
Mark as read: 'Marquer comme lu'
Does this article appear wrong?: "Est-ce que cet article s'affiche mal ?"
Problems?: 'Un problème ?'
Edit title: "Modifier le titre"
+Re-fetch content: Recharger le contenu
+Tag added: Tag ajouté
# Import
Welcome on wallabag importer. Please select your previous service that you want to migrate.: "Bienvenue dans l'outil de migration de wallabag. Choisissez ci-dessous le service depuis lequel vous souhaitez migrer."
File: "Fichier"
Upload file: "Importer le fichier"
Import contents: "Importer les contenus"
+Import: "Importer"
+Import > Wallabag v1: "Importer > Wallabag v1"
+Import > Wallabag v2: "Importer > Wallabag v2"
# Quickstart
+Quickstart: Pour bien débuter
Welcome on wallabag!: "Bienvenue sur wallabag !"
We'll accompany you to visit wallabag and show you some features which can interess you.: "Nous allons vous accompagner pour vous faire faire le tour de la maison et vous présenter quelques fonctionnalités qui pourraient vous intéresser pour vous approprier cet outil."
Follow us!: "Suivez-nous !"
-<a id="bookmarklet" ondragend="this.click();" href="javascript:var url=location.href||url;var wllbg=window.open('{{ url('bookmarklet') }}?url=' + encodeURI(url),'_blank');wllbg.close();void(0);">{% trans %}bag it!{% endtrans %}</a>
+<a id="bookmarklet" ondragend="this.click();" href="javascript:var url=location.href||url;var wllbg=window.open('{{ url('bookmarklet') }}?url=' + encodeURI(url),'_blank');wllbg.close();void(0);">bag it!</a>
<ul class="links">
<li class="topPosF"><a href="#top" title="{% trans %}Back to top{% endtrans %}" class="tool top icon icon-arrow-up-thick"><span>{% trans %}Back to top{% endtrans %}</span></a></li>
<li><a href="{{ entry.url|e }}" target="_blank" title="{% trans %}original{% endtrans %} : {{ entry.title|e }}" class="tool link icon icon-link"><span>{{ entry.domainName|removeWww }}</span></a></li>
- <li><a title="{% trans %}Reload content{% endtrans %}" class="tool icon icon-reload" href="{{ path('reload_entry', { 'id': entry.id }) }}"><span>{% trans %}Reload content{% endtrans %}</span></a></li>
+ <li><a title="{% trans %}Re-fetch content{% endtrans %}" class="tool icon icon-reload" href="{{ path('reload_entry', { 'id': entry.id }) }}"><span>{% trans %}Re-fetch content{% endtrans %}</span></a></li>
<li><a title="{% if entry.isArchived == 0 %}{% trans %}Mark as read{% endtrans %}{% else %}{% trans %}Mark as unread{% endtrans %}{% endif %}" class="tool icon icon-check {% if entry.isArchived == 0 %}archive-off{% else %}archive{% endif %}" href="{{ path('archive_entry', { 'id': entry.id }) }}"><span>{% if entry.isArchived == 0 %}{% trans %}Mark as read{% endtrans %}{% else %}{% trans %}Mark as unread{% endtrans %}{% endif %}</span></a></li>
<li><a title="{% trans %}Favorite{% endtrans %}" class="tool icon icon-star {% if entry.isStarred == 0 %}fav-off{% else %}fav{% endif %}" href="{{ path('star_entry', { 'id': entry.id }) }}"><span>{% trans %}Toggle favorite{% endtrans %}</span></a></li>
<li><a id="nav-btn-add-tag" title="{% trans %}Add a tag{% endtrans %}"><span>{% trans %}Tag{% endtrans %}</span></a></li>
<form name="entry" method="post" action="{{ path('new_entry')}}">
+ {% if form_errors(form) %}
+ <span class="black-text">{{ form_errors(form) }}</span>
+ {% endif %}
- {% if form_errors(form) %}
- <span class="black-text">{{ form_errors(form) }}</span>
- {% endif %}
+ {% if form_errors(form.url) %}
+ <span class="black-text">{{ form_errors(form.url) }}</span>
+ {% endif %}
- {% if form_errors(form.url) %}
- <span class="black-text">{{ form_errors(form.url) }}</span>
- {% endif %}
-
- {{ form_label(form.url) }}
- {{ form_widget(form.url) }}
+ {{ form_label(form.url) }}
+ {{ form_widget(form.url) }}
<div class="hidden">{{ form_rest(form) }}</div>
</form>
</ul>
<h3>{% trans %}Mobile Apps{% endtrans %}</h3>
<ul>
- <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" target="_blank">{% trans %}via F-Droid{% endtrans %}</a> {% trans %} or {% endtrans %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" target="_blank">{% trans %}via Google Play{% endtrans %}</a></li>
+ <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" target="_blank">via F-Droid</a> {% trans %} or {% endtrans %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" target="_blank">via Google Play</a></li>
<li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{% trans %}download the application{% endtrans %}</a></li>
<li>Windows Phone: <a href="http://www.windowsphone.com/en-US/store/app/wallabag/d5226cf1-f422-4e00-996c-88e9c5233332" target="_blank">{% trans %}download the application{% endtrans %}</a></li>
</ul>
<form name="tag" method="post" action="{{ path('new_tag', { 'entry': entry.id })}}">
+ {% if form_errors(form) %}
+ <span class="black-text">{{ form_errors(form) }}</span>
+ {% endif %}
- {% if form_errors(form) %}
- <span class="black-text">{{ form_errors(form) }}</span>
- {% endif %}
+ {% if form_errors(form.label) %}
+ <span class="black-text">{{ form_errors(form.label) }}</span>
+ {% endif %}
- {% if form_errors(form.label) %}
- <span class="black-text">{{ form_errors(form.label) }}</span>
- {% endif %}
-
- {{ form_widget(form.label, { 'attr': {'autocomplete': 'off'} }) }}
- {{ form_widget(form.save, { 'attr': {'class': 'btn waves-effect waves-light'}, 'label': 'add tag' }) }}
+ {{ form_widget(form.label, { 'attr': {'autocomplete': 'off'} }) }}
+ {{ form_widget(form.save, { 'attr': {'class': 'btn waves-effect waves-light'}, 'label': 'add tag' }) }}
<div class="hidden">{{ form_rest(form) }}</div>
</form>
</li>
<li class="bold hide-on-med-and-down">
- <a class="waves-effect collapsible-header" title="{% trans %}Reload content{% endtrans %}" href="{{ path('reload_entry', { 'id': entry.id }) }}" id="reload">
+ <a class="waves-effect collapsible-header" title="{% trans %}Re-fetch content{% endtrans %}" href="{{ path('reload_entry', { 'id': entry.id }) }}" id="reload">
<i class="mdi-action-autorenew small"></i>
- <span>{% trans %}Reload content{% endtrans %}</span>
+ <span>{% trans %}Re-fetch content{% endtrans %}</span>
</a>
<div class="collapsible-body"></div>
</li>
</a>
<div class="collapsible-body">
<ul>
- {% if craue_setting('share_twitter') %}<li><a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="{% trans %}twitter{% endtrans %}"><span>{% trans %}twitter{% endtrans %}</span></a></li>{% endif %}
- {% if craue_setting('share_shaarli') %}<li><a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="{% trans %}shaarli{% endtrans %}"><span>{% trans %}shaarli{% endtrans %}</span></a></li>{% endif %}
- {% if craue_setting('share_diaspora') %}<li><a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}¬es=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="{% trans %}diaspora*{% endtrans %}"><span>{% trans %}diaspora*{% endtrans %}</span></a></li>{% endif %}
- {% if craue_setting('carrot') %}<li><a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" title="{% trans %}carrot{% endtrans %}"><span>Carrot</span></a></li>{% endif %}
- {% if craue_setting('share_mail') %}<li><a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{% trans %}Email{% endtrans %}"><span>{% trans %}Email{% endtrans %}</span></a></li>{% endif %}
+ {% if craue_setting('share_twitter') %}
+ <li>
+ <a href="https://twitter.com/home?status={{entry.title|url_encode}}%20{{ entry.url|url_encode }}%20via%20@wallabagapp" target="_blank" class="tool twitter icon icon-twitter" title="twitter">
+ <span>twitter</span>
+ </a>
+ </li>
+ {% endif %}
+ {% if craue_setting('share_shaarli') %}
+ <li>
+ <a href="{{ craue_setting('shaarli_url') }}/index.php?post={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" target="_blank" class="tool shaarli" title="shaarli">
+ <span>shaarli</span>
+ </a>
+ </li>
+ {% endif %}
+ {% if craue_setting('share_diaspora') %}
+ <li>
+ <a href="{{ craue_setting('diaspora_url') }}/bookmarklet?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}¬es=&v=1&noui=1&jump=doclose" target="_blank" class="tool diaspora icon-image icon-image--diaspora" title="diaspora}">
+ <span>diaspora}</span>
+ </a>
+ </li>
+ {% endif %}
+ {% if craue_setting('carrot') %}
+ <li>
+ <a href="https://secure.carrot.org/GiveAndGetBack.do?url={{ entry.url|url_encode }}&title={{ entry.title|url_encode }}" class="tool carrot icon-image icon-image--carrot" target="_blank" title="carrot">
+ <span>Carrot</span>
+ </a>
+ </li>
+ {% endif %}
+ {% if craue_setting('share_mail') %}
+ <li>
+ <a href="mailto:?subject={{ entry.title|url_encode }}&body={{ entry.url|url_encode }}%20via%20@wallabagapp" class="tool email icon icon-mail" title="{% trans %}Email{% endtrans %}">
+ <span>{% trans %}Email{% endtrans %}</span>
+ </a>
+ </li>
+ {% endif %}
</ul>
</div>
</li>
<form name="entry" method="post" action="{{ path('new_entry')}}">
+ {% if form_errors(form) %}
+ <span class="black-text">{{ form_errors(form) }}</span>
+ {% endif %}
- {% if form_errors(form) %}
- <span class="black-text">{{ form_errors(form) }}</span>
- {% endif %}
+ {% if form_errors(form.url) %}
+ <span class="black-text">{{ form_errors(form.url) }}</span>
+ {% endif %}
- {% if form_errors(form.url) %}
- <span class="black-text">{{ form_errors(form.url) }}</span>
- {% endif %}
-
- {{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'http://website' | trans} }) }}
+ {{ form_widget(form.url, { 'attr': {'autocomplete': 'off', 'placeholder': 'http://website'} }) }}
<div class="hidden">{{ form_rest(form) }}</div>
</form>
</ul>
</div>
-
<div id="set1" class="col s12">
<a href="{{ path('new') }}">{% trans %}Thanks to this form{% endtrans %}</a>
</div>
-
<div id="set2" class="col s12">
<ul>
<li><a href="https://addons.mozilla.org/firefox/addon/wallabag/" target="_blank">{% trans %}Standard Firefox Add-On{% endtrans %}</a></li>
</ul>
</div>
-
<div id="set3" class="col s12">
<ul>
- <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" target="_blank">{% trans %}via F-Droid{% endtrans %}</a> {% trans %} or {% endtrans %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" target="_blank">{% trans %}via Google Play{% endtrans %}</a></li>
+ <li>Android: <a href="https://f-droid.org/app/fr.gaulupeau.apps.InThePoche" target="_blank">via F-Droid</a> {% trans %} or {% endtrans %} <a href="https://play.google.com/store/apps/details?id=fr.gaulupeau.apps.InThePoche" target="_blank">via Google Play</a></li>
<li>iOS: <a href="https://itunes.apple.com/app/wallabag/id828331015?mt=8" target="_blank">{% trans %}download the application{% endtrans %}</a></li>
<li>Windows Phone: <a href="http://www.windowsphone.com/en-US/store/app/wallabag/d5226cf1-f422-4e00-996c-88e9c5233332" target="_blank">{% trans %}download the application{% endtrans %}</a></li>
</ul>
</div>
-
<div id="set4" class="col s12">
{% trans %}Drag & drop this link to your bookmarks bar:{% endtrans %}
{% include 'WallabagCoreBundle::_bookmarklet.html.twig' %}
<form name="tag" method="post" action="{{ path('new_tag', { 'entry': entry.id })}}">
+ {% if form_errors(form) %}
+ <span class="black-text">{{ form_errors(form) }}</span>
+ {% endif %}
- {% if form_errors(form) %}
- <span class="black-text">{{ form_errors(form) }}</span>
- {% endif %}
+ {% if form_errors(form.label) %}
+ <span class="black-text">{{ form_errors(form.label) }}</span>
+ {% endif %}
- {% if form_errors(form.label) %}
- <span class="black-text">{{ form_errors(form.label) }}</span>
- {% endif %}
-
- {{ form_widget(form.label, { 'attr': {'autocomplete': 'off'} }) }}
+ {{ form_widget(form.label, { 'attr': {'autocomplete': 'off'} }) }}
<div class="hidden">{{ form_rest(form) }}</div>
</form>