Add force reload param to load method
This commit is contained in:
parent
87d9dfa009
commit
59d5391c2a
@ -163,18 +163,19 @@ class Translate
|
|||||||
*
|
*
|
||||||
* Value for hash are: 1:Loaded from disk, 2:Not found, 3:Loaded from cache
|
* Value for hash are: 1:Loaded from disk, 2:Not found, 3:Loaded from cache
|
||||||
*
|
*
|
||||||
* @param string $domain File name to load (.lang file). Must be "file" or "file@module" for module language files:
|
* @param string $domain File name to load (.lang file). Must be "file" or "file@module" for module language files:
|
||||||
* If $domain is "file@module" instead of "file" then we look for module lang file
|
* If $domain is "file@module" instead of "file" then we look for module lang file
|
||||||
* in htdocs/custom/modules/mymodule/langs/code_CODE/file.lang
|
* in htdocs/custom/modules/mymodule/langs/code_CODE/file.lang
|
||||||
* then in htdocs/module/langs/code_CODE/file.lang instead of htdocs/langs/code_CODE/file.lang
|
* then in htdocs/module/langs/code_CODE/file.lang instead of htdocs/langs/code_CODE/file.lang
|
||||||
* @param integer $alt 0 (try xx_ZZ then 1), 1 (try xx_XX then 2), 2 (try en_US)
|
* @param integer $alt 0 (try xx_ZZ then 1), 1 (try xx_XX then 2), 2 (try en_US)
|
||||||
* @param int $stopafterdirection Stop when the DIRECTION tag is found (optimize speed)
|
* @param int $stopafterdirection Stop when the DIRECTION tag is found (optimize speed)
|
||||||
* @param int $forcelangdir To force a different lang directory
|
* @param int $forcelangdir To force a different lang directory
|
||||||
* @param int $loadfromfileonly 1=Do not load overwritten translation from file or old conf.
|
* @param int $loadfromfileonly 1=Do not load overwritten translation from file or old conf.
|
||||||
* @return int <0 if KO, 0 if already loaded or loading not required, >0 if OK
|
* @param int $forceloadifalreadynotfound Force attempt to reload lang file if it was previously not found
|
||||||
|
* @return int <0 if KO, 0 if already loaded or loading not required, >0 if OK
|
||||||
* @see loadLangs()
|
* @see loadLangs()
|
||||||
*/
|
*/
|
||||||
public function load($domain, $alt = 0, $stopafterdirection = 0, $forcelangdir = '', $loadfromfileonly = 0)
|
public function load($domain, $alt = 0, $stopafterdirection = 0, $forcelangdir = '', $loadfromfileonly = 0, $forceloadifalreadynotfound = 0)
|
||||||
{
|
{
|
||||||
global $conf,$db;
|
global $conf,$db;
|
||||||
|
|
||||||
@ -205,7 +206,8 @@ class Translate
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check cache
|
// Check cache
|
||||||
if (! empty($this->_tab_loaded[$newdomain])) // File already loaded for this domain
|
if (! empty($this->_tab_loaded[$newdomain])
|
||||||
|
&& ($this->_tab_loaded[$newdomain] != 2 || empty($forceloadifalreadynotfound)) ) // File already loaded and found and not forced for this domain
|
||||||
{
|
{
|
||||||
//dol_syslog("Translate::Load already loaded for newdomain=".$newdomain);
|
//dol_syslog("Translate::Load already loaded for newdomain=".$newdomain);
|
||||||
return 0;
|
return 0;
|
||||||
@ -388,55 +390,6 @@ class Translate
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* re-load translation key-value for a particular file, into a memory array.
|
|
||||||
* If data for file already loaded, do nothing.
|
|
||||||
* All data in translation array are stored in UTF-8 format.
|
|
||||||
* tab_loaded is completed with $domain key.
|
|
||||||
* rule "we keep first entry found with we keep last entry found" so it is probably not what you want to do.
|
|
||||||
*
|
|
||||||
* Value for hash are: 1:Loaded from disk, 2:Not found, 3:Loaded from cache
|
|
||||||
*
|
|
||||||
* @param string $domain File name to load (.lang file). Must be "file" or "file@module" for module language files:
|
|
||||||
* If $domain is "file@module" instead of "file" then we look for module lang file
|
|
||||||
* in htdocs/custom/modules/mymodule/langs/code_CODE/file.lang
|
|
||||||
* then in htdocs/module/langs/code_CODE/file.lang instead of htdocs/langs/code_CODE/file.lang
|
|
||||||
* @param integer $alt 0 (try xx_ZZ then 1), 1 (try xx_XX then 2), 2 (try en_US)
|
|
||||||
* @param int $stopafterdirection Stop when the DIRECTION tag is found (optimize speed)
|
|
||||||
* @param int $forcelangdir To force a different lang directory
|
|
||||||
* @param int $loadfromfileonly 1=Do not load overwritten translation from file or old conf.
|
|
||||||
* @return int <0 if KO, 0 if loading not required, >0 if OK
|
|
||||||
* @see loadLangs()
|
|
||||||
*/
|
|
||||||
public function reload($domain, $alt = 0, $stopafterdirection = 0, $forcelangdir = '', $loadfromfileonly = 0)
|
|
||||||
{
|
|
||||||
// Check parameters
|
|
||||||
if (empty($domain)) {
|
|
||||||
dol_print_error('', get_class($this) . "::Load ErrorWrongParameters");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($this->defaultlang == 'none_NONE') return 0; // Special language code to not translate keys
|
|
||||||
|
|
||||||
$newdomain = $domain;
|
|
||||||
|
|
||||||
// Search if a module directory name is provided into lang file name
|
|
||||||
$regs = array();
|
|
||||||
if (preg_match('/^([^@]+)@([^@]+)$/i', $domain, $regs)) {
|
|
||||||
$newdomain = $regs[1];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Check cache and remove it
|
|
||||||
if (!empty($this->_tab_loaded[$newdomain])) // File already loaded for this domain
|
|
||||||
{
|
|
||||||
unset($this->_tab_loaded[$newdomain]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->load($domain, $alt, $stopafterdirection, $forcelangdir, $loadfromfileonly);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load translation key-value from database into a memory array.
|
* Load translation key-value from database into a memory array.
|
||||||
* If data already loaded, do nothing.
|
* If data already loaded, do nothing.
|
||||||
|
|||||||
@ -1057,9 +1057,7 @@ class Cronjob extends CommonObject
|
|||||||
if (!$error)
|
if (!$error)
|
||||||
{
|
{
|
||||||
$result = $langs->load($this->module_name);
|
$result = $langs->load($this->module_name);
|
||||||
if($result<0){
|
$result = $langs->load($this->module_name.'@'.$this->module_name, 0, 0, '', 0, 1);
|
||||||
$result = $langs->reload($this->module_name.'@'.$this->module_name);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($result < 0) // If technical error
|
if ($result < 0) // If technical error
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user