Fix language installation selection, use isocode

pull/3924/head
Julio Montoya 4 years ago
parent 474f03bf28
commit aebd931297
  1. 2
      public/main/inc/lib/internationalization.lib.php
  2. 6
      public/main/install/index.php
  3. 30
      public/main/install/install.lib.php
  4. 30
      src/CoreBundle/DataFixtures/LanguageFixtures.php

@ -129,7 +129,7 @@ function api_get_language_isocode()
return $request->getLocale();
}
return 'en';
return 'en_US';
}
/**

@ -53,7 +53,7 @@ if (file_exists($envFile)) {
}*/
// Defaults settings
putenv('APP_LOCALE=en');
putenv('APP_LOCALE=en_US');
putenv('APP_ENCRYPT_METHOD="bcrypt"');
putenv('DATABASE_HOST=');
putenv('DATABASE_PORT=');
@ -67,7 +67,7 @@ session_start();
require_once 'install.lib.php';
$installationLanguage = 'en';
$installationLanguage = 'en_US';
// Determination of the language during the installation procedure.
if (!empty($_POST['language_list'])) {
$search = ['../', '\\0'];
@ -79,7 +79,7 @@ if (!empty($_POST['language_list'])) {
// Language validation.
if (!array_key_exists($installationLanguage, get_language_folder_list())) {
$installationLanguage = 'en';
$installationLanguage = 'en_US';
}
// Set translation

@ -2,6 +2,7 @@
/* For licensing terms, see /license.txt */
use Chamilo\CoreBundle\DataFixtures\LanguageFixtures;
use Chamilo\CoreBundle\Entity\AccessUrl;
use Chamilo\CoreBundle\Entity\BranchSync;
use Chamilo\CoreBundle\Entity\Group;
@ -380,6 +381,10 @@ function writeSystemConfigFile($path)
*/
function get_language_folder_list()
{
$languages = LanguageFixtures::getLanguages();
return array_column($languages, 'english_name', 'isocode');
return [
'ar' => 'arabic',
'ast' => 'asturian',
@ -573,33 +578,12 @@ function display_step_sequence()
/**
* Displays a drop down box for selection the preferred language.
*/
function display_language_selection_box($name = 'language_list', $default_language = 'en')
function display_language_selection_box($name = 'language_list', $default_language = 'en_US')
{
// Reading language list.
$language_list = get_language_folder_list();
// Sanity checks due to the possibility for customizations.
if (!is_array($language_list) || empty($language_list)) {
$language_list = ['en' => 'English'];
}
// Sorting again, if it is necessary.
//asort($language_list);
// More sanity checks.
if (!array_key_exists($default_language, $language_list)) {
if (array_key_exists('en', $language_list)) {
$default_language = 'en';
} else {
$language_keys = array_keys($language_list);
$default_language = $language_keys[0];
}
}
// Displaying the box.
return Display::select(
'language_list',
$language_list,
get_language_folder_list(),
$default_language,
['class' => 'form-control'],
false

@ -14,7 +14,23 @@ class LanguageFixtures extends Fixture
{
public function load(ObjectManager $manager): void
{
$list = [
$list = self::getLanguages();
foreach ($list as $data) {
$lang = (new Language())
->setOriginalName($data['original_name'])
->setEnglishName($data['english_name'])
->setIsocode($data['isocode'])
->setAvailable(1 === $data['available'])
;
$manager->persist($lang);
}
$manager->flush();
}
public static function getLanguages(): array
{
return [
[
'original_name' => 'العربية',
'english_name' => 'arabic',
@ -382,17 +398,5 @@ class LanguageFixtures extends Fixture
'available' => 0,
],
];
foreach ($list as $data) {
$lang = (new Language())
->setOriginalName($data['original_name'])
->setEnglishName($data['english_name'])
->setIsocode($data['isocode'])
->setAvailable(1 === $data['available'])
;
$manager->persist($lang);
}
$manager->flush();
}
}

Loading…
Cancel
Save