Qual: Rewrite the Translate:Load function to be more simpler and faster.
Now for a language pt_BR, we first look for lang pt_BR then pt_PT and then en_US
This commit is contained in:
parent
f0b807d738
commit
8c2f27c616
@ -89,7 +89,7 @@ CurrentSessionTimeOut=Time out Sessão atual
|
||||
OSEnv=Entorno SO
|
||||
Box=Caixa
|
||||
Boxes=Caixas
|
||||
MaxNbOfLinesForBoxes=Nº de linhas máximo para as caixas
|
||||
MaxNbOfLinesForBoxes=N<EFBFBD> de linhas máximo para as caixas
|
||||
PositionByDefault=Posição por default
|
||||
Position=Ordem
|
||||
MenusDesc=Os configuradores do menu definem o conteúdo das 2 barras de menus (a barra horizontal e a barra vertical). É possível atribuir configuradores diferentes segundo o usuário seja interno ou externo.
|
||||
@ -174,7 +174,7 @@ OfficialWebSiteFr=site web oficial falado/escrito em francês
|
||||
OfficialWikiFr=Wiki falado/escrito em francês
|
||||
OfficialWiki=Wiki ERP
|
||||
OfficialDemo=Demo em linha ERP
|
||||
ForDocumentationSeeWiki=Para a documentação de usuário, programador ou Perguntas Freqüentess (FAQ), consulte o wiki do ERP: <br><b><a href
|
||||
ForDocumentationSeeWiki=Para a documentação de usuário, programador ou Perguntas Freq<65>entess (FAQ), consulte o wiki do ERP: <br><b><a href
|
||||
ForAnswersSeeForum=Para outras questões ou realizar as suas próprias consultas, pode utilizar o fórum do ERP: <br><b><a href
|
||||
HelpCenterDesc1=Esta área permite ajudá-lo a obter um serviço de suporte do ERP.
|
||||
HelpCenterDesc2=Alguns destes serviços só estão disponíveis em <b>inglé</b>.
|
||||
@ -215,11 +215,11 @@ UnpackPackageInDolibarrRoot=Descompactar o pacote na pasta raiz do ERP <b>%s</b>
|
||||
SetupIsReadyForUse=A Instalação está finalizada e o ERP está disponível com o novo componente.
|
||||
CurrentVersion=Versão atual do ERP
|
||||
CallUpdatePage=Chamar a página de atualização da estrutura e dados da base de dados %s.
|
||||
LastStableVersion=Última Versão estável
|
||||
GenericMaskCodes=Pode introduzir qualquer máscara numérica. Nesta máscara, pode utilizar as seguintes etiquetas:<br><b>{000000} </b> corresponde a um número que se incrementa em cada um de %s. Introduza tantos zeros como longitude que deseje mostrar. O contador completarse-á a partir de zeros pela esquerda com o fim de ter tantos zeros como a máscara. <br> <b> {000000+000}</ b> Igual que o anterior, com uma compensação correspondente ao número da direita do sinal + aplica-se a partir do primeiro %s. <br> <b> {000000@x}</b> igual que o anterior, mas o contador restabelece-se a zero quando se chega a x meses (x entre 1 e 12). Se esta opção se utiliza e x é de 2 ou superior, então a seqüência {yy}{mm} ou {yyyy}{mm} também é necessário. <br> <b> {dd} </b> dias (01 a 31). <br><b> {mm}</b> mês (01 a 12). <br><b>{yy}</b>, <b>{yyyy}</b> ou <b>{e}</b> ano em 2, 4 ou 1 figura.<br>
|
||||
GenericMaskCodes2=<b>{cccc}</b> o código de cliente em nº de caracteres<br><b>{cccc000}</b> o código de cliente em nº caracter é seguido por um contador próprio ao cliente sem offset, completado com zeros até completar a máscara, e voltando a zero ao mesmo tempo que o contador global.<br>
|
||||
LastStableVersion=<EFBFBD>ltima Versão estável
|
||||
GenericMaskCodes=Pode introduzir qualquer máscara numérica. Nesta máscara, pode utilizar as seguintes etiquetas:<br><b>{000000} </b> corresponde a um número que se incrementa em cada um de %s. Introduza tantos zeros como longitude que deseje mostrar. O contador completarse-á a partir de zeros pela esquerda com o fim de ter tantos zeros como a máscara. <br> <b> {000000+000}</ b> Igual que o anterior, com uma compensação correspondente ao número da direita do sinal + aplica-se a partir do primeiro %s. <br> <b> {000000@x}</b> igual que o anterior, mas o contador restabelece-se a zero quando se chega a x meses (x entre 1 e 12). Se esta opção se utiliza e x é de 2 ou superior, então a seq<65>ência {yy}{mm} ou {yyyy}{mm} também é necessário. <br> <b> {dd} </b> dias (01 a 31). <br><b> {mm}</b> mês (01 a 12). <br><b>{yy}</b>, <b>{yyyy}</b> ou <b>{e}</b> ano em 2, 4 ou 1 figura.<br>
|
||||
GenericMaskCodes2=<b>{cccc}</b> o código de cliente em n<> de caracteres<br><b>{cccc000}</b> o código de cliente em n<> caracter é seguido por um contador próprio ao cliente sem offset, completado com zeros até completar a máscara, e voltando a zero ao mesmo tempo que o contador global.<br>
|
||||
GenericMaskCodes3=qualquer outro caracter0 na máscara se fica sem alterações. <br>Não é permitido espaços <br>
|
||||
GenericMaskCodes4a=<u>Exemplo em 99 ª %s o Fornecedor a Empresa realizada em 31/03/2007: </u><br>
|
||||
GenericMaskCodes4a=<u>Exemplo em 99 <EFBFBD> %s o Fornecedor a Empresa realizada em 31/03/2007: </u><br>
|
||||
GenericMaskCodes4b=<u>Exemplo sobre um Fornecedor criado em 31/03/2007:</u><br>
|
||||
GenericMaskCodes5=<b>ABC{yy}{mm}-{000000}</b> dará <b>ABC0703-000099</b><br><b>{0000+100}-XXX/{dd}/YYY</b> dará <b>0199-XXX/31/YYY</b>
|
||||
GenericNumRefModelDesc=Devolve um número criado na linha em uma máscara definida.
|
||||
@ -228,7 +228,7 @@ ServerNotAvailableOnIPOrPort=Servidor não disponível não endereço <b>%s</b>
|
||||
DoTestServerAvailability=Teste de conectividade com o servidor
|
||||
DoTestSend=Teste envio
|
||||
DoTestSendHTML=Teste envio HTML
|
||||
ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Erro, não se pode usar opção @ se a seqüência {yy}{mm} ou {yyyy}{mm} não se encontra a máscara.
|
||||
ErrorCantUseRazInStartedYearIfNoYearMonthInMask=Erro, não se pode usar opção @ se a seq<65>ência {yy}{mm} ou {yyyy}{mm} não se encontra a máscara.
|
||||
UMask=Parâmetro UMask de novos arquivos em Unix/Linux/BSD.
|
||||
UMaskExplanation=Este parâmetro determina os direitos dos arquivos criados não servidor do ERP (durante o carregamento, por Exemplo).<br>Este deve ter o valor octal (por Exemplo, 0666 significa leitura / escrita para todos).<br>Este parâmetro não tem nenhum efeito sobre um servidor Windows.
|
||||
SeeWikiForAllTeam=Veja o wiki para mais detalhes de todos os autores e da sua organização
|
||||
@ -536,7 +536,7 @@ VATIsUsedExampleFR=em Francia, se trata das sociedades u organismos que eligen u
|
||||
VATIsNotUsedExampleFR=em Francia, se trata de associações exentas de ICMS o sociedades, organismos o profesiones liberales que han eligedo o regime fiscal de módulos (ICMS em franquicia), pagando um ICMS em franquicia sem fazer declaração de ICMS. Esta elecção hace aparecer a anotação "IVA não aplicable - art-293B do CGI" em faturas.
|
||||
LabelUsedByDefault=Etiqueta que se utilizará se não se encontra tradução para este código
|
||||
LabelOnDocuments=Etiqueta sobre documentos
|
||||
NbOfDays=Nº de Dias
|
||||
NbOfDays=N<EFBFBD> de Dias
|
||||
AtEndOfMonth=No Fim de Mês
|
||||
Offset=Deslocado
|
||||
AlwaysActive=Sempre Ativo
|
||||
@ -565,7 +565,7 @@ DatabaseConfiguration=configuração da base de dados
|
||||
Tables=Tabelas
|
||||
TableName=Nome da tabela
|
||||
TableLineFormat=Formato linhas
|
||||
NbOfRecord=Nº Reg.
|
||||
NbOfRecord=N<EFBFBD> Reg.
|
||||
Constraints=Constrangimentos
|
||||
ConstraintsType=Tipo de constrangimento
|
||||
ConstraintsToShowOrNotEntry=Constrangimento para mostrar não menu de entrada
|
||||
@ -905,7 +905,7 @@ LDAPDescValues=os valores de Exemplos se adaptan a <b>OpenLDAP</b> com os schema
|
||||
ForANonAnonymousAccess=Para um acesso autentificado
|
||||
##### Products #####=
|
||||
ProductSetup=configuração do módulo produtos
|
||||
NumberOfProductShowInSelect=Nº de produtos max em listas (0
|
||||
NumberOfProductShowInSelect=N<EFBFBD> de produtos max em listas (0
|
||||
ConfirmDeleteProductLineAbility=confirmação de eliminação de uma linha de produzido nos formulários
|
||||
ModifyProductDescAbility=Personalização das descripciones dos produtos nos formulários
|
||||
ViewProductDescInFormAbility=visualização das descripciones dos produtos nos formulários
|
||||
|
||||
@ -339,7 +339,7 @@ ul.tmenu {
|
||||
list-style: none;
|
||||
}
|
||||
li.tmenu {
|
||||
float: left;
|
||||
float: <?php print $left; ?>;
|
||||
padding-left:5px;
|
||||
padding-right:5px;
|
||||
padding-top: 2px;
|
||||
|
||||
@ -167,18 +167,12 @@ class Translate {
|
||||
* If data for file already loaded, do nothing.
|
||||
* All data in translation array are stored in UTF-8 format.
|
||||
* \param domain File name to load (.lang file). Use @ before value if domain is in a module directory.
|
||||
* \param alt Use alternate file even if file in target language is found
|
||||
* \param soptafterdirection Stop when the DIRECTION tag is found
|
||||
* \param alt 0,1,2
|
||||
* \param soptafterdirection Stop when the DIRECTION tag is found (optimize)
|
||||
* \param forcelangdir To force a lang directory
|
||||
* \return int <0 if KO, >0 if OK
|
||||
* \return int <0 if KO, 0 if already loaded, >0 if OK
|
||||
* \remarks tab_loaded is completed with $domain key.
|
||||
* Value for hash are: 1:Loaded from disk, 2:Not found, 3:Loaded from cache
|
||||
* TODO Make a code simpler:
|
||||
* First call is with alt=0. if xx=YY, then force alt to 1. If xx_YY == en_US, fr_FR or es_ES, then force alt=2
|
||||
* $langofdir=$this->defaultlang or forcelangdir.
|
||||
* Define lang file and try to load it if exists.
|
||||
* Then if alt < 2, we call again with alt=alt+1 and a forcelangdir;
|
||||
* We set the tab_loaded when alt == 2
|
||||
*/
|
||||
function Load($domain,$alt=0,$stopafterdirection=0,$forcelangdir='')
|
||||
{
|
||||
@ -191,45 +185,39 @@ class Translate {
|
||||
exit;
|
||||
}
|
||||
|
||||
//dol_syslog("Translate::Load domain=".$domain." alt=".$alt." forcelangdir=".$forcelangdir." this->defaultlang=".$this->defaultlang);
|
||||
//dol_syslog("Translate::Load Start domain=".$domain." alt=".$alt." forcelangdir=".$forcelangdir." this->defaultlang=".$this->defaultlang);
|
||||
|
||||
$newdomain=eregi_replace('@','',$domain); // Remove the @ if present
|
||||
|
||||
// Check cache
|
||||
if (empty($forcelangdir) && ! empty($this->tab_loaded[$domain])) { return; } // Le fichier de ce domaine est deja charge
|
||||
if (! empty($this->tab_loaded[$newdomain])) // File already loaded for this domain
|
||||
{
|
||||
//dol_syslog("Translate::Load already loaded for ".$domain);
|
||||
return 0;
|
||||
}
|
||||
|
||||
$langofdir=(empty($forcelangdir)?$this->defaultlang:$forcelangdir);
|
||||
$fileread=0;
|
||||
//dol_syslog("Translate::Load langofdir=".$langofdir);
|
||||
|
||||
// Redefine alt
|
||||
$langarray=split('_',$langofdir);
|
||||
if ($alt < 1 && strtolower($langarray[0]) == strtolower($langarray[1])) $alt=1;
|
||||
if ($alt < 2 && (strtolower($langofdir) == 'en_us' || strtolower($langofdir) == 'fr_fr' || strtolower($langofdir) == 'es_es')) $alt=2;
|
||||
|
||||
foreach($this->dir as $searchdir)
|
||||
{
|
||||
$newalt=$alt;
|
||||
|
||||
// If $domain is @xxx instead of xxx then we look for module lang file htdocs/xxx/langs/code_CODE/xxx.lang
|
||||
// instead of global lang file htdocs/langs/code_CODE/xxx.lang
|
||||
if (eregi('@',$domain)) // It's a language file of a module, we look in dir of this module.
|
||||
{
|
||||
$domain=eregi_replace('@','',$domain);
|
||||
$searchdir=$searchdir ."/".$domain."/langs";
|
||||
}
|
||||
if (eregi('@',$domain)) $searchdir=$searchdir ."/".$newdomain."/langs";
|
||||
else $searchdir=$searchdir."/langs";
|
||||
|
||||
// Directory of translation files
|
||||
$scandir = $searchdir."/".(empty($forcelangdir)?$this->defaultlang:$forcelangdir);
|
||||
$file_lang = $scandir . "/".$domain.".lang";
|
||||
$scandir = $searchdir."/".$langofdir;
|
||||
$file_lang = $scandir . "/".$newdomain.".lang";
|
||||
$filelangexists=is_file($file_lang);
|
||||
//print 'Load default_lang='.$this->defaultlang.' alt='.$alt.' newalt='.$newalt.' '.$file_lang."-".$filelangexists.'<br>';
|
||||
|
||||
// Check in "always available" alternate file if not found or if asked
|
||||
if ($newalt || ! $filelangexists)
|
||||
{
|
||||
// Dir of ALWAYS available alternate file (en_US, fr_FR, es_ES)
|
||||
if ($this->defaultlang == "en_US") $scandiralt = $searchdir."/fr_FR";
|
||||
elseif (eregi('^fr',$this->defaultlang) && $this->defaultlang != 'fr_FR') $scandiralt = $searchdir."/fr_FR";
|
||||
elseif (eregi('^en',$this->defaultlang) && $this->defaultlang != 'en_US') $scandiralt = $searchdir."/en_US";
|
||||
elseif (eregi('^es',$this->defaultlang) && $this->defaultlang != 'es_ES') $scandiralt = $searchdir."/es_ES";
|
||||
else $scandiralt = $searchdir."/en_US";
|
||||
|
||||
$file_lang = $scandiralt . "/".$domain.".lang";
|
||||
$filelangexists=is_file($file_lang);
|
||||
$newalt=1;
|
||||
}
|
||||
//print 'Load alt='.$alt.' newalt='.$newalt.' '.$file_lang."-".$filelangexists.'<br>';
|
||||
//dol_syslog('Translate::Load Try to read for alt='.$alt.' langofdir='.$langofdir.' file_lang='.$file_lang." => ".$filelangexists);
|
||||
|
||||
if ($filelangexists)
|
||||
{
|
||||
@ -237,12 +225,12 @@ class Translate {
|
||||
// Speed gain: 40ms - Memory overusage: 200ko (Size of session cache file)
|
||||
$enablelangcacheinsession=false;
|
||||
|
||||
if ($enablelangcacheinsession && isset($_SESSION['lang_'.$domain]))
|
||||
if ($enablelangcacheinsession && isset($_SESSION['lang_'.$newdomain]))
|
||||
{
|
||||
foreach($_SESSION['lang_'.$domain] as $key => $value)
|
||||
foreach($_SESSION['lang_'.$newdomain] as $key => $value)
|
||||
{
|
||||
$this->tab_translate[$key]=$value;
|
||||
$this->tab_loaded[$domain]=3; // Marque ce fichier comme charge depuis cache session
|
||||
$this->tab_loaded[$newdomain]=3; // Set this file as loaded from cache in session
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -264,13 +252,12 @@ class Translate {
|
||||
|
||||
if (eregi('^CHARSET$',$key)) // This is to declare in which charset files are encoded
|
||||
{
|
||||
$this->charset_inputfile[$domain]=strtoupper($value);
|
||||
//print 'File '.$file_lang.' is declared to have format '.$this->charset_inputfile[$domain].'<br>';
|
||||
$this->charset_inputfile[$newdomain]=strtoupper($value);
|
||||
//print 'File '.$file_lang.' is declared to have format '.$this->charset_inputfile[$newdomain].'<br>';
|
||||
}
|
||||
elseif (eregi('^DIRECTION$',$key)) // This is to declare direction of language
|
||||
{
|
||||
// We do not load Separator values for alternate files
|
||||
if (! $newalt)
|
||||
if ($alt < 2) // We do not load direction for alternate files 2
|
||||
{
|
||||
$this->direction=$value;
|
||||
if ($stopafterdirection) break;
|
||||
@ -279,34 +266,22 @@ class Translate {
|
||||
else
|
||||
{
|
||||
// On stocke toujours dans le tableau Tab en UTF-8
|
||||
//if (empty($this->charset_inputfile[$domain]) || $this->charset_inputfile[$domain] == 'UTF-8') $value=utf8_decode($value);
|
||||
if (empty($this->charset_inputfile[$domain]) || $this->charset_inputfile[$domain] == 'ISO-8859-1') $value=utf8_encode($value);
|
||||
//if (empty($this->charset_inputfile[$newdomain]) || $this->charset_inputfile[$newdomain] == 'UTF-8') $value=utf8_decode($value);
|
||||
if (empty($this->charset_inputfile[$newdomain]) || $this->charset_inputfile[$newdomain] == 'ISO-8859-1') $value=utf8_encode($value);
|
||||
|
||||
//print 'XX'.$key;
|
||||
$this->tab_translate[$key]=$value;
|
||||
|
||||
// We do not load Separator values for alternate files
|
||||
if (! $newalt || (! eregi('^Separator',$key)))
|
||||
{
|
||||
//print 'XX'.$key;
|
||||
$this->tab_translate[$key]=$value;
|
||||
}
|
||||
if ($enablelangcacheinsession) $tabtranslatedomain[$key]=$value; // To save lang in session
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$fileread=1;
|
||||
fclose($fp);
|
||||
|
||||
// For language other than fr_FR and en_US, we also load alternate file
|
||||
if (! $newalt && $this->defaultlang != "fr_FR" && $this->defaultlang != "en_US")
|
||||
{
|
||||
// This function MUST NOT contains call to syslog
|
||||
//dol_syslog("Translate::Load loading alternate translation file (to complete ".$this->defaultlang."/".$domain.".lang file)", LOG_DEBUG);
|
||||
$this->load($domain,1,$stopafterdirection);
|
||||
}
|
||||
|
||||
$this->tab_loaded[$domain]=1; // Marque ce fichier comme charge
|
||||
|
||||
// To save lang in session
|
||||
if ($enablelangcacheinsession && sizeof($tabtranslatedomain)) $_SESSION['lang_'.$domain]=$tabtranslatedomain;
|
||||
if ($enablelangcacheinsession && sizeof($tabtranslatedomain)) $_SESSION['lang_'.$newdomain]=$tabtranslatedomain;
|
||||
|
||||
break; // Break loop on each root dir
|
||||
}
|
||||
@ -314,21 +289,45 @@ class Translate {
|
||||
}
|
||||
}
|
||||
|
||||
// Format for date
|
||||
if ($domain == 'main')
|
||||
// Now we load alternate file
|
||||
if ($alt == 0)
|
||||
{
|
||||
$conf->format_date_short=empty($this->tab_translate['FormatDateShort'])?"%d/%m/%Y":$this->tab_translate['FormatDateShort']; # Format of day with PHP/C tags (strftime functions)
|
||||
$conf->format_date_short_java=empty($this->tab_translate['FormatDateShortJava'])?"dd/MM/yyyy":$this->tab_translate['FormatDateShortJava']; # Format of day with Java tags
|
||||
$conf->format_hour_short=empty($this->tab_translate['FormatHourShort'])?"%H:%M":$this->tab_translate['FormatHourShort'];
|
||||
$conf->format_date_text_short=empty($this->tab_translate['FormatDateTextShort'])?"%d %b %Y":$this->tab_translate['FormatDateTextShort'];
|
||||
$conf->format_date_text=empty($this->tab_translate['FormatDateText'])?"%d %B %Y":$this->tab_translate['FormatDateText'];
|
||||
$conf->format_date_hour_short=empty($this->tab_translate['FormatDateHourShort'])?"%d/%m/%Y %H:%M":$this->tab_translate['FormatDateHourShort'];
|
||||
$conf->format_date_hour_text_short=empty($this->tab_translate['FormatDateHourTextShort'])?"%d %b %Y %H:%M":$this->tab_translate['FormatDateHourTextShort'];
|
||||
$conf->format_date_hour_text=empty($this->tab_translate['FormatDateHourText'])?"%d %B %Y %H:%M":$this->tab_translate['FormatDateHourText'];
|
||||
//print $domain." => ".$this->defaultlang." ".$conf->format_date_hour_short." ".$this->tab_translate['FormatDateHourShort'];
|
||||
// This function MUST NOT contains call to syslog
|
||||
//dol_syslog("Translate::Load loading alternate translation file (to complete ".$this->defaultlang."/".$newdomain.".lang file)", LOG_DEBUG);
|
||||
$langofdir=strtolower($langarray[0]).'_'.strtoupper($langarray[0]);
|
||||
$this->load($domain,$alt+1,$stopafterdirection,$langofdir);
|
||||
}
|
||||
|
||||
if (empty($this->tab_loaded[$domain])) $this->tab_loaded[$domain]=2; // Marque ce fichier comme non trouve
|
||||
if ($alt == 1)
|
||||
{
|
||||
// This function MUST NOT contains call to syslog
|
||||
//dol_syslog("Translate::Load loading alternate translation file (to complete ".$this->defaultlang."/".$newdomain.".lang file)", LOG_DEBUG);
|
||||
$langofdir='en_US';
|
||||
if (eregi('^fr',$langarray[0])) $langofdir='fr_FR';
|
||||
if (eregi('^es',$langarray[0])) $langofdir='es_ES';
|
||||
$this->load($domain,$alt+1,$stopafterdirection,$langofdir);
|
||||
}
|
||||
|
||||
if ($alt == 2)
|
||||
{
|
||||
if ($fileread) $this->tab_loaded[$newdomain]=1; // Set domain file as loaded
|
||||
|
||||
// Format for date
|
||||
if ($newdomain == 'main')
|
||||
{
|
||||
$conf->format_date_short=empty($this->tab_translate['FormatDateShort'])?"%d/%m/%Y":$this->tab_translate['FormatDateShort']; # Format of day with PHP/C tags (strftime functions)
|
||||
$conf->format_date_short_java=empty($this->tab_translate['FormatDateShortJava'])?"dd/MM/yyyy":$this->tab_translate['FormatDateShortJava']; # Format of day with Java tags
|
||||
$conf->format_hour_short=empty($this->tab_translate['FormatHourShort'])?"%H:%M":$this->tab_translate['FormatHourShort'];
|
||||
$conf->format_date_text_short=empty($this->tab_translate['FormatDateTextShort'])?"%d %b %Y":$this->tab_translate['FormatDateTextShort'];
|
||||
$conf->format_date_text=empty($this->tab_translate['FormatDateText'])?"%d %B %Y":$this->tab_translate['FormatDateText'];
|
||||
$conf->format_date_hour_short=empty($this->tab_translate['FormatDateHourShort'])?"%d/%m/%Y %H:%M":$this->tab_translate['FormatDateHourShort'];
|
||||
$conf->format_date_hour_text_short=empty($this->tab_translate['FormatDateHourTextShort'])?"%d %b %Y %H:%M":$this->tab_translate['FormatDateHourTextShort'];
|
||||
$conf->format_date_hour_text=empty($this->tab_translate['FormatDateHourText'])?"%d %B %Y %H:%M":$this->tab_translate['FormatDateHourText'];
|
||||
//print $domain." => ".$this->defaultlang." ".$conf->format_date_hour_short." ".$this->tab_translate['FormatDateHourShort'];
|
||||
}
|
||||
|
||||
if (empty($this->tab_loaded[$newdomain])) $this->tab_loaded[$newdomain]=2; // Marque ce fichier comme non trouve
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user