Modules can add menu entries on left menu.

This commit is contained in:
Laurent Destailleur 2008-05-02 03:55:09 +00:00
parent 98ebbf7571
commit debb9cee8a
13 changed files with 556 additions and 621 deletions

View File

@ -318,7 +318,14 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create')
// MenuId Parent // MenuId Parent
print '<tr><td><b>'.$langs->trans('MenuIdParent').'</b></td>'; print '<tr><td><b>'.$langs->trans('MenuIdParent').'</b></td>';
print '<td><input type="text" size="10" name="menuId" value="'.$parent_rowid.'"></td>'; if ($parent_rowid)
{
print '<td>'.$parent_rowid.'<input type="hidden" size="10" name="menuId" value="'.$parent_rowid.'"></td>';
}
else
{
print '<td><input type="text" size="10" name="menuId" value="'.$parent_rowid.'"></td>';
}
print '<td>'.$langs->trans('DetailMenuIdParent').'</td></tr>'; print '<td>'.$langs->trans('DetailMenuIdParent').'</td></tr>';
// Handler // Handler
@ -339,11 +346,19 @@ if (isset($_GET["action"]) && $_GET["action"] == 'create')
// Type // Type
print '<tr><td><b>'.$langs->trans('Type').'</b></td><td>'; print '<tr><td><b>'.$langs->trans('Type').'</b></td><td>';
print '<select name="type" class="flat">'; if ($parent_rowid)
print '<option value="">&nbsp;</option>'; {
print '<option value="top"'.($_POST["type"] && $_POST["type"]=='top'?' selected="true"':'').'>Top</option>'; print 'Left';
print '<option value="left"'.($_POST["type"] && $_POST["type"]=='left'?' selected="true"':'').'>Left</option>'; print '<input type="hidden" name="type" value="left">';
print '</select>'; }
else
{
print '<select name="type" class="flat">';
print '<option value="">&nbsp;</option>';
print '<option value="top"'.($_POST["type"] && $_POST["type"]=='top'?' selected="true"':'').'>Top</option>';
print '<option value="left"'.($_POST["type"] && $_POST["type"]=='left'?' selected="true"':'').'>Left</option>';
print '</select>';
}
// print '<input type="text" size="50" name="type" value="'.$type.'">'; // print '<input type="text" size="50" name="type" value="'.$type.'">';
print '</td><td>'.$langs->trans('DetailType').'</td></tr>'; print '</td><td>'.$langs->trans('DetailType').'</td></tr>';

View File

@ -332,9 +332,10 @@ class Menubase
* @param unknown_type $mainmenu Value for mainmenu that defined top menu * @param unknown_type $mainmenu Value for mainmenu that defined top menu
* @param unknown_type $leftmenu Value for left that defined leftmenu * @param unknown_type $leftmenu Value for left that defined leftmenu
* @param unknown_type $type_user 0=Internal,1=External,2=All * @param unknown_type $type_user 0=Internal,1=External,2=All
* @param menu_handler Name of menu_handler used (auguria, eldy...)
* @return array Menu array completed * @return array Menu array completed
*/ */
function menuLeftCharger($newmenu, $mainmenu, $leftmenu, $type_user) function menuLeftCharger($newmenu, $mainmenu, $leftmenu, $type_user, $menu_handler)
{ {
global $langs, $user, $conf; global $langs, $user, $conf;
global $rights; // To export to dol_eval function global $rights; // To export to dol_eval function
@ -349,7 +350,7 @@ class Menubase
$sql.= " FROM " . MAIN_DB_PREFIX . "menu as m"; $sql.= " FROM " . MAIN_DB_PREFIX . "menu as m";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."menu_const as mc ON m.rowid = mc.fk_menu"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."menu_const as mc ON m.rowid = mc.fk_menu";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."menu_constraint as mo ON mc.fk_constraint = mo.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."menu_constraint as mo ON mc.fk_constraint = mo.rowid";
$sql.= " WHERE m.menu_handler in('".$this->menu_handler."','all')"; $sql.= " WHERE m.menu_handler in('".$menu_handler."','all')";
if ($type_user == 0) $sql.= " AND m.user in (0,2)"; if ($type_user == 0) $sql.= " AND m.user in (0,2)";
if ($type_user == 1) $sql.= " AND m.user in (1,2)"; if ($type_user == 1) $sql.= " AND m.user in (1,2)";
// If type_user == 2, no test requires // If type_user == 2, no test requires
@ -372,15 +373,12 @@ class Menubase
// Define $chaine // Define $chaine
$chaine=""; $chaine="";
$title = $langs->trans($menu['titre']); $title = $langs->trans($menu['titre']);
if (! eregi('\(dotnoloadlang\)$',$title)) if ($title == $menu['titre'] && ! empty($menu['langs']))
{ {
if (! empty($menu['langs'])) $langs->load($menu['langs']); $title = $langs->trans($menu['titre']);
$langs->load($menu['langs']);
} }
else if (eregi("/",$title))
{
$title=eregi_replace('\(dotnoloadlang\)$','',$title);
}
if (eregi("/",$title))
{ {
$tab_titre = explode("/",$title); $tab_titre = explode("/",$title);
$chaine = $langs->trans($tab_titre[0])."/".$langs->trans($tab_titre[1]); $chaine = $langs->trans($tab_titre[0])."/".$langs->trans($tab_titre[1]);
@ -412,7 +410,6 @@ class Menubase
$tabMenu[$b][1] = $menu['fk_menu']; $tabMenu[$b][1] = $menu['fk_menu'];
$tabMenu[$b][2] = $menu['url']; $tabMenu[$b][2] = $menu['url'];
$tabMenu[$b][3] = $chaine; $tabMenu[$b][3] = $chaine;
// $tabMenu[$b][4] = $perms;
$tabMenu[$b][5] = $menu['target']; $tabMenu[$b][5] = $menu['target'];
$tabMenu[$b][6] = $menu['leftmenu']; $tabMenu[$b][6] = $menu['leftmenu'];
if (! isset($tabMenu[$b][4])) $tabMenu[$b][4] = $perms; if (! isset($tabMenu[$b][4])) $tabMenu[$b][4] = $perms;
@ -429,24 +426,23 @@ class Menubase
dolibarr_print_error($this->db); dolibarr_print_error($this->db);
} }
// Get menutopid // Get menutopid
$sql = "SELECT m.rowid, m.titre, m.type"; $sql = "SELECT m.rowid, m.titre, m.type";
$sql.= " FROM " . MAIN_DB_PREFIX . "menu as m"; $sql.= " FROM " . MAIN_DB_PREFIX . "menu as m";
$sql.= " WHERE m.mainmenu = '".$mainmenu."'"; $sql.= " WHERE m.mainmenu = '".$mainmenu."'";
$sql.= " AND m.menu_handler= '".$this->menu_handler."'"; $sql.= " AND m.menu_handler in('".$menu_handler."','all')";
$sql.= " AND type = 'top'"; $sql.= " AND type = 'top'";
// It should have only one response // It should have only one response
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
$menutop = $this->db->fetch_object($resql); $menutop = $this->db->fetch_object($resql);
$menutopid=$menutop->rowid; $menutopid=$menutop->rowid;
$this->db->free($resql); $this->db->free($resql);
//print "menutopid=".$menutopid." sql=".$sql;
// Now edit this->newmenu to add entries in data that are in parent sons
// Now edit this->newmenu to add entries in tabMenu that are in parent sons
$this->recur($tabMenu, $menutopid, 1); $this->recur($tabMenu, $menutopid, 1);
return $this->newmenu; return $this->newmenu;
} }
/** /**
@ -470,7 +466,6 @@ class Menubase
{ {
if ($tab[$x][7]) if ($tab[$x][7])
{ {
$leftmenuConstraint = true; $leftmenuConstraint = true;
if ($tab[$x][6]) if ($tab[$x][6])
{ {
@ -479,6 +474,8 @@ class Menubase
if ($leftmenuConstraint) if ($leftmenuConstraint)
{ {
// print "x".$pere." ".$tab[$x][6];
$this->newmenu->add_submenu(DOL_URL_ROOT . $tab[$x][2], $tab[$x][3], $rang -1, $tab[$x][4], $tab[$x][5]); $this->newmenu->add_submenu(DOL_URL_ROOT . $tab[$x][2], $tab[$x][3], $rang -1, $tab[$x][4], $tab[$x][5]);
$this->recur($tab, $tab[$x][0], $rang +1); $this->recur($tab, $tab[$x][0], $rang +1);
} }
@ -487,53 +484,14 @@ class Menubase
} }
} }
/** /**
* Check if constraint defined by rowid is ok or not * Verify if condition in string is ok or not
* \TODO Avoid call for each *
* * @param string $strRights
* @param unknown_type $rowid * @return boolean true or false
* @param unknown_type $mainmenu
* @param unknown_type $leftmenu
* @return unknown
*/ */
function verifConstraint($rowid, $mainmenu = "", $leftmenu = "") function verifCond($strRights)
{ {
global $user, $conf, $lang;
global $constraint; // To export to dol_eval function
include_once(DOL_DOCUMENT_ROOT.'/lib/admin.lib.php'); // Because later some eval try to run dynamic call to dolibarr_get_const
$constraint = true;
$sql = "SELECT c.rowid, c.action";
$sql.= " FROM " . MAIN_DB_PREFIX . "menu_constraint as c, " . MAIN_DB_PREFIX . "menu_const as mc";
$sql.= " WHERE mc.fk_constraint = c.rowid AND mc.fk_menu = '" . $rowid . "'";
dolibarr_syslog("Menubase::verifConstraint sql=".$sql);
$result = $this->db->query($sql);
if ($result)
{
//echo $sql;
$num = $this->db->num_rows($result);
$i = 0;
while (($i < $num) && $constraint == true)
{
$obj = $this->db->fetch_object($result);
$strconstraint = 'if(!(' . $obj->action . ')) { $constraint = false; }';
dol_eval($strconstraint);
$i++;
}
}
else
{
dolibarr_print_error($this->db);
}
return $constraint;
}
function verifCond($strRights) {
global $user,$conf,$lang; global $user,$conf,$lang;
global $rights; // To export to dol_eval function global $rights; // To export to dol_eval function
@ -560,7 +518,7 @@ class Menubase
{ {
$sql = "SELECT DISTINCT m.mainmenu"; $sql = "SELECT DISTINCT m.mainmenu";
$sql.= " FROM " . MAIN_DB_PREFIX . "menu as m"; $sql.= " FROM " . MAIN_DB_PREFIX . "menu as m";
$sql.= " WHERE m.menu_handler= '".$this->menu_handler."'"; $sql.= " WHERE m.menu_handler in ('".$this->menu_handler."','all')";
$res = $this->db->query($sql); $res = $this->db->query($sql);
if ($res) { if ($res) {
@ -619,14 +577,11 @@ class Menubase
// Define $chaine // Define $chaine
$chaine=""; $chaine="";
$title=$objm->titre; $title=$langs->trans($objm->titre);
if (! eregi('\(dotnoloadlang\)$',$title)) if ($title == $objm->titre && ! empty($menu['langs']))
{ {
if (! empty($objm->langs)) $langs->load($objm->langs); $langs->load($menu['langs']);
} $title=$langs->trans($objm->titre);
else
{
$title=eregi_replace('\(dotnoloadlang\)$','',$title);
} }
if (eregi("/",$title)) if (eregi("/",$title))
{ {

View File

@ -61,7 +61,6 @@ class MenuLeft {
$this->menuArbo = new Menubase($this->db,'auguria','left'); $this->menuArbo = new Menubase($this->db,'auguria','left');
$this->overwritemenufor = $this->menuArbo->listeMainmenu(); $this->overwritemenufor = $this->menuArbo->listeMainmenu();
} }
@ -105,25 +104,25 @@ class MenuLeft {
$this->leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:''; $this->leftmenu=isset($_SESSION["leftmenu"])?$_SESSION["leftmenu"]:'';
} }
//this->menu_array contains menu in pre.inc.php
/** /**
* On definit newmenu en fonction de mainmenu et leftmenu * On definit newmenu en fonction de mainmenu et leftmenu
* ------------------------------------------------------ * ------------------------------------------------------
*/ */
if ($mainmenu) if ($mainmenu)
{ {
$this->newmenu = $this->menuArbo->menuLeftCharger($this->newmenu,$mainmenu,$this->leftmenu,0,'auguria');
$this->newmenu = $this->menuArbo->menuLeftCharger($this->newmenu,$mainmenu,$this->leftmenu,0);
/* /*
* Menu AUTRES (Pour les menus du haut qui ne serait pas gérés) * Menu AUTRES (Pour les menus du haut qui ne serait pas gérés)
*/ */
if ($mainmenu && ! in_array($mainmenu,$this->overwritemenufor)) { $mainmenu=""; }
if ($mainmenu && ! in_array($mainmenu,$this->overwritemenufor)) { $mainmenu=""; }
} }
//var_dump($this->newmenu->liste);
//var_dump($this->menu_array);
/** /**
* Si on est sur un cas géré de surcharge du menu, on ecrase celui par defaut * Si on est sur un cas géré de surcharge du menu, on ecrase celui par defaut
@ -133,8 +132,7 @@ class MenuLeft {
} }
// Affichage du menu // Affichage du menu
$alt=0; $alt=0;
if (! sizeof($this->menu_array)) if (! sizeof($this->menu_array))

View File

@ -23,11 +23,11 @@
\version $Id$ \version $Id$
\remarks La construction d'un gestionnaire pour le menu de gauche est simple: \remarks La construction d'un gestionnaire pour le menu de gauche est simple:
\remarks A l'aide d'un objet $newmenu=new Menu() et des m<EFBFBD>thode add et add_submenu, \remarks A l'aide d'un objet $newmenu=new Menu() et des méthode add et add_submenu,
\remarks d<EFBFBD>finir la liste des entr<EFBFBD>es menu <EFBFBD> faire apparaitre. \remarks définir la liste des entrées menu à faire apparaitre.
\remarks En fin de code, mettre la ligne $menu=$newmenu->liste. \remarks En fin de code, mettre la ligne $menu=$newmenu->liste.
\remarks Ce qui est d<EFBFBD>fini dans un tel gestionnaire sera alors prioritaire sur \remarks Ce qui est défini dans un tel gestionnaire sera alors prioritaire sur
\remarks les d<EFBFBD>finitions de menu des fichiers pre.inc.php \remarks les définitions de menu des fichiers pre.inc.php
*/ */
@ -38,7 +38,7 @@
class MenuLeft { class MenuLeft {
var $require_top=array("auguria_backoffice"); // Si doit etre en phase avec un gestionnaire de menu du haut particulier var $require_top=array("auguria_frontoffice"); // Si doit etre en phase avec un gestionnaire de menu du haut particulier
var $newmenu; var $newmenu;
var $menuArbo; var $menuArbo;
@ -111,15 +111,12 @@ class MenuLeft {
*/ */
if ($mainmenu) if ($mainmenu)
{ {
$this->newmenu = $this->menuArbo->menuLeftCharger($this->newmenu,$mainmenu,$this->leftmenu,1,'auguria');
$this->newmenu = $this->menuArbo->menuLeftCharger($this->newmenu,$mainmenu,$this->leftmenu,1);
/* /*
* Menu AUTRES (Pour les menus du haut qui ne serait pas g<EFBFBD>r<EFBFBD>s) * Menu AUTRES (Pour les menus du haut qui ne serait pas g<EFBFBD>r<EFBFBD>s)
*/ */
if ($mainmenu && ! in_array($mainmenu,$this->overwritemenufor)) { $mainmenu=""; } if ($mainmenu && ! in_array($mainmenu,$this->overwritemenufor)) { $mainmenu=""; }
} }
@ -207,88 +204,8 @@ class MenuLeft {
} }
if ($contenu == 1) print '<div class="menu_fin"></div>'; if ($contenu == 1) print '<div class="menu_fin"></div>';
} }
} }
function recur($tab,$pere,$rang)
{
$leftmenu = $this->leftmenu;
//ballayage du tableau
for ($x=0;$x<count($tab);$x++) {
//si un <20>l<EFBFBD>ment a pour p<>re : $pere
if ($tab[$x][1]==$pere) {
//on affiche le menu
if ($this->verifConstraint($tab[$x][0],$tab[$x][6],$tab[$x][7]) != 0)
{
if ($tab[$x][6])
{
$leftmenuConstraint = false;
$str = "if(".$tab[$x][6].") \$leftmenuConstraint = true;";
eval($str);
if ($leftmenuConstraint == true)
{
//echo $tab[$x][0].'-'.$tab[$x][6].'-'.$leftmenu.'<br>';
$this->newmenu->add_submenu(DOL_URL_ROOT.$tab[$x][2], $tab[$x][3],$rang-1,$tab[$x][4],$tab[$x][5]);
$this->recur($tab,$tab[$x][0],$rang+1);
}
}
else
{
//echo $tab[$x][0].'-'.$tab[$x][3].'-'.$leftmenu.'<br>';
$this->newmenu->add_submenu(DOL_URL_ROOT.$tab[$x][2], $tab[$x][3],$rang-1,$tab[$x][4],$tab[$x][5]);
$this->recur($tab,$tab[$x][0],$rang+1);
}
//$this->newmenu->add(DOL_URL_ROOT.$tab[$x][2], $tab[$x][3],$rang-1,$tab[$x][4],$tab[$x][5]);
/*et on recherche ses fils
en rappelant la fonction recur()
(+ incr<EFBFBD>mentation du d<EFBFBD>callage)*/
}
}
}
}
function verifConstraint($rowid,$mainmenu,$leftmenu)
{
global $user,$conf,$user;
$constraint = true;
$sql = "SELECT c.rowid, c.action, mc.user FROM ".MAIN_DB_PREFIX."menu_constraint as c, ".MAIN_DB_PREFIX."menu_const as mc WHERE mc.fk_constraint = c.rowid AND (mc.user = 0 OR mc.user = 2 ) AND mc.fk_menu = '".$rowid."'";
$result = $this->db->query($sql);
if ($result)
{
$num = $this->db->num_rows($result);
$i = 0;
while (($i < $num) && $constraint == true)
{
$obj = $this->db->fetch_object($result);
$strconstraint = "if(!(".$obj->action.")) { \$constraint = false;}";
eval($strconstraint);
$i++;
}
}
return $constraint;
}
} }
?> ?>

View File

@ -100,7 +100,7 @@ class MenuLeft {
} }
$newmenu = new Menu(); $newmenu = new Menu();
$overwritemenufor=array('home','companies','members','products','suppliers','commercial','accountancy','agenda','project','tools'); $overwritemenufor=array('home','companies','members','products','suppliers','commercial','accountancy','agenda','project','tools','ecm');
/** /**
* On definit newmenu en fonction de mainmenu et leftmenu * On definit newmenu en fonction de mainmenu et leftmenu
@ -866,6 +866,13 @@ class MenuLeft {
} }
// Affichage des menus personnalises
require_once(DOL_DOCUMENT_ROOT."/core/menubase.class.php");
$menuArbo = new Menubase($this->db,'eldy','left');
$newmenu = $menuArbo->menuLeftCharger($newmenu,$mainmenu,$leftmenu,0,'eldy');
/* /*
* Menu AUTRES (Pour les menus du haut qui ne serait pas gérés) * Menu AUTRES (Pour les menus du haut qui ne serait pas gérés)
*/ */
@ -874,7 +881,6 @@ class MenuLeft {
} }
/** /**
* Si on est sur un cas géré de surcharge du menu, on ecrase celui par defaut * Si on est sur un cas géré de surcharge du menu, on ecrase celui par defaut
*/ */

View File

@ -99,7 +99,7 @@ class MenuLeft {
$newmenu = new Menu(); $newmenu = new Menu();
$overwritemenufor=array('home','companies','members','products','suppliers','commercial','accountancy','agenda','project','tools'); $overwritemenufor=array('home','companies','members','products','suppliers','commercial','accountancy','agenda','project','tools','ecm');
/** /**
* On definit newmenu en fonction de mainmenu et leftmenu * On definit newmenu en fonction de mainmenu et leftmenu

View File

@ -14,14 +14,12 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
* $Id$
*/ */
/** /**
\file htdocs/includes/menus/barre_left/empty.php \file htdocs/includes/menus/barre_left/empty.php
\brief This is an example of an empty left menu handler \brief This is an example of an empty left menu handler
\version $Revision$ \version $Id$
*/ */
/** /**

View File

@ -1,5 +1,5 @@
<?php <?php
/* Copyright (C) 2004-2005 Laurent Destailleur <eldy@users.sourceforge.net> /* Copyright (C) 2004-2008 Laurent Destailleur <eldy@users.sourceforge.net>
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View File

@ -739,9 +739,14 @@ class DolibarrModules
$menu = new Menubase($this->db); $menu = new Menubase($this->db);
$menu->menu_handler='all'; $menu->menu_handler='all';
$menu->module=$this->rights_class; $menu->module=$this->rights_class;
if ($this->menu[$key]['fk_menu']) if (! $this->menu[$key]['fk_menu'])
{
$menu->fk_menu=0;
}
else
{ {
$numparent=$this->menu[$key]['fk_menu']; $numparent=$this->menu[$key]['fk_menu'];
$numparent=eregi_replace('r=','',$numparent);
if (isset($this->menu[$numparent]['rowid'])) if (isset($this->menu[$numparent]['rowid']))
{ {
$menu->fk_menu=$this->menu[$numparent]['rowid']; $menu->fk_menu=$this->menu[$numparent]['rowid'];
@ -752,10 +757,6 @@ class DolibarrModules
$err++; $err++;
} }
} }
else
{
$menu->fk_menu=0;
}
$menu->type=$this->menu[$key]['type']; $menu->type=$this->menu[$key]['type'];
$menu->mainmenu=$this->menu[$key]['mainmenu']; $menu->mainmenu=$this->menu[$key]['mainmenu'];
$menu->titre=$this->menu[$key]['titre']; $menu->titre=$this->menu[$key]['titre'];

View File

@ -123,7 +123,7 @@ class modECM extends DolibarrModules
$this->menu[$r]=array('fk_menu'=>0, $this->menu[$r]=array('fk_menu'=>0,
'type'=>'top', 'type'=>'top',
'titre'=>'MenuECM(dotnoloadlang)', 'titre'=>'MenuECM',
'mainmenu'=>'ecm', 'mainmenu'=>'ecm',
'leftmenu'=>'', 'leftmenu'=>'',
'url'=>'/ecm/index.php', 'url'=>'/ecm/index.php',
@ -133,6 +133,45 @@ class modECM extends DolibarrModules
'target'=>'', 'target'=>'',
'user'=>0); 'user'=>0);
$r++; $r++;
$this->menu[$r]=array('fk_menu'=>'r=0',
'type'=>'left',
'titre'=>'MenuECM',
'mainmenu'=>'ecm',
'leftmenu'=>'',
'url'=>'/ecm/index.php',
'langs'=>'ecm',
'position'=>100,
'perms'=>'$user->rights->ecm->read',
'target'=>'',
'user'=>0);
$r++;
$this->menu[$r]=array('fk_menu'=>'r=1',
'type'=>'left',
'titre'=>'List',
'mainmenu'=>'ecm',
'leftmenu'=>'',
'url'=>'/ecm/index.php',
'langs'=>'ecm',
'position'=>100,
'perms'=>'$user->rights->ecm->read',
'target'=>'',
'user'=>0);
$r++;
$this->menu[$r]=array('fk_menu'=>'r=1',
'type'=>'left',
'titre'=>'ECMNewSection',
'mainmenu'=>'ecm',
'leftmenu'=>'',
'url'=>'/ecm/docdir.php?action=create',
'langs'=>'ecm',
'position'=>100,
'perms'=>'$user->rights->ecm->setup',
'target'=>'',
'user'=>0);
$r++;
} }

View File

@ -419,7 +419,9 @@ TotalMan=Total
YouCanChangeValuesForThisListFromDictionnarySetup=You can change values for this list from menu setup - dictionnary YouCanChangeValuesForThisListFromDictionnarySetup=You can change values for this list from menu setup - dictionnary
Color=Color Color=Color
MenuECM=Documents MenuECM=Documents
MenuAWStats=AWStats
MenuMembers=Members MenuMembers=Members
MenuAgendaGoogle=Google agenda
# Week day # Week day
Monday=Monday Monday=Monday
Tuesday=Tuesday Tuesday=Tuesday

View File

@ -1,435 +1,437 @@
# Dolibarr language file - es_ES - main # Dolibarr language file - es_ES - main
CHARSET=ISO-8859-1 CHARSET=ISO-8859-1
DatabaseConnection=Conexión a la base de datos DatabaseConnection=Conexión a la base de datos
SeparatorDecimal=, SeparatorDecimal=,
SeparatorThousand= SeparatorThousand=
Error=Error Error=Error
ErrorFieldRequired=El campo '%s' es obligatorio ErrorFieldRequired=El campo '%s' es obligatorio
ErrorFieldFormat=El campo '%s' tiene un valor incorrecto ErrorFieldFormat=El campo '%s' tiene un valor incorrecto
ErrorFileDoesNotExists=El archivo %s no existe ErrorFileDoesNotExists=El archivo %s no existe
ErrorFailedToOpenFile=Imposible abrir el fichero %s ErrorFailedToOpenFile=Imposible abrir el fichero %s
ErrorCanNotCreateDir=Imposible crear la carpeta %s ErrorCanNotCreateDir=Imposible crear la carpeta %s
ErrorCanNotReadDir=Imposible leer la carpeta %s ErrorCanNotReadDir=Imposible leer la carpeta %s
ErrorConstantNotDefined=Parámetro %s no definido ErrorConstantNotDefined=Parámetro %s no definido
ErrorUnknown=Error desconocido ErrorUnknown=Error desconocido
ErrorSQL=Error de SQL ErrorSQL=Error de SQL
ErrorLogoFileNotFound=El archivo logo '%s' no se encuentra ErrorLogoFileNotFound=El archivo logo '%s' no se encuentra
ErrorGoToGlobalSetup=Vaya a la Configuración ' Empresa/Institución ' para corregir ErrorGoToGlobalSetup=Vaya a la Configuración ' Empresa/Institución ' para corregir
ErrorGoToModuleSetup=Vaya a la configuración del módulo para corregir ErrorGoToModuleSetup=Vaya a la configuración del módulo para corregir
ErrorFailedToSendMail=Error en el envío del e-mail (emisor=%s, destinatairo=%s) ErrorFailedToSendMail=Error en el envío del e-mail (emisor=%s, destinatairo=%s)
ErrorAttachedFilesDisabled=La gestión de los ficheros asociados está desactivada en este servidor ErrorAttachedFilesDisabled=La gestión de los ficheros asociados está desactivada en este servidor
ErrorFileNotUploaded=El archivo no se ha podido transferir ErrorFileNotUploaded=El archivo no se ha podido transferir
ErrorInternalErrorDetected=Error detectado ErrorInternalErrorDetected=Error detectado
ErrorNoRequestRan=Ninguna petición realizada ErrorNoRequestRan=Ninguna petición realizada
ErrorWrongHostParameter=Pparámetro Servidor inválido ErrorWrongHostParameter=Pparámetro Servidor inválido
ErrorYourCountryIsNotDefined=Su país no está definido. Corrígalo yendo a Configuración-General-Editar ErrorYourCountryIsNotDefined=Su país no está definido. Corrígalo yendo a Configuración-General-Editar
ErrorRecordIsUsedByChild=Imposible de suprimir este registro. Esta siendo utilizado como padre por al menos un registro hijo. ErrorRecordIsUsedByChild=Imposible de suprimir este registro. Esta siendo utilizado como padre por al menos un registro hijo.
ErrorWrongValue=Valor incorrecto ErrorWrongValue=Valor incorrecto
ErrorWrongValueForParameterX=Valor incorrecto del parámetro %s ErrorWrongValueForParameterX=Valor incorrecto del parámetro %s
ErrorNoRequestInError=Ninguna petición en error ErrorNoRequestInError=Ninguna petición en error
ErrorServiceUnavailableTryLater=Servicio no disponible actualmente. Vuélvalo a intentar más tarde. ErrorServiceUnavailableTryLater=Servicio no disponible actualmente. Vuélvalo a intentar más tarde.
ErrorDuplicateField=Duplicado en un campo único ErrorDuplicateField=Duplicado en un campo único
ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Modificaciones deshechas. ErrorSomeErrorWereFoundRollbackIsDone=Se encontraron algunos errores. Modificaciones deshechas.
ErrorConfigParameterNotDefined=El parámetro <b>%s</b> no está definido en el fichero de configuración Dolibarr <b>conf.php</b>. ErrorConfigParameterNotDefined=El parámetro <b>%s</b> no está definido en el fichero de configuración Dolibarr <b>conf.php</b>.
ErrorCantLoadUserFromDolibarrDatabase=Imposible encontrar el usuario <b>%s</b> en la base de datos Dolibarr. ErrorCantLoadUserFromDolibarrDatabase=Imposible encontrar el usuario <b>%s</b> en la base de datos Dolibarr.
ErrorNoVATRateDefinedForSellerCountry=Error, ningún tipo de IVA definido para el país '%s'. ErrorNoVATRateDefinedForSellerCountry=Error, ningún tipo de IVA definido para el país '%s'.
ErrorFailedToSaveFile=Error, el registro del archivo falló. ErrorFailedToSaveFile=Error, el registro del archivo falló.
ErrorOnlyPngJpgSupported=Error, solamente se soportan los formatos de imagen jpg y png. ErrorOnlyPngJpgSupported=Error, solamente se soportan los formatos de imagen jpg y png.
ErrorImageFormatNotSupported=Su PHP no soporta las funciones de conversión de este formato de imagen. ErrorImageFormatNotSupported=Su PHP no soporta las funciones de conversión de este formato de imagen.
DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr está configurado en modo de autentificación <b>%s</b> en el fichero de configuración <b>conf.php</b>.<br> Eso significa que la base de datos de las contraseñas es externa a Dolibarr, por eso toda modificación de este campo puede resultar sin efecto alguno. DolibarrInHttpAuthenticationSoPasswordUseless=Dolibarr está configurado en modo de autentificación <b>%s</b> en el fichero de configuración <b>conf.php</b>.<br> Eso significa que la base de datos de las contraseñas es externa a Dolibarr, por eso toda modificación de este campo puede resultar sin efecto alguno.
Administrator=Administrador Administrator=Administrador
Undefined=No definido Undefined=No definido
PasswordForgotten=¿Olvidó su contraseña? PasswordForgotten=¿Olvidó su contraseña?
SeeAbove=Mencionar anteriormente SeeAbove=Mencionar anteriormente
HomeArea=Area inicio HomeArea=Area inicio
LastConnexion=Última conexión LastConnexion=Última conexión
PreviousConnexion=Conexión anterior PreviousConnexion=Conexión anterior
ConnectedSince=Conectado desde ConnectedSince=Conectado desde
AuthenticationMode=Modo autentificación AuthenticationMode=Modo autentificación
RequestedUrl=Url solicitada RequestedUrl=Url solicitada
DatabaseTypeManager=Tipo de gestor de base de datos DatabaseTypeManager=Tipo de gestor de base de datos
RequestLastAccess=Petición último acceso a la base de datos RequestLastAccess=Petición último acceso a la base de datos
RequestLastAccessInError=Petición último acceso a la base de datos erroneo RequestLastAccessInError=Petición último acceso a la base de datos erroneo
ReturnCodeLastAccess=Código devuelto último acceso a la base de datos ReturnCodeLastAccess=Código devuelto último acceso a la base de datos
InformationLastAccess=Información sobre el último acceso a la base de datos InformationLastAccess=Información sobre el último acceso a la base de datos
DolibarrHasDetectedError=Dolibarr ha detectado un error técnico DolibarrHasDetectedError=Dolibarr ha detectado un error técnico
InformationToHelpDiagnose=He aquí la información que podrá ayudar al diagnóstico InformationToHelpDiagnose=He aquí la información que podrá ayudar al diagnóstico
MoreInformation=Más información MoreInformation=Más información
NotePublic=Nota (pública) NotePublic=Nota (pública)
NotePrivate=Nota (privada) NotePrivate=Nota (privada)
PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar la precisión de los precios unitarios a <b>%s</b> decimales. PrecisionUnitIsLimitedToXDecimals=Dolibarr está configurado para limitar la precisión de los precios unitarios a <b>%s</b> decimales.
DoTest=Probar DoTest=Probar
yes=sí yes=sí
Yes=Sí Yes=Sí
no=no no=no
No=no No=no
All=Todo All=Todo
Home=Inicio Home=Inicio
Help=Ayuda Help=Ayuda
Always=Siempre Always=Siempre
Never=Nunca Never=Nunca
Period=Periodo Period=Periodo
Activate=Activar Activate=Activar
Activated=Activado Activated=Activado
Closed=Cerrado Closed=Cerrado
Closed2=Cerrado Closed2=Cerrado
Disable=Desactivar Disable=Desactivar
Disabled=Desactivado Disabled=Desactivado
Create=Crear Create=Crear
Add=Añadir Add=Añadir
Update=Modificar Update=Modificar
AddActionToDo=Añadir acción a realizar AddActionToDo=Añadir acción a realizar
AddActionDone=Añadir acción realizada AddActionDone=Añadir acción realizada
Close=Cerrar Close=Cerrar
Close2=Cerrar Close2=Cerrar
Confirm=Confirmar Confirm=Confirmar
ConfirmSendCardByMail=¿Quiere enviar esta ficha por e-mail? ConfirmSendCardByMail=¿Quiere enviar esta ficha por e-mail?
Delete=Eliminar Delete=Eliminar
Remove=Retirar Remove=Retirar
Resiliate=Cancelar Resiliate=Cancelar
Cancel=Anular Cancel=Anular
Modify=Modificar Modify=Modificar
Edit=Editar Edit=Editar
Validate=Validar Validate=Validar
ToValidate=A validar ToValidate=A validar
Save=Grabar Save=Grabar
SaveAs=Grabar como SaveAs=Grabar como
TestConnection=Probar la conexión TestConnection=Probar la conexión
Show=Ver Show=Ver
Search=Buscar Search=Buscar
Valid=Validar Valid=Validar
Approve=Aprobar Approve=Aprobar
Upload=Enviar archivo Upload=Enviar archivo
Select=Seleccionar Select=Seleccionar
Choose=Elegir Choose=Elegir
ChooseLangage=Elegir su idioma ChooseLangage=Elegir su idioma
Author=Autor Author=Autor
User=Usuario User=Usuario
Users=Usuarios Users=Usuarios
Group=Grupo Group=Grupo
Groups=Grupos Groups=Grupos
Password=Contraseña Password=Contraseña
PasswordRetype=Repetir contraseña PasswordRetype=Repetir contraseña
Name=Nombre Name=Nombre
Parameter=Parámetro Parameter=Parámetro
Parameters=Parámetros Parameters=Parámetros
Value=Valor Value=Valor
GlobalValue=Valor global GlobalValue=Valor global
PersonalValue=Valor personalizado PersonalValue=Valor personalizado
NewValue=Nuevo valor NewValue=Nuevo valor
CurrentValue=Valor actual CurrentValue=Valor actual
Code=Código Code=Código
Type=Tipo Type=Tipo
Language=Idioma Language=Idioma
MultiLanguage=Multiidioma MultiLanguage=Multiidioma
Note=Nota Note=Nota
CurrentNote=Nota actual CurrentNote=Nota actual
Title=Título Title=Título
Label=Etiqueta Label=Etiqueta
RefOrLabel=Ref. o etiqueta RefOrLabel=Ref. o etiqueta
Info=Log Info=Log
Family=Familia Family=Familia
Description=Descripción Description=Descripción
Designation=Designación Designation=Designación
Action=Acción Action=Acción
Model=Modelo Model=Modelo
DefaultModel=Modelo por defecto DefaultModel=Modelo por defecto
About=Acerca de About=Acerca de
WelcomeString=<font class="body">Somos</font> %s<font class="body">, y se conecta como</font> %s WelcomeString=<font class="body">Somos</font> %s<font class="body">, y se conecta como</font> %s
Number=Número Number=Número
Numero=Número Numero=Número
Limit=Límite Limit=Límite
Limits=Límites Limits=Límites
DevelopmentTeam=Equipo de desarrollo DevelopmentTeam=Equipo de desarrollo
Logout=Desconexión Logout=Desconexión
Connection=Conexión Connection=Conexión
Setup=Configuración Setup=Configuración
Alert=Alerta Alert=Alerta
Previous=Anterior Previous=Anterior
Next=Siguiente Next=Siguiente
Cards=Fichas Cards=Fichas
Card=Ficha Card=Ficha
Date=Fecha Date=Fecha
DateEnd=Fecha fin DateEnd=Fecha fin
DateCreation=Fecha creación DateCreation=Fecha creación
DateModification=Fecha modificación DateModification=Fecha modificación
DateLastModification=Fecha última modificación DateLastModification=Fecha última modificación
DateValidation=Fecha validación DateValidation=Fecha validación
DateClosing=Fecha cierre DateClosing=Fecha cierre
DateDue=Fecha vencimiento DateDue=Fecha vencimiento
DateValue=Fecha valor DateValue=Fecha valor
DateValueShort=Fecha valor DateValueShort=Fecha valor
DateOperation=Fecha operación DateOperation=Fecha operación
DateOperationShort=Fecha op. DateOperationShort=Fecha op.
DateLimit=Fecha límite DateLimit=Fecha límite
DateRequest=Fecha consulta DateRequest=Fecha consulta
DateProcess=Fecha proceso DateProcess=Fecha proceso
DatePlanShort=Fecha planif. DatePlanShort=Fecha planif.
DateRealShort=Fecha real DateRealShort=Fecha real
DurationYear=año DurationYear=año
DurationMonth=mes DurationMonth=mes
DurationDay=día DurationDay=día
DurationYears=años DurationYears=años
DurationMonths=meses DurationMonths=meses
DurationDays=días DurationDays=días
Year=Año Year=Año
Month=Mes Month=Mes
Week=Semana Week=Semana
Day=Día Day=Día
Hour=Hora Hour=Hora
Minute=Minuto Minute=Minuto
Second=Segundo Second=Segundo
Years=Años Years=Años
Months=Meses Months=Meses
Days=Días Days=Días
days=días days=días
Hours=Horas Hours=Horas
Minutes=Minutos Minutes=Minutos
Seconds=Segundos Seconds=Segundos
Today=Hoy Today=Hoy
Yesterday=Ayer Yesterday=Ayer
Tomorrow=Mañana Tomorrow=Mañana
Quadri=Trimistre Quadri=Trimistre
MonthOfDay=Mes del día MonthOfDay=Mes del día
HourShort=H HourShort=H
Rate=Tipo Rate=Tipo
Bytes=Octetos Bytes=Octetos
Cut=Cortar Cut=Cortar
Copy=Copiar Copy=Copiar
Paste=Pegar Paste=Pegar
Default=Defecto Default=Defecto
DefaultValue=Valor por defecto DefaultValue=Valor por defecto
DefaultGlobalValue=Valor global DefaultGlobalValue=Valor global
Price=Precio Price=Precio
UnitPrice=Precio unitario UnitPrice=Precio unitario
UnitPriceHT=Precio base UnitPriceHT=Precio base
UnitPriceTTC=Precio unitario total UnitPriceTTC=Precio unitario total
PriceU=P.U. PriceU=P.U.
PriceUHT=P.U. PriceUHT=P.U.
PriceUTTC=P.U. Total PriceUTTC=P.U. Total
Amount=Importe Amount=Importe
AmountInvoice=Importe factura AmountInvoice=Importe factura
AmountPayment=Importe pago AmountPayment=Importe pago
AmountHT=Importe base AmountHT=Importe base
AmountTTC=Importe AmountTTC=Importe
AmountVAT=Importe IVA AmountVAT=Importe IVA
AmountTotal=Importe total AmountTotal=Importe total
AmountAverage=Importe medio AmountAverage=Importe medio
Percentage=Porcentaje Percentage=Porcentaje
Total=Total Total=Total
SubTotal=Subtotal SubTotal=Subtotal
TotalHT=Importe TotalHT=Importe
TotalTTC=Totat TotalTTC=Totat
TotalVAT=Total IVA TotalVAT=Total IVA
TotalHTAfterDiscounts=Importe con descuentos TotalHTAfterDiscounts=Importe con descuentos
TotalTTCAfterDiscounts=Total con descuentos TotalTTCAfterDiscounts=Total con descuentos
IncludedVAT=IVA incluido IncludedVAT=IVA incluido
TTC=Total TTC=Total
HT=Importe HT=Importe
VAT=IVA VAT=IVA
Average=Media Average=Media
Sum=Suma Sum=Suma
Delta=Divergencia Delta=Divergencia
Module=Modulo Module=Modulo
Option=Opción Option=Opción
List=Listado List=Listado
FullList=Listado completa FullList=Listado completa
Statistics=Estadísticas Statistics=Estadísticas
Status=Estado Status=Estado
Ref=Ref. Ref=Ref.
CommercialProposals=Presupuestos CommercialProposals=Presupuestos
Comment=Comentario Comment=Comentario
Comments=Comentarios Comments=Comentarios
ActionsToDo=Acciones a realizar ActionsToDo=Acciones a realizar
ActionsDone=Acciones realizadas ActionsDone=Acciones realizadas
ActionsToDoShort=A realizar ActionsToDoShort=A realizar
ActionsDoneShort=Realizadas ActionsDoneShort=Realizadas
CompanyFundation=Empresa o institución CompanyFundation=Empresa o institución
ContactsForCompany=Contactos de esta empresa ContactsForCompany=Contactos de esta empresa
ActionsOnCompany=Acciones frente a esta sociedad ActionsOnCompany=Acciones frente a esta sociedad
NActions=%s acciones NActions=%s acciones
NActionsLate=%s en retraso NActionsLate=%s en retraso
Filter=Filtro Filter=Filtro
RemoveFilter=Eliminar filtro RemoveFilter=Eliminar filtro
ChartGenerated=Gráficos generados ChartGenerated=Gráficos generados
ChartNotGenerated=Gráfico no generado ChartNotGenerated=Gráfico no generado
GeneratedOn=Generado el %s GeneratedOn=Generado el %s
Generate=Generar Generate=Generar
Duration=Duración Duration=Duración
TotalDuration=Duración total TotalDuration=Duración total
Summary=Resumen Summary=Resumen
MyBookmarks=Mis bookmarks MyBookmarks=Mis bookmarks
OtherInformationsBoxes=Otras cajas de información OtherInformationsBoxes=Otras cajas de información
DolibarrBoard=Indicadores DolibarrBoard=Indicadores
DolibarrStateBoard=Estadísticas DolibarrStateBoard=Estadísticas
DolibarrWorkBoard=Indicadores de trabajo DolibarrWorkBoard=Indicadores de trabajo
NotYetAvailable=Aún no disponible NotYetAvailable=Aún no disponible
NotAvailable=No disponible NotAvailable=No disponible
Popularity=Popularidad Popularity=Popularidad
Categories=Categorías Categories=Categorías
Category=Categorúia Category=Categorúia
By=Por By=Por
From=De From=De
to=a to=a
To=A To=A
and=y and=y
or=o or=o
Other=Otro Other=Otro
Quantity=Cantidad Quantity=Cantidad
Qty=Cant. Qty=Cant.
ChangedBy=Modificado por ChangedBy=Modificado por
ReCalculate=Recalcular ReCalculate=Recalcular
ResultOk=Éxito ResultOk=Éxito
ResultKo=Error ResultKo=Error
Reporting=Informe Reporting=Informe
Reportings=Informes Reportings=Informes
Draft=Borrador Draft=Borrador
Drafts=Borradores Drafts=Borradores
Validated=Validado Validated=Validado
Opened=Abierto Opened=Abierto
New=Nuevo New=Nuevo
Discount=Descuento Discount=Descuento
Unknown=Desconocido Unknown=Desconocido
General=General General=General
Size=Tamaño Size=Tamaño
Received=Recibido Received=Recibido
Payed=Pagado Payed=Pagado
Topic=Asunto Topic=Asunto
ByCompanies=Por empresa ByCompanies=Por empresa
ByUsers=Por usuario ByUsers=Por usuario
Links=Links Links=Links
Link=Link Link=Link
Receipts=Recibos Receipts=Recibos
Rejects=Rechazado Rejects=Rechazado
Preview=Vista previa Preview=Vista previa
NextStep=Siguiente paso NextStep=Siguiente paso
PreviousStep=Paso anterior PreviousStep=Paso anterior
Datas=Datos Datas=Datos
None=Nada None=Nada
Late=Retraso Late=Retraso
Photo=Foto Photo=Foto
Photos=Fotos Photos=Fotos
AddPhoto=Añadir foto AddPhoto=Añadir foto
CurrentLogin=Login actual CurrentLogin=Login actual
January=enero January=enero
February=febrero February=febrero
March=marzo March=marzo
April=abril April=abril
May=mayo May=mayo
June=junio June=junio
July=julio July=julio
August=agosto August=agosto
September=septiembre September=septiembre
October=octubre October=octubre
November=noviembre November=noviembre
December=diciembre December=diciembre
AttachedFiles=Archivos y documentos adjuntos AttachedFiles=Archivos y documentos adjuntos
FileTransferComplete=Se transfirió correctamente el archivo FileTransferComplete=Se transfirió correctamente el archivo
DateFormatYYYYMM=YYYY-MM DateFormatYYYYMM=YYYY-MM
DateFormatYYYYMMDD=YYYY-MM-DD DateFormatYYYYMMDD=YYYY-MM-DD
DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS DateFormatYYYYMMDDHHMM=YYYY-MM-DD HH:SS
ReportName=Nombre del informe ReportName=Nombre del informe
ReportPeriod=Periodo de análisis ReportPeriod=Periodo de análisis
ReportDescription=Descripción ReportDescription=Descripción
Report=Informe Report=Informe
Keyword=Clave Keyword=Clave
Legend=Leyenda Legend=Leyenda
FillTownFromZip=Indicar población FillTownFromZip=Indicar población
ShowLog=Ver histórico ShowLog=Ver histórico
File=Archivo File=Archivo
ReadPermissionNotAllowed=Lectura no autorizada ReadPermissionNotAllowed=Lectura no autorizada
AmountInCurrency=Importes visualizados en %s AmountInCurrency=Importes visualizados en %s
Example=Ejemplo Example=Ejemplo
NoExample=Sin ejemplo NoExample=Sin ejemplo
FindBug=Señalar un bug FindBug=Señalar un bug
NbOfThirdParties=Número de terceros NbOfThirdParties=Número de terceros
NbOfCustomers=Numero de clientes NbOfCustomers=Numero de clientes
NbOfLines=Números de líneas NbOfLines=Números de líneas
NbOfObjects=Número de objetos NbOfObjects=Número de objetos
NbOfReferers=Número de referencias NbOfReferers=Número de referencias
Referers=Referencias Referers=Referencias
TotalQuantity=Cantidad todal TotalQuantity=Cantidad todal
DateFromTo=De %s a %s DateFromTo=De %s a %s
DateFrom=A partir de %s DateFrom=A partir de %s
DateUntil=Hasta %s DateUntil=Hasta %s
Check=Verificar Check=Verificar
Internal=Interno Internal=Interno
External=Externo External=Externo
Internals=Internos Internals=Internos
Externals=Externos Externals=Externos
Warning=Alerta Warning=Alerta
Warnings=Alertas Warnings=Alertas
BuildPDF=Generar el PDF BuildPDF=Generar el PDF
RebuildPDF=Regenerar el PDF RebuildPDF=Regenerar el PDF
BuildDoc=Generar el doc BuildDoc=Generar el doc
RebuildDoc=Regenerar el doc RebuildDoc=Regenerar el doc
Entity=Entidad Entity=Entidad
Entities=Entidades Entities=Entidades
EventLogs=Log EventLogs=Log
CustomerPreview=Historial cliente CustomerPreview=Historial cliente
SupplierPreview=Historial proveedor SupplierPreview=Historial proveedor
AccountancyPreview=Historial contable AccountancyPreview=Historial contable
ShowCustomerPreview=Ver historial cliente ShowCustomerPreview=Ver historial cliente
ShowSupplierPreview=Ver historial proveedor ShowSupplierPreview=Ver historial proveedor
ShowAccountancyPreview=Ver historial contable ShowAccountancyPreview=Ver historial contable
RefCustomer=Ref. client RefCustomer=Ref. client
Currency=Divisa Currency=Divisa
InfoAdmin=Información para los administradores InfoAdmin=Información para los administradores
Undo=Anular Undo=Anular
Redo=Rehacer Redo=Rehacer
ExpandAll=Expandir todo ExpandAll=Expandir todo
UndoExpandAll=Anular expansión UndoExpandAll=Anular expansión
Reason=Razon Reason=Razon
FeatureNotYetSupported=Funcionalidad aún no soportada FeatureNotYetSupported=Funcionalidad aún no soportada
CloseWindow=Cerrar ventana CloseWindow=Cerrar ventana
Question=Pregunta Question=Pregunta
Response=Respuesta Response=Respuesta
Priority=Prioridad Priority=Prioridad
MailSentBy=Mail enviado por MailSentBy=Mail enviado por
TextUsedInTheMessageBody=Texto utilizado en el cuerpo del mensaje TextUsedInTheMessageBody=Texto utilizado en el cuerpo del mensaje
SendAcknowledgementByMail=Envio rec. por e-mail SendAcknowledgementByMail=Envio rec. por e-mail
NoEMail=Sin e-mail NoEMail=Sin e-mail
Owner=Propietario Owner=Propietario
DetectedVersion=Versión detectada DetectedVersion=Versión detectada
FollowingConstantsWillBeSubstituted=Las siguientes constantes serán substituidas por su valor correspondiente. FollowingConstantsWillBeSubstituted=Las siguientes constantes serán substituidas por su valor correspondiente.
Refresh=Refrescar Refresh=Refrescar
BackToList=Devolver listado BackToList=Devolver listado
GoBack=Volver atrás GoBack=Volver atrás
CanBeModifiedIfOk=Puede modificarse si es valido CanBeModifiedIfOk=Puede modificarse si es valido
CanBeModifiedIfKo=Puede modificarse si no es valido CanBeModifiedIfKo=Puede modificarse si no es valido
RecordModifiedSuccessfully=Registro modificado con éxito RecordModifiedSuccessfully=Registro modificado con éxito
AutomaticCode=Creación automática de código AutomaticCode=Creación automática de código
NotManaged=No generado NotManaged=No generado
FeatureDisabled=Función desactivada FeatureDisabled=Función desactivada
MoveBox=Desplazar la caja %s MoveBox=Desplazar la caja %s
Offered=Oferta Offered=Oferta
NotEnoughPermissions=No tiene permisos para esta acción NotEnoughPermissions=No tiene permisos para esta acción
SessionName=Nombre sesión SessionName=Nombre sesión
Method=Método Method=Método
Receive=Recepción Receive=Recepción
PartialWoman=Parcial PartialWoman=Parcial
PartialMan=Parcial PartialMan=Parcial
TotalWoman=Total TotalWoman=Total
TotalMan=Total TotalMan=Total
YouCanChangeValuesForThisListFromDictionnarySetup=Puede cambiar estos valores en el menú configuración->diccionarios YouCanChangeValuesForThisListFromDictionnarySetup=Puede cambiar estos valores en el menú configuración->diccionarios
Color=Color Color=Color
MenuECM=Documentos MenuECM=Documentos
# Week day MenuAWStats=AWStats
Monday=Lunes MenuMembers=Members
Tuesday=Martes # Week day
Wednesday=Miercoles Monday=Lunes
Thursday=Jueves Tuesday=Martes
Friday=Viernes Wednesday=Miercoles
Saturday=Sábado Thursday=Jueves
Sunday=Domingo Friday=Viernes
ShortMonday=L Saturday=Sábado
ShortTuesday=Ma Sunday=Domingo
ShortWednesday=M ShortMonday=L
ShortThursday=J ShortTuesday=Ma
ShortFriday=V ShortWednesday=M
ShortSaturday=S ShortThursday=J
ShortSunday=D ShortFriday=V
ShortSaturday=S
ShortSunday=D

View File

@ -421,7 +421,9 @@ TotalMan=Total
YouCanChangeValuesForThisListFromDictionnarySetup=Vous pouvez changer ces valeurs depuis le menu configuration - dictionnaires YouCanChangeValuesForThisListFromDictionnarySetup=Vous pouvez changer ces valeurs depuis le menu configuration - dictionnaires
Color=Couleur Color=Couleur
MenuECM=Documents MenuECM=Documents
MenuAWStats=AWStats
MenuMembers=Adhérents MenuMembers=Adhérents
MenuAgendaGoogle=Agenda Google
# Week day # Week day
Monday=Lundi Monday=Lundi
Tuesday=Mardi Tuesday=Mardi