Fix loading language using listeners and lang priorities

pull/2715/head
Julio 7 years ago
parent c3ade40334
commit 6ea18f45bf
  1. 1
      composer.json
  2. 1
      config/bundles.php
  3. 70
      config/packages/lunetics_locale.yaml
  4. 1
      main/inc/lib/api.lib.php
  5. 3
      main/inc/lib/usermanager.lib.php
  6. 2
      src/CoreBundle/Controller/IndexController.php
  7. 4
      src/CoreBundle/EventListener/LegacyListener.php
  8. 8
      src/CoreBundle/EventListener/LocaleListener.php
  9. 2
      src/CoreBundle/Resources/config/services.yml
  10. 3
      src/CoreBundle/Resources/views/Admin/admin_topnav.html.twig
  11. 2
      src/CoreBundle/Resources/views/Admin/switcher_links.html.twig
  12. 2
      src/CoreBundle/Resources/views/Index/page_edit.html.twig
  13. 2
      src/ThemeBundle/Resources/views/Sidebar/login.html.twig

@ -155,7 +155,6 @@
"symfony/requirements-checker": "^1.1", "symfony/requirements-checker": "^1.1",
"liip/theme-bundle": "^1.5", "liip/theme-bundle": "^1.5",
"a2lix/translation-form-bundle": "^3.0", "a2lix/translation-form-bundle": "^3.0",
"lunetics/locale-bundle": "^2.6",
"oneup/uploader-bundle": "^2.0", "oneup/uploader-bundle": "^2.0",
"overblog/graphql-bundle": "^0.11.4", "overblog/graphql-bundle": "^0.11.4",
"firebase/php-jwt": "^5.0" "firebase/php-jwt": "^5.0"

@ -67,7 +67,6 @@ return [
Liip\ThemeBundle\LiipThemeBundle::class => ['all' => true], Liip\ThemeBundle\LiipThemeBundle::class => ['all' => true],
A2lix\AutoFormBundle\A2lixAutoFormBundle::class => ['all' => true], A2lix\AutoFormBundle\A2lixAutoFormBundle::class => ['all' => true],
A2lix\TranslationFormBundle\A2lixTranslationFormBundle::class => ['all' => true], A2lix\TranslationFormBundle\A2lixTranslationFormBundle::class => ['all' => true],
Lunetics\LocaleBundle\LuneticsLocaleBundle::class => ['all' => true],
Ivory\CKEditorBundle\IvoryCKEditorBundle::class => ['all' => true], Ivory\CKEditorBundle\IvoryCKEditorBundle::class => ['all' => true],
Oneup\UploaderBundle\OneupUploaderBundle::class => ['all' => true], Oneup\UploaderBundle\OneupUploaderBundle::class => ['all' => true],
APY\DataGridBundle\APYDataGridBundle::class => ['all' => true], APY\DataGridBundle\APYDataGridBundle::class => ['all' => true],

@ -1,70 +0,0 @@
lunetics_locale:
guessing_order:
- query
- session
- cookie
- browser
- router
switcher:
show_current_locale: true
allowed_locales: # From DB table languages
- 'ar'
- 'ast'
- 'eu'
- 'bn'
- 'bs'
- 'pt-BR'
- 'bg'
- 'ca'
- 'hr'
- 'cs'
- 'da'
- 'prs'
- 'nl'
- 'en'
- 'eo'
- 'fo'
- 'fi'
- 'fr'
- 'fur'
- 'gl'
- 'ka'
- 'de'
- 'el'
- 'he'
- 'hi'
- 'hu'
- 'id'
- 'it'
- 'ja'
- 'ko'
- 'lv'
- 'lt'
- 'mk'
- 'ms'
- 'no'
- 'oc'
- 'ps'
- 'fa'
- 'pl'
- 'pt'
- 'qu'
- 'ro'
- 'ru'
- 'sr'
- 'zh'
- 'sk'
- 'sl'
- 'so'
- 'es'
- 'sw'
- 'sv'
- 'tl'
- 'th'
- 'bo'
- 'zh-TW'
- 'tr'
- 'uk'
- 'vi'
- 'xh'
- 'yo'

@ -4801,6 +4801,7 @@ function languageToCountryIsoCode($languageIsoCode)
case 'ar': case 'ar':
$country = 'ae'; $country = 'ae';
break; break;
case 'en_US':
case 'en': case 'en':
$country = 'gb'; $country = 'gb';
break; break;

@ -1090,7 +1090,7 @@ class UserManager
} }
// Checking the user language // Checking the user language
$languages = api_get_languages(); $languages = array_keys(api_get_languages());
if (!in_array($language, $languages)) { if (!in_array($language, $languages)) {
$language = api_get_setting('platformLanguage'); $language = api_get_setting('platformLanguage');
} }
@ -1126,6 +1126,7 @@ class UserManager
->setStatus($status) ->setStatus($status)
->setAuthSource($auth_source) ->setAuthSource($auth_source)
->setLanguage($language) ->setLanguage($language)
->setLocale($language)
->setEmail($email) ->setEmail($email)
->setOfficialCode($official_code) ->setOfficialCode($official_code)
->setPhone($phone) ->setPhone($phone)

@ -26,7 +26,7 @@ class IndexController extends BaseController
* *
* @return Response * @return Response
*/ */
public function indexAction(): Response public function indexAction(Request $request): Response
{ {
$pageController = new PageController(); $pageController = new PageController();
$user = $this->getUser(); $user = $this->getUser();

@ -153,8 +153,8 @@ class LegacyListener
$twig->addGlobal( $twig->addGlobal(
'current_locale_info', 'current_locale_info',
[ [
'iso' => $isoFixed, 'flag' => $isoFixed,
'text' => $languageList[$isoFixed], 'text' => $languageList[$isoFixed] ?? 'English',
] ]
); );

@ -57,7 +57,9 @@ class LocaleListener implements EventSubscriberInterface
$request = $event->getRequest(); $request = $event->getRequest();
// Try to see if the locale has been set as a _locale routing parameter (from lang switcher) // Try to see if the locale has been set as a _locale routing parameter (from lang switcher)
if ($locale = $request->attributes->get('_locale')) { //if ($locale = $request->getSession('_locale')) {
if (false) {
//if ($locale = $request->attributes->get('_locale')) {
$request->getSession()->set('_locale', $locale); $request->getSession()->set('_locale', $locale);
} else { } else {
$localeList = []; $localeList = [];
@ -77,7 +79,7 @@ class LocaleListener implements EventSubscriberInterface
$userLocale = $request->getSession()->get('_locale_user'); $userLocale = $request->getSession()->get('_locale_user');
if (!empty($userLocale)) { if (!empty($userLocale)) {
//$locale = $userLocale; //$locale = $userLocale;
$localeList['user_profil_lang'] = $platformLocale; $localeList['user_profil_lang'] = $userLocale;
} }
// 3. Check course locale // 3. Check course locale
@ -120,7 +122,7 @@ class LocaleListener implements EventSubscriberInterface
'language_priority_1', 'language_priority_1',
]; ];
$locale = ''; $locale = $this->defaultLocale;
foreach ($priorityList as $setting) { foreach ($priorityList as $setting) {
$priority = $settings->getSetting("language.$setting"); $priority = $settings->getSetting("language.$setting");
if (!empty($priority) && isset($localeList[$priority])) { if (!empty($priority) && isset($localeList[$priority])) {

@ -165,7 +165,7 @@ services:
class: Chamilo\CoreBundle\EventListener\UserLocaleListener class: Chamilo\CoreBundle\EventListener\UserLocaleListener
arguments: ['@session', '@chamilo.settings.manager'] arguments: ['@session', '@chamilo.settings.manager']
tags: tags:
- {name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin} - {name: kernel.event_listener, event: security.interactive_login, method: onInteractiveLogin, priority: 15 }
# Settings listener # Settings listener
chamilo_core.listener.settings: chamilo_core.listener.settings:

@ -1,6 +1,7 @@
{% extends 'SonataAdminBundle:Core:user_block.html.twig' %} {% extends 'SonataAdminBundle:Core:user_block.html.twig' %}
{% block user_block %} {% block user_block %}
{{ locale_switcher(null, null, 'ChamiloCoreBundle:Admin:switcher_links.html.twig') }} {#{{ locale_switcher(null, null, 'ChamiloCoreBundle:Admin:switcher_links.html.twig') }}#}
{% include 'ChamiloCoreBundle:Admin:switcher_links.html.twig' %}
{{ parent() }} {{ parent() }}
{% endblock %} {% endblock %}

@ -8,7 +8,7 @@
aria-haspopup="true" aria-haspopup="true"
aria-expanded="false" aria-expanded="false"
> >
<span class="flag-icon flag-icon-{{ current_locale_info.iso }}"></span> <span class="flag-icon flag-icon-{{ current_locale_info.flag }}"></span>
{{ current_locale_info.text }} {{ current_locale_info.text }}
<span class="caret"> <span class="caret">
</span> </span>

@ -2,7 +2,7 @@
{% block chamilo_right_column %} {% block chamilo_right_column %}
{{ locale_switcher(null, null, 'ChamiloCoreBundle:Admin:switcher_links.html.twig') }} {% include 'ChamiloCoreBundle:Admin:switcher_links.html.twig' %}
Edit page '{{ page.slug }}' in '{{ page.site.locale }}' Edit page '{{ page.slug }}' in '{{ page.site.locale }}'

@ -1,4 +1,4 @@
{{ locale_switcher(null, null, 'ChamiloCoreBundle:Admin:switcher_links.html.twig') }} {% include 'ChamiloCoreBundle:Admin:switcher_links.html.twig' %}
<form action="{{ path("fos_user_security_check") }}" method="post" name="formLogin" id="formLogin"> <form action="{{ path("fos_user_security_check") }}" method="post" name="formLogin" id="formLogin">
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}"/> <input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}"/>

Loading…
Cancel
Save