New: A module can overwrite all default language files by forcing priority on langs directories on its own lang directory.

This commit is contained in:
Laurent Destailleur 2011-01-30 13:35:00 +00:00
parent 9a073f2471
commit 04c61dde3b
2 changed files with 25 additions and 11 deletions

View File

@ -9,8 +9,10 @@ For users:
- New: Ask password when creating a user from a contact - New: Ask password when creating a user from a contact
For developers: For developers:
- New: External modules can add their menu manager - New: External modules can add their own menu manager
- New: External modules can remove tabs - New: External modules can remove tabs
- New: A module can overwrite all default language files by forcing
priority on langs directories on its own lang directory.
***** ChangeLog for 3.0 compared to 2.9 ***** ***** ChangeLog for 3.0 compared to 2.9 *****

View File

@ -49,30 +49,42 @@ class Translate {
/** /**
* \brief Constructeur de la classe * Constructor
* \param dir Force directory that contains /langs subdirectory * @param dir Force directory that contains /langs subdirectory (value is sometine '..' like into install/* pages
* \param conf Objet qui contient la config Dolibarr * or support/* pages).
* @param conf Object with Dolibarr configuration
*/ */
function Translate($dir = "",$conf) function Translate($dir = "",$conf)
{ {
// If charset output is forced if (! empty($conf->file->character_set_client)) $this->charset_output=$conf->file->character_set_client; // If charset output is forced
if (! empty($conf->file->character_set_client))
{
$this->charset_output=$conf->file->character_set_client;
}
if ($dir) $this->dir=array($dir); if ($dir) $this->dir=array($dir);
else $this->dir=$conf->file->dol_document_root; else $this->dir=$conf->file->dol_document_root;
} }
/** /**
* \brief Set accessor for this->defaultlang * Set accessor for this->defaultlang
* \param srclang Language to use * @param srclang Language to use
*/ */
function setDefaultLang($srclang='fr_FR') function setDefaultLang($srclang='fr_FR')
{ {
global $conf;
//dol_syslog("Translate::setDefaultLang srclang=".$srclang,LOG_DEBUG); //dol_syslog("Translate::setDefaultLang srclang=".$srclang,LOG_DEBUG);
// If a module ask to force a priority on langs directories (to use its own lang files)
if (! empty($conf->global->MAIN_FORCELANGDIR))
{
$more=array();
foreach($conf->file->dol_document_root as $dir)
{
$newdir=$dir.$conf->global->MAIN_FORCELANGDIR;
if (! in_array($newdir,$this->dir)) $more[]=$newdir;
}
$this->dir=array_merge($more,$this->dir);
}
$this->origlang=$srclang; $this->origlang=$srclang;
if (empty($srclang) || $srclang == 'auto') if (empty($srclang) || $srclang == 'auto')