Procházet zdrojové kódy

WIP - Translation - Loading po files fixes

Julio Montoya před 6 roky
rodič
revize
7d00a09e7f

+ 0 - 3
config/packages/framework.yaml

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

+ 9 - 9
config/packages/sonata_intl.yaml

@@ -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

+ 1 - 0
config/packages/translation.yaml

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

+ 12 - 6
src/CoreBundle/EventListener/LocaleListener.php

@@ -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);

+ 6 - 1
src/CoreBundle/EventListener/UserLocaleListener.php

@@ -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());

+ 7 - 2
src/CoreBundle/Resources/config/services.yml

@@ -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:

+ 3 - 6
src/UserBundle/Resources/views/login.html.twig

@@ -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">