WIP - Translation - Loading po files fixes

pull/2744/head
Julio Montoya 6 years ago
parent 569a36a3d9
commit 7d00a09e7f
  1. 3
      config/packages/framework.yaml
  2. 18
      config/packages/sonata_intl.yaml
  3. 1
      config/packages/translation.yaml
  4. 18
      src/CoreBundle/EventListener/LocaleListener.php
  5. 7
      src/CoreBundle/EventListener/UserLocaleListener.php
  6. 9
      src/CoreBundle/Resources/config/services.yml
  7. 9
      src/UserBundle/Resources/views/login.html.twig

@ -1,9 +1,6 @@
framework:
form: true
secret: '%env(APP_SECRET)%'
default_locale: '%env(APP_LOCALE)%'
translator:
fallbacks: ['en']
csrf_protection: true
#esi: ~
#fragments: ~

@ -1,12 +1,12 @@
#
# more information can be found here http://sonata-project.org/bundles/intl
#
sonata_intl:
locale: ~
timezone:
# if service is left blank, the chain detector will be used with detectors
# defined in the dedicated section
service: ~
detectors:
- sonata.intl.timezone_detector.user # default value if SonataUserBundle is available
- sonata.intl.timezone_detector.locale # default value
#sonata_intl:
# locale: ~
# timezone:
# # if service is left blank, the chain detector will be used with detectors
# # defined in the dedicated section
# service: ~
# detectors:
# - sonata.intl.timezone_detector.user # default value if SonataUserBundle is available
# - sonata.intl.timezone_detector.locale # default value

@ -3,5 +3,6 @@ framework:
translator:
paths:
- '%kernel.project_dir%/translations'
- '%kernel.project_dir%/src/CoreBundle/Resources/translations'
fallbacks:
- '%locale%'

@ -28,9 +28,12 @@ class LocaleListener implements EventSubscriberInterface
private $defaultLocale;
/**
* @param string $defaultLocale
* LocaleListener constructor.
*
* @param string $defaultLocale
* @param ContainerInterface $container
*/
public function __construct($defaultLocale = 'en', ContainerInterface $container)
public function __construct($defaultLocale, ContainerInterface $container)
{
$this->defaultLocale = $defaultLocale;
$this->container = $container;
@ -71,7 +74,6 @@ class LocaleListener implements EventSubscriberInterface
if (!empty($platformLocale)) {
$localeList['platform_lang'] = $platformLocale;
//$locale = $platformLocale;
}
// 2. Check user locale
@ -79,7 +81,7 @@ class LocaleListener implements EventSubscriberInterface
$userLocale = $request->getSession()->get('_locale_user');
if (!empty($userLocale)) {
//$locale = $userLocale;
$localeList['user_profil_lang'] = $userLocale;
$localeList['user_profile_lang'] = $userLocale;
}
// 3. Check course locale
@ -122,7 +124,7 @@ class LocaleListener implements EventSubscriberInterface
'language_priority_1',
];
$locale = $this->defaultLocale;
$locale = '';
foreach ($priorityList as $setting) {
$priority = $settings->getSetting("language.$setting");
if (!empty($priority) && isset($localeList[$priority])) {
@ -134,7 +136,7 @@ class LocaleListener implements EventSubscriberInterface
// Use default order
$priorityList = [
'platform_lang',
'user_profil_lang',
'user_profile_lang',
'course_lang',
'user_selected_lang',
];
@ -145,6 +147,10 @@ class LocaleListener implements EventSubscriberInterface
}
}
if (empty($locale)) {
$locale = $this->defaultLocale;
}
// if no explicit locale has been set on this request, use one from the session
$request->setLocale($locale);
$request->getSession()->set('_locale', $locale);

@ -25,6 +25,12 @@ class UserLocaleListener
/** @var SettingsManager */
private $settings;
/**
* UserLocaleListener constructor.
*
* @param SessionInterface $session
* @param SettingsManager $settings
*/
public function __construct(SessionInterface $session, SettingsManager $settings)
{
$this->session = $session;
@ -39,7 +45,6 @@ class UserLocaleListener
public function onInteractiveLogin(InteractiveLoginEvent $event)
{
$user = $event->getAuthenticationToken()->getUser();
if (null !== $user->getLocale()) {
$this->session->set('_locale', $user->getLocale());
$this->session->set('_locale_user', $user->getLocale());

@ -14,6 +14,11 @@ services:
autowire: true
public: true
chamilo_core.translation.loader.po:
class: Symfony\Component\Translation\Loader\PoFileLoader
tags:
- { name: translation.loader, alias: po }
# Classic entity repositories
Chamilo\CoreBundle\Repository\:
resource: ../../Repository
@ -139,7 +144,7 @@ services:
tags:
- {name: doctrine.orm.entity_listener, entity_manager: default, lazy: true}
# Setting user and platform locale
# Setting user
chamilo_core.listener.legacy:
class: Chamilo\CoreBundle\EventListener\LegacyListener
calls:
@ -154,7 +159,7 @@ services:
class: Chamilo\CoreBundle\EventListener\LocaleListener
arguments: ['%kernel.default_locale%', '@service_container']
tags:
- {name: kernel.event_subscriber, priority: 9}
- {name: kernel.event_subscriber, priority: 20}
# User locale listener
chamilo_core.listener.user_locale_listener:

@ -14,23 +14,20 @@
{% block sonata_user_login_form %}
<form id="form-login-user" action="{{ path("login") }}" method="post" role="form">
<div class="wrap-input validate-input m-b-23" data-validate = "Username is reauired">
{{ form_label(form._username,'Username', {'label_attr': {'class': 'label-input'}}) }}
<div class="wrap-input validate-input m-b-23" data-validate = "{{ 'Username is required' | trans }}">
{{ form_label(form._username, 'Username' | trans , {'label_attr': {'class': 'label-input'}}) }}
{{ form_widget(form._username, {'attr': {'placeholder': 'Type your username', 'class': 'input-login'}}) }}
<i class="focus-input fas fa-user fa-lg"></i>
</div>
<div class="wrap-input validate-input" data-validate="Password is required">
{{ form_label(form._password, 'Password', {'label_attr': {'class': 'label-input'}})}}
{{ form_label(form._password, 'Password' | trans , {'label_attr': {'class': 'label-input'}})}}
{{ form_widget(form._password, {'attr': {'placeholder': 'Type your password', 'class': 'input-login'}}) }}
<i class="focus-input fas fa-lock fa-lg"></i>
</div>
{{ form_widget(form,{ 'attr': {'class': 'login'} }) }}
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}"/>
<div class="form-group has-feedback">
<div class="checkbox control-group">
<label for="remember_me">

Loading…
Cancel
Save