mirror of
https://github.com/wallabag/wallabag.git
synced 2025-01-09 00:15:27 +00:00
Added possibility to change locale from login/register pages
This commit is contained in:
parent
43b6f3a8a8
commit
be417ef236
6 changed files with 31 additions and 3 deletions
|
@ -64,6 +64,7 @@ security:
|
||||||
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||||
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||||
- { path: /(unread|starred|archive|all).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
- { path: /(unread|starred|archive|all).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||||
|
- { path: ^/locale, role: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||||
- { path: /tags/(.*).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
- { path: /tags/(.*).xml$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||||
- { path: ^/share, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
- { path: ^/share, roles: IS_AUTHENTICATED_ANONYMOUSLY }
|
||||||
- { path: ^/settings, roles: ROLE_SUPER_ADMIN }
|
- { path: ^/settings, roles: ROLE_SUPER_ADMIN }
|
||||||
|
|
|
@ -329,6 +329,25 @@ class ConfigController extends Controller
|
||||||
return $this->redirect($request->headers->get('referer'));
|
return $this->redirect($request->headers->get('referer'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Change the locale for the current user.
|
||||||
|
*
|
||||||
|
* @param Request $request
|
||||||
|
* @param string $language
|
||||||
|
*
|
||||||
|
* @Route("/locale/{language}", name="changeLocale")
|
||||||
|
*
|
||||||
|
* @return \Symfony\Component\HttpFoundation\RedirectResponse
|
||||||
|
*/
|
||||||
|
public function setLocaleAction(Request $request, $language = null)
|
||||||
|
{
|
||||||
|
if (null !== $language) {
|
||||||
|
$this->get('session')->set('_locale', $language);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->redirect($request->headers->get('referer'));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove all tags for given tags and a given user and cleanup orphan tags.
|
* Remove all tags for given tags and a given user and cleanup orphan tags.
|
||||||
*
|
*
|
||||||
|
|
|
@ -6,6 +6,7 @@ use Doctrine\ORM\EntityManager;
|
||||||
use FOS\UserBundle\Event\UserEvent;
|
use FOS\UserBundle\Event\UserEvent;
|
||||||
use FOS\UserBundle\FOSUserEvents;
|
use FOS\UserBundle\FOSUserEvents;
|
||||||
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
|
||||||
|
use Symfony\Component\HttpFoundation\Session\Session;
|
||||||
use Wallabag\CoreBundle\Entity\Config;
|
use Wallabag\CoreBundle\Entity\Config;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -22,8 +23,9 @@ class CreateConfigListener implements EventSubscriberInterface
|
||||||
private $readingSpeed;
|
private $readingSpeed;
|
||||||
private $actionMarkAsRead;
|
private $actionMarkAsRead;
|
||||||
private $listMode;
|
private $listMode;
|
||||||
|
private $session;
|
||||||
|
|
||||||
public function __construct(EntityManager $em, $theme, $itemsOnPage, $rssLimit, $language, $readingSpeed, $actionMarkAsRead, $listMode)
|
public function __construct(EntityManager $em, $theme, $itemsOnPage, $rssLimit, $language, $readingSpeed, $actionMarkAsRead, $listMode, Session $session)
|
||||||
{
|
{
|
||||||
$this->em = $em;
|
$this->em = $em;
|
||||||
$this->theme = $theme;
|
$this->theme = $theme;
|
||||||
|
@ -33,6 +35,7 @@ class CreateConfigListener implements EventSubscriberInterface
|
||||||
$this->readingSpeed = $readingSpeed;
|
$this->readingSpeed = $readingSpeed;
|
||||||
$this->actionMarkAsRead = $actionMarkAsRead;
|
$this->actionMarkAsRead = $actionMarkAsRead;
|
||||||
$this->listMode = $listMode;
|
$this->listMode = $listMode;
|
||||||
|
$this->session = $session;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getSubscribedEvents()
|
public static function getSubscribedEvents()
|
||||||
|
@ -52,7 +55,7 @@ class CreateConfigListener implements EventSubscriberInterface
|
||||||
$config->setTheme($this->theme);
|
$config->setTheme($this->theme);
|
||||||
$config->setItemsPerPage($this->itemsOnPage);
|
$config->setItemsPerPage($this->itemsOnPage);
|
||||||
$config->setRssLimit($this->rssLimit);
|
$config->setRssLimit($this->rssLimit);
|
||||||
$config->setLanguage($this->language);
|
$config->setLanguage($this->session->get('_locale', $this->language));
|
||||||
$config->setReadingSpeed($this->readingSpeed);
|
$config->setReadingSpeed($this->readingSpeed);
|
||||||
$config->setActionMarkAsRead($this->actionMarkAsRead);
|
$config->setActionMarkAsRead($this->actionMarkAsRead);
|
||||||
$config->setListMode($this->listMode);
|
$config->setListMode($this->listMode);
|
||||||
|
|
|
@ -33,6 +33,7 @@ services:
|
||||||
- "%wallabag_core.reading_speed%"
|
- "%wallabag_core.reading_speed%"
|
||||||
- "%wallabag_core.action_mark_as_read%"
|
- "%wallabag_core.action_mark_as_read%"
|
||||||
- "%wallabag_core.list_mode%"
|
- "%wallabag_core.list_mode%"
|
||||||
|
- "@session"
|
||||||
tags:
|
tags:
|
||||||
- { name: kernel.event_subscriber }
|
- { name: kernel.event_subscriber }
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
{{ form_start(form, {'method': 'post', 'action': path('fos_user_registration_register'), 'attr': {'class': 'fos_user_registration_register'}}) }}
|
{{ form_start(form, {'method': 'post', 'action': path('fos_user_registration_register'), 'attr': {'class': 'fos_user_registration_register'}}) }}
|
||||||
<div class="card-content">
|
<div class="card-content">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
{{ form_widget(form._token) }}
|
{{ form_widget(form._token) }}
|
||||||
|
|
||||||
{% for flashMessage in app.session.flashbag.get('notice') %}
|
{% for flashMessage in app.session.flashbag.get('notice') %}
|
||||||
|
|
|
@ -15,6 +15,11 @@
|
||||||
{% block fos_user_content %}
|
{% block fos_user_content %}
|
||||||
{% endblock fos_user_content %}
|
{% endblock fos_user_content %}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="center">
|
||||||
|
<a href="{{ path('changeLocale', {'language': 'de'}) }}">Deutsch</a>
|
||||||
|
<a href="{{ path('changeLocale', {'language': 'en'}) }}">English</a>
|
||||||
|
<a href="{{ path('changeLocale', {'language': 'fr'}) }}">Français</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
Loading…
Reference in a new issue