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. 3
      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",
"liip/theme-bundle": "^1.5",
"a2lix/translation-form-bundle": "^3.0",
"lunetics/locale-bundle": "^2.6",
"oneup/uploader-bundle": "^2.0",
"overblog/graphql-bundle": "^0.11.4",
"firebase/php-jwt": "^5.0"

@ -67,7 +67,6 @@ return [
Liip\ThemeBundle\LiipThemeBundle::class => ['all' => true],
A2lix\AutoFormBundle\A2lixAutoFormBundle::class => ['all' => true],
A2lix\TranslationFormBundle\A2lixTranslationFormBundle::class => ['all' => true],
Lunetics\LocaleBundle\LuneticsLocaleBundle::class => ['all' => true],
Ivory\CKEditorBundle\IvoryCKEditorBundle::class => ['all' => true],
Oneup\UploaderBundle\OneupUploaderBundle::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':
$country = 'ae';
break;
case 'en_US':
case 'en':
$country = 'gb';
break;
@ -4808,7 +4809,7 @@ function languageToCountryIsoCode($languageIsoCode)
$country = 'il';
break;
case 'uk':
$country = 'ua'; //Ukraine
$country = 'ua'; // Ukraine
break;
case 'da':
$country = 'dk';

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

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

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

@ -57,7 +57,9 @@ class LocaleListener implements EventSubscriberInterface
$request = $event->getRequest();
// 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);
} else {
$localeList = [];
@ -77,7 +79,7 @@ class LocaleListener implements EventSubscriberInterface
$userLocale = $request->getSession()->get('_locale_user');
if (!empty($userLocale)) {
//$locale = $userLocale;
$localeList['user_profil_lang'] = $platformLocale;
$localeList['user_profil_lang'] = $userLocale;
}
// 3. Check course locale
@ -120,7 +122,7 @@ class LocaleListener implements EventSubscriberInterface
'language_priority_1',
];
$locale = '';
$locale = $this->defaultLocale;
foreach ($priorityList as $setting) {
$priority = $settings->getSetting("language.$setting");
if (!empty($priority) && isset($localeList[$priority])) {

@ -165,7 +165,7 @@ services:
class: Chamilo\CoreBundle\EventListener\UserLocaleListener
arguments: ['@session', '@chamilo.settings.manager']
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
chamilo_core.listener.settings:

@ -1,6 +1,7 @@
{% extends 'SonataAdminBundle:Core:user_block.html.twig' %}
{% 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() }}
{% endblock %}

@ -8,7 +8,7 @@
aria-haspopup="true"
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 }}
<span class="caret">
</span>

@ -2,7 +2,7 @@
{% 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 }}'

@ -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">
<input type="hidden" name="_csrf_token" value="{{ csrf_token('authenticate') }}"/>

Loading…
Cancel
Save