Improved JCB to now be able to have other languanges then en-GB as its base/main/global language. This will allow you to build your components in a language of your choice.
This commit is contained in:
@ -204,7 +204,14 @@ class Get
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
public $languages = array('en-GB' => array());
|
||||
public $languages = array();
|
||||
|
||||
/**
|
||||
* The Main Languages
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public $langTag = 'en-GB';
|
||||
|
||||
/**
|
||||
* The Multi Languages bucket
|
||||
@ -642,6 +649,10 @@ class Get
|
||||
$this->params = JComponentHelper::getParams('com_componentbuilder');
|
||||
// set the minfy switch of the JavaScript
|
||||
$this->minify = (isset($config['minify']) && $config['minify'] != 2) ? $config['minify'] : $this->params->get('minify', 0);
|
||||
// set the global language
|
||||
$this->langTag = $this->params->get('language', $this->langTag);
|
||||
// setup the main language array
|
||||
$this->languages[$this->langTag] = array();
|
||||
// check if we have Tidy enabled
|
||||
$this->tidy = extension_loaded('Tidy');
|
||||
// set the field type builder
|
||||
@ -4516,8 +4527,8 @@ class Get
|
||||
$query->from($this->db->quoteName('#__componentbuilder_language_translation', 'a'));
|
||||
if (ComponentbuilderHelper::checkArray($values))
|
||||
{
|
||||
$query->select($this->db->quoteName(array('a.id', 'a.translation', 'a.entranslation', 'a.components', 'a.published')));
|
||||
$query->where($this->db->quoteName('a.entranslation') . ' IN (' . implode(',', array_map(function($a)
|
||||
$query->select($this->db->quoteName(array('a.id', 'a.translation', 'a.source', 'a.components', 'a.published')));
|
||||
$query->where($this->db->quoteName('a.source') . ' IN (' . implode(',', array_map(function($a)
|
||||
{
|
||||
return $this->db->quote($a);
|
||||
}, $values)) . ')');
|
||||
@ -4525,7 +4536,7 @@ class Get
|
||||
$this->db->execute();
|
||||
if ($this->db->getNumRows())
|
||||
{
|
||||
return $this->db->loadAssocList('entranslation');
|
||||
return $this->db->loadAssocList('source');
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@ -4543,7 +4554,7 @@ class Get
|
||||
$counterInsert = 0;
|
||||
$counterUpdate = 0;
|
||||
$today = JFactory::getDate()->toSql();
|
||||
foreach ($this->languages['en-GB'] as $area => $placeholders)
|
||||
foreach ($this->languages[$this->langTag] as $area => $placeholders)
|
||||
{
|
||||
foreach ($placeholders as $placeholder => $string)
|
||||
{
|
||||
@ -4630,7 +4641,7 @@ class Get
|
||||
// add the new lang placeholder to the db
|
||||
$this->newLangStrings[$counterInsert] = array();
|
||||
$this->newLangStrings[$counterInsert][] = $this->db->quote(json_encode(array($this->componentID))); // 'components'
|
||||
$this->newLangStrings[$counterInsert][] = $this->db->quote($string); // 'entranslation'
|
||||
$this->newLangStrings[$counterInsert][] = $this->db->quote($string); // 'source'
|
||||
$this->newLangStrings[$counterInsert][] = $this->db->quote(1); // 'published'
|
||||
$this->newLangStrings[$counterInsert][] = $this->db->quote($today); // 'created'
|
||||
$this->newLangStrings[$counterInsert][] = $this->db->quote((int) $this->user->id); // 'created_by'
|
||||
@ -4668,7 +4679,7 @@ class Get
|
||||
$query = $this->db->getQuery(true);
|
||||
$continue = false;
|
||||
// Insert columns.
|
||||
$columns = array('components', 'entranslation', 'published', 'created', 'created_by', 'version', 'access');
|
||||
$columns = array('components', 'source', 'published', 'created', 'created_by', 'version', 'access');
|
||||
// Prepare the insert query.
|
||||
$query->insert($this->db->quoteName('#__componentbuilder_language_translation'));
|
||||
$query->columns($this->db->quoteName($columns));
|
||||
@ -4763,7 +4774,7 @@ class Get
|
||||
$query->from($this->db->quoteName('#__componentbuilder_language_translation', 'a'));
|
||||
$query->select($this->db->quoteName(array('a.id', 'a.translation', 'a.components')));
|
||||
// get all string that are not linked to this component
|
||||
$query->where($this->db->quoteName('a.entranslation') . ' NOT IN (' . implode(',', array_map(function($a)
|
||||
$query->where($this->db->quoteName('a.source') . ' NOT IN (' . implode(',', array_map(function($a)
|
||||
{
|
||||
return $this->db->quote($a);
|
||||
}, $values)) . ')');
|
||||
|
@ -1270,7 +1270,7 @@ class Interpretation extends Fields
|
||||
$method[] = "\t\t\$lang = JFactory::getLanguage();";
|
||||
$method[] = "\t\t\$extension = 'com_users';";
|
||||
$method[] = "\t\t\$base_dir = JPATH_SITE;";
|
||||
$method[] = "\t\t\$language_tag = 'en-GB';";
|
||||
$method[] = "\t\t\$language_tag = '".$this->langTag."';";
|
||||
$method[] = "\t\t\$reload = true;";
|
||||
$method[] = "\t\t\$lang->load(\$extension, \$base_dir, \$language_tag, \$reload);";
|
||||
$method[] = "\t\t//" . $this->setLine(__LINE__) . " load the user regestration model";
|
||||
@ -1351,7 +1351,7 @@ class Interpretation extends Fields
|
||||
$method[] = "\t\t\$lang = JFactory::getLanguage();";
|
||||
$method[] = "\t\t\$extension = 'com_users';";
|
||||
$method[] = "\t\t\$base_dir = JPATH_ADMINISTRATOR;";
|
||||
$method[] = "\t\t\$language_tag = 'en-GB';";
|
||||
$method[] = "\t\t\$language_tag = '".$this->langTag."';";
|
||||
$method[] = "\t\t\$reload = true;";
|
||||
$method[] = "\t\t\$lang->load(\$extension, \$base_dir, \$language_tag, \$reload);";
|
||||
$method[] = "\t\t// load the user model";
|
||||
@ -6092,7 +6092,7 @@ class Interpretation extends Fields
|
||||
{
|
||||
ksort($this->langContent['admin']);
|
||||
// load to global languages
|
||||
$this->languages['en-GB']['admin'] = $this->langContent['admin'];
|
||||
$this->languages[$this->langTag]['admin'] = $this->langContent['admin'];
|
||||
// remove tmp array
|
||||
unset($this->langContent['admin']);
|
||||
|
||||
@ -6145,7 +6145,7 @@ class Interpretation extends Fields
|
||||
{
|
||||
ksort($this->langContent['site']);
|
||||
// load to global languages
|
||||
$this->languages['en-GB']['site'] = $this->langContent['site'];
|
||||
$this->languages[$this->langTag]['site'] = $this->langContent['site'];
|
||||
// remove tmp array
|
||||
unset($this->langContent['site']);
|
||||
|
||||
@ -6173,7 +6173,7 @@ class Interpretation extends Fields
|
||||
{
|
||||
ksort($this->langContent['sitesys']);
|
||||
// load to global languages
|
||||
$this->languages['en-GB']['sitesys'] = $this->langContent['sitesys'];
|
||||
$this->languages[$this->langTag]['sitesys'] = $this->langContent['sitesys'];
|
||||
// remove tmp array
|
||||
unset($this->langContent['sitesys']);
|
||||
|
||||
@ -6196,7 +6196,7 @@ class Interpretation extends Fields
|
||||
{
|
||||
ksort($this->langContent['adminsys']);
|
||||
// load to global languages
|
||||
$this->languages['en-GB']['adminsys'] = $this->langContent['adminsys'];
|
||||
$this->languages[$this->langTag]['adminsys'] = $this->langContent['adminsys'];
|
||||
// remove tmp array
|
||||
unset($this->langContent['adminsys']);
|
||||
|
||||
|
@ -1078,26 +1078,26 @@ class Infusion extends Interpretation
|
||||
// check the admin lang is set
|
||||
if ($this->setLangAdmin())
|
||||
{
|
||||
$values[] = array_values($this->languages['en-GB']['admin']);
|
||||
$mainLangLoader['admin'] = count($this->languages['en-GB']['admin']);
|
||||
$values[] = array_values($this->languages[$this->langTag]['admin']);
|
||||
$mainLangLoader['admin'] = count($this->languages[$this->langTag]['admin']);
|
||||
}
|
||||
// check the admin system lang is set
|
||||
if ($this->setLangAdminSys())
|
||||
{
|
||||
$values[] = array_values($this->languages['en-GB']['adminsys']);
|
||||
$mainLangLoader['adminsys'] = count($this->languages['en-GB']['adminsys']);
|
||||
$values[] = array_values($this->languages[$this->langTag]['adminsys']);
|
||||
$mainLangLoader['adminsys'] = count($this->languages[$this->langTag]['adminsys']);
|
||||
}
|
||||
// check the site lang is set
|
||||
if (!$this->removeSiteFolder && $this->setLangSite())
|
||||
{
|
||||
$values[] = array_values($this->languages['en-GB']['site']);
|
||||
$mainLangLoader['site'] = count($this->languages['en-GB']['site']);
|
||||
$values[] = array_values($this->languages[$this->langTag]['site']);
|
||||
$mainLangLoader['site'] = count($this->languages[$this->langTag]['site']);
|
||||
}
|
||||
// check the site system lang is set
|
||||
if (!$this->removeSiteFolder && $this->setLangSiteSys())
|
||||
{
|
||||
$values[] = array_values($this->languages['en-GB']['sitesys']);
|
||||
$mainLangLoader['sitesys'] = count($this->languages['en-GB']['sitesys']);
|
||||
$values[] = array_values($this->languages[$this->langTag]['sitesys']);
|
||||
$mainLangLoader['sitesys'] = count($this->languages[$this->langTag]['sitesys']);
|
||||
}
|
||||
$values = array_unique(ComponentbuilderHelper::mergeArrays($values));
|
||||
// get the other lang strings if there is any
|
||||
@ -1118,8 +1118,8 @@ class Infusion extends Interpretation
|
||||
$tag = trim($tag);
|
||||
foreach ($areas as $area => $languageStrings)
|
||||
{
|
||||
// only log messages for none en-GB translations
|
||||
if ('en-GB' !== $tag)
|
||||
// only log messages for none $this->langTag translations
|
||||
if ($this->langTag !== $tag)
|
||||
{
|
||||
$langStringNr = count($languageStrings);
|
||||
$langStringSum = $this->bcmath('mul', $langStringNr, 100);
|
||||
@ -1132,12 +1132,12 @@ class Infusion extends Interpretation
|
||||
if ($percentage < $this->percentageLanguageAdd)
|
||||
{
|
||||
// dont add
|
||||
$this->langNot[$area . ' ' . $tag] = '<b>' . $mainLangLoader[$area] . '</b>(total en-GB strings) only <b>' . $langStringNr . '</b>' . $stringNAme . ' = ' . $percentage;
|
||||
$this->langNot[$area . ' ' . $tag] = '<b>' . $mainLangLoader[$area] . '</b>(total '.$this->langTag.' strings) only <b>' . $langStringNr . '</b>' . $stringNAme . ' = ' . $percentage;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// show if it was added as well
|
||||
$this->langSet[$area . ' ' . $tag] = '<b>' . $mainLangLoader[$area] . '</b>(total en-GB strings) and <b>' . $langStringNr . '</b>' . $stringNAme . ' = ' . $percentage;
|
||||
$this->langSet[$area . ' ' . $tag] = '<b>' . $mainLangLoader[$area] . '</b>(total '.$this->langTag.' strings) and <b>' . $langStringNr . '</b>' . $stringNAme . ' = ' . $percentage;
|
||||
}
|
||||
// set naming convention
|
||||
$p = 'admin';
|
||||
|
Reference in New Issue
Block a user