diff --git a/application/dashboard.class.inc.php b/application/dashboard.class.inc.php index d43a67b5b..f1aa69fb8 100644 --- a/application/dashboard.class.inc.php +++ b/application/dashboard.class.inc.php @@ -860,28 +860,29 @@ class RuntimeDashboard extends Dashboard { $bCustomized = false; - if (!appUserPreferences::GetPref('display_original_dashboard_'.$sDashBoardId, false)) - { + $sDashboardFileSanitized = utils::RealPath($sDashboardFile, APPROOT); + if (false === $sDashboardFileSanitized) { + throw new SecurityException('Invalid dashboard file !'); + } + + if (!appUserPreferences::GetPref('display_original_dashboard_'.$sDashBoardId, false)) { // Search for an eventual user defined dashboard $oUDSearch = new DBObjectSearch('UserDashboard'); $oUDSearch->AddCondition('user_id', UserRights::GetUserId(), '='); $oUDSearch->AddCondition('menu_code', $sDashBoardId, '='); $oUDSet = new DBObjectSet($oUDSearch); - if ($oUDSet->Count() > 0) - { + if ($oUDSet->Count() > 0) { // Assuming there is at most one couple {user, menu}! $oUserDashboard = $oUDSet->Fetch(); $sDashboardDefinition = $oUserDashboard->Get('contents'); $bCustomized = true; - } - else - { - $sDashboardDefinition = @file_get_contents($sDashboardFile); + } else { + $sDashboardDefinition = @file_get_contents($sDashboardFileSanitized); } } else { - $sDashboardDefinition = @file_get_contents($sDashboardFile); + $sDashboardDefinition = @file_get_contents($sDashboardFileSanitized); } if ($sDashboardDefinition !== false) @@ -889,7 +890,7 @@ class RuntimeDashboard extends Dashboard $oDashboard = new RuntimeDashboard($sDashBoardId); $oDashboard->FromXml($sDashboardDefinition); $oDashboard->SetCustomFlag($bCustomized); - $oDashboard->SetDefinitionFile($sDashboardFile); + $oDashboard->SetDefinitionFile($sDashboardFileSanitized); } else { $oDashboard = null; } diff --git a/application/startup.inc.php b/application/startup.inc.php index c414f2251..9b3a2e8fe 100644 --- a/application/startup.inc.php +++ b/application/startup.inc.php @@ -41,29 +41,25 @@ register_shutdown_function(function() $sReservedMemory = null; if (!is_null($err = error_get_last()) && ($err['type'] == E_ERROR)) { - // Remove stack trace from MySQLException + // Remove stack trace from MySQLException (since 2.7.2 see N°3174) $sMessage = $err['message']; - if (strpos($sMessage, 'MySQLException') !== false) - { + if (strpos($sMessage, 'MySQLException') !== false) { $iStackTracePos = strpos($sMessage, 'Stack trace:'); - if ($iStackTracePos !== false) - { + if ($iStackTracePos !== false) { $sMessage = substr($sMessage, 0, $iStackTracePos); } } - IssueLog::error($sMessage, null, $err); - if (strpos($err['message'], 'Allowed memory size of') !== false) - { + // Log additional info but message from $err (since 2.7.6 N°4174) + $aErrToLog = $err; + unset($aErrToLog['message']); + IssueLog::error($sMessage, null, $aErrToLog); + if (strpos($err['message'], 'Allowed memory size of') !== false) { $sLimit = ini_get('memory_limit'); echo "

iTop: Allowed memory size of $sLimit exhausted, contact your administrator to increase 'memory_limit' in php.ini

\n"; - } - elseif (strpos($err['message'], 'Maximum execution time') !== false) - { + } elseif (strpos($err['message'], 'Maximum execution time') !== false) { $sLimit = ini_get('max_execution_time'); echo "

iTop: Maximum execution time of $sLimit exceeded, contact your administrator to increase 'max_execution_time' in php.ini

\n"; - } - else - { + } else { echo "

iTop: An error occurred, check server error log for more information.

\n"; } } diff --git a/core/action.class.inc.php b/core/action.class.inc.php index 6a915873e..1c9b49945 100644 --- a/core/action.class.inc.php +++ b/core/action.class.inc.php @@ -367,8 +367,7 @@ class ActionEmail extends ActionNotification { $this->m_iRecipients = 0; $this->m_aMailErrors = array(); - $bRes = false; // until we do succeed in sending the email - + // Determine recipients // $sTo = $this->FindRecipients('to', $aContextArgs); @@ -382,29 +381,42 @@ class ActionEmail extends ActionNotification $sSubject = MetaModel::ApplyParams($this->Get('subject'), $aContextArgs); $sBody = MetaModel::ApplyParams($this->Get('body'), $aContextArgs); - + $oObj = $aContextArgs['this->object()']; - $sMessageId = sprintf('iTop_%s_%d_%f@%s.openitop.org', get_class($oObj), $oObj->GetKey(), microtime(true /* get as float*/), MetaModel::GetEnvironmentId()); + $sMessageId = sprintf('iTop_%s_%d_%f@%s.openitop.org', get_class($oObj), $oObj->GetKey(), microtime(true /* get as float*/), + MetaModel::GetEnvironmentId()); $sReference = '<'.$sMessageId.'>'; } - catch(Exception $e) - { - ApplicationContext::SetUrlMakerClass($sPreviousUrlMaker); - throw $e; - } - ApplicationContext::SetUrlMakerClass($sPreviousUrlMaker); - - if (!is_null($oLog)) - { + catch (Exception $e) { + /** @noinspection PhpUnhandledExceptionInspection */ + throw $e; + } + finally { + ApplicationContext::SetUrlMakerClass($sPreviousUrlMaker); + } + + if (!is_null($oLog)) { // Note: we have to secure this because those values are calculated // inside the try statement, and we would like to keep track of as // many data as we could while some variables may still be undefined - if (isset($sTo)) $oLog->Set('to', $sTo); - if (isset($sCC)) $oLog->Set('cc', $sCC); - if (isset($sBCC)) $oLog->Set('bcc', $sBCC); - if (isset($sFrom)) $oLog->Set('from', empty($sFromLabel) ? $sFrom : "$sFromLabel <$sFrom>"); - if (isset($sSubject)) $oLog->Set('subject', $sSubject); - if (isset($sBody)) $oLog->Set('body', $sBody); + if (isset($sTo)) { + $oLog->Set('to', $sTo); + } + if (isset($sCC)) { + $oLog->Set('cc', $sCC); + } + if (isset($sBCC)) { + $oLog->Set('bcc', $sBCC); + } + if (isset($sFrom)) { + $oLog->Set('from', $sFrom); + } + if (isset($sSubject)) { + $oLog->Set('subject', $sSubject); + } + if (isset($sBody)) { + $oLog->Set('body', $sBody); + } } $sStyles = file_get_contents(APPROOT.'css/email.css'); $sStyles .= MetaModel::GetConfig()->Get('email_css'); diff --git a/core/metamodel.class.php b/core/metamodel.class.php index c806f11e8..16b91a3b6 100644 --- a/core/metamodel.class.php +++ b/core/metamodel.class.php @@ -7463,9 +7463,11 @@ abstract class MetaModel * @param string $sInput * @param array $aParams * - * @return mixed + * @return string + * + * @throws \Exception */ - static public function ApplyParams($sInput, $aParams) + public static function ApplyParams($sInput, $aParams) { $aParams = static::AddMagicPlaceholders($aParams); @@ -7475,7 +7477,7 @@ abstract class MetaModel $aSearches = array(); $aReplacements = array(); - foreach($aParams as $sSearch => $replace) + foreach ($aParams as $sSearch => $replace) { // Some environment parameters are objects, we just need scalars if (is_object($replace)) diff --git a/datamodels/2.x/authent-cas/dictionaries/es_cr.dict.authent-cas.php b/datamodels/2.x/authent-cas/dictionaries/es_cr.dict.authent-cas.php index 15939e482..4131c0a75 100644 --- a/datamodels/2.x/authent-cas/dictionaries/es_cr.dict.authent-cas.php +++ b/datamodels/2.x/authent-cas/dictionaries/es_cr.dict.authent-cas.php @@ -1,12 +1,15 @@ + * @notas Utilizar codificación UTF-8 para mostrar acentos y otros caracteres especiales */ + Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( - 'CAS:Error:UserNotAllowed' => 'User not allowed~~', - 'CAS:Login:SignIn' => 'Sign in with CAS~~', - 'CAS:Login:SignInTooltip' => 'Click here to authenticate yourself with the CAS server~~', + 'CAS:Error:UserNotAllowed' => 'Usuario no permitido', + 'CAS:Login:SignIn' => 'Iniciar sesión con CAS', + 'CAS:Login:SignInTooltip' => 'Click para autenticarse con servidor CAS', )); diff --git a/datamodels/2.x/authent-external/dictionaries/es_cr.dict.authent-external.php b/datamodels/2.x/authent-external/dictionaries/es_cr.dict.authent-external.php index 96751357c..1ab8f26a5 100644 --- a/datamodels/2.x/authent-external/dictionaries/es_cr.dict.authent-external.php +++ b/datamodels/2.x/authent-external/dictionaries/es_cr.dict.authent-external.php @@ -15,8 +15,8 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -/** - * Localized data + /** + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 diff --git a/datamodels/2.x/authent-ldap/dictionaries/es_cr.dict.authent-ldap.php b/datamodels/2.x/authent-ldap/dictionaries/es_cr.dict.authent-ldap.php index 1b820ce4d..3172feddf 100644 --- a/datamodels/2.x/authent-ldap/dictionaries/es_cr.dict.authent-ldap.php +++ b/datamodels/2.x/authent-ldap/dictionaries/es_cr.dict.authent-ldap.php @@ -15,8 +15,8 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -/** - * Localized data + /** + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 diff --git a/datamodels/2.x/authent-local/dictionaries/es_cr.dict.authent-local.php b/datamodels/2.x/authent-local/dictionaries/es_cr.dict.authent-local.php index cd3380b33..9e5529d90 100644 --- a/datamodels/2.x/authent-local/dictionaries/es_cr.dict.authent-local.php +++ b/datamodels/2.x/authent-local/dictionaries/es_cr.dict.authent-local.php @@ -15,8 +15,8 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -/** - * Localized data + /** + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 @@ -40,18 +40,18 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:UserLocal/Attribute:password' => 'Contraseña', 'Class:UserLocal/Attribute:password+' => 'Contraseña', - 'Class:UserLocal/Attribute:expiration' => 'Password expiration~~', - 'Class:UserLocal/Attribute:expiration+' => 'Password expiration status (requires an extension to have an effect)~~', - 'Class:UserLocal/Attribute:expiration/Value:can_expire' => 'Can expire~~', - 'Class:UserLocal/Attribute:expiration/Value:can_expire+' => '~~', - 'Class:UserLocal/Attribute:expiration/Value:never_expire' => 'Never expire~~', - 'Class:UserLocal/Attribute:expiration/Value:never_expire+' => '~~', - 'Class:UserLocal/Attribute:expiration/Value:force_expire' => 'Expired~~', - 'Class:UserLocal/Attribute:expiration/Value:force_expire+' => '~~', - 'Class:UserLocal/Attribute:password_renewed_date' => 'Password renewal~~', - 'Class:UserLocal/Attribute:password_renewed_date+' => 'When the password was last changed~~', + 'Class:UserLocal/Attribute:expiration' => 'Expiración de contraseña', + 'Class:UserLocal/Attribute:expiration+' => 'Estatus de expiración de contraseña (requiere de una extensión para que tenga efecto)', + 'Class:UserLocal/Attribute:expiration/Value:can_expire' => 'Puede expirar', + 'Class:UserLocal/Attribute:expiration/Value:can_expire+' => 'Puede expirar', + 'Class:UserLocal/Attribute:expiration/Value:never_expire' => 'Nunca expirar', + 'Class:UserLocal/Attribute:expiration/Value:never_expire+' => 'Nunca expirar', + 'Class:UserLocal/Attribute:expiration/Value:force_expire' => 'Expirado', + 'Class:UserLocal/Attribute:expiration/Value:force_expire+' => 'Expirado', + 'Class:UserLocal/Attribute:password_renewed_date' => 'Renovación de contraseña', + 'Class:UserLocal/Attribute:password_renewed_date+' => 'Cuando fue el último cambio de contraseña', - 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'Password must be at least 8 characters and include uppercase, lowercase, numeric and special characters.~~', + 'Error:UserLocalPasswordValidator:UserPasswordPolicyRegex:ValidationFailed' => 'La contraseña debe ser de al menos 8 caracteres e incluír mayúsculas, minúsculas, números y caracteres especiales.', - 'UserLocal:password:expiration' => 'The fields below require an extension~~' + 'UserLocal:password:expiration' => 'El siguiente campo requiere una extensión' )); diff --git a/datamodels/2.x/combodo-db-tools/dictionaries/es_cr.dict.combodo-db-tools.php b/datamodels/2.x/combodo-db-tools/dictionaries/es_cr.dict.combodo-db-tools.php index 382eede07..b4288bcee 100644 --- a/datamodels/2.x/combodo-db-tools/dictionaries/es_cr.dict.combodo-db-tools.php +++ b/datamodels/2.x/combodo-db-tools/dictionaries/es_cr.dict.combodo-db-tools.php @@ -1,9 +1,10 @@ * * This file is part of iTop. * @@ -23,9 +24,9 @@ // Database inconsistencies Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // Dictionary entries go here - 'Menu:DBToolsMenu' => 'Herramientas de bases de datos', + 'Menu:DBToolsMenu' => 'Integridad de Base de Datos', 'DBTools:Class' => 'Clase', - 'DBTools:Title' => 'Herramientas de mantenimiento de base de datos~~', + 'DBTools:Title' => 'Herramientas de Mantenimiento de Base de Datos', 'DBTools:ErrorsFound' => 'Errores encontrados', 'DBTools:Indication' => 'Important: after fixing errors in the database you\'ll have to run the analysis again as new inconsistencies will be generated~~', 'DBTools:Disclaimer' => 'DISCLAIMER: BACKUP YOUR DATABASE BEFORE RUNNING THE FIXES~~', @@ -39,14 +40,14 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'DBTools:ShowIds' => 'Vista detallada', 'DBTools:ShowReport' => 'Reporte', 'DBTools:IntegrityCheck' => 'Verificación de integridad', - 'DBTools:FetchCheck' => 'Fetch Check (long)~~', + 'DBTools:FetchCheck' => 'Verificación de búsqueda (larga)', 'DBTools:SelectAnalysisType' => 'Select analysis type~~', 'DBTools:Analyze' => 'Analizar', 'DBTools:Details' => 'Mostrar detalles', 'DBTools:ShowAll' => 'Mostrar todos los errores', - 'DBTools:Inconsistencies' => 'Inconsistencias de base de datos', + 'DBTools:Inconsistencies' => 'Inconsistencias de Base de Datos', 'DBTools:DetailedErrorTitle' => '%2$s error(s) in class %1$s: %3$s~~', 'DBAnalyzer-Integrity-OrphanRecord' => 'Registro huérfano en `%1$s`, debería tener su contraparte en la tabla `%2$s`', @@ -54,14 +55,14 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'DBAnalyzer-Integrity-MissingExtKey' => 'Llave externa perdida %1$s (columna: `%2$s.%3$s`)', 'DBAnalyzer-Integrity-InvalidValue' => 'Valor inválido para %1$s (columna: `%2$s.%3$s`)', 'DBAnalyzer-Integrity-UsersWithoutProfile' => 'Algunas cuentas de usuario no tienen perfil asignado', - 'DBAnalyzer-Fetch-Count-Error' => 'Fetch count error in `%1$s`, %2$d entries fetched / %3$d counted~~', - 'DBAnalyzer-Integrity-FinalClass' => 'Field `%2$s`.`%1$s` must have the same value as `%3$s`.`%1$s`~~', - 'DBAnalyzer-Integrity-RootFinalClass' => 'Field `%2$s`.`%1$s` must contains a valid class~~', + 'DBAnalyzer-Fetch-Count-Error' => 'Obtener cuenta de errores en `%1$s`, %2$d entradas recuperadas / %3$d contadas', + 'DBAnalyzer-Integrity-FinalClass' => 'Campo `%2$s`.`%1$s` debe tener los mismos valores que `%3$s`.`%1$s`', + 'DBAnalyzer-Integrity-RootFinalClass' => 'Campo `%2$s`.`%1$s` debe contener un caracter válido', )); // Database Info Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( - 'DBTools:DatabaseInfo' => 'Información de base de datos', + 'DBTools:DatabaseInfo' => 'Información de Base de Datos', 'DBTools:Base' => 'Base', 'DBTools:Size' => 'Tamaño', )); @@ -69,17 +70,17 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // Lost attachments Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'DBTools:LostAttachments' => 'Adjuntos perdidos', - 'DBTools:LostAttachments:Disclaimer' => 'Aquí usted puede buscar adjuntos perdidos o desplazados. Esta NO es una herramienta de recuperación de datos, no obtiene datos borrados.', + 'DBTools:LostAttachments:Disclaimer' => 'Aquí usted puede buscar anexos perdidos o fuera de lugar. Esta NO es una herramienta de recuperación de datos, no obtiene datos borrados.', 'DBTools:LostAttachments:Button:Analyze' => 'Analizar', 'DBTools:LostAttachments:Button:Restore' => 'Restaurar', 'DBTools:LostAttachments:Button:Restore:Confirm' => 'Esta acción no se puede deshacer, por favor confirme que quiere restaurar los archivos seleccionados.', 'DBTools:LostAttachments:Button:Busy' => 'Por favor espere...', - 'DBTools:LostAttachments:Step:Analyze' => 'Primero, buscaremos adjuntos perdidos/desplazados analizando la base de datos.', + 'DBTools:LostAttachments:Step:Analyze' => 'Primero, buscar anexos perdidos o fuera de lugar analizando la base de datos.', 'DBTools:LostAttachments:Step:AnalyzeResults' => 'Analizar resultados:', - 'DBTools:LostAttachments:Step:AnalyzeResults:None' => 'Genial! Todo parece estar en el lugar correcto.', + 'DBTools:LostAttachments:Step:AnalyzeResults:None' => '¡Genial! Todo parece estar en el lugar correcto.', 'DBTools:LostAttachments:Step:AnalyzeResults:Some' => 'Algunos adjuntos (%1$d) parecen estar desplazados. Mire la siguiente lista y verifique los que quiera mover.', 'DBTools:LostAttachments:Step:AnalyzeResults:Item:Filename' => 'Nombre de archivo', 'DBTools:LostAttachments:Step:AnalyzeResults:Item:CurrentLocation' => 'Ubicación actual', diff --git a/datamodels/2.x/itop-attachments/dictionaries/es_cr.dict.itop-attachments.php b/datamodels/2.x/itop-attachments/dictionaries/es_cr.dict.itop-attachments.php index 52d406cc9..206a7ae78 100644 --- a/datamodels/2.x/itop-attachments/dictionaries/es_cr.dict.itop-attachments.php +++ b/datamodels/2.x/itop-attachments/dictionaries/es_cr.dict.itop-attachments.php @@ -15,8 +15,8 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -/** - * Localized data + /** + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 @@ -36,12 +36,12 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Attachment:Max_Ko' => '(Tamaño Máximo de Archivo: %1$s Kb)', 'Attachments:NoAttachment' => 'No hay Anexo. ', 'Attachments:PreviewNotAvailable' => 'Vista preliminar no disponible para este tipo de Anexo.', - 'Attachments:Error:FileTooLarge' => 'File is too large to be uploaded. %1$s~~', - 'Attachments:Error:UploadedFileEmpty' => 'The received file is empty and cannot be attached. -Either you have pushed an empty file, -or ask your iTop administrator if the iTop server disk is full.~~', - 'Attachments:Render:Icons' => 'Display as icons~~', - 'Attachments:Render:Table' => 'Display as list~~', + 'Attachments:Error:FileTooLarge' => 'El archivo es demasiado grande para ser cargado. %1$s', + 'Attachments:Error:UploadedFileEmpty' => 'El archivo recibido está vacío y no puede ser anexado. +Puede ser que haya enviado un archivo vació, +o pregunte al administador de iTop si el servidor que ha quedado sin espacio en disco.', + 'Attachments:Render:Icons' => 'Desplegar como icono', + 'Attachments:Render:Table' => 'Desplegar como lista', 'UI:Attachments:DropYourFileHint' => 'Drop files anywhere in this area~~', )); @@ -50,40 +50,40 @@ or ask your iTop administrator if the iTop server disk is full.~~', // Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( - 'Class:Attachment' => 'Attachment~~', - 'Class:Attachment+' => '~~', - 'Class:Attachment/Attribute:expire' => 'Expire~~', - 'Class:Attachment/Attribute:expire+' => '~~', - 'Class:Attachment/Attribute:temp_id' => 'Temporary id~~', - 'Class:Attachment/Attribute:temp_id+' => '~~', - 'Class:Attachment/Attribute:item_class' => 'Item class~~', - 'Class:Attachment/Attribute:item_class+' => '~~', - 'Class:Attachment/Attribute:item_id' => 'Item~~', - 'Class:Attachment/Attribute:item_id+' => '~~', - 'Class:Attachment/Attribute:item_org_id' => 'Item organization~~', - 'Class:Attachment/Attribute:item_org_id+' => '~~', - 'Class:Attachment/Attribute:contents' => 'Contents~~', - 'Class:Attachment/Attribute:contents+' => '~~', + 'Class:Attachment' => 'Anexo', + 'Class:Attachment+' => 'Anexo', + 'Class:Attachment/Attribute:expire' => 'Expira', + 'Class:Attachment/Attribute:expire+' => 'Expira', + 'Class:Attachment/Attribute:temp_id' => 'Id Temporal', + 'Class:Attachment/Attribute:temp_id+' => 'Id Temporal', + 'Class:Attachment/Attribute:item_class' => 'Clase de Elemento', + 'Class:Attachment/Attribute:item_class+' => 'Clase de Elemento', + 'Class:Attachment/Attribute:item_id' => 'Elemento', + 'Class:Attachment/Attribute:item_id+' => 'Elemento', + 'Class:Attachment/Attribute:item_org_id' => 'Organización de Elemento', + 'Class:Attachment/Attribute:item_org_id+' => 'Organización de Elemento', + 'Class:Attachment/Attribute:contents' => 'Contenido', + 'Class:Attachment/Attribute:contents+' => 'Contenido', )); Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( - 'Attachments:File:Thumbnail' => 'Icon~~', - 'Attachments:File:Name' => 'File name~~', - 'Attachments:File:Date' => 'Upload date~~', - 'Attachments:File:Uploader' => 'Uploaded by~~', - 'Attachments:File:Size' => 'Size~~', - 'Attachments:File:MimeType' => 'Type~~', + 'Attachments:File:Thumbnail' => 'Ícono', + 'Attachments:File:Name' => 'Nombre de Archivo', + 'Attachments:File:Date' => 'Fecha de Carga', + 'Attachments:File:Uploader' => 'Cargado por', + 'Attachments:File:Size' => 'Tamaño', + 'Attachments:File:MimeType' => 'Tipo', )); // // Class: Attachment // Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( - 'Class:Attachment/Attribute:creation_date' => 'Creation date~~', - 'Class:Attachment/Attribute:creation_date+' => '~~', - 'Class:Attachment/Attribute:user_id' => 'User id~~', - 'Class:Attachment/Attribute:user_id+' => '~~', - 'Class:Attachment/Attribute:contact_id' => 'Contact id~~', - 'Class:Attachment/Attribute:contact_id+' => '~~', + 'Class:Attachment/Attribute:creation_date' => 'Fecha de Creación', + 'Class:Attachment/Attribute:creation_date+' => 'Fecha de Creación', + 'Class:Attachment/Attribute:user_id' => 'Id del Usuario', + 'Class:Attachment/Attribute:user_id+' => 'Id del Usuario', + 'Class:Attachment/Attribute:contact_id' => 'Id del Contacto', + 'Class:Attachment/Attribute:contact_id+' => 'Id del Contacto', )); diff --git a/datamodels/2.x/itop-backup/dictionaries/es_cr.dict.itop-backup.php b/datamodels/2.x/itop-backup/dictionaries/es_cr.dict.itop-backup.php index b0c955c5d..8ffa2c625 100644 --- a/datamodels/2.x/itop-backup/dictionaries/es_cr.dict.itop-backup.php +++ b/datamodels/2.x/itop-backup/dictionaries/es_cr.dict.itop-backup.php @@ -4,6 +4,7 @@ * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 + * @traductor Miguel Turrubiates * * This file is part of iTop. * @@ -42,9 +43,9 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'bkp-table-file' => 'Archivo', 'bkp-table-file+' => 'Solo archivos con la extensión .zip son considerados como archivos de respaldos', 'bkp-table-size' => 'Tamaño', - 'bkp-table-size+' => '', + 'bkp-table-size+' => 'Tamaño', 'bkp-table-actions' => 'Acciones', - 'bkp-table-actions+' => '', + 'bkp-table-actions+' => 'Acciones', 'bkp-status-backups-auto' => 'Respaldos Programandos', 'bkp-status-backups-manual' => 'Respaldos Manuales', 'bkp-status-backups-none' => 'No hay respaldos', diff --git a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/es_cr.dict.itop-bridge-cmdb-ticket.php b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/es_cr.dict.itop-bridge-cmdb-ticket.php index b4ea8488e..7da844504 100644 --- a/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/es_cr.dict.itop-bridge-cmdb-ticket.php +++ b/datamodels/2.x/itop-bridge-cmdb-ticket/dictionaries/es_cr.dict.itop-bridge-cmdb-ticket.php @@ -37,8 +37,8 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:lnkFunctionalCIToTicket/Attribute:ticket_id+' => 'Ticket', 'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref' => 'Ref.', 'Class:lnkFunctionalCIToTicket/Attribute:ticket_ref+' => 'Ref.', - 'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Ticket title~~', - 'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '~~', + 'Class:lnkFunctionalCIToTicket/Attribute:ticket_title' => 'Título del Ticket', + 'Class:lnkFunctionalCIToTicket/Attribute:ticket_title+' => '', 'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id' => 'EC', 'Class:lnkFunctionalCIToTicket/Attribute:functionalci_id+' => 'Elemanto de Configuración', 'Class:lnkFunctionalCIToTicket/Attribute:functionalci_name' => 'Elemanto de Configuración', diff --git a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/es_cr.dict.itop-change-mgmt-itil.php b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/es_cr.dict.itop-change-mgmt-itil.php index 8e87582ce..7bc02aa6c 100644 --- a/datamodels/2.x/itop-change-mgmt-itil/dictionaries/es_cr.dict.itop-change-mgmt-itil.php +++ b/datamodels/2.x/itop-change-mgmt-itil/dictionaries/es_cr.dict.itop-change-mgmt-itil.php @@ -15,8 +15,8 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -/** - * Localized data + /** + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 diff --git a/datamodels/2.x/itop-change-mgmt/dictionaries/es_cr.dict.itop-change-mgmt.php b/datamodels/2.x/itop-change-mgmt/dictionaries/es_cr.dict.itop-change-mgmt.php index 8b7f17145..926672af8 100644 --- a/datamodels/2.x/itop-change-mgmt/dictionaries/es_cr.dict.itop-change-mgmt.php +++ b/datamodels/2.x/itop-change-mgmt/dictionaries/es_cr.dict.itop-change-mgmt.php @@ -15,8 +15,8 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -/** - * Localized data + /** + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 diff --git a/datamodels/2.x/itop-config-mgmt/dictionaries/es_cr.dict.itop-config-mgmt.php b/datamodels/2.x/itop-config-mgmt/dictionaries/es_cr.dict.itop-config-mgmt.php index 26b98a793..4f4f16174 100644 --- a/datamodels/2.x/itop-config-mgmt/dictionaries/es_cr.dict.itop-config-mgmt.php +++ b/datamodels/2.x/itop-config-mgmt/dictionaries/es_cr.dict.itop-config-mgmt.php @@ -15,8 +15,8 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -/** - * Localized data + /** + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 @@ -1060,8 +1060,8 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:Brand+' => 'Marca', 'Class:Brand/Attribute:physicaldevices_list' => 'Dispositivo Físico', 'Class:Brand/Attribute:physicaldevices_list+' => 'Dispositivo Físico', - 'Class:Brand/UniquenessRule:name+' => 'The name must be unique~~', - 'Class:Brand/UniquenessRule:name' => 'This brand already exists~~', + 'Class:Brand/UniquenessRule:name+' => 'El nombre debe ser único', + 'Class:Brand/UniquenessRule:name' => 'Esta Marca ya existe', )); // @@ -1115,8 +1115,8 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:Model/Attribute:type/Value:Phone+' => 'Teléfono', 'Class:Model/Attribute:physicaldevices_list' => 'Dispositivo Físico', 'Class:Model/Attribute:physicaldevices_list+' => 'Dispositivo Físico', - 'Class:Model/UniquenessRule:name_brand+' => 'Name must be unique in the brand~~', - 'Class:Model/UniquenessRule:name_brand' => 'this model already exists for this brand~~', + 'Class:Model/UniquenessRule:name_brand+' => 'El nombre debe ser único dentro de la Marca', + 'Class:Model/UniquenessRule:name_brand' => 'este modelo ya existe para esta Marca', )); // @@ -1220,8 +1220,8 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:Subnet+' => 'SubRed', 'Class:Subnet/Attribute:description' => 'Descripción', 'Class:Subnet/Attribute:description+' => 'Descripción', - 'Class:Subnet/Attribute:subnet_name' => 'Subnet name~~', - 'Class:Subnet/Attribute:subnet_name+' => '~~', + 'Class:Subnet/Attribute:subnet_name' => 'Nombre de Subred', + 'Class:Subnet/Attribute:subnet_name+' => 'Nombre de Subred', 'Class:Subnet/Attribute:org_id' => 'Organización', 'Class:Subnet/Attribute:org_id+' => 'Organización', 'Class:Subnet/Attribute:org_name' => 'Organización', @@ -1574,8 +1574,8 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Menu:ConfigManagement:Misc' => 'Misceláneo', 'Menu:Group' => 'Grupos de ECs', 'Menu:Group+' => 'Grupos de ECs', - 'Menu:OSVersion' => 'OS versions~~', - 'Menu:OSVersion+' => '~~', + 'Menu:OSVersion' => 'Versión de Sistema Operativo', + 'Menu:OSVersion+' => '', 'Menu:Software' => 'Catálogo de Software', 'Menu:Software+' => 'Catálogo de Software', )); diff --git a/datamodels/2.x/itop-config/dictionaries/es_cr.dict.itop-config.php b/datamodels/2.x/itop-config/dictionaries/es_cr.dict.itop-config.php index e831b011c..88398a066 100644 --- a/datamodels/2.x/itop-config/dictionaries/es_cr.dict.itop-config.php +++ b/datamodels/2.x/itop-config/dictionaries/es_cr.dict.itop-config.php @@ -4,6 +4,7 @@ * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 + * @traductor Miguel Turrubiates * * This file is part of iTop. * @@ -34,5 +35,5 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'config-reverted' => 'La configuración ha sido revertida.', 'config-parse-error' => 'Línea %2$d: %1$s.
El archivo NO ha sido actualizado.', 'config-current-line' => 'Editando línea: %1$s', - 'config-saved-warning-db-password' => 'Successfully recorded, but the backup won\'t work due to unsupported characters in the database password.~~', + 'config-saved-warning-db-password' => 'Registrado correctamente, pero el respaldo NO funcionará debido a caracteres no admitidos en la contraseña de la base de datos.', )); diff --git a/datamodels/2.x/itop-core-update/dictionaries/es_cr.dict.itop-core-update.php b/datamodels/2.x/itop-core-update/dictionaries/es_cr.dict.itop-core-update.php index 7282a9633..087fd2b42 100644 --- a/datamodels/2.x/itop-core-update/dictionaries/es_cr.dict.itop-core-update.php +++ b/datamodels/2.x/itop-core-update/dictionaries/es_cr.dict.itop-core-update.php @@ -4,6 +4,7 @@ * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 + * @traductor Miguel Turrubiates * * This file is part of iTop. * @@ -22,13 +23,13 @@ */ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'iTopUpdate:UI:PageTitle' => 'Actualización de aplicación', - 'itop-core-update:UI:SelectUpdateFile' => 'Application Upgrade~~', - 'itop-core-update:UI:ConfirmUpdate' => 'Application Upgrade~~', - 'itop-core-update:UI:UpdateCoreFiles' => 'Application Upgrade~~', + 'itop-core-update:UI:SelectUpdateFile' => 'Seleccionar archivo', + 'itop-core-update:UI:ConfirmUpdate' => 'Confirmar actualización', + 'itop-core-update:UI:UpdateCoreFiles' => 'Actualizar aplicación', 'iTopUpdate:UI:MaintenanceModeActive' => 'La aplicación está actualmente en mantenimiento, ningún usuario puede acceder. UStede debe ejecutar la instalación o restaturar la aplicación para regresar al modo normal.', - 'itop-core-update:UI:UpdateDone' => 'Application Upgrade~~', + 'itop-core-update:UI:UpdateDone' => 'Actualización realizada', - 'itop-core-update/Operation:SelectUpdateFile/Title' => 'Application Upgrade~~', + 'itop-core-update/Operation:SelectUpdateFile/Title' => 'Seleccionar archivo', 'itop-core-update/Operation:ConfirmUpdate/Title' => 'Confirmar actualización de la aplicación', 'itop-core-update/Operation:UpdateCoreFiles/Title' => 'Actualizando aplicación', 'itop-core-update/Operation:UpdateDone/Title' => 'Actualización de aplicación terminada', @@ -63,18 +64,18 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'iTopUpdate:UI:DiskFreeSpace' => 'Espaciolibre en el dispositivo', 'iTopUpdate:UI:ItopDiskSpace' => 'Espacio en diso de '.ITOP_APPLICATION_SHORT, 'iTopUpdate:UI:DBDiskSpace' => 'Espacio en diso de base de datos', - 'iTopUpdate:UI:FileUploadMaxSize' => 'Máximo tamaño de subida de archivos', + 'iTopUpdate:UI:FileUploadMaxSize' => 'Máximo tamaño de carga de archivos', - 'iTopUpdate:UI:PostMaxSize' => 'Valor post_max_size en PHP ini: %1$s~~', - 'iTopUpdate:UI:UploadMaxFileSize' => 'Valor upload_max_filesize en PHP ini: %1$s~~', + 'iTopUpdate:UI:PostMaxSize' => 'Valor post_max_size en PHP ini: %1$s', + 'iTopUpdate:UI:UploadMaxFileSize' => 'Valor upload_max_filesize en PHP ini: %1$s', 'iTopUpdate:UI:CanCoreUpdate:Loading' => 'Revisando sistema de archivos', 'iTopUpdate:UI:CanCoreUpdate:Error' => 'La revisión del sistema de archivos falló (%1$s)', - 'iTopUpdate:UI:CanCoreUpdate:ErrorFileNotExist' => 'La revisión del sistema de archivos falló (Archivo no existe %1$s)~~', + 'iTopUpdate:UI:CanCoreUpdate:ErrorFileNotExist' => 'La revisión del sistema de archivos falló (Archivo no existe %1$s)', 'iTopUpdate:UI:CanCoreUpdate:Failed' => 'La revisión del sistema de archivos falló', 'iTopUpdate:UI:CanCoreUpdate:Yes' => 'La aplicación puede ser actualizada', 'iTopUpdate:UI:CanCoreUpdate:No' => 'La aplicación no puede ser actualizada: %1$s', - 'iTopUpdate:UI:CanCoreUpdate:Warning' => 'Warning: application update can fail: %1$s~~', + 'iTopUpdate:UI:CanCoreUpdate:Warning' => 'Advertencia: la actualización de la aplicación puede fallar: %1$s', 'iTopUpdate:UI:CannotUpdateUseSetup' => 'You must use the setup to update the application.
Some modified files were detected, a partial update cannot be executed.~~', // Setup Messages @@ -91,12 +92,12 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // Errors 'iTopUpdate:Error:MissingFunction' => 'Imposible comenzar actualización, función no disponible', - 'iTopUpdate:Error:MissingFile' => 'Archivo no encontrado: %1$s~~', + 'iTopUpdate:Error:MissingFile' => 'Archivo no encontrado: %1$s', 'iTopUpdate:Error:CorruptedFile' => 'El archivo %1$s está corrupto', 'iTopUpdate:Error:BadFileFormat' => 'El archivo de actualización no es un archivo zip', 'iTopUpdate:Error:BadFileContent' => 'El archivo de actualización no es correcto', 'iTopUpdate:Error:BadItopProduct' => 'El archivo de actualización no es compatible con su producto', - 'iTopUpdate:Error:Copy' => 'Error, no puedo copiar \'%1$s\' a \'%2$s\'~~', + 'iTopUpdate:Error:Copy' => 'Error, no puedo copiar \'%1$s\' a \'%2$s\'', 'iTopUpdate:Error:FileNotFound' => 'Archivo no encontrado', 'iTopUpdate:Error:NoFile' => 'Archivo no seleccionado', 'iTopUpdate:Error:InvalidToken' => 'Token inválido', @@ -105,7 +106,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'iTopUpdate:UI:RestoreArchive' => 'Usted puede restaurar su aplicación desde el archivo \'%1$s\'', 'iTopUpdate:UI:RestoreBackup' => 'Usted puede restaurar la base de datos desde \'%1$s\'', - 'iTopUpdate:UI:UpdateDone' => 'Actualización exitosa', + 'iTopUpdate:UI:UpdateDone' => 'Actualización éxitosa', 'Menu:iTopUpdate' => 'Actualización de aplicación', 'Menu:iTopUpdate+' => 'Actualización de aplicación', @@ -113,7 +114,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:ModuleInstallation/Attribute:installed' => 'Instalado en', 'Class:ModuleInstallation/Attribute:name' => 'Nombre', 'Class:ModuleInstallation/Attribute:version' => 'Versión', - 'Class:ModuleInstallation/Attribute:comment' => 'Commentario', + 'Class:ModuleInstallation/Attribute:comment' => 'Comentario', )); diff --git a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/es_cr.dict.itop-datacenter-mgmt.php b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/es_cr.dict.itop-datacenter-mgmt.php index acfde1b68..4d4e6afa9 100644 --- a/datamodels/2.x/itop-datacenter-mgmt/dictionaries/es_cr.dict.itop-datacenter-mgmt.php +++ b/datamodels/2.x/itop-datacenter-mgmt/dictionaries/es_cr.dict.itop-datacenter-mgmt.php @@ -4,6 +4,7 @@ * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 + * @traductor Miguel Turrubiates * * This file is part of iTop. * diff --git a/datamodels/2.x/itop-endusers-devices/dictionaries/es_cr.dict.itop-endusers-devices.php b/datamodels/2.x/itop-endusers-devices/dictionaries/es_cr.dict.itop-endusers-devices.php index acfde1b68..4d4e6afa9 100644 --- a/datamodels/2.x/itop-endusers-devices/dictionaries/es_cr.dict.itop-endusers-devices.php +++ b/datamodels/2.x/itop-endusers-devices/dictionaries/es_cr.dict.itop-endusers-devices.php @@ -4,6 +4,7 @@ * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 + * @traductor Miguel Turrubiates * * This file is part of iTop. * diff --git a/datamodels/2.x/itop-faq-light/dictionaries/es_cr.dict.itop-faq-light.php b/datamodels/2.x/itop-faq-light/dictionaries/es_cr.dict.itop-faq-light.php index 0c50a13bc..77d199de6 100644 --- a/datamodels/2.x/itop-faq-light/dictionaries/es_cr.dict.itop-faq-light.php +++ b/datamodels/2.x/itop-faq-light/dictionaries/es_cr.dict.itop-faq-light.php @@ -47,6 +47,9 @@ // // Class: FAQ // +// +// Class: FAQ +// Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:FAQ' => 'Preguntas y Respuestas Frecuentes', 'Class:FAQ+' => 'Preguntas y Respuestas Frecuentes', @@ -64,13 +67,12 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:FAQ/Attribute:error_code+' => 'Código de Error', 'Class:FAQ/Attribute:key_words' => 'Palabras Clave', 'Class:FAQ/Attribute:key_words+' => 'Palabras Clave', - 'Class:FAQ/Attribute:domains' => 'Domains~~', + 'Class:FAQ/Attribute:domains' => 'Ámbito', )); // // Class: FAQCategory // - Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:FAQCategory' => 'Categoría de Preguntas y Respuesta Frecuentes', 'Class:FAQCategory+' => 'Categoría de Preguntas y Respuesta Frecuentes', diff --git a/datamodels/2.x/itop-files-information/dictionaries/es_cr.dict.itop-files-information.php b/datamodels/2.x/itop-files-information/dictionaries/es_cr.dict.itop-files-information.php index 31faa8f3c..8a8cc32ce 100644 --- a/datamodels/2.x/itop-files-information/dictionaries/es_cr.dict.itop-files-information.php +++ b/datamodels/2.x/itop-files-information/dictionaries/es_cr.dict.itop-files-information.php @@ -4,6 +4,7 @@ * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 + * @traductor Miguel Turrubiates * * This file is part of iTop. * @@ -22,9 +23,9 @@ */ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // Errors - 'FilesInformation:Error:MissingFile' => 'Missing file: %1$s~~', - 'FilesInformation:Error:CorruptedFile' => 'File %1$s is corrupted~~', - 'FilesInformation:Error:CantWriteToFile' => 'Can not write to file %1$s~~', + 'FilesInformation:Error:MissingFile' => 'Archivo faltante: %1$s', + 'FilesInformation:Error:CorruptedFile' => 'El archivo %1$s está corrupto', + 'FilesInformation:Error:CantWriteToFile' => 'No se puede escribir al archivo %1$s', )); diff --git a/datamodels/2.x/itop-hub-connector/dictionaries/es_cr.dict.itop-hub-connector.php b/datamodels/2.x/itop-hub-connector/dictionaries/es_cr.dict.itop-hub-connector.php index fda507323..44e9b9cb4 100644 --- a/datamodels/2.x/itop-hub-connector/dictionaries/es_cr.dict.itop-hub-connector.php +++ b/datamodels/2.x/itop-hub-connector/dictionaries/es_cr.dict.itop-hub-connector.php @@ -4,6 +4,7 @@ * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 + * @traductor Miguel Turrubiates * * This file is part of iTop. * @@ -47,7 +48,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'iTopHub:Landing:Install' => 'Instalando extensiones...', 'iTopHub:CompiledOK' => 'Compilación éxitosa.', 'iTopHub:ConfigurationSafelyReverted' => 'Error detectado durante la instalación!
La configuración de '.ITOP_APPLICATION_SHORT.' NO fue modificada.', - 'iTopHub:FailAuthent' => 'Authentication failed for this action.~~', + 'iTopHub:FailAuthent' => 'Autenticación fallida para esta acciónn.', 'iTopHub:InstalledExtensions' => 'Extensiones instaladas en esta instancia', 'iTopHub:ExtensionCategory:Manual' => 'Extensiones instaladas manualmente', @@ -76,11 +77,11 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'iTopHub:InstallationProgress:ExtensionsInstallation' => 'Instalación de extensiones', 'iTopHub:InstallationEffect:MissingDependencies' => 'Esta extensión no puede ser instalad porque no cumple con las dependencias.', 'iTopHub:InstallationEffect:MissingDependencies_Details' => 'La extensión require el/los módulo(s): %1$s', - 'iTopHub:InstallationProgress:InstallationSuccessful' => 'Instalación éxitosa!', + 'iTopHub:InstallationProgress:InstallationSuccessful' => '¡Instalación éxitosa!', - 'iTopHub:InstallationStatus:Installed_Version' => '%1$s version: %2$s.', + 'iTopHub:InstallationStatus:Installed_Version' => '%1$s versión: %2$s.', 'iTopHub:InstallationStatus:Installed' => 'Instalada', - 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Version %1$s NO está instalada.', + 'iTopHub:InstallationStatus:Version_NotInstalled' => 'Versión %1$s NO está instalada.', )); diff --git a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/es_cr.dict.itop-incident-mgmt-itil.php b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/es_cr.dict.itop-incident-mgmt-itil.php index 03c24d5f0..60cbbdafb 100644 --- a/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/es_cr.dict.itop-incident-mgmt-itil.php +++ b/datamodels/2.x/itop-incident-mgmt-itil/dictionaries/es_cr.dict.itop-incident-mgmt-itil.php @@ -15,8 +15,8 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -/** - * Localized data + /** + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 @@ -192,8 +192,8 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:Incident/Attribute:parent_change_ref+' => 'Ref. Cambio Padre', 'Class:Incident/Attribute:parent_problem_id' => 'Problema Padre', 'Class:Incident/Attribute:parent_problem_id+' => 'Problema Padre', - 'Class:Incident/Attribute:parent_problem_ref' => 'Parent problem ref~~', - 'Class:Incident/Attribute:parent_problem_ref+' => '~~', + 'Class:Incident/Attribute:parent_problem_ref' => 'Ref. Problema Padre', + 'Class:Incident/Attribute:parent_problem_ref+' => '', 'Class:Incident/Attribute:related_request_list' => 'Requerimientos Relacionados', 'Class:Incident/Attribute:related_request_list+' => 'Requerimientos Relacionados', 'Class:Incident/Attribute:child_incidents_list' => 'Incidentes Hijos', diff --git a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/es_cr.dict.itop-knownerror-mgmt.php b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/es_cr.dict.itop-knownerror-mgmt.php index 1707c5658..b9c975c92 100644 --- a/datamodels/2.x/itop-knownerror-mgmt/dictionaries/es_cr.dict.itop-knownerror-mgmt.php +++ b/datamodels/2.x/itop-knownerror-mgmt/dictionaries/es_cr.dict.itop-knownerror-mgmt.php @@ -15,8 +15,8 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -/** - * Localized data + /** + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 diff --git a/datamodels/2.x/itop-portal-base/dictionaries/es_cr.dict.itop-portal-base.php b/datamodels/2.x/itop-portal-base/dictionaries/es_cr.dict.itop-portal-base.php index 18d12ddd9..9daeaa98d 100644 --- a/datamodels/2.x/itop-portal-base/dictionaries/es_cr.dict.itop-portal-base.php +++ b/datamodels/2.x/itop-portal-base/dictionaries/es_cr.dict.itop-portal-base.php @@ -1,6 +1,10 @@ * * This file is part of iTop. * @@ -33,7 +37,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Portal:Button:Delete' => 'Borrar', 'Portal:EnvironmentBanner:Title' => 'Se encuentra en modo %1$s', 'Portal:EnvironmentBanner:GoToProduction' => 'Regresar a modo PRODUCTION', - 'Error:HTTP:400' => 'Bad request~~', + 'Error:HTTP:400' => 'Solicitud Incorrecta', 'Error:HTTP:401' => 'Autenticación', 'Error:HTTP:404' => 'Página no encontrada', 'Error:HTTP:500' => '¡Vaya! Ha ocurrido un error.', @@ -59,14 +63,14 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Portal:Attachments:DropZone:Message' => 'Agrega tus archivos para agregarlos como documentos adjuntos', 'Portal:File:None' => 'No hay archivo', 'Portal:File:DisplayInfo' => '%1$s', - 'Portal:File:DisplayInfo+' => '%1$s (%2$s) Abierto / Download', + 'Portal:File:DisplayInfo+' => '%1$s (%2$s) Abierto / Descarga', 'Portal:Calendar-FirstDayOfWeek' => 'es', //work with moment.js locales )); // Object form Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Portal:Form:Caselog:Entry:Close:Tooltip' => 'Close this entry~~', - 'Portal:Form:Close:Warning' => 'Do you want to leave this form ? Data entered may be lost~~', + 'Portal:Form:Close:Warning' => '¿Desea abandorar esta forma? Datos modificados se perderan', 'Portal:Error:ObjectCannotBeCreated' => 'Error: object cannot be created. Check associated objects and attachments before submitting again this form.~~', 'Portal:Error:ObjectCannotBeUpdated' => 'Error: object cannot be updated. Check associated objects and attachments before submitting again this form.~~', )); @@ -132,12 +136,12 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Brick:Portal:Object:Form:View:Title' => '%1$s : %2$s', 'Brick:Portal:Object:Form:Stimulus:Title' => 'Por favor, proporcione la siguiente información:', 'Brick:Portal:Object:Form:Message:Saved' => 'Guardado', - 'Brick:Portal:Object:Form:Message:ObjectSaved' => '%1$s guardado~~', + 'Brick:Portal:Object:Form:Message:ObjectSaved' => '%1$s guardado', 'Brick:Portal:Object:Search:Regular:Title' => 'Selección %1$s (%2$s)', 'Brick:Portal:Object:Search:Hierarchy:Title' => 'Selección %1$s (%2$s)', - 'Brick:Portal:Object:Copy:TextToCopy' => '%1$s: %2$s~~', - 'Brick:Portal:Object:Copy:Tooltip' => 'Copy object link~~', - 'Brick:Portal:Object:Copy:CopiedTooltip' => 'Copied~~' + 'Brick:Portal:Object:Copy:TextToCopy' => '%1$s: %2$s', + 'Brick:Portal:Object:Copy:Tooltip' => 'Copiar liga al objeto', + 'Brick:Portal:Object:Copy:CopiedTooltip' => 'Copiado' )); // CreateBrick brick diff --git a/datamodels/2.x/itop-portal-base/portal/src/EventListener/ExceptionListener.php b/datamodels/2.x/itop-portal-base/portal/src/EventListener/ExceptionListener.php index 4a9c4ac7c..6b585ffbe 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/EventListener/ExceptionListener.php +++ b/datamodels/2.x/itop-portal-base/portal/src/EventListener/ExceptionListener.php @@ -58,11 +58,17 @@ class ExceptionListener implements ContainerAwareInterface $oException = $oEvent->getException(); // Prepare / format exception data - $sErrorMessage = $oException->getMessage(); + if ($oException instanceof \MySQLException) { + // Those exceptions should be caught before (in the metamodel startup, before event starting Symfony !) + // They could contain far too much info :/ + // So as an extra precaution we are filtering here anyway ! + $sErrorMessage = 'DB Server error, check error log !'; + } else { + $sErrorMessage = $oException->getMessage(); + } // - For none HTTP exception, status code will be a generic 500 $iStatusCode = ($oException instanceof HttpExceptionInterface) ? $oException->getStatusCode() : Response::HTTP_INTERNAL_SERVER_ERROR; - switch ($iStatusCode) - { + switch ($iStatusCode) { case 404: $sErrorTitle = Dict::S('Error:HTTP:404'); break; @@ -93,10 +99,10 @@ class ExceptionListener implements ContainerAwareInterface // Prepare data for template $aData = array( - 'exception' => $oFlattenException, - 'code' => $iStatusCode, - 'error_title' => $sErrorTitle, - 'error_message' => '', + 'exception' => $oFlattenException, + 'code' => $iStatusCode, + 'error_title' => $sErrorTitle, + 'error_message' => $sErrorMessage, ); // Generate the response diff --git a/datamodels/2.x/itop-problem-mgmt/dictionaries/es_cr.dict.itop-problem-mgmt.php b/datamodels/2.x/itop-problem-mgmt/dictionaries/es_cr.dict.itop-problem-mgmt.php index c152db731..4e4bb6aee 100644 --- a/datamodels/2.x/itop-problem-mgmt/dictionaries/es_cr.dict.itop-problem-mgmt.php +++ b/datamodels/2.x/itop-problem-mgmt/dictionaries/es_cr.dict.itop-problem-mgmt.php @@ -15,8 +15,8 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -/** - * Localized data + /** + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 diff --git a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/es_cr.dict.itop-request-mgmt-itil.php b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/es_cr.dict.itop-request-mgmt-itil.php index 5eaaac0d6..c82e08964 100644 --- a/datamodels/2.x/itop-request-mgmt-itil/dictionaries/es_cr.dict.itop-request-mgmt-itil.php +++ b/datamodels/2.x/itop-request-mgmt-itil/dictionaries/es_cr.dict.itop-request-mgmt-itil.php @@ -2,9 +2,7 @@ /* * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 - */ -/* - * @traductor Miguel Turrubiates + * @traductor Miguel Turrubiates */ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Menu:RequestManagement' => 'Administración de Requerimientos', @@ -200,8 +198,8 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:UserRequest/Attribute:parent_change_id+' => 'Cambio Padre', 'Class:UserRequest/Attribute:parent_change_ref' => 'Ref. Cambio', 'Class:UserRequest/Attribute:parent_change_ref+' => 'Ref. Cambio', - 'Class:UserRequest/Attribute:parent_incident_ref' => 'Parent incident ref~~', - 'Class:UserRequest/Attribute:parent_incident_ref+' => '~~', + 'Class:UserRequest/Attribute:parent_incident_ref' => 'Ref. Inciente Padre', + 'Class:UserRequest/Attribute:parent_incident_ref+' => '', 'Class:UserRequest/Attribute:related_request_list' => 'Requerimientos Hijo', 'Class:UserRequest/Attribute:related_request_list+' => 'Requerimientos Hijo', 'Class:UserRequest/Attribute:public_log' => 'Bitácora Pública', @@ -252,7 +250,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( - 'Organization:Overview:UserRequests' => 'User Requests from this organization~~', - 'Organization:Overview:MyUserRequests' => 'My User Requests for this organization~~', - 'Organization:Overview:Tickets' => 'Tickets for this organization~~', + 'Organization:Overview:UserRequests' => 'Requerimientos para esta Organización', + 'Organization:Overview:MyUserRequests' => 'Mis Requerimientos para esta Organización', + 'Organization:Overview:Tickets' => 'Tickets para esta Organización', )); diff --git a/datamodels/2.x/itop-request-mgmt/dictionaries/es_cr.dict.itop-request-mgmt.php b/datamodels/2.x/itop-request-mgmt/dictionaries/es_cr.dict.itop-request-mgmt.php index 487e57434..62477829b 100644 --- a/datamodels/2.x/itop-request-mgmt/dictionaries/es_cr.dict.itop-request-mgmt.php +++ b/datamodels/2.x/itop-request-mgmt/dictionaries/es_cr.dict.itop-request-mgmt.php @@ -2,9 +2,7 @@ /* * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 - */ -/* - * @traductor Miguel Turrubiates + * @traductor Miguel Turrubiates */ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Menu:RequestManagement' => 'Administración de Requerimientos', @@ -265,7 +263,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Portal:UserRequest:MoreInfo' => 'Más Información', 'Portal:Details-Service-Element' => 'Elementos del Servicio', 'Portal:NoClosedTicket' => 'Requerimiento No Cerrado', - 'Portal:NoService' => '', + 'Portal:NoService' => 'Requerimiento Sin Servicio', 'Portal:ListOpenProblems' => 'Problemas Abiertos', 'Portal:ShowProblem' => 'Problemas', 'Portal:ShowFaqs' => 'Preguntas Frecuentes', @@ -280,7 +278,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( - 'Organization:Overview:UserRequests' => 'User Requests from this organization~~', - 'Organization:Overview:MyUserRequests' => 'My User Requests for this organization~~', - 'Organization:Overview:Tickets' => 'Tickets for this organization~~', + 'Organization:Overview:UserRequests' => 'Requerimientos para esta Organización', + 'Organization:Overview:MyUserRequests' => 'Mis Requerimientos para esta Organización', + 'Organization:Overview:Tickets' => 'Tickets para esta Organización', )); diff --git a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/es_cr.dict.itop-service-mgmt-provider.php b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/es_cr.dict.itop-service-mgmt-provider.php index 5ebee98ad..73445ac58 100644 --- a/datamodels/2.x/itop-service-mgmt-provider/dictionaries/es_cr.dict.itop-service-mgmt-provider.php +++ b/datamodels/2.x/itop-service-mgmt-provider/dictionaries/es_cr.dict.itop-service-mgmt-provider.php @@ -15,8 +15,8 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -/** - * Localized data + /** + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 @@ -123,7 +123,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:Contract/Attribute:cost_currency/Value:dollars' => 'Dólares', 'Class:Contract/Attribute:cost_currency/Value:dollars+' => 'Dólares de E.U.A', 'Class:Contract/Attribute:cost_currency/Value:euros' => 'Euros', - 'Class:Contract/Attribute:cost_currency/Value:euros+' => '~~', + 'Class:Contract/Attribute:cost_currency/Value:euros+' => '', 'Class:Contract/Attribute:contracttype_id' => 'Tipo de Contrato', 'Class:Contract/Attribute:contracttype_id+' => 'Tipo de Contrato', 'Class:Contract/Attribute:contracttype_name' => 'Tipo de Contrato', @@ -369,7 +369,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:SLA/Attribute:slts_list+' => 'Objetivos de Nivel de Servicio', 'Class:SLA/Attribute:customercontracts_list' => 'Acuerdos con Clientes', 'Class:SLA/Attribute:customercontracts_list+' => 'Acuerdos con Clientes', - 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~', + 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'No se puede guardar la relación entre Acuerdo con Cliente %1$s y Servicio %2$s : El SLA ya existe', )); // @@ -428,15 +428,15 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:lnkSLAToSLT/Attribute:slt_id+' => 'SLT', 'Class:lnkSLAToSLT/Attribute:slt_name' => 'SLT', 'Class:lnkSLAToSLT/Attribute:slt_name+' => 'SLT', - 'Class:lnkSLAToSLT/Attribute:slt_metric' => 'Slt metric~~', + 'Class:lnkSLAToSLT/Attribute:slt_metric' => 'Métrica de SLT', 'Class:lnkSLAToSLT/Attribute:slt_metric+' => '', - 'Class:lnkSLAToSLT/Attribute:slt_request_type' => 'Slt request type~~', + 'Class:lnkSLAToSLT/Attribute:slt_request_type' => 'Tipo de Requerimiento de SLT', 'Class:lnkSLAToSLT/Attribute:slt_request_type+' => '', - 'Class:lnkSLAToSLT/Attribute:slt_ticket_priority' => 'Slt ticket priority~~', + 'Class:lnkSLAToSLT/Attribute:slt_ticket_priority' => 'SLT prioridad de ticket', 'Class:lnkSLAToSLT/Attribute:slt_ticket_priority+' => '', - 'Class:lnkSLAToSLT/Attribute:slt_value' => 'Slt value~~', + 'Class:lnkSLAToSLT/Attribute:slt_value' => 'Valor de SLT', 'Class:lnkSLAToSLT/Attribute:slt_value+' => '', - 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Slt value unit~~', + 'Class:lnkSLAToSLT/Attribute:slt_value_unit' => 'Unidad de valor de SLT', 'Class:lnkSLAToSLT/Attribute:slt_value_unit+' => '', )); diff --git a/datamodels/2.x/itop-service-mgmt/dictionaries/es_cr.dict.itop-service-mgmt.php b/datamodels/2.x/itop-service-mgmt/dictionaries/es_cr.dict.itop-service-mgmt.php index 215e18e3f..82471e386 100644 --- a/datamodels/2.x/itop-service-mgmt/dictionaries/es_cr.dict.itop-service-mgmt.php +++ b/datamodels/2.x/itop-service-mgmt/dictionaries/es_cr.dict.itop-service-mgmt.php @@ -15,8 +15,8 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -/** - * Localized data + /** + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 @@ -341,7 +341,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:SLA/Attribute:slts_list+' => 'Objetivos de Nivel de Servicio', 'Class:SLA/Attribute:customercontracts_list' => 'Acuerdos con Clientes', 'Class:SLA/Attribute:customercontracts_list+' => 'Acuerdos con Clientes', - 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'Could not save link with Customer contract %1$s and service %2$s : SLA already exists~~', + 'Class:SLA/Error:UniqueLnkCustomerContractToService' => 'No se puede guardar relación de Acuerco con Cliente %1$s con Servicio %2$s : El SLA ya existe', )); // @@ -402,7 +402,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:lnkSLAToSLT/Attribute:slt_name+' => 'SLT', 'Class:lnkSLAToSLT/Attribute:slt_metric' => 'Métrica', 'Class:lnkSLAToSLT/Attribute:slt_metric+' => '', - 'Class:lnkSLAToSLT/Attribute:slt_request_type' => 'Tipo de reporte', + 'Class:lnkSLAToSLT/Attribute:slt_request_type' => 'Tipo de Requerimiento', 'Class:lnkSLAToSLT/Attribute:slt_request_type+' => '', 'Class:lnkSLAToSLT/Attribute:slt_ticket_priority' => 'Prioridad', 'Class:lnkSLAToSLT/Attribute:slt_ticket_priority+' => '', diff --git a/datamodels/2.x/itop-sla-computation/dictionaries/es_cr.dict.itop-sla-computation.php b/datamodels/2.x/itop-sla-computation/dictionaries/es_cr.dict.itop-sla-computation.php index acfde1b68..532030845 100644 --- a/datamodels/2.x/itop-sla-computation/dictionaries/es_cr.dict.itop-sla-computation.php +++ b/datamodels/2.x/itop-sla-computation/dictionaries/es_cr.dict.itop-sla-computation.php @@ -2,8 +2,9 @@ /** * Localized data * - * @copyright Copyright (C) 2010-2021 Combodo SARL - * @license http://opensource.org/licenses/AGPL-3.0 + * @copyright Copyright (C) 2010-2021 Combodo SARL + * @license http://opensource.org/licenses/AGPL-3.0 + * @traductor Miguel Turrubiates * * This file is part of iTop. * diff --git a/datamodels/2.x/itop-storage-mgmt/dictionaries/es_cr.dict.itop-storage-mgmt.php b/datamodels/2.x/itop-storage-mgmt/dictionaries/es_cr.dict.itop-storage-mgmt.php index acfde1b68..532030845 100644 --- a/datamodels/2.x/itop-storage-mgmt/dictionaries/es_cr.dict.itop-storage-mgmt.php +++ b/datamodels/2.x/itop-storage-mgmt/dictionaries/es_cr.dict.itop-storage-mgmt.php @@ -2,8 +2,9 @@ /** * Localized data * - * @copyright Copyright (C) 2010-2021 Combodo SARL - * @license http://opensource.org/licenses/AGPL-3.0 + * @copyright Copyright (C) 2010-2021 Combodo SARL + * @license http://opensource.org/licenses/AGPL-3.0 + * @traductor Miguel Turrubiates * * This file is part of iTop. * diff --git a/datamodels/2.x/itop-structure/dictionaries/es_cr.dict.itop-structure.php b/datamodels/2.x/itop-structure/dictionaries/es_cr.dict.itop-structure.php index cc6c212fa..ac4933158 100644 --- a/datamodels/2.x/itop-structure/dictionaries/es_cr.dict.itop-structure.php +++ b/datamodels/2.x/itop-structure/dictionaries/es_cr.dict.itop-structure.php @@ -55,16 +55,15 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:Organization/Attribute:deliverymodel_name+' => 'Nombre del Modelo de Entrega', 'Class:Organization/Attribute:parent_id_friendlyname' => 'Organización Padre', 'Class:Organization/Attribute:parent_id_friendlyname+' => 'Organización Padre', - 'Class:Organization/Attribute:overview' => 'Overview~~', - 'Organization:Overview:FunctionalCIs' => 'Configuration items of this organization~~', - 'Organization:Overview:FunctionalCIs:subtitle' => 'by type~~', - 'Organization:Overview:Users' => ITOP_APPLICATION_SHORT.' Users within this organization~~', + 'Class:Organization/Attribute:overview' => 'Resumen', + 'Organization:Overview:FunctionalCIs' => 'Elementos de configuración en esta Organización', + 'Organization:Overview:FunctionalCIs:subtitle' => 'por tipo', + 'Organization:Overview:Users' => 'Usuarios de iTop en la Organización', )); // // Class: Location // - Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:Location' => 'Localidad', 'Class:Location+' => 'Cualquier Tipo de Localidad: Región, País, Ciudad, Sitio, Edificio, Piso, Cuarto, Rack,...', @@ -97,7 +96,6 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // // Class: Contact // - Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:Contact' => 'Contacto', 'Class:Contact+' => 'Contacto', @@ -134,7 +132,6 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // // Class: Person // - Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:Person' => 'Persona', 'Class:Person+' => 'Persona', @@ -162,16 +159,15 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:Person/Attribute:manager_id_friendlyname+' => 'Nombre del Jefe', 'Class:Person/Attribute:picture' => 'Fotografía', 'Class:Person/Attribute:picture+' => 'Fotografía', - 'Class:Person/UniquenessRule:employee_number+' => 'The employee number must be unique in the organization~~', - 'Class:Person/UniquenessRule:employee_number' => 'there is already a person in \'$this->org_name$\' organization with the same employee number~~', - 'Class:Person/UniquenessRule:name+' => 'The employee name should be unique inside its organization~~', - 'Class:Person/UniquenessRule:name' => 'There is already a person in \'$this->org_name$\' organization with the same name~~', + 'Class:Person/UniquenessRule:employee_number+' => 'El número de empleado debe ser único en la Organización', + 'Class:Person/UniquenessRule:employee_number' => 'Ya existe una persona en la organiación \'$this->org_name$\', con el mismo número de empleado', + 'Class:Person/UniquenessRule:name+' => 'El nombre del empleado debe ser único dentro de su Organización', + 'Class:Person/UniquenessRule:name' => 'Ya existe una persona en la organiación \'$this->org_name$\', con el mismo nombre', )); // // Class: Team // - Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:Team' => 'Grupo de Trabajo', 'Class:Team+' => 'Grupo de Trabajo', @@ -184,7 +180,6 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // // Class: Document // - Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:Document' => 'Documento', 'Class:Document+' => 'Documento', @@ -219,10 +214,9 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // // Class: DocumentFile // - Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:DocumentFile' => 'Documento de Archivo', - 'Class:DocumentFile+' => '~~', + 'Class:DocumentFile+' => '', 'Class:DocumentFile/Attribute:file' => 'Archivo', 'Class:DocumentFile/Attribute:file+' => 'Archivo', )); @@ -230,7 +224,6 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // // Class: DocumentNote // - Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:DocumentNote' => 'Nota', 'Class:DocumentNote+' => 'Nota', @@ -241,7 +234,6 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // // Class: DocumentWeb // - Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:DocumentWeb' => 'Documento Web', 'Class:DocumentWeb+' => 'Documento disponible en otro servidor Web', diff --git a/datamodels/2.x/itop-tickets/dictionaries/es_cr.dict.itop-tickets.php b/datamodels/2.x/itop-tickets/dictionaries/es_cr.dict.itop-tickets.php index 8006a31a7..46a7f76cc 100644 --- a/datamodels/2.x/itop-tickets/dictionaries/es_cr.dict.itop-tickets.php +++ b/datamodels/2.x/itop-tickets/dictionaries/es_cr.dict.itop-tickets.php @@ -15,8 +15,8 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see -/** - * Localized data + /** + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 @@ -180,17 +180,17 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:cmdbAbstractObject/Method:SetCurrentUser' => 'Asignar Usuario actual', 'Class:cmdbAbstractObject/Method:SetCurrentUser+' => 'Asignar Usuario actual', 'Class:cmdbAbstractObject/Method:SetCurrentUser/Param:1' => 'Campo Destino', - 'Class:cmdbAbstractObject/Method:SetCurrentUser/Param:1+' => 'If the field is a string then the friendly name will be used, otherwise the identifier will be used. That friendly name is the name of the person if any is attached to the user, otherwise it is the login.', + 'Class:cmdbAbstractObject/Method:SetCurrentUser/Param:1+' => 'Si el campo es una cadena de caracteres, entonces el nombre completo será usado, de otra manera el identificador será usado. El nombre completo es el nombre de una persona que está ligado a un usurio, si no será su clave de acceso.', 'Class:cmdbAbstractObject/Method:SetCurrentPerson' => 'Asignar Persona actual', 'Class:cmdbAbstractObject/Method:SetCurrentPerson+' => 'Asignar Persona actual', 'Class:cmdbAbstractObject/Method:SetCurrentPerson/Param:1' => 'Campo Destino', - 'Class:cmdbAbstractObject/Method:SetCurrentPerson/Param:1+' => 'If the field is a string then the friendly name will be used, otherwise the identifier will be used.', + 'Class:cmdbAbstractObject/Method:SetCurrentPerson/Param:1+' => 'Si el campo es una cadena de caracteres, entonces el nombre completo será usado, de otra manera el identificador será usado.', 'Class:cmdbAbstractObject/Method:SetElapsedTime' => 'Asignar tiempo transcurrido', 'Class:cmdbAbstractObject/Method:SetElapsedTime+' => 'Asignar tiempo transcurrido (segundos)', 'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:1' => 'Campo Destino', - 'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:1+' => 'The field to set, in the current object', + 'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:1+' => 'El campo a configurar, en el objeto actual', 'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:2' => 'Campo de Referencia', - 'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:2+' => 'The field from which to get the reference date', + 'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:2+' => 'El campo desde el que se obtienen los datos referenciados', 'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:3' => 'Horas Trabajadas', 'Class:cmdbAbstractObject/Method:SetElapsedTime/Param:3+' => 'Dejar vacio para utilizar el horario de trabajo estandar, o dejar por omisión para usar esquema 7x24', 'Class:cmdbAbstractObject/Method:Reset' => 'Restablecer', @@ -204,9 +204,9 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:cmdbAbstractObject/Method:Copy/Param:2' => 'Campo Origen', 'Class:cmdbAbstractObject/Method:Copy/Param:2+' => 'Campo de donde se obtendrá valor', 'Class:cmdbAbstractObject/Method:ApplyStimulus' => 'Aplicar Stimulus', - 'Class:cmdbAbstractObject/Method:ApplyStimulus+' => 'Apply the specified stimulus to the current object', + 'Class:cmdbAbstractObject/Method:ApplyStimulus+' => 'Aplicar stimulus específico a objeto actual', 'Class:cmdbAbstractObject/Method:ApplyStimulus/Param:1' => 'Código Stimulus', - 'Class:cmdbAbstractObject/Method:ApplyStimulus/Param:1+' => 'A valid stimulus code for the current class', + 'Class:cmdbAbstractObject/Method:ApplyStimulus/Param:1+' => 'Un código de stimulus válido para la clase actual', 'Class:ResponseTicketTTO/Interface:iMetricComputer' => 'Tiempo a Pertenencia', 'Class:ResponseTicketTTO/Interface:iMetricComputer+' => 'Objetivo basado en SLT de tipo TTO', 'Class:ResponseTicketTTR/Interface:iMetricComputer' => 'Tiempo a Resolución', diff --git a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/es_cr.dict.itop-virtualization-mgmt.php b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/es_cr.dict.itop-virtualization-mgmt.php index acfde1b68..532030845 100644 --- a/datamodels/2.x/itop-virtualization-mgmt/dictionaries/es_cr.dict.itop-virtualization-mgmt.php +++ b/datamodels/2.x/itop-virtualization-mgmt/dictionaries/es_cr.dict.itop-virtualization-mgmt.php @@ -2,8 +2,9 @@ /** * Localized data * - * @copyright Copyright (C) 2010-2021 Combodo SARL - * @license http://opensource.org/licenses/AGPL-3.0 + * @copyright Copyright (C) 2010-2021 Combodo SARL + * @license http://opensource.org/licenses/AGPL-3.0 + * @traductor Miguel Turrubiates * * This file is part of iTop. * diff --git a/dictionaries/es_cr.dictionary.itop.core.php b/dictionaries/es_cr.dictionary.itop.core.php index bef05981c..3c0f82191 100644 --- a/dictionaries/es_cr.dictionary.itop.core.php +++ b/dictionaries/es_cr.dictionary.itop.core.php @@ -16,69 +16,70 @@ // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see /** - * Localized data + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 + * @traductor Miguel Turrubiates */ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Core:DeletedObjectLabel' => '%1s (eliminado)', - 'Core:DeletedObjectTip' => 'Elemento ha sido Eliminado en %1$s (%2$s)', + 'Core:DeletedObjectTip' => 'Elemento ha sido Eliminado en %1$s (%2$s)', 'Core:UnknownObjectLabel' => 'Elemento No Encontrado (Clase: %1$s, Identificador: %2$d)', 'Core:UnknownObjectTip' => 'El Elemento no pudo ser encontrado. Pudo haber sido eliminado hace tiempo y purgado de la Bitácora.', 'Core:UniquenessDefaultError' => 'Regla de unicidad \'%1$s\' en error', - 'Core:AttributeLinkedSet' => 'Arreglo de objetos', + 'Core:AttributeLinkedSet' => 'Arreglo de objetos', 'Core:AttributeLinkedSet+' => 'Cualquier tipo de objetos [subclass] de la misma clase', 'Core:AttributeLinkedSetDuplicatesFound' => 'Duplicates in the \'%1$s\' field : %2$s~~', - 'Core:AttributeDashboard' => 'Panel de Control', + 'Core:AttributeDashboard' => 'Panel de Control', 'Core:AttributeDashboard+' => 'Panel de control y supervisión', - 'Core:AttributePhoneNumber' => 'Número telefónico', - 'Core:AttributePhoneNumber+' => '~~', + 'Core:AttributePhoneNumber' => 'Número telefónico', + 'Core:AttributePhoneNumber+' => '', - 'Core:AttributeObsolescenceDate' => 'Fecha de Obsolescencia', - 'Core:AttributeObsolescenceDate+' => '~~', + 'Core:AttributeObsolescenceDate' => 'Fecha de Obsolescencia', + 'Core:AttributeObsolescenceDate+' => '', - 'Core:AttributeTagSet' => 'Lista de etiquetas', - 'Core:AttributeTagSet+' => '~~', - 'Core:AttributeSet:placeholder' => 'click to add~~', - 'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromClass' => '%1$s (%2$s)~~', - 'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromOneChildClass' => '%1$s (%2$s from %3$s)~~', - 'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromSeveralChildClasses' => '%1$s (%2$s from child classes)~~', + 'Core:AttributeTagSet' => 'Lista de etiquetas', + 'Core:AttributeTagSet+' => '', + 'Core:AttributeSet:placeholder' => 'Click to agregar', + 'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromClass' => '%1$s (%2$s)', + 'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromOneChildClass' => '%1$s (%2$s de %3$s)', + 'Core:AttributeClassAttCodeSet:ItemLabel:AttributeFromSeveralChildClasses' => '%1$s (%2$s de clases hijas)', - 'Core:AttributeCaseLog' => 'Bitácora', - 'Core:AttributeCaseLog+' => '~~', + 'Core:AttributeCaseLog' => 'Bitácora', + 'Core:AttributeCaseLog+' => '', - 'Core:AttributeMetaEnum' => 'Computed enum~~', - 'Core:AttributeMetaEnum+' => '~~', + 'Core:AttributeMetaEnum' => 'Enumeración Calculada', + 'Core:AttributeMetaEnum+' => '', - 'Core:AttributeLinkedSetIndirect' => 'Arreglo de objetos (N-N)', + 'Core:AttributeLinkedSetIndirect' => 'Arreglo de objetos (N-N)', 'Core:AttributeLinkedSetIndirect+' => 'Cualquier tipo de objetos [subclass] de la misma clase', - 'Core:AttributeInteger' => 'Entero', + 'Core:AttributeInteger' => 'Entero', 'Core:AttributeInteger+' => 'Valor numérico (puede ser negativo)', - 'Core:AttributeDecimal' => 'Decimal', + 'Core:AttributeDecimal' => 'Decimal', 'Core:AttributeDecimal+' => 'Valor decimal (puede ser negativo)', - 'Core:AttributeBoolean' => 'Booleano', - 'Core:AttributeBoolean+' => 'Booleano', - 'Core:AttributeBoolean/Value:null' => '', - 'Core:AttributeBoolean/Value:yes' => 'Si', - 'Core:AttributeBoolean/Value:no' => 'No', + 'Core:AttributeBoolean' => 'Booleano', + 'Core:AttributeBoolean+' => 'Booleano', + 'Core:AttributeBoolean/Value:null' => 'Nulo', + 'Core:AttributeBoolean/Value:yes' => 'Si', + 'Core:AttributeBoolean/Value:no' => 'No', - 'Core:AttributeArchiveFlag' => 'Bandera de Archivado', - 'Core:AttributeArchiveFlag/Value:yes' => 'Si', + 'Core:AttributeArchiveFlag' => 'Bandera de Archivado', + 'Core:AttributeArchiveFlag/Value:yes' => 'Si', 'Core:AttributeArchiveFlag/Value:yes+' => 'Este objeto es solo visible en modo Archivado', - 'Core:AttributeArchiveFlag/Value:no' => 'No', - 'Core:AttributeArchiveFlag/Label' => 'Archivado', - 'Core:AttributeArchiveFlag/Label+' => '', - 'Core:AttributeArchiveDate/Label' => 'Fecha de Archivado', + 'Core:AttributeArchiveFlag/Value:no' => 'No', + 'Core:AttributeArchiveFlag/Label' => 'Archivado', + 'Core:AttributeArchiveFlag/Label+' => '', + 'Core:AttributeArchiveDate/Label' => 'Fecha de Archivado', 'Core:AttributeArchiveDate/Label+' => '', 'Core:AttributeObsolescenceFlag' => 'Bandera de Obsolescencia', @@ -194,24 +195,24 @@ Operadores:
'Core:AttributeTable' => 'Tabla', 'Core:AttributeTable+' => 'Arreglo indexado con dos dimensiones', - 'Core:AttributePropertySet' => 'Propiedades', + 'Core:AttributePropertySet' => 'Propiedades', 'Core:AttributePropertySet+' => 'Lista de propiedades sin tipo (nombre y valor)', - 'Core:AttributeFriendlyName' => 'Nombre común', + 'Core:AttributeFriendlyName' => 'Nombre común', 'Core:AttributeFriendlyName+' => 'Atributo creado automáticamente; el nombre común es obtenido de varios atributos', - 'Core:FriendlyName-Label' => 'Nombre común', + 'Core:FriendlyName-Label' => 'Nombre común', 'Core:FriendlyName-Description' => 'Nombre común', - 'Core:AttributeTag' => 'Etiquetas', - 'Core:AttributeTag+' => 'Tags~~', - - 'Core:Context=REST/JSON' => 'REST~~', - 'Core:Context=Synchro' => 'Synchro~~', - 'Core:Context=Setup' => 'Setup~~', - 'Core:Context=GUI:Console' => 'Console~~', - 'Core:Context=CRON' => 'cron~~', - 'Core:Context=GUI:Portal' => 'Portal~~', + 'Core:AttributeTag' => 'Etiquetas', + 'Core:AttributeTag+' => '', + + 'Core:Context=REST/JSON' => 'REST', + 'Core:Context=Synchro' => 'Synchro', + 'Core:Context=Setup' => 'Configuración', + 'Core:Context=GUI:Console' => 'Consola', + 'Core:Context=CRON' => 'cron', + 'Core:Context=GUI:Portal' => 'Portal', )); @@ -556,16 +557,16 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( - 'Class:Trigger' => 'Disparador', - 'Class:Trigger+' => 'Disparador', - 'Class:Trigger/Attribute:description' => 'Descripción', + 'Class:Trigger' => 'Disparador', + 'Class:Trigger+' => 'Disparador', + 'Class:Trigger/Attribute:description' => 'Descripción', 'Class:Trigger/Attribute:description+' => 'Descripción', - 'Class:Trigger/Attribute:action_list' => 'Acciones', + 'Class:Trigger/Attribute:action_list' => 'Acciones', 'Class:Trigger/Attribute:action_list+' => 'Acciones realizadas cuando se activó el disparador', - 'Class:Trigger/Attribute:finalclass' => 'Clase', - 'Class:Trigger/Attribute:finalclass+' => 'Clase', - 'Class:Trigger/Attribute:context' => 'Context~~', - 'Class:Trigger/Attribute:context+' => 'Context to allow the trigger to start~~', + 'Class:Trigger/Attribute:finalclass' => 'Clase', + 'Class:Trigger/Attribute:finalclass+' => 'Clase', + 'Class:Trigger/Attribute:context' => 'Contexto', + 'Class:Trigger/Attribute:context+' => 'Contexto para permitir el inicio del disparador', )); // @@ -944,74 +945,74 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Core:BulkExport:PDFPageOrientation' => 'Orientación de la Página:', 'Core:BulkExport:PageOrientation-L' => 'Horizontal', 'Core:BulkExport:PageOrientation-P' => 'Vertical', - 'Core:BulkExport:XMLFormat' => 'Archivo XML (*.xml)', - 'Core:BulkExport:XMLOptions' => 'Opciones XML', - 'Core:BulkExport:SpreadsheetFormat' => 'Formato Tabla HTML (*.html)', - 'Core:BulkExport:SpreadsheetOptions' => 'Opciones de Tabla', - 'Core:BulkExport:OptionNoLocalize' => 'Código de exportación en lugar de etiqueta', - 'Core:BulkExport:OptionLinkSets' => 'Incluir objetos ligados', - 'Core:BulkExport:OptionFormattedText' => 'Conservar formato de texto', - 'Core:BulkExport:ScopeDefinition' => 'Definición de los objetos a exportar', - 'Core:BulkExportLabelOQLExpression' => 'Consulta OQL:', - 'Core:BulkExportLabelPhrasebookEntry' => 'Entrada Consulta de Libreta de Consultas:', - 'Core:BulkExportMessageEmptyOQL' => 'Por favor ingrese una consulta OQL válida.', - 'Core:BulkExportMessageEmptyPhrasebookEntry' => 'Por favor seleccione un entrada válida de la libreta de consultas.', - 'Core:BulkExportQueryPlaceholder' => 'Escriba una consulta OQL aquí...', - 'Core:BulkExportCanRunNonInteractive' => 'Click aquí para ejecutar la exportación en modo no interactivo.', - 'Core:BulkExportLegacyExport' => 'Click aquí para acceder a la exportación tradicional.', - 'Core:BulkExport:XLSXOptions' => 'Opciones Excel', - 'Core:BulkExport:TextFormat' => 'Compos texto conteniendo algunas marcas HTML', - 'Core:BulkExport:DateTimeFormat' => 'Formato de fecha y hora', + 'Core:BulkExport:XMLFormat' => 'Archivo XML (*.xml)', + 'Core:BulkExport:XMLOptions' => 'Opciones XML', + 'Core:BulkExport:SpreadsheetFormat' => 'Formato Tabla HTML (*.html)', + 'Core:BulkExport:SpreadsheetOptions' => 'Opciones de Tabla', + 'Core:BulkExport:OptionNoLocalize' => 'Código de exportación en lugar de etiqueta', + 'Core:BulkExport:OptionLinkSets' => 'Incluir objetos ligados', + 'Core:BulkExport:OptionFormattedText' => 'Conservar formato de texto', + 'Core:BulkExport:ScopeDefinition' => 'Definición de los objetos a exportar', + 'Core:BulkExportLabelOQLExpression' => 'Consulta OQL:', + 'Core:BulkExportLabelPhrasebookEntry' => 'Entrada Consulta de Libreta de Consultas:', + 'Core:BulkExportMessageEmptyOQL' => 'Por favor ingrese una consulta OQL válida.', + 'Core:BulkExportMessageEmptyPhrasebookEntry' => 'Por favor seleccione un entrada válida de la libreta de consultas.', + 'Core:BulkExportQueryPlaceholder' => 'Escriba una consulta OQL aquí...', + 'Core:BulkExportCanRunNonInteractive' => 'Click aquí para ejecutar la exportación en modo no interactivo.', + 'Core:BulkExportLegacyExport' => 'Click aquí para acceder a la exportación tradicional.', + 'Core:BulkExport:XLSXOptions' => 'Opciones Excel', + 'Core:BulkExport:TextFormat' => 'Compos texto conteniendo algunas marcas HTML', + 'Core:BulkExport:DateTimeFormat' => 'Formato de fecha y hora', 'Core:BulkExport:DateTimeFormatDefault_Example' => 'Formato por omisión (%1$s), ej. %2$s', - 'Core:BulkExport:DateTimeFormatCustom_Format' => 'Formato personalizado: %1$s', - 'Core:BulkExport:PDF:PageNumber' => 'Page %1$s~~', - 'Core:DateTime:Placeholder_d' => 'DD', // Day of the month: 2 digits (with leading zero) - 'Core:DateTime:Placeholder_j' => 'D', // Day of the month: 1 or 2 digits (without leading zero) - 'Core:DateTime:Placeholder_m' => 'MM', // Month on 2 digits i.e. 01-12 - 'Core:DateTime:Placeholder_n' => 'M', // Month on 1 or 2 digits 1-12 - 'Core:DateTime:Placeholder_Y' => 'AAAA', // Year on 4 digits - 'Core:DateTime:Placeholder_y' => 'AA', // Year on 2 digits - 'Core:DateTime:Placeholder_H' => 'hh', // Hour 00..23 - 'Core:DateTime:Placeholder_h' => 'h', // Hour 01..12 - 'Core:DateTime:Placeholder_G' => 'hh', // Hour 0..23 - 'Core:DateTime:Placeholder_g' => 'h', // Hour 1..12 - 'Core:DateTime:Placeholder_a' => 'am/pm', // am/pm (lowercase) - 'Core:DateTime:Placeholder_A' => 'AM/PM', // AM/PM (uppercase) - 'Core:DateTime:Placeholder_i' => 'mm', // minutes, 2 digits: 00..59 - 'Core:DateTime:Placeholder_s' => 'ss', // seconds, 2 digits 00..59 - 'Core:Validator:Default' => 'Formato incorrecto', - 'Core:Validator:Mandatory' => 'Por favor, ingrese este campo', - 'Core:Validator:MustBeInteger' => 'Debe ser un entero', - 'Core:Validator:MustSelectOne' => 'Por favor, seleccione uno', + 'Core:BulkExport:DateTimeFormatCustom_Format' => 'Formato personalizado: %1$s', + 'Core:BulkExport:PDF:PageNumber' => 'Página %1$s', + 'Core:DateTime:Placeholder_d' => 'DD', // Day of the month: 2 digits (with leading zero) + 'Core:DateTime:Placeholder_j' => 'D', // Day of the month: 1 or 2 digits (without leading zero) + 'Core:DateTime:Placeholder_m' => 'MM', // Month on 2 digits i.e. 01-12 + 'Core:DateTime:Placeholder_n' => 'M', // Month on 1 or 2 digits 1-12 + 'Core:DateTime:Placeholder_Y' => 'AAAA', // Year on 4 digits + 'Core:DateTime:Placeholder_y' => 'AA', // Year on 2 digits + 'Core:DateTime:Placeholder_H' => 'hh', // Hour 00..23 + 'Core:DateTime:Placeholder_h' => 'h', // Hour 01..12 + 'Core:DateTime:Placeholder_G' => 'hh', // Hour 0..23 + 'Core:DateTime:Placeholder_g' => 'h', // Hour 1..12 + 'Core:DateTime:Placeholder_a' => 'am/pm', // am/pm (lowercase) + 'Core:DateTime:Placeholder_A' => 'AM/PM', // AM/PM (uppercase) + 'Core:DateTime:Placeholder_i' => 'mm', // minutes, 2 digits: 00..59 + 'Core:DateTime:Placeholder_s' => 'ss', // seconds, 2 digits 00..59 + 'Core:Validator:Default' => 'Formato incorrecto', + 'Core:Validator:Mandatory' => 'Por favor, ingrese este campo', + 'Core:Validator:MustBeInteger' => 'Debe ser un entero', + 'Core:Validator:MustSelectOne' => 'Por favor, seleccione uno', )); // // Class: TagSetFieldData // Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( - 'Class:TagSetFieldData' => '%2$s para la clase %1$s', - 'Class:TagSetFieldData+' => '~~', + 'Class:TagSetFieldData' => '%2$s para la clase %1$s', + 'Class:TagSetFieldData+' => 'Datos de campo', - 'Class:TagSetFieldData/Attribute:code' => 'Código', - 'Class:TagSetFieldData/Attribute:code+' => 'Código interno. Debe contener al menos tres caracteres alfanuméricos', - 'Class:TagSetFieldData/Attribute:label' => 'Etiqueta', - 'Class:TagSetFieldData/Attribute:label+' => 'Etiqueta mostrada', - 'Class:TagSetFieldData/Attribute:description' => 'Descripción', + 'Class:TagSetFieldData/Attribute:code' => 'Código', + 'Class:TagSetFieldData/Attribute:code+' => 'Código interno. Debe contener al menos tres caracteres alfanuméricos', + 'Class:TagSetFieldData/Attribute:label' => 'Etiqueta', + 'Class:TagSetFieldData/Attribute:label+' => 'Etiqueta mostrada', + 'Class:TagSetFieldData/Attribute:description' => 'Descripción', 'Class:TagSetFieldData/Attribute:description+' => 'Descripción de la etiqueta', - 'Class:TagSetFieldData/Attribute:finalclass' => 'Clase', - 'Class:TagSetFieldData/Attribute:obj_class' => 'Clase de objeto', - 'Class:TagSetFieldData/Attribute:obj_attcode' => 'Código de campo', + 'Class:TagSetFieldData/Attribute:finalclass' => 'Clase', + 'Class:TagSetFieldData/Attribute:obj_class' => 'Clase de objeto', + 'Class:TagSetFieldData/Attribute:obj_attcode' => 'Código de campo', - 'Core:TagSetFieldData:ErrorDeleteUsedTag' => 'Etiquetas es uso no pueden ser borradas', + 'Core:TagSetFieldData:ErrorDeleteUsedTag' => 'Etiquetas es uso no pueden ser borradas', 'Core:TagSetFieldData:ErrorDuplicateTagCodeOrLabel' => 'Los códigos o las etiquetas deben ser únicos', - 'Core:TagSetFieldData:ErrorTagCodeSyntax' => 'El código de la etiqueta debe contener entre 3 y %1$d caracteres alfanuméricos', - 'Core:TagSetFieldData:ErrorTagCodeReservedWord' => 'El código elegido es una palabra reservada', - 'Core:TagSetFieldData:ErrorTagLabelSyntax' => 'La etiqueta no odebe contener \'%1$s\' y no puede estar vacía', - 'Core:TagSetFieldData:ErrorCodeUpdateNotAllowed' => 'Códigos de etiqueta en uso no pueden ser borrados', - 'Core:TagSetFieldData:ErrorClassUpdateNotAllowed' => 'Tags "Object Class" cannot be changed~~', - 'Core:TagSetFieldData:ErrorAttCodeUpdateNotAllowed' => 'Tags "Attribute Code" cannot be changed~~', - 'Core:TagSetFieldData:WhereIsThisTagTab' => 'Uso de la etiqueta (%1$d)~~', - 'Core:TagSetFieldData:NoEntryFound' => 'No hay entradas para esta etiqueta', + 'Core:TagSetFieldData:ErrorTagCodeSyntax' => 'El código de la etiqueta debe contener entre 3 y %1$d caracteres alfanuméricos', + 'Core:TagSetFieldData:ErrorTagCodeReservedWord' => 'El código elegido es una palabra reservada', + 'Core:TagSetFieldData:ErrorTagLabelSyntax' => 'La etiqueta no odebe contener \'%1$s\' y no puede estar vacía', + 'Core:TagSetFieldData:ErrorCodeUpdateNotAllowed' => 'Códigos de etiqueta en uso no pueden ser borrados', + 'Core:TagSetFieldData:ErrorClassUpdateNotAllowed' => 'Etiquetas "Object Class" no pueden ser cambiadas', + 'Core:TagSetFieldData:ErrorAttCodeUpdateNotAllowed' => 'Etiquetas "Attribute Code" no pueden ser cambiadas', + 'Core:TagSetFieldData:WhereIsThisTagTab' => 'Uso de la etiqueta (%1$d)', + 'Core:TagSetFieldData:NoEntryFound' => 'No hay entradas para esta etiqueta', )); // @@ -1093,38 +1094,31 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // // Class: AbstractResource // - Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:AbstractResource' => 'Recurso abstracto', - 'Class:AbstractResource+' => '~~', + 'Class:AbstractResource+' => '', )); // // Class: ResourceAdminMenu // - Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:ResourceAdminMenu' => 'Recursos de Menú de Administración', - 'Class:ResourceAdminMenu+' => '~~', + 'Class:ResourceAdminMenu+' => '', )); // // Class: ResourceRunQueriesMenu // - Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:ResourceRunQueriesMenu' => 'Recurso Libreta de Consultas', - 'Class:ResourceRunQueriesMenu+' => '~~', + 'Class:ResourceRunQueriesMenu+' => '', )); // // Class: Action // - Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:ResourceSystemMenu' => 'Recurso Menú de Sistema', - 'Class:ResourceSystemMenu+' => '~~', + 'Class:ResourceSystemMenu+' => '', )); - - - diff --git a/dictionaries/es_cr.dictionary.itop.model.php b/dictionaries/es_cr.dictionary.itop.model.php index d97df3824..dead870da 100644 --- a/dictionaries/es_cr.dictionary.itop.model.php +++ b/dictionaries/es_cr.dictionary.itop.model.php @@ -15,13 +15,10 @@ // // You should have received a copy of the GNU Affero General Public License // along with iTop. If not, see - - /** - * Localized data + * Spanish Localized data * * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 + * @traductor Miguel Turrubiates */ - -?> diff --git a/dictionaries/es_cr.dictionary.itop.ui.php b/dictionaries/es_cr.dictionary.itop.ui.php index b53763fcb..7da84e932 100644 --- a/dictionaries/es_cr.dictionary.itop.ui.php +++ b/dictionaries/es_cr.dictionary.itop.ui.php @@ -2,6 +2,7 @@ /* * @copyright Copyright (C) 2010-2021 Combodo SARL * @license http://opensource.org/licenses/AGPL-3.0 + * @traductor Miguel Turrubiates */ ////////////////////////////////////////////////////////////////////// // Classes in 'gui' @@ -32,27 +33,27 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( - 'Class:AuditRule' => 'Regla de Auditoría', - 'Class:AuditRule+' => 'Regla a revisar para una categoría de auditoría específica', - 'Class:AuditRule/Attribute:name' => 'Nombre de la Regla', - 'Class:AuditRule/Attribute:name+' => 'Nombre corto para esta regla', - 'Class:AuditRule/Attribute:description' => 'Descripción de regla de auditoría', - 'Class:AuditRule/Attribute:description+' => 'Descripción larga para esta regla de auditoría', - 'Class:TagSetFieldData/Attribute:finalclass' => 'Tag class~~', - 'Class:TagSetFieldData/Attribute:obj_class' => 'Object class~~', - 'Class:TagSetFieldData/Attribute:obj_attcode' => 'Field code~~', - 'Class:AuditRule/Attribute:query' => 'Consulta a Ejecutar', - 'Class:AuditRule/Attribute:query+' => 'Expresión OQL a ejecutar', - 'Class:AuditRule/Attribute:valid_flag' => '¿Objetos Válidos?', - 'Class:AuditRule/Attribute:valid_flag+' => 'Verdadero si la regla retorna los objetos válidos, falso cualquier otra cosa', - 'Class:AuditRule/Attribute:valid_flag/Value:true' => 'verdadero', - 'Class:AuditRule/Attribute:valid_flag/Value:true+' => 'verdadero', - 'Class:AuditRule/Attribute:valid_flag/Value:false' => 'falso', - 'Class:AuditRule/Attribute:valid_flag/Value:false+' => 'falso', - 'Class:AuditRule/Attribute:category_id' => 'Categoría', - 'Class:AuditRule/Attribute:category_id+' => 'La categoría para esta regla', - 'Class:AuditRule/Attribute:category_name' => 'Categoría', - 'Class:AuditRule/Attribute:category_name+' => 'Nombre de la categoría para esta regla', + 'Class:AuditRule' => 'Regla de Auditoría', + 'Class:AuditRule+' => 'Regla a revisar para una categoría de auditoría específica', + 'Class:AuditRule/Attribute:name' => 'Nombre de la Regla', + 'Class:AuditRule/Attribute:name+' => 'Nombre corto para esta regla', + 'Class:AuditRule/Attribute:description' => 'Descripción de regla de auditoría', + 'Class:AuditRule/Attribute:description+' => 'Descripción larga para esta regla de auditoría', + 'Class:TagSetFieldData/Attribute:finalclass' => 'Clase Etiqueta', + 'Class:TagSetFieldData/Attribute:obj_class' => 'Clase Objeto', + 'Class:TagSetFieldData/Attribute:obj_attcode' => 'Código de Campo', + 'Class:AuditRule/Attribute:query' => 'Consulta a Ejecutar', + 'Class:AuditRule/Attribute:query+' => 'Expresión OQL a ejecutar', + 'Class:AuditRule/Attribute:valid_flag' => '¿Objetos Válidos?', + 'Class:AuditRule/Attribute:valid_flag+' => 'Verdadero si la regla retorna los objetos válidos, falso cualquier otra cosa', + 'Class:AuditRule/Attribute:valid_flag/Value:true' => 'Verdadero', + 'Class:AuditRule/Attribute:valid_flag/Value:true+' => '', + 'Class:AuditRule/Attribute:valid_flag/Value:false' => 'Falso', + 'Class:AuditRule/Attribute:valid_flag/Value:false+' => '', + 'Class:AuditRule/Attribute:category_id' => 'Categoría', + 'Class:AuditRule/Attribute:category_id+' => 'La categoría para esta regla', + 'Class:AuditRule/Attribute:category_name' => 'Categoría', + 'Class:AuditRule/Attribute:category_name+' => 'Nombre de la categoría para esta regla', )); // @@ -88,43 +89,43 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( - 'Class:User' => 'Usuario', - 'Class:User+' => 'Credencial de usuario', - 'Class:User/Attribute:finalclass' => 'Tipo de Cuenta', - 'Class:User/Attribute:finalclass+' => 'Tipo de Cuenta', - 'Class:User/Attribute:contactid' => 'Contacto (persona)', - 'Class:User/Attribute:contactid+' => 'Detalles personales de la información de negocio', - 'Class:User/Attribute:org_id' => 'Organización', - 'Class:User/Attribute:org_id+' => 'Organization of the associated person~~', - 'Class:User/Attribute:last_name' => 'Apellidos', - 'Class:User/Attribute:last_name+' => 'Apellidos', - 'Class:User/Attribute:first_name' => 'Nombre', - 'Class:User/Attribute:first_name+' => 'Nombre', - 'Class:User/Attribute:email' => 'Correo Electrónico', - 'Class:User/Attribute:email+' => 'Correo Electrónico del contacto correspondiente', - 'Class:User/Attribute:login' => 'Usuario', - 'Class:User/Attribute:login+' => 'cadena de identificacion de usuario', - 'Class:User/Attribute:language' => 'Idioma', - 'Class:User/Attribute:language+' => 'idioma del usuario', - 'Class:User/Attribute:language/Value:EN US' => 'English', + 'Class:User' => 'Usuario', + 'Class:User+' => 'Credencial de usuario', + 'Class:User/Attribute:finalclass' => 'Tipo de Cuenta', + 'Class:User/Attribute:finalclass+' => 'Tipo de Cuenta', + 'Class:User/Attribute:contactid' => 'Contacto (persona)', + 'Class:User/Attribute:contactid+' => 'Detalles personales de la información de negocio', + 'Class:User/Attribute:org_id' => 'Organización', + 'Class:User/Attribute:org_id+' => 'Organización de la persona asociada', + 'Class:User/Attribute:last_name' => 'Apellidos', + 'Class:User/Attribute:last_name+' => 'Apellidos', + 'Class:User/Attribute:first_name' => 'Nombre', + 'Class:User/Attribute:first_name+' => 'Nombre', + 'Class:User/Attribute:email' => 'Correo Electrónico', + 'Class:User/Attribute:email+' => 'Correo Electrónico del contacto correspondiente', + 'Class:User/Attribute:login' => 'Usuario', + 'Class:User/Attribute:login+' => 'cadena de identificacion de usuario', + 'Class:User/Attribute:language' => 'Idioma', + 'Class:User/Attribute:language+' => 'idioma del usuario', + 'Class:User/Attribute:language/Value:EN US' => 'English', 'Class:User/Attribute:language/Value:EN US+' => 'English (U.S.)', - 'Class:User/Attribute:language/Value:FR FR' => 'Frances', + 'Class:User/Attribute:language/Value:FR FR' => 'Frances', 'Class:User/Attribute:language/Value:FR FR+' => 'Frances (Francia)', - 'Class:User/Attribute:profile_list' => 'Perfiles', - 'Class:User/Attribute:profile_list+' => 'Roles, y permisos otorgados a esa persona', - 'Class:User/Attribute:allowed_org_list' => 'Organizaciones Permitidas', - 'Class:User/Attribute:allowed_org_list+' => 'El usuario tiene permitido ver la información perteneciente a las siguientes Organizaciones. Sino se especificó una Organización, esto no es una restricción.', - 'Class:User/Attribute:status' => 'Estatus', - 'Class:User/Attribute:status+' => 'Cuando el usuario se encuentra habilitado o deshabilitado.', - 'Class:User/Attribute:status/Value:enabled' => 'Habilitado', + 'Class:User/Attribute:profile_list' => 'Perfiles', + 'Class:User/Attribute:profile_list+' => 'Roles, y permisos otorgados a esa persona', + 'Class:User/Attribute:allowed_org_list' => 'Organizaciones Permitidas', + 'Class:User/Attribute:allowed_org_list+' => 'El usuario tiene permitido ver la información perteneciente a las siguientes Organizaciones. Sino se especificó una Organización, esto no es una restricción.', + 'Class:User/Attribute:status' => 'Estatus', + 'Class:User/Attribute:status+' => 'Cuando el usuario se encuentra habilitado o deshabilitado.', + 'Class:User/Attribute:status/Value:enabled' => 'Habilitado', 'Class:User/Attribute:status/Value:disabled' => 'Deshabilitado', - 'Class:User/Error:LoginMustBeUnique' => 'Usuario debe ser único - "%1s" ya se encuentra en uso.', - 'Class:User/Error:AtLeastOneProfileIsNeeded' => 'Al menos un Perfil debe ser asignado a este usuario.', + 'Class:User/Error:LoginMustBeUnique' => 'Usuario debe ser único - "%1s" ya se encuentra en uso.', + 'Class:User/Error:AtLeastOneProfileIsNeeded' => 'Al menos un Perfil debe ser asignado a este usuario.', 'Class:User/Error:AtLeastOneOrganizationIsNeeded' => 'Al menos una organización debe ser asignada a este usuario.', 'Class:User/Error:OrganizationNotAllowed' => 'Organización no permitida.', 'Class:User/Error:UserOrganizationNotAllowed' => 'El usuario no pertenece a las oganizaciones permitidas.', - 'Class:User/Error:PersonIsMandatory' => 'The Contact is mandatory.~~', + 'Class:User/Error:PersonIsMandatory' => 'El Contacto es obligatorio.', 'Class:UserInternal' => 'Usuario Interno', 'Class:UserInternal+' => 'Usuario definido en '.ITOP_APPLICATION_SHORT, )); @@ -196,8 +197,8 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Class:URP_UserOrg/Attribute:allowed_org_id+' => 'Organización Permitida', 'Class:URP_UserOrg/Attribute:allowed_org_name' => 'Organización', 'Class:URP_UserOrg/Attribute:allowed_org_name+' => 'Organización Permitida', - 'Class:URP_UserOrg/Attribute:reason' => 'Motivo', - 'Class:URP_UserOrg/Attribute:reason+' => 'Explicar porqué esta personal tiene permitido ver la información de esta Organización', + 'Class:URP_UserOrg/Attribute:reason' => 'Motivo', + 'Class:URP_UserOrg/Attribute:reason+' => 'Explicar porqué esta persona tiene permitido ver la información de esta Organización', )); // @@ -268,22 +269,22 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( // Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( - 'Class:URP_StimulusGrant' => 'Permisos de Cambio de Estado', - 'Class:URP_StimulusGrant+' => 'Permisos de Cambio de Estado en el Ciclo de Vida del Objeto', - 'Class:URP_StimulusGrant/Attribute:profileid' => 'Perfil', - 'Class:URP_StimulusGrant/Attribute:profileid+' => 'Uso del perfil', - 'Class:URP_StimulusGrant/Attribute:profile' => 'Perfil', - 'Class:URP_StimulusGrant/Attribute:profile+' => 'Uso del perfil', - 'Class:URP_StimulusGrant/Attribute:class' => 'Clase', - 'Class:URP_StimulusGrant/Attribute:class+' => 'Clase destino', - 'Class:URP_StimulusGrant/Attribute:permission' => 'Permiso', - 'Class:URP_StimulusGrant/Attribute:permission+' => '¿Permitido o No Permitido?', - 'Class:URP_StimulusGrant/Attribute:permission/Value:yes' => 'si', - 'Class:URP_StimulusGrant/Attribute:permission/Value:yes+' => 'si', - 'Class:URP_StimulusGrant/Attribute:permission/Value:no' => 'no', - 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => 'no', - 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Cambio de Estado', - 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'Código de Cambio de Estado', + 'Class:URP_StimulusGrant' => 'Permisos de Cambio de Estado', + 'Class:URP_StimulusGrant+' => 'Permisos de Cambio de Estado en el Ciclo de Vida del Objeto', + 'Class:URP_StimulusGrant/Attribute:profileid' => 'Perfil', + 'Class:URP_StimulusGrant/Attribute:profileid+' => 'Uso del perfil', + 'Class:URP_StimulusGrant/Attribute:profile' => 'Perfil', + 'Class:URP_StimulusGrant/Attribute:profile+' => 'Uso del perfil', + 'Class:URP_StimulusGrant/Attribute:class' => 'Clase', + 'Class:URP_StimulusGrant/Attribute:class+' => 'Clase destino', + 'Class:URP_StimulusGrant/Attribute:permission' => 'Permiso', + 'Class:URP_StimulusGrant/Attribute:permission+' => '¿Permitido o No Permitido?', + 'Class:URP_StimulusGrant/Attribute:permission/Value:yes' => 'Si', + 'Class:URP_StimulusGrant/Attribute:permission/Value:yes+' => '', + 'Class:URP_StimulusGrant/Attribute:permission/Value:no' => 'No', + 'Class:URP_StimulusGrant/Attribute:permission/Value:no+' => '', + 'Class:URP_StimulusGrant/Attribute:stimulus' => 'Cambio de Estado', + 'Class:URP_StimulusGrant/Attribute:stimulus+' => 'Código de Cambio de Estado', )); // @@ -372,15 +373,15 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'UI:WelcomeMenu:MyIncidents' => 'Incidentes Asignados a Mí', 'UI:AllOrganizations' => ' Todas las Organizaciones', 'UI:YourSearch' => 'Su búsqueda', - 'UI:LoggedAsMessage' => 'Conectado como %1$s (%2$s)~~', - 'UI:LoggedAsMessage+Admin' => 'Conectado como %1$s (%2$s, Administrator)~~', + 'UI:LoggedAsMessage' => 'Conectado como %1$s', + 'UI:LoggedAsMessage+Admin' => 'Conectado como %1$s (Administrator)', 'UI:Button:Logoff' => 'Cerrar Sesión', 'UI:Button:GlobalSearch' => 'Buscar', 'UI:Button:Search' => 'Buscar', 'UI:Button:Clear' => ' Clear ~~', 'UI:Button:SearchInHierarchy' => 'Search in hierarchy~~', 'UI:Button:Query' => 'Consultar', - 'UI:Button:Ok' => 'Ok', + 'UI:Button:Ok' => 'Aceptar', 'UI:Button:Save' => 'Guardar', 'UI:Button:SaveAnd' => 'Save and %1$s~~', 'UI:Button:Cancel' => 'Cancelar', @@ -412,22 +413,22 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'UI:Button:Insert' => 'Insertar', 'UI:Button:More' => 'Más', 'UI:Button:Less' => 'Menos', - 'UI:Button:Wait' => 'Please wait while updating fields~~', - 'UI:Treeview:CollapseAll' => 'Collapse All~~', - 'UI:Treeview:ExpandAll' => 'Expand All~~', + 'UI:Button:Wait' => 'Por favor espere mientras se actualizan los campos', + 'UI:Treeview:CollapseAll' => 'Contraer Todo', + 'UI:Treeview:ExpandAll' => 'Expandir Todo', 'UI:UserPref:DoNotShowAgain' => 'Do not show again~~', 'UI:InputFile:NoFileSelected' => 'No File Selected~~', 'UI:InputFile:SelectFile' => 'Select a file~~', - 'UI:SearchToggle' => 'Buscar', - 'UI:ClickToCreateNew' => 'Crear %1$s', - 'UI:SearchFor_Class' => 'Buscar %1$s', - 'UI:NoObjectToDisplay' => 'Ninguna Información por Visualizar.', - 'UI:Error:SaveFailed' => 'El objeto no puede ser guardado :', - 'UI:Error:MandatoryTemplateParameter_object_id' => 'El parámetro object_id es obligatorio cuando link_attr es especificado. Verifique la definición de la plantilla de visualización.', - 'UI:Error:MandatoryTemplateParameter_target_attr' => 'El parámetro target_attr es obligatorio cuando link_attr es especificado. Verifique la definición de la plantilla de visualización.', - 'UI:Error:MandatoryTemplateParameter_group_by' => 'El parámetro group_by es obligatorio. Verifique la definición de la plantilla de visualización.', - 'UI:Error:InvalidGroupByFields' => 'La lista de campos para agrupar por: "%1$s" es invalida.', + 'UI:SearchToggle' => 'Buscar', + 'UI:ClickToCreateNew' => 'Crear %1$s', + 'UI:SearchFor_Class' => 'Buscar %1$s', + 'UI:NoObjectToDisplay' => 'Ninguna Información por Visualizar.', + 'UI:Error:SaveFailed' => 'El objeto no puede ser guardado :', + 'UI:Error:MandatoryTemplateParameter_object_id' => 'El parámetro object_id es obligatorio cuando link_attr es especificado. Verifique la definición de la plantilla de visualización.', + 'UI:Error:MandatoryTemplateParameter_target_attr' => 'El parámetro target_attr es obligatorio cuando link_attr es especificado. Verifique la definición de la plantilla de visualización.', + 'UI:Error:MandatoryTemplateParameter_group_by' => 'El parámetro group_by es obligatorio. Verifique la definición de la plantilla de visualización.', + 'UI:Error:InvalidGroupByFields' => 'La lista de campos para agrupar por: "%1$s" es invalida.', 'UI:Error:UnsupportedStyleOfBlock' => 'Error: Estilo de bloque no soportado: "%1$s".', 'UI:Error:IncorrectLinkDefinition_LinkedClass_Class' => 'Definición de vínculo incorrecto: la clase de objeto a administrar : %1$s no fue encontrada como clave externa en la clase %2$s', 'UI:Error:Object_Class_Id_NotFound' => 'No se encontro el objeto: %1$s:%2$d.', @@ -439,11 +440,11 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'UI:Error:UploadStoppedByExtension_FileName' => 'Carga de archivo interrumpida por la extension. (Nombre de archivo original = "%1$s").', 'UI:Error:UploadFailedUnknownCause_Code' => 'Carga de archivo fallida, causa desconocida. (Codigo de error = "%1$s").', - 'UI:Error:1ParametersMissing' => 'Error: El siguiente parámetro debe ser especificado para esta operacion: %1$s.', - 'UI:Error:2ParametersMissing' => 'Error: Los siguientes parámetros deben ser especificados para esta operacion: %1$s y %2$s.', - 'UI:Error:3ParametersMissing' => 'Error: Los siguientes parámetros deben ser especificados para esta operacion: %1$s, %2$s y %3$s.', - 'UI:Error:4ParametersMissing' => 'Error: Los siguientes parámetros deben ser especificados para esta operacion: %1$s, %2$s, %3$s y %4$s.', - 'UI:Error:IncorrectOQLQuery_Message' => 'Error: Consulta OQL incorrecta: %1$s', + 'UI:Error:1ParametersMissing' => 'Error: El siguiente parámetro debe ser especificado para esta operacion: %1$s.', + 'UI:Error:2ParametersMissing' => 'Error: Los siguientes parámetros deben ser especificados para esta operacion: %1$s y %2$s.', + 'UI:Error:3ParametersMissing' => 'Error: Los siguientes parámetros deben ser especificados para esta operacion: %1$s, %2$s y %3$s.', + 'UI:Error:4ParametersMissing' => 'Error: Los siguientes parámetros deben ser especificados para esta operacion: %1$s, %2$s, %3$s y %4$s.', + 'UI:Error:IncorrectOQLQuery_Message' => 'Error: Consulta OQL incorrecta: %1$s', 'UI:Error:AnErrorOccuredWhileRunningTheQuery_Message' => 'Se ha producido un error al ejecutar la consulta: %1$s', 'UI:Error:ObjectAlreadyUpdated' => 'Error: el objeta ha sido previamente actualizado.', 'UI:Error:ObjectCannotBeUpdated' => 'Error: el objeto no puede ser actualizado.', @@ -455,31 +456,31 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'UI:Error:ObjectAlreadyCloned' => 'Error: el objeto ha sido previamente duplicado!', 'UI:Error:ObjectAlreadyCreated' => 'Error: el objeto ha sido previamente creado!', 'UI:Error:Invalid_Stimulus_On_Object_In_State' => 'Error: estimulo invalido "%1$s" en objeto %2$s en estado "%3$s".', - 'UI:Error:InvalidDashboardFile' => 'Error: invalid dashboard file~~', - 'UI:Error:InvalidDashboard' => 'Error: invalid dashboard~~', + 'UI:Error:InvalidDashboardFile' => 'Error: archivo de dashboard inválido', + 'UI:Error:InvalidDashboard' => 'Error: Dashboard inválido', 'UI:Error:MaintenanceMode' => 'La aplicación se encuentra actualmente en mantenimiento', - 'UI:Error:MaintenanceTitle' => 'Maintenance~~', + 'UI:Error:MaintenanceTitle' => 'Mantenimiento', 'UI:Error:InvalidToken' => 'Error: the requested operation has already been performed (CSRF token not found)~~', - 'UI:GroupBy:Count' => 'Cuenta', - 'UI:GroupBy:Count+' => 'Número de Elementos', - 'UI:CountOfObjects' => '%1$d Elementos cumplen Criterio.', - 'UI_CountOfObjectsShort' => '%1$d Elemento(s)', - 'UI:NoObject_Class_ToDisplay' => 'No hay %1$s para Mostrar', - 'UI:History:LastModified_On_By' => 'Última Modificación el %1$s por %2$s.', - 'UI:HistoryTab' => 'Historia', - 'UI:NotificationsTab' => 'Notificaciones', - 'UI:History:BulkImports' => 'Historia', - 'UI:History:BulkImports+' => 'Lista de importaciones CSV (últimas importaciones primero)', - 'UI:History:BulkImportDetails' => 'Cambios resultantes de la importación CVS realizada en %1$s (por %2$s)', - 'UI:History:Date' => 'Fecha', - 'UI:History:Date+' => 'Fecha del Cambio', - 'UI:History:User' => 'Usuario', - 'UI:History:User+' => 'Usuario que hizo el Cambio', - 'UI:History:Changes' => 'Cambios', - 'UI:History:Changes+' => 'Cambios hechos al objeto', - 'UI:History:StatsCreations' => 'Creado', - 'UI:History:StatsCreations+' => 'Cuenta de objetos creados', + 'UI:GroupBy:Count' => 'Cuenta', + 'UI:GroupBy:Count+' => 'Número de Elementos', + 'UI:CountOfObjects' => '%1$d Elementos cumplen Criterio.', + 'UI_CountOfObjectsShort' => '%1$d Elemento(s)', + 'UI:NoObject_Class_ToDisplay' => 'No hay %1$s para Mostrar', + 'UI:History:LastModified_On_By' => 'Última Modificación el %1$s por %2$s.', + 'UI:HistoryTab' => 'Historia', + 'UI:NotificationsTab' => 'Notificaciones', + 'UI:History:BulkImports' => 'Historia', + 'UI:History:BulkImports+' => 'Lista de importaciones CSV (últimas importaciones primero)', + 'UI:History:BulkImportDetails' => 'Cambios resultantes de la importación CVS realizada en %1$s (por %2$s)', + 'UI:History:Date' => 'Fecha', + 'UI:History:Date+' => 'Fecha del Cambio', + 'UI:History:User' => 'Usuario', + 'UI:History:User+' => 'Usuario que hizo el Cambio', + 'UI:History:Changes' => 'Cambios', + 'UI:History:Changes+' => 'Cambios hechos al objeto', + 'UI:History:StatsCreations' => 'Creado', + 'UI:History:StatsCreations+' => 'Cuenta de objetos creados', 'UI:History:StatsModifs' => 'Modificado', 'UI:History:StatsModifs+' => 'Cuenta de objetos modificados', 'UI:History:StatsDeletes' => 'Borrados', @@ -503,14 +504,14 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'UI:SplitDateTime-Time' => 'hora', 'UI:TruncatedResults' => 'Mostrando %1$d objetos de %2$d', 'UI:DisplayAll' => 'Mostrar todo', - 'UI:CollapseList' => 'Colapsar', + 'UI:CollapseList' => 'Contraer', 'UI:CountOfResults' => '%1$d objeto(s)', 'UI:ChangesLogTitle' => 'Registro de cambios (%1$d):', 'UI:EmptyChangesLogTitle' => 'Registro de cambios esta vacio', 'UI:SearchFor_Class_Objects' => 'Buscar %1$s', 'UI:OQLQueryBuilderTitle' => 'Constructor de consultas OQL', 'UI:OQLQueryTab' => 'Consulta OQL', - 'UI:SimpleSearchTab' => 'Busqueda simple', + 'UI:SimpleSearchTab' => 'Búsqueda simple', 'UI:Details+' => 'Detalles', 'UI:SearchValue:Any' => '* Cualquiera *', 'UI:SearchValue:Mixed' => '* mezclado *', @@ -530,24 +531,27 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'UI:Login:ResetPwdFailed' => 'Error al enviar correo-e: %1$s', 'UI:Login:SeparatorOr' => 'Or~~', - 'UI:ResetPwd-Error-WrongLogin' => '\'%1$s\' no es un usuario válido', + 'UI:ResetPwd-Error-WrongLogin' => '\'%1$s\' no es un usuario válido', 'UI:ResetPwd-Error-NotPossible' => 'Cuentas externas no permiten restablecimiento de contraseña.', 'UI:ResetPwd-Error-FixedPwd' => 'La cuenta no permite restablecimiento de contraseña.', 'UI:ResetPwd-Error-NoContact' => 'La cuenta no está asociada a una persona.', 'UI:ResetPwd-Error-NoEmailAtt' => 'La cuenta no está asociada a una persona con correo electrónico. Por favor contacte al administrador.', 'UI:ResetPwd-Error-NoEmail' => 'Falta dirección de correo electrónico. Por favor contacte al administrador.', 'UI:ResetPwd-Error-Send' => 'Falla al envar un correo. Por favor contacte al administrador.', - 'UI:ResetPwd-EmailSent' => 'Please check your email box and follow the instructions. If you receive no email, please check the login you typed.~~', + 'UI:ResetPwd-EmailSent' => 'Por favor verifique su buzón de correo y siga las instrucciones. Si no recibe el mensaje, por favor verifique la cuenta proporcionada.', 'UI:ResetPwd-EmailSubject' => 'Restablecer contraseña de '.ITOP_APPLICATION_SHORT, 'UI:ResetPwd-EmailBody' => '

Ha solicitado restablecer su contraseña en '.ITOP_APPLICATION_SHORT.'.

Por favor de click en la siguiente liga: proporcione una nueva contraseña

.', - 'UI:ResetPwd-Title' => 'Restablecer Contraseña', - 'UI:ResetPwd-Error-InvalidToken' => 'Lo siento, tal vez su contraseña ya ha sido cambiada, o ha recibido varios correos electrónicos. Por favor asegurese de haber dado click a la liga del último correo recibido.', + 'UI:ResetPwd-Title' => 'Restablecer Contraseña', + 'UI:ResetPwd-Error-InvalidToken' => 'Lo siento, tal vez su contraseña ya ha sido cambiada, o ha recibido varios correos electrónicos. Por favor asegurese de haber dado click a la liga del último correo recibido.', 'UI:ResetPwd-Error-EnterPassword' => 'Contraseña Nueva para \'%1$s\'.', + 'UI:ResetPwd-Ready' => 'La contraseña ha sido cambiada.', + 'UI:ResetPwd-Login' => 'Click aquí para conectarse ', + 'UI:ResetPwd-Ready' => 'La contraseña ha sido cambiada.', 'UI:ResetPwd-Login' => 'Click aquí para conectarse ', - 'UI:Login:About' => '', + 'UI:Login:About' => 'Acerca de', 'UI:Login:ChangeYourPassword' => 'Cambie su Contraseña', 'UI:Login:OldPasswordPrompt' => 'Contraseña Actual', 'UI:Login:NewPasswordPrompt' => 'Contraseña Nueva', @@ -558,16 +562,16 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'UI:LogOff:ClickHereToLoginAgain' => 'Click aquí para conectarse nuevamente', 'UI:ChangePwdMenu' => 'Cambiar Contraseña', 'UI:Login:PasswordChanged' => '¡Contraseña Exitosamente Cambiada!', - 'UI:AccessRO-All' => ITOP_APPLICATION_SHORT.' está en modo de solo lectura', - 'UI:AccessRO-Users' => ITOP_APPLICATION_SHORT.' está en modo de solo lectura para usuarios', + 'UI:AccessRO-All' => ITOP_APPLICATION_SHORT.' está en modo de sólo lectura', + 'UI:AccessRO-Users' => ITOP_APPLICATION_SHORT.' está en modo de sólo lectura para usuarios', 'UI:ApplicationEnvironment' => 'Ambiente: %1$s', 'UI:Login:RetypePwdDoesNotMatch' => '¡La Nueva Contraseña y su Confirmación No Coinciden!', 'UI:Button:Login' => 'Entrar', 'UI:Login:Error:AccessRestricted' => 'El acceso a '.ITOP_APPLICATION_SHORT.' está restringido. Por favor contacte al Administrador de '.ITOP_APPLICATION_SHORT.'.', 'UI:Login:Error:AccessAdmin' => 'Acceso restringido a usuarios con privilegio de administrador. Por favor contacte al Administrador de '.ITOP_APPLICATION_SHORT.'.', - 'UI:Login:Error:WrongOrganizationName' => 'Unknown organization~~', - 'UI:Login:Error:MultipleContactsHaveSameEmail' => 'Multiple contacts have the same e-mail~~', - 'UI:Login:Error:NoValidProfiles' => 'No valid profile provided~~', + 'UI:Login:Error:WrongOrganizationName' => 'Organización desconocida', + 'UI:Login:Error:MultipleContactsHaveSameEmail' => 'Varios contactos tienen la misma dirección de correo electrónico', + 'UI:Login:Error:NoValidProfiles' => 'Perfil inválido', 'UI:CSVImport:MappingSelectOne' => '-- seleccione uno --', 'UI:CSVImport:MappingNotApplicable' => '-- ignore este campo --', 'UI:CSVImport:NoData' => 'Conjunto de datos vacío..., por favor provea algun dato.', @@ -580,7 +584,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'UI:Title:BulkImport' => ITOP_APPLICATION_SHORT.' - Importación por Lotes', 'UI:Title:BulkImport+' => 'Asistente de Importación Archivos CSV', 'UI:Title:BulkSynchro_nbItem_ofClass_class' => 'Sincronización de %1$d objetos de la clase %2$s', - 'UI:CSVImport:ClassesSelectOne' => '-- seleccione uno --', + 'UI:CSVImport:ClassesSelectOne' => '-- Seleccione uno --', 'UI:CSVImport:ErrorExtendedAttCode' => 'Error Interno: "%1$s" es un código incorrecto debido a que "%2$s" NO es una clave externa de la clase "%3$s"', 'UI:CSVImport:ObjectsWillStayUnchanged' => '%1$d objeto(s) permanecerá sin cambio.', 'UI:CSVImport:ObjectsWillBeModified' => '%1$d objeto(s) será modificado.', @@ -707,11 +711,11 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'UI:RunQuery:MoreInfo' => 'Más información acerca de la consulta: ', 'UI:RunQuery:DevelopedQuery' => 'Expresión de consulta rediseñada: ', 'UI:RunQuery:SerializedFilter' => 'Filtro de serialización: ', - 'UI:RunQuery:DevelopedOQL' => 'Developed OQL~~', - 'UI:RunQuery:DevelopedOQLCount' => 'Developed OQL for count~~', - 'UI:RunQuery:ResultSQLCount' => 'Resulting SQL for count~~', - 'UI:RunQuery:ResultSQL' => 'Resulting SQL~~', - 'UI:RunQuery:Error' => 'Ha ocurrido un error al ejecutar la consulta', + 'UI:RunQuery:DevelopedOQL' => 'OQL Desarrollado', + 'UI:RunQuery:DevelopedOQLCount' => 'OQL Desarrollado para cuenta', + 'UI:RunQuery:ResultSQLCount' => 'SQL resultante para cuenta', + 'UI:RunQuery:ResultSQL' => 'SQL Resultante', + 'UI:RunQuery:Error' => 'Ha ocurrido un error al ejecutar la consulta: %1$s', 'UI:Query:UrlForExcel' => 'URL para usarse en consultas web de MS-Excel', 'UI:Query:UrlV1' => 'La lista de campos se ha dejado sin especificación. La página export-V2.php no puede ser invocada sin está información. Por lo tanto, el URL sugerido abajo apunta a la página legada: export.php. Esta versión legada de exportación tiene la siguiente limitación: la lista de campos exportados puede variar, dependiendo del formato de salida y el modelo de datos de '.ITOP_APPLICATION_SHORT.'. Desea garantizar que la lista de columnas exportadas permanenzcan estables durante la ejecución, entonces debe especificar un valor para el atributo "Campos" y utilice la página export-V2.php.', 'UI:Schema:Title' => 'Esquema de Objetos en '.ITOP_APPLICATION_SHORT, @@ -801,7 +805,7 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'UI:Title:BulkDeletionOf_Count_ObjectsOf_Class' => 'Borrado por lote de %1$d objetos de la clase %2$s', 'UI:Delete:NotAllowedToDelete' => 'No esta autorizado para borrar este objeto', 'UI:Delete:NotAllowedToUpdate_Fields' => 'No esta autorizado para actualizar el siguiente campo(s): %1$s', - 'UI:Error:ActionNotAllowed' => 'You are not allowed to do this action~~', + 'UI:Error:ActionNotAllowed' => 'No está autorizado a realizar esta acción', 'UI:Error:NotEnoughRightsToDelete' => 'Este objeto no pudo ser borrado porque el usuario actual no posee suficientes permisos', 'UI:Error:CannotDeleteBecause' => 'Esto objeto no puede ser borrado debido a: %1$s', 'UI:Error:CannotDeleteBecauseOfDepencies' => 'Este objeto no pudo ser borrado porque algunas operaciones manuales deben ser ejecutadas antes de eso', @@ -812,16 +816,16 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'UI:Delete:AutomaticResetOf_Fields' => 'Reinicio automático de campo(s): %1$s', 'UI:Delete:CleaningUpRefencesTo_Object' => 'Limpiando todas las referencias a %1$s', 'UI:Delete:CleaningUpRefencesTo_Several_ObjectsOf_Class' => 'Limpiando todas las referencias a %1$d objetos de la clase %2$s', - 'UI:Delete:Done+' => 'Realizado', - 'UI:Delete:_Name_Class_Deleted' => '%1$s - %2$s borrado.', - 'UI:Delete:ConfirmDeletionOf_Name' => 'Borrado de %1$s', - 'UI:Delete:ConfirmDeletionOf_Count_ObjectsOf_Class' => 'Borrado de %1$d objetos de la clase %2$s', - 'UI:Delete:CannotDeleteBecause' => 'No puede ser borrado: %1$s', - 'UI:Delete:ShouldBeDeletedAtomaticallyButNotPossible' => 'Deberia ser borrado automaticamente, pero usted no esta autorizado para hacerlo', - 'UI:Delete:MustBeDeletedManuallyButNotPossible' => 'Debe ser borrado manualmente - pero usted no está autorizado para borrar este objeto, por favor contacte al administrador de la aplicación', - 'UI:Delete:WillBeDeletedAutomatically' => 'Será borrado automaticamente', - 'UI:Delete:MustBeDeletedManually' => 'Debe ser borrado manualmente', - 'UI:Delete:CannotUpdateBecause_Issue' => 'Debe ser actualizado automaticamente, pero: %1$s', + 'UI:Delete:Done+' => 'Realizado', + 'UI:Delete:_Name_Class_Deleted' => '%1$s - %2$s borrado.', + 'UI:Delete:ConfirmDeletionOf_Name' => 'Borrado de %1$s', + 'UI:Delete:ConfirmDeletionOf_Count_ObjectsOf_Class' => 'Borrado de %1$d objetos de la clase %2$s', + 'UI:Delete:CannotDeleteBecause' => 'No puede ser borrado: %1$s', + 'UI:Delete:ShouldBeDeletedAtomaticallyButNotPossible' => 'Deberia ser borrado automaticamente, pero usted no esta autorizado para hacerlo', + 'UI:Delete:MustBeDeletedManuallyButNotPossible' => 'Debe ser borrado manualmente - pero usted no está autorizado para borrar este objeto, por favor contacte al administrador de la aplicación', + 'UI:Delete:WillBeDeletedAutomatically' => 'Será borrado automaticamente', + 'UI:Delete:MustBeDeletedManually' => 'Debe ser borrado manualmente', + 'UI:Delete:CannotUpdateBecause_Issue' => 'Debe ser actualizado automaticamente, pero: %1$s', 'UI:Delete:WillAutomaticallyUpdate_Fields' => 'Será actualizado automaticamente (reset: %1$s)', 'UI:Delete:Count_Objects/LinksReferencing_Object' => '%1$d objetos/vinculos están referenciando %2$s', 'UI:Delete:Count_Objects/LinksReferencingTheObjects' => '%1$d objetos/vinculos están referenciando algunos de los objetos a ser borrados', @@ -895,15 +899,15 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'UI:UserManagement:Action:BulkDelete+' => 'eliminación masiva de objetos', 'UI:UserManagement:Action:Stimuli' => 'Stimuli', 'UI:UserManagement:Action:Stimuli+' => 'Acciones (compound) permitidas', - 'UI:UserManagement:Action' => 'Acción', - 'UI:UserManagement:Action+' => 'Acción ejecutada por el usuario', - 'UI:UserManagement:TitleActions' => 'Acciones', - 'UI:UserManagement:Permission' => 'Permisos', - 'UI:UserManagement:Permission+' => 'Permisos de usuario', - 'UI:UserManagement:Attributes' => 'Atributos', - 'UI:UserManagement:ActionAllowed:Yes' => 'Si', - 'UI:UserManagement:ActionAllowed:No' => 'No', - 'UI:UserManagement:AdminProfile+' => 'Los administradores tienen acceso total de lectura/escritura para todos los objetos en la base de datos.', + + 'Menu:AdminTools' => 'Herramientas Administrativas', + // Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:AdminTools+' => 'Herramientas Administrativas', + // Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:AdminTools?' => 'Herramientas accesibles sólo a usuarios con Perfil de administrador', + // Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:SystemTools' => 'Sistema', + 'UI:UserManagement:NoLifeCycleApplicable' => 'N/A', 'UI:UserManagement:NoLifeCycleApplicable+' => 'No se ha definido ciclo de vida para esta clase', 'UI:UserManagement:GrantMatrix' => 'Matriz de Acceso', @@ -914,13 +918,13 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Menu:SystemTools' => 'System~~', 'UI:ChangeManagementMenu' => 'Control de Cambios', - 'UI:ChangeManagementMenu+' => 'Control de Cambios', + 'UI:ChangeManagementMenu+' => '', 'UI:ChangeManagementMenu:Title' => 'Resumen de Cambios', 'UI-ChangeManagementMenu-ChangesByType' => 'Cambios por Tipo', 'UI-ChangeManagementMenu-ChangesByStatus' => 'Cambios por Estatus', 'UI-ChangeManagementMenu-ChangesNotYetAssigned' => 'Cambios No Asignados Aún', - 'UI:ConfigurationManagementMenu' => 'Administración de la Configuración', + 'UI:ConfigurationManagementMenu' => 'Administración de la Configuración', 'UI:ConfigurationManagementMenu+' => 'Administración de la Configuración', 'UI:ConfigurationManagementMenu:Title' => 'Resumen de Infrastructura', 'UI-ConfigurationManagementMenu-InfraByType' => 'Objetos de Infraestructura por Tipo', @@ -956,8 +960,14 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'UI-ContactsMenu-ContactsByType' => 'Contactos por Tipo', 'UI-ContactsMenu-ContactsByStatus' => 'Contactos por Estatus', - 'Menu:CSVImportMenu' => 'Importar CSV', // Duplicated into itop-welcome-itil (will be removed from here...) - 'Menu:CSVImportMenu+' => 'Creación o Actualización Másiva', // Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:CSVImportMenu' => 'Importar CSV',// Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:CSVImportMenu+' => 'Creación o Actualización Másiva',// Duplicated into itop-welcome-itil (will be removed from here...) + + 'Menu:DataModelMenu' => 'Modelo de Datos',// Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:DataModelMenu+' => 'Resumen del Modelo de Datos',// Duplicated into itop-welcome-itil (will be removed from here...) + + 'Menu:ExportMenu' => 'Exportar',// Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:ExportMenu+' => 'Exportar los Resultados de Cualquier Consulta en HTML, CSV o XML',// Duplicated into itop-welcome-itil (will be removed from here...) 'Menu:DataModelMenu' => 'Modelo de Datos', // Duplicated into itop-welcome-itil (will be removed from here...) 'Menu:DataModelMenu+' => 'Resumen del Modelo de Datos', // Duplicated into itop-welcome-itil (will be removed from here...) @@ -986,7 +996,7 @@ Tales acciones tambien definen la plantilla a ser usada para enviar el correo as

Una página especial: email.test.php está disponible para probar y diagnosticar su configuración de correo de PHP.

Para ser ejecutadas, las acciones deben estar asociadas con los disparadores. Cuando se asocien con un disparador, cada acción recibe un número de "orden", esto especifica en que orden se ejecutaran las acciones.

', - 'UI:NotificationsMenu:Triggers' => 'Disparadores', + 'UI:NotificationsMenu:Triggers' => 'Disparadores', 'UI:NotificationsMenu:AvailableTriggers' => 'Disparadores disponibles', 'UI:NotificationsMenu:OnCreate' => 'Cuando un objeto es creado', 'UI:NotificationsMenu:OnStateEnter' => 'Cuando un objeto entra a un estado específico', @@ -994,21 +1004,38 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", 'UI:NotificationsMenu:Actions' => 'Acciones', 'UI:NotificationsMenu:AvailableActions' => 'Acciones Disponibles', - 'Menu:TagAdminMenu' => 'Tags configuration~~', - 'Menu:TagAdminMenu+' => 'Tags values management~~', - 'UI:TagAdminMenu:Title' => 'Tags configuration~~', - 'UI:TagAdminMenu:NoTags' => 'No Tag field configured~~', - 'UI:TagSetFieldData:Error' => 'Error: %1$s~~', + 'Menu:TagAdminMenu' => 'Configuración de Etiquetas', + 'Menu:TagAdminMenu+' => 'Gestión de valores de Etiquetas', + 'UI:TagAdminMenu:Title' => 'Configuración de Etiquetas', + 'UI:TagAdminMenu:NoTags' => 'No hay campos Etiquetas configurados', + 'UI:TagSetFieldData:Error' => 'Error: %1$s', - 'Menu:AuditCategories' => 'Auditar Categorías', // Duplicated into itop-welcome-itil (will be removed from here...) - 'Menu:AuditCategories+' => 'Auditar Categorías', // Duplicated into itop-welcome-itil (will be removed from here...) - 'Menu:Notifications:Title' => 'Auditar Categorías', // Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:AuditCategories' => 'Auditar Categorías', + // Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:AuditCategories+' => 'Auditar Categorías', + // Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:Notifications:Title' => 'Auditar Categorías', + // Duplicated into itop-welcome-itil (will be removed from here...) - 'Menu:RunQueriesMenu' => 'Ejecutar Consultas', // Duplicated into itop-welcome-itil (will be removed from here...) - 'Menu:RunQueriesMenu+' => 'Ejecutar Cualquier Consulta', // Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:RunQueriesMenu' => 'Ejecutar Consultas', + // Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:RunQueriesMenu+' => 'Ejecutar Cualquier Consulta', + // Duplicated into itop-welcome-itil (will be removed from here...) + + 'Menu:QueryMenu' => 'Libreta de Consultas', + // Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:QueryMenu+' => 'Libreta de Consultas', + // Duplicated into itop-welcome-itil (will be removed from here...) + + 'Menu:DataAdministration' => 'Administración de Datos',// Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:DataAdministration+' => 'Administración de Datos',// Duplicated into itop-welcome-itil (will be removed from here...) + + 'Menu:UniversalSearchMenu' => 'Búsqueda Universal',// Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:UniversalSearchMenu+' => 'Buscar cualquier cosa',// Duplicated into itop-welcome-itil (will be removed from here...) + + 'Menu:UserManagementMenu' => 'Administración de Usuarios',// Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:UserManagementMenu+' => 'Administración de Usuarios',// Duplicated into itop-welcome-itil (will be removed from here...) - 'Menu:QueryMenu' => 'Libreta de Consultas', // Duplicated into itop-welcome-itil (will be removed from here...) - 'Menu:QueryMenu+' => 'Libreta de Consultas', // Duplicated into itop-welcome-itil (will be removed from here...) 'Menu:DataAdministration' => 'Administración de Datos', // Duplicated into itop-welcome-itil (will be removed from here...) 'Menu:DataAdministration+' => 'Administración de Datos', // Duplicated into itop-welcome-itil (will be removed from here...) @@ -1035,8 +1062,8 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", 'UI:iTopVersion:Long' => '%1$s versión %2$s-%3$s compilada en %4$s', 'UI:PropertiesTab' => 'Propiedades', - 'UI:OpenDocumentInNewWindow_' => 'Abrir~~', - 'UI:DownloadDocument_' => 'Descargar~~', + 'UI:OpenDocumentInNewWindow_' => 'Abra este documento en una ventana nueva: %1$s', + 'UI:DownloadDocument_' => 'Descargue este documento: %1$s', 'UI:Document:NoPreview' => 'No hay prevista disponible para este tipo de archivo', 'UI:Download-CSV' => 'Descargar %1$s', @@ -1048,38 +1075,38 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", 'UI:Help' => 'Ayuda', 'UI:PasswordConfirm' => 'Confirmar', 'UI:BeforeAdding_Class_ObjectsSaveThisObject' => 'Antes de Agregar un(a) %1$s, Guarde los Cambios Realizados.', - 'UI:DisplayThisMessageAtStartup' => 'Desplegar este Mensaje al Inicio', - 'UI:RelationshipGraph' => 'Vista Gráfica', - 'UI:RelationshipList' => 'Lista', - 'UI:RelationGroups' => 'Grupos', - 'UI:OperationCancelled' => 'Operación Cancelada', - 'UI:ElementsDisplayed' => 'Despliegue', - 'UI:RelationGroupNumber_N' => 'Grupo #%1$d', - 'UI:Relation:ExportAsPDF' => 'Exportar como PDF...', - 'UI:RelationOption:GroupingThreshold' => 'Umbral de Agrupamiento', - 'UI:Relation:AdditionalContextInfo' => 'Información Contextual Adicional', - 'UI:Relation:NoneSelected' => 'Ninguno', - 'UI:Relation:Zoom' => 'Zoom~~', - 'UI:Relation:ExportAsAttachment' => 'Exportar como Anexo...', - 'UI:Relation:DrillDown' => 'Detalles...', - 'UI:Relation:PDFExportOptions' => 'Opciones de exportación PDF', - 'UI:Relation:AttachmentExportOptions_Name' => 'Opciones para anexo a %1$s', - 'UI:RelationOption:Untitled' => 'Sin Título', - 'UI:Relation:Key' => 'Llave', - 'UI:Relation:Comments' => 'Comentarios', - 'UI:RelationOption:Title' => 'Título', - 'UI:RelationOption:IncludeList' => 'Incluír lista de objetos', - 'UI:RelationOption:Comments' => 'Comentarios', - 'UI:Button:Export' => 'Exportar', - 'UI:Relation:PDFExportPageFormat' => 'Formato de Página', - 'UI:PageFormat_A3' => 'A3', - 'UI:PageFormat_A4' => 'A4', - 'UI:PageFormat_Letter' => 'Carta', - 'UI:Relation:PDFExportPageOrientation' => 'Orientación de Página', - 'UI:PageOrientation_Portrait' => 'Vertical', - 'UI:PageOrientation_Landscape' => 'Horizontal', - 'UI:RelationTooltip:Redundancy' => 'Redundancia', - 'UI:RelationTooltip:ImpactedItems_N_of_M' => '# de elementos impactados: %1$d / %2$d', + 'UI:DisplayThisMessageAtStartup' => 'Desplegar este Mensaje al Inicio', + 'UI:RelationshipGraph' => 'Vista Gráfica', + 'UI:RelationshipList' => 'Lista', + 'UI:RelationGroups' => 'Grupos', + 'UI:OperationCancelled' => 'Operación Cancelada', + 'UI:ElementsDisplayed' => 'Despliegue', + 'UI:RelationGroupNumber_N' => 'Grupo #%1$d', + 'UI:Relation:ExportAsPDF' => 'Exportar como PDF...', + 'UI:RelationOption:GroupingThreshold' => 'Umbral de Agrupamiento', + 'UI:Relation:AdditionalContextInfo' => 'Información Contextual Adicional', + 'UI:Relation:NoneSelected' => 'Ninguno', + 'UI:Relation:Zoom' => 'Zoom', + 'UI:Relation:ExportAsAttachment' => 'Exportar como Anexo...', + 'UI:Relation:DrillDown' => 'Detalles...', + 'UI:Relation:PDFExportOptions' => 'Opciones de exportación PDF', + 'UI:Relation:AttachmentExportOptions_Name' => 'Opciones para anexo a %1$s', + 'UI:RelationOption:Untitled' => 'Sin Título', + 'UI:Relation:Key' => 'Llave', + 'UI:Relation:Comments' => 'Comentarios', + 'UI:RelationOption:Title' => 'Título', + 'UI:RelationOption:IncludeList' => 'Incluír lista de objetos', + 'UI:RelationOption:Comments' => 'Comentarios', + 'UI:Button:Export' => 'Exportar', + 'UI:Relation:PDFExportPageFormat' => 'Formato de Página', + 'UI:PageFormat_A3' => 'A3', + 'UI:PageFormat_A4' => 'A4', + 'UI:PageFormat_Letter' => 'Carta', + 'UI:Relation:PDFExportPageOrientation' => 'Orientación de Página', + 'UI:PageOrientation_Portrait' => 'Vertical', + 'UI:PageOrientation_Landscape' => 'Horizontal', + 'UI:RelationTooltip:Redundancy' => 'Redundancia', + 'UI:RelationTooltip:ImpactedItems_N_of_M' => '# de elementos impactados: %1$d / %2$d', 'UI:RelationTooltip:CriticalThreshold_N_of_M' => 'Umbral Crítico: %1$d / %2$d', 'Portal:Title' => 'Portal de Usuario', 'Portal:NoRequestMgmt' => 'Estimado(a) %1$s, ha sido redirigido a esta página porque su cuenta está configurada con el Perfil \'Portal user\'. Desafortunadamente, '.ITOP_APPLICATION_SHORT.' no fue instalado con el módulo \'Request Management\'. Por favor contacte a su Administrador.', @@ -1173,20 +1200,20 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", 'UI:Button:Refresh' => 'Refrescar', 'UI:Button:GoPrint' => 'Imprimir...', 'UI:ExplainPrintable' => 'Click en el icono %1$s para ocultar elementos de la impresión.
Use la funcionalidad "vista preliminar" de su navegador para visualizar antes de imprimir.
Nota: Este encabezado y controles de ajuste no serán impresos.', - 'UI:PrintResolution:FullSize' => 'Full size~~', - 'UI:PrintResolution:A4Portrait' => 'A4 Portrait~~', - 'UI:PrintResolution:A4Landscape' => 'A4 Landscape~~', - 'UI:PrintResolution:LetterPortrait' => 'Letter Portrait~~', - 'UI:PrintResolution:LetterLandscape' => 'Letter Landscape~~', - 'UI:Toggle:SwitchToStandardDashboard' => 'Switch to standard dashboard~~', - 'UI:Toggle:SwitchToCustomDashboard' => 'Switch to custom dashboard~~', + 'UI:PrintResolution:FullSize' => 'Tamaño Completo', + 'UI:PrintResolution:A4Portrait' => 'A4 Vertical', + 'UI:PrintResolution:A4Landscape' => 'A4 Horizontal', + 'UI:PrintResolution:LetterPortrait' => 'Carta Vertical', + 'UI:PrintResolution:LetterLandscape' => 'Carta Horizontal', + 'UI:Toggle:SwitchToStandardDashboard' => 'Estandar', + 'UI:Toggle:SwitchToCustomDashboard' => 'Personalizado', - 'UI:ConfigureThisList' => 'Configurar Lista', + 'UI:ConfigureThisList' => 'Configurar Lista', 'UI:ListConfigurationTitle' => 'Configuración de Lista', 'UI:ColumnsAndSortOrder' => 'Columnas y Ordenamiento:', 'UI:UseDefaultSettings' => 'Usar Configuración por Omisión', 'UI:UseSpecificSettings' => 'Usar la Siguiente Configuración:', - 'UI:Display_X_ItemsPerPage_prefix' => 'Desplegar', + 'UI:Display_X_ItemsPerPage_prefix' => 'Desplegar %1$s elementos por página', 'UI:Display_X_ItemsPerPage_suffix' => 'elementos por página', 'UI:UseSavetheSettings' => 'Guardar Configuraciones', 'UI:OnlyForThisList' => 'Sólo esta Lista', @@ -1200,9 +1227,9 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", 'UI:OQL:UnknownClassAndFix' => 'Clase Desconocida "%1$s". Puede usar "%2$s" en su lugar.', 'UI:OQL:UnknownClassNoFix' => 'Clase Desconocida "%1$s"', - 'UI:Dashboard:EditCustom' => 'Edit custom version...~~', + 'UI:Dashboard:EditCustom' => 'Editar esta Página', 'UI:Dashboard:CreateCustom' => 'Create a custom version...~~', - 'UI:Dashboard:DeleteCustom' => 'Delete custom version...~~', + 'UI:Dashboard:DeleteCustom' => 'Regresar a Versión Original', 'UI:Dashboard:RevertConfirm' => 'Todos los cambios realizados a la versión original se perderán. Por favor confime que quiere hacer esto.', 'UI:ExportDashBoard' => 'Exportar a un Archivo', 'UI:ImportDashBoard' => 'Importar de un Archivo', @@ -1229,29 +1256,29 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", 'UI:DashboardEdit:DashletProperties' => 'Propiedades de Dashlet', 'UI:Form:Property' => 'Propiedad', - 'UI:Form:Value' => 'Valor', + 'UI:Form:Value' => 'Valor', - 'UI:DashletUnknown:Label' => 'Desconocido', - 'UI:DashletUnknown:Description' => 'Dashlet desconocido (puede haber sido desinstalado)', - 'UI:DashletUnknown:RenderText:View' => 'No es posible desplegar este dashlet.', - 'UI:DashletUnknown:RenderText:Edit' => 'No es posible desplegar este dashlet (clase "%1$s"). Verifique con su administrador si está todavia disponible.', + 'UI:DashletUnknown:Label' => 'Desconocido', + 'UI:DashletUnknown:Description' => 'Dashlet desconocido (puede haber sido desinstalado)', + 'UI:DashletUnknown:RenderText:View' => 'No es posible desplegar este dashlet.', + 'UI:DashletUnknown:RenderText:Edit' => 'No es posible desplegar este dashlet (clase "%1$s"). Verifique con su administrador si está todavia disponible.', 'UI:DashletUnknown:RenderNoDataText:Edit' => 'No hay vista previa para este dashlet (clase "%1$s").', 'UI:DashletUnknown:Prop-XMLConfiguration' => 'Configuración (mostrado como código XML)', - 'UI:DashletProxy:Label' => 'Proxy', - 'UI:DashletProxy:Description' => 'Proxy dashlet', - 'UI:DashletProxy:RenderNoDataText:Edit' => 'No preview available for this third-party dashlet (class "%1$s").~~', - 'UI:DashletProxy:Prop-XMLConfiguration' => 'Configuration (shown as raw XML)', + 'UI:DashletProxy:Label' => 'Proxy', + 'UI:DashletProxy:Description' => 'Dashlet Proxy', + 'UI:DashletProxy:RenderNoDataText:Edit' => 'No hay vista previa para este dashlet de terceros (clase "%1$s").', + 'UI:DashletProxy:Prop-XMLConfiguration' => 'Configuración (mostrado como XML sin formato)', - 'UI:DashletPlainText:Label' => 'Texto', - 'UI:DashletPlainText:Description' => 'Texto Plano (sin formato)', - 'UI:DashletPlainText:Prop-Text' => 'Texto', + 'UI:DashletPlainText:Label' => 'Texto', + 'UI:DashletPlainText:Description' => 'Texto Plano (sin formato)', + 'UI:DashletPlainText:Prop-Text' => 'Texto', 'UI:DashletPlainText:Prop-Text:Default' => 'Escriba texto aquí...', - 'UI:DashletObjectList:Label' => 'Lista de Objetos', + 'UI:DashletObjectList:Label' => 'Lista de Objetos', 'UI:DashletObjectList:Description' => 'Lista de Objetos en dashlet', - 'UI:DashletObjectList:Prop-Title' => 'Título', - 'UI:DashletObjectList:Prop-Query' => 'Consulta', + 'UI:DashletObjectList:Prop-Title' => 'Título', + 'UI:DashletObjectList:Prop-Query' => 'Consulta', 'UI:DashletObjectList:Prop-Menu' => 'Menú', 'UI:DashletGroupBy:Prop-Title' => 'Título', @@ -1358,13 +1385,13 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", 'Month-10-Short' => 'Oct', 'Month-11-Short' => 'Nov', 'Month-12-Short' => 'Dic', - 'Calendar-FirstDayOfWeek' => '0', // 0 = Sunday, 1 = Monday, etc... + 'Calendar-FirstDayOfWeek' => '0',// 0 = Sunday, 1 = Monday, etc... 'UI:Menu:ShortcutList' => 'Crear Acceso Rápido', 'UI:ShortcutRenameDlg:Title' => 'Renombrar Acceso Rápido', 'UI:ShortcutListDlg:Title' => 'Crear Acceso Rápido para la Lista', 'UI:ShortcutDelete:Confirm' => 'Por favor conforme que desea Eliminar el/los Acceso(s) Rápido(s)', - 'Menu:MyShortcuts' => 'Mis Accesos Rápidos', // Duplicated into itop-welcome-itil (will be removed from here...) + 'Menu:MyShortcuts' => 'Mis Accesos Rápidos',// Duplicated into itop-welcome-itil (will be removed from here...) 'Class:Shortcut' => 'Acceso Rápido', 'Class:Shortcut+' => 'Acceso Rápido', 'Class:Shortcut/Attribute:name' => 'Nombre', @@ -1380,38 +1407,40 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", 'Class:ShortcutOQL/Attribute:auto_reload_sec/tip' => 'El interválo mínimo es de %1$d segundos', 'UI:FillAllMandatoryFields' => 'Por favor llenar los campos obligatorios.', - 'UI:ValueMustBeSet' => 'Por favor, ingrese un valor', - 'UI:ValueMustBeChanged' => 'Por favor cambie el valor', - 'UI:ValueInvalidFormat' => 'Formato inválido', + 'UI:ValueMustBeSet' => 'Por favor, ingrese un valor', + 'UI:ValueMustBeChanged' => 'Por favor cambie el valor', + 'UI:ValueInvalidFormat' => 'Formato inválido', - 'UI:CSVImportConfirmTitle' => 'Por favor confirme la operación', - 'UI:CSVImportConfirmMessage' => '¿Está seguro?', - 'UI:CSVImportError_items' => 'Errores: %1$d', - 'UI:CSVImportCreated_items' => 'Creados: %1$d', - 'UI:CSVImportModified_items' => 'Modificados: %1$d', - 'UI:CSVImportUnchanged_items' => 'Sin cambios: %1$d', - 'UI:CSVImport:DateAndTimeFormats' => 'Date and time format~~', - 'UI:CSVImport:DefaultDateTimeFormat_Format_Example' => 'Default format: %1$s (e.g. %2$s)~~', - 'UI:CSVImport:CustomDateTimeFormat' => 'Custom format: %1$s~~', - 'UI:CSVImport:CustomDateTimeFormatTooltip' => 'Available placeholders: - - - - - - - - - - - - - - -
Yyear (4 digits, e.g. 2016)
yyear (2 digits, e.g. 16 for 2016)
mmonth (2 digits, e.g. 01..12)
nmonth (1 or 2 digits no leading zero, e.g. 1..12)
dday (2 digits, e.g. 01..31)
jday (1 or 2 digits no leading zero, e.g. 1..31)
Hhour (24 hour, 2 digits, e.g. 00..23)
hhour (12 hour, 2 digits, e.g. 01..12)
Ghour (24 hour, 1 or 2 digits no leading zero, e.g. 0..23)
ghour (12 hour, 1 or 2 digits no leading zero, e.g. 1..12)
ahour, am or pm (lowercase)
Ahour, AM or PM (uppercase)
iminutes (2 digits, e.g. 00..59)
sseconds (2 digits, e.g. 00..59)
~~', + 'UI:CSVImportConfirmTitle' => 'Por favor confirme la operación', + 'UI:CSVImportConfirmMessage' => '¿Está seguro?', + 'UI:CSVImportError_items' => 'Errores: %1$d', + 'UI:CSVImportCreated_items' => 'Creados: %1$d', + 'UI:CSVImportModified_items' => 'Modificados: %1$d', + 'UI:CSVImportUnchanged_items' => 'Sin cambios: %1$d', + 'UI:CSVImport:DateAndTimeFormats' => 'Formato de Fecha y Hora', + 'UI:CSVImport:DefaultDateTimeFormat_Format_Example' => 'Formato Predeterminado: %1$s (ejem.: %2$s)', + 'UI:CSVImport:CustomDateTimeFormat' => 'Formato Personalizado: %1$s', + 'UI:CSVImport:CustomDateTimeFormatTooltip' => 'Marcadores disponibles: + + + + + + + + + + + + + + +
Yaño (4 digitos, ejem. 2016)
yaño (2 digitos, ejem. 16 for 2016)
mmes (2 digitos, ejem. 01..12)
nmes (1 o 2 digitos sin ceros al inicio, ejem. 1..12)
ddía (2 digitos, ejem. 01..31)
jdía (1 o 2 digitos sin ceros al inicio, ejem. 1..31)
Hhora (24 horas, 2 digitos, ejem. 00..23)
hhora (12 horas, 2 digitos, ejem. 01..12)
Ghora (24 horas, 1 o 2 digitos sin ceros al inicio, ejem. 0..23)
ghora (12 hour, 1 o 2 digitos sin ceros al inicio, ejem. 1..12)
ahora, am o pm (minúsculas)
Ahora, AM o PM (mayúsculas)
iminutos (2 digitos, ejem. 00..59)
ssegundos (2 digitos, ejem. 00..59)
', - 'UI:Button:Remove' => 'Remover', + 'UI:Button:Remove' => 'Remover', 'UI:AddAnExisting_Class' => 'Agregar objetos del tipo %1$s...', + 'UI:SelectionOf_Class' => 'Selección de objetos del tipo %1$s', + 'UI:SelectionOf_Class' => 'Selección de objetos del tipo %1$s', 'UI:AboutBox' => 'Acerca de '.ITOP_APPLICATION_SHORT.'...', @@ -1420,19 +1449,19 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", 'UI:About:Support' => 'Información de Soporte', 'UI:About:Licenses' => 'Licencias', 'UI:About:InstallationOptions' => 'Opciones de Instalación', - 'UI:About:ManualExtensionSource' => 'Extension~~', - 'UI:About:Extension_Version' => 'Version: %1$s~~', - 'UI:About:RemoteExtensionSource' => 'Data~~', + 'UI:About:ManualExtensionSource' => 'Extensión', + 'UI:About:Extension_Version' => 'Versión: %1$s~~', + 'UI:About:RemoteExtensionSource' => 'Fuente', 'UI:DisconnectedDlgMessage' => 'Está desconectado. Debe identificarse para continuar usando la aplicación.', - 'UI:DisconnectedDlgTitle' => 'Advertencia', - 'UI:LoginAgain' => 'Conectarse nuevamente', - 'UI:StayOnThePage' => 'Mantenerse en esta página', + 'UI:DisconnectedDlgTitle' => 'Advertencia', + 'UI:LoginAgain' => 'Conectarse nuevamente', + 'UI:StayOnThePage' => 'Mantenerse en esta página', - 'ExcelExporter:ExportMenu' => 'Exportar a Excel...', + 'ExcelExporter:ExportMenu' => 'Exportar a Excel...', 'ExcelExporter:ExportDialogTitle' => 'Exportar a Excel', - 'ExcelExporter:ExportButton' => 'Exportar', - 'ExcelExporter:DownloadButton' => 'Descargar %1$s', + 'ExcelExporter:ExportButton' => 'Exportar', + 'ExcelExporter:DownloadButton' => 'Descargar %1$s', 'ExcelExporter:RetrievingData' => 'Recuperando datos...', 'ExcelExporter:BuildingExcelFile' => 'Construyendo el archivo de Excel...', 'ExcelExporter:Done' => 'Hecho.', @@ -1453,10 +1482,12 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", 'UI:Menu:ExportPDF' => 'Exportar como PDF...', 'UI:Menu:PrintableVersion' => 'Versión imprimible', - 'UI:BrowseInlineImages' => 'Ver imágenes...', - 'UI:UploadInlineImageLegend' => 'Subir nueva imágen', - 'UI:SelectInlineImageToUpload' => 'Seleccione la imágen a subir', + 'UI:BrowseInlineImages' => 'Ver imágenes...', + 'UI:UploadInlineImageLegend' => 'Subir nueva imágen', + 'UI:SelectInlineImageToUpload' => 'Seleccione la imágen a subir', 'UI:AvailableInlineImagesLegend' => 'Imágenes disponibles', + 'UI:NoInlineImage' => 'No hay imágenes disponibles en el servidor. Use el botón "Seleccionar archivo" para seleccionar una imágen de su equipo local y subirla al servidor.', + 'UI:NoInlineImage' => 'No hay imágenes disponibles en el servidor. Use el botón "Seleccionar archivo" para seleccionar una imágen de su equipo local y subirla al servidor.', 'UI:ToggleFullScreen' => 'Cambiar Maximizar / Minimizar', @@ -1465,19 +1496,19 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", 'UI:Button:UploadImage' => 'Upload an image from the disk~~', 'UI:UploadNotSupportedInThisMode' => 'La modificación de imágenes o archivos no está soportado en este modo.', - 'UI:Button:RemoveDocument' => 'Remove the document~~', + 'UI:Button:RemoveDocument' => 'Remover documento', // Search form - 'UI:Search:Toggle' => 'Minimizar/ Expandir', - 'UI:Search:AutoSubmit:DisabledHint' => 'Auto enviar ha sido deshabilitado para esta clase', - 'UI:Search:Obsolescence:DisabledHint' => ' Based on your preferences, obsolete data are hidden~~', - 'UI:Search:NoAutoSubmit:ExplainText' => 'Add some criterion on the search box or click the search button to view the objects.~~', - 'UI:Search:Criterion:MoreMenu:AddCriteria' => 'Agregar nuevo criterio', + 'UI:Search:Toggle' => 'Minimizar/ Expandir', + 'UI:Search:AutoSubmit:DisabledHint' => 'Auto enviar ha sido deshabilitado para esta clase', + 'UI:Search:Obsolescence:DisabledHint' => ' Basado en sus preferencias, datos obsoletos están ocultos', + 'UI:Search:NoAutoSubmit:ExplainText' => 'Agregue algún criterio en el cuadro de búsqueda o haga click en el botón de búsqueda para ver los objetos.', + 'UI:Search:Criterion:MoreMenu:AddCriteria' => 'Agregar nuevo criterio', // - Add new criteria button - 'UI:Search:AddCriteria:List:RecentlyUsed:Title' => 'Recientemente usado', - 'UI:Search:AddCriteria:List:MostPopular:Title' => 'Más popular', - 'UI:Search:AddCriteria:List:Others:Title' => 'Otros', - 'UI:Search:AddCriteria:List:RecentlyUsed:Placeholder' => 'Ninguno todavía', + 'UI:Search:AddCriteria:List:RecentlyUsed:Title' => 'Recientemente usado', + 'UI:Search:AddCriteria:List:MostPopular:Title' => 'Más popular', + 'UI:Search:AddCriteria:List:Others:Title' => 'Otros', + 'UI:Search:AddCriteria:List:RecentlyUsed:Placeholder' => 'Ninguno todavía', // - Criteria header actions 'UI:Search:Criteria:Toggle' => 'Minimize / Expand~~', @@ -1486,17 +1517,17 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", // - Criteria titles // - Default widget - 'UI:Search:Criteria:Title:Default:Any' => '%1$s: Cualquier', - 'UI:Search:Criteria:Title:Default:Empty' => '%1$s está vacío', - 'UI:Search:Criteria:Title:Default:NotEmpty' => '%1$s no está vacío', - 'UI:Search:Criteria:Title:Default:Equals' => '%1$s igual a %2$s', - 'UI:Search:Criteria:Title:Default:Contains' => '%1$s contiene %2$s', - 'UI:Search:Criteria:Title:Default:StartsWith' => '%1$s comienza con %2$s', - 'UI:Search:Criteria:Title:Default:EndsWith' => '%1$s termina con %2$s', - 'UI:Search:Criteria:Title:Default:RegExp' => '%1$s coincide con %2$s', - 'UI:Search:Criteria:Title:Default:GreaterThan' => '%1$s > %2$s', - 'UI:Search:Criteria:Title:Default:GreaterThanOrEquals' => '%1$s >= %2$s', - 'UI:Search:Criteria:Title:Default:LessThan' => '%1$s < %2$s', + 'UI:Search:Criteria:Title:Default:Any' => '%1$s: Cualquier', + 'UI:Search:Criteria:Title:Default:Empty' => '%1$s está vacío', + 'UI:Search:Criteria:Title:Default:NotEmpty' => '%1$s no está vacío', + 'UI:Search:Criteria:Title:Default:Equals' => '%1$s igual a %2$s', + 'UI:Search:Criteria:Title:Default:Contains' => '%1$s contiene %2$s', + 'UI:Search:Criteria:Title:Default:StartsWith' => '%1$s comienza con %2$s', + 'UI:Search:Criteria:Title:Default:EndsWith' => '%1$s termina con %2$s', + 'UI:Search:Criteria:Title:Default:RegExp' => '%1$s coincide con %2$s', + 'UI:Search:Criteria:Title:Default:GreaterThan' => '%1$s > %2$s', + 'UI:Search:Criteria:Title:Default:GreaterThanOrEquals' => '%1$s >= %2$s', + 'UI:Search:Criteria:Title:Default:LessThan' => '%1$s < %2$s', 'UI:Search:Criteria:Title:Default:LessThanOrEquals' => '%1$s <= %2$s', 'UI:Search:Criteria:Title:Default:Different' => '%1$s ≠ %2$s', 'UI:Search:Criteria:Title:Default:Between' => '%1$s entre [%2$s]', @@ -1534,43 +1565,49 @@ Cuando se asocien con un disparador, cada acción recibe un número de "orden", // - Criteria operators // - Default widget - 'UI:Search:Criteria:Operator:Default:Empty' => 'Está vacío', - 'UI:Search:Criteria:Operator:Default:NotEmpty' => 'No está vacío', - 'UI:Search:Criteria:Operator:Default:Equals' => 'Igual', - 'UI:Search:Criteria:Operator:Default:Between' => 'Entre', + 'UI:Search:Criteria:Operator:Default:Empty' => 'Está vacío', + 'UI:Search:Criteria:Operator:Default:NotEmpty' => 'No está vacío', + 'UI:Search:Criteria:Operator:Default:Equals' => 'Igual', + 'UI:Search:Criteria:Operator:Default:Between' => 'Entre', // - String widget - 'UI:Search:Criteria:Operator:String:Contains' => 'Contiene', - 'UI:Search:Criteria:Operator:String:StartsWith' => 'Comienza con', - 'UI:Search:Criteria:Operator:String:EndsWith' => 'Termina con', - 'UI:Search:Criteria:Operator:String:RegExp' => 'Exp. Regular', + 'UI:Search:Criteria:Operator:String:Contains' => 'Contiene', + 'UI:Search:Criteria:Operator:String:StartsWith' => 'Comienza con', + 'UI:Search:Criteria:Operator:String:EndsWith' => 'Termina con', + 'UI:Search:Criteria:Operator:String:RegExp' => 'Exp. Regular', // - Numeric widget - 'UI:Search:Criteria:Operator:Numeric:Equals' => 'Igual', // => '=', - 'UI:Search:Criteria:Operator:Numeric:GreaterThan' => 'Mayor', // => '>', - 'UI:Search:Criteria:Operator:Numeric:GreaterThanOrEquals' => 'Mayor / igual', // > '>=', - 'UI:Search:Criteria:Operator:Numeric:LessThan' => 'Menor', // => '<', - 'UI:Search:Criteria:Operator:Numeric:LessThanOrEquals' => 'Menor / igual', // > '<=', - 'UI:Search:Criteria:Operator:Numeric:Different' => 'Diferente', // => '≠', + 'UI:Search:Criteria:Operator:Numeric:Equals' => 'Igual', + // => '=', + 'UI:Search:Criteria:Operator:Numeric:GreaterThan' => 'Mayor', + // => '>', + 'UI:Search:Criteria:Operator:Numeric:GreaterThanOrEquals' => 'Mayor / igual', + // > '>=', + 'UI:Search:Criteria:Operator:Numeric:LessThan' => 'Menor', + // => '<', + 'UI:Search:Criteria:Operator:Numeric:LessThanOrEquals' => 'Menor / igual', + // > '<=', + 'UI:Search:Criteria:Operator:Numeric:Different' => 'Diferente', + // => '≠', // - Tag Set Widget - 'UI:Search:Criteria:Operator:TagSet:Matches' => 'Matches~~', + 'UI:Search:Criteria:Operator:TagSet:Matches' => 'Coincidencias', // - Other translations - 'UI:Search:Value:Filter:Placeholder' => 'Filtro...', - 'UI:Search:Value:Search:Placeholder' => 'Búsqueda...', - 'UI:Search:Value:Autocomplete:StartTyping' => 'Inicie escribiento posibles valores.', - 'UI:Search:Value:Autocomplete:Wait' => 'Por favor espere...', - 'UI:Search:Value:Autocomplete:NoResult' => 'Sin Resultados.', - 'UI:Search:Value:Toggler:CheckAllNone' => 'Marcar todos / ninguno', - 'UI:Search:Value:Toggler:CheckAllNoneFiltered' => 'Marcar todos / ninguno visible', + 'UI:Search:Value:Filter:Placeholder' => 'Filtro...', + 'UI:Search:Value:Search:Placeholder' => 'Búsqueda...', + 'UI:Search:Value:Autocomplete:StartTyping' => 'Inicie escribiento posibles valores.', + 'UI:Search:Value:Autocomplete:Wait' => 'Por favor espere...', + 'UI:Search:Value:Autocomplete:NoResult' => 'Sin Resultados.', + 'UI:Search:Value:Toggler:CheckAllNone' => 'Marcar todos / ninguno', + 'UI:Search:Value:Toggler:CheckAllNoneFiltered' => 'Marcar todos / ninguno visible', // - Widget other translations - 'UI:Search:Criteria:Numeric:From' => 'De', - 'UI:Search:Criteria:Numeric:Until' => 'Para', - 'UI:Search:Criteria:Numeric:PlaceholderFrom' => 'Cualquier', - 'UI:Search:Criteria:Numeric:PlaceholderUntil' => 'Cualquier', - 'UI:Search:Criteria:DateTime:From' => 'De', - 'UI:Search:Criteria:DateTime:FromTime' => 'De', - 'UI:Search:Criteria:DateTime:Until' => 'hasta', - 'UI:Search:Criteria:DateTime:UntilTime' => 'hasta', + 'UI:Search:Criteria:Numeric:From' => 'De', + 'UI:Search:Criteria:Numeric:Until' => 'Para', + 'UI:Search:Criteria:Numeric:PlaceholderFrom' => 'Cualquier', + 'UI:Search:Criteria:Numeric:PlaceholderUntil' => 'Cualquier', + 'UI:Search:Criteria:DateTime:From' => 'De', + 'UI:Search:Criteria:DateTime:FromTime' => 'De', + 'UI:Search:Criteria:DateTime:Until' => 'hasta', + 'UI:Search:Criteria:DateTime:UntilTime' => 'hasta', 'UI:Search:Criteria:DateTime:PlaceholderFrom' => 'Cualquier fecha', 'UI:Search:Criteria:DateTime:PlaceholderFromTime' => 'Cualquier fecha', 'UI:Search:Criteria:DateTime:PlaceholderUntil' => 'Cualquier fecha', @@ -1591,32 +1628,32 @@ Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( 'Expression:Operator:OR' => ' O ', 'Expression:Operator:=' => ': ', - 'Expression:Unit:Short:DAY' => 'd', - 'Expression:Unit:Short:WEEK' => 's', + 'Expression:Unit:Short:DAY' => 'd', + 'Expression:Unit:Short:WEEK' => 's', 'Expression:Unit:Short:MONTH' => 'm', - 'Expression:Unit:Short:YEAR' => 'a', + 'Expression:Unit:Short:YEAR' => 'a', - 'Expression:Unit:Long:DAY' => 'día(s)', - 'Expression:Unit:Long:HOUR' => 'hora(s)', + 'Expression:Unit:Long:DAY' => 'día(s)', + 'Expression:Unit:Long:HOUR' => 'hora(s)', 'Expression:Unit:Long:MINUTE' => 'minuto(s)', - 'Expression:Verb:NOW' => 'Ahora', - 'Expression:Verb:ISNULL' => ': undefined~~', + 'Expression:Verb:NOW' => 'Ahora', + 'Expression:Verb:ISNULL' => ': Nulo', )); // // iTop Newsroom menu // Dict::Add('ES CR', 'Spanish', 'Español, Castellaño', array( - 'UI:Newsroom:NoNewMessage' => 'No new message~~', + 'UI:Newsroom:NoNewMessage' => 'Sin Mensajes', 'UI:Newsroom:XNewMessage' => '%1$s new message(s)~~', - 'UI:Newsroom:MarkAllAsRead' => 'Mark all messages as read~~', - 'UI:Newsroom:ViewAllMessages' => 'View all messages~~', - 'UI:Newsroom:Preferences' => 'Newsroom preferences~~', - 'UI:Newsroom:ConfigurationLink' => 'Configuration~~', - 'UI:Newsroom:ResetCache' => 'Reset cache~~', - 'UI:Newsroom:DisplayMessagesFor_Provider' => 'Display messages from %1$s~~', - 'UI:Newsroom:DisplayAtMost_X_Messages' => 'Display up to %1$s messages in the %2$s menu.~~', + 'UI:Newsroom:MarkAllAsRead' => 'Marcar todos los mensajes como leídos', + 'UI:Newsroom:ViewAllMessages' => 'Ver todos los mensajes', + 'UI:Newsroom:Preferences' => 'Preferencia de Notificaciones', + 'UI:Newsroom:ConfigurationLink' => 'Configuración', + 'UI:Newsroom:ResetCache' => 'Borrar caché', + 'UI:Newsroom:DisplayMessagesFor_Provider' => 'Desplegar mensajes de %1$s', + 'UI:Newsroom:DisplayAtMost_X_Messages' => 'Desplegar hasta %1$s mensajes en el menú %2$s.', )); diff --git a/pages/ajax.render.php b/pages/ajax.render.php index 0ecdaffea..84e3cffb6 100644 --- a/pages/ajax.render.php +++ b/pages/ajax.render.php @@ -965,7 +965,7 @@ try break; case 'save_dashboard': - $sDashboardId = utils::ReadParam('dashboard_id', '', false, 'raw_data'); + $sDashboardId = utils::ReadParam('dashboard_id', '', false, 'element_identifier'); $aExtraParams = utils::ReadParam('extra_params', array(), false, 'raw_data'); $sReloadURL = utils::ReadParam('reload_url', '', false, 'raw_data'); appUserPreferences::SetPref('display_original_dashboard_'.$sDashboardId, false); @@ -979,17 +979,16 @@ try $oDashboard = new RuntimeDashboard($sDashboardId); $oDashboard->FromParams($aParams); $oDashboard->Save(); - $sDashboardFile = addslashes(utils::ReadParam('file', '', false, 'raw_data')); - $sDivId = utils::Sanitize($sDashboardId, '', 'element_identifier'); + $sDashboardFile = addslashes(utils::ReadParam('file', '', false, 'string')); // trigger a reload of the current page since the dashboard just changed $oPage->add_script( <<add(json_encode($aResult)); break; + /** @noinspection PhpMissingBreakStatementInspection cke_upload_and_browse and cke_browse are chained */ case 'cke_upload_and_browse': $sTempId = utils::ReadParam('temp_id', '', false, 'transaction_id'); $sObjClass = utils::ReadParam('obj_class', '', false, 'class'); @@ -2308,11 +2308,32 @@ EOF $oPage->add_linked_script(utils::GetAbsoluteUrlAppRoot().'js/jquery.magnific-popup.min.js'); $sImgUrl = utils::GetAbsoluteUrlAppRoot().INLINEIMAGE_DOWNLOAD_URL; + /** @noinspection SuspiciousAssignmentsInspection cke_upload_and_browse and cke_browse are chained */ $sTempId = utils::ReadParam('temp_id', '', false, 'transaction_id'); $sClass = utils::ReadParam('obj_class', '', false, 'class'); $iObjectId = utils::ReadParam('obj_key', 0, false, 'integer'); $sCKEditorFuncNum = utils::ReadParam('CKEditorFuncNum', ''); + if (empty($sTempId)) { + throw new SecurityException('Cannot access endpoint with empty temp_id parameter'); + } + if (false === privUITransaction::IsTransactionValid($sTempId, false)) { + throw new SecurityException('Access rejected'); + } + if (false === MetaModel::IsValidClass($sClass)) { + throw new CoreUnexpectedValue('Invalid object'); + } + if ($iObjectId > 0) { + // searching for object in the DB with a count query + // using DBSearch so that user rights are applied ! + $oSearch = new DBObjectSearch($sClass); + $oSearch->AddCondition(MetaModel::DBGetKey($sClass), $iObjectId, '='); + $oSet = new CMDBObjectSet($oSearch); + if (false === $oSet->CountExceeds(0)) { + throw new SecurityException(Dict::S('UI:ObjectDoesNotExist')); + } + } + $sPostUrl = utils::GetAbsoluteUrlAppRoot().'pages/ajax.render.php?CKEditorFuncNum='.$sCKEditorFuncNum; $oPage->add_style( diff --git a/setup/wizardsteps.class.inc.php b/setup/wizardsteps.class.inc.php index de3f60d1d..c5696326e 100644 --- a/setup/wizardsteps.class.inc.php +++ b/setup/wizardsteps.class.inc.php @@ -2544,11 +2544,13 @@ class WizStepDone extends WizardStep $oPage->ok("The installation completed successfully."); } + $bHasBackup = false; if (($this->oWizard->GetParameter('mode', '') == 'upgrade') && $this->oWizard->GetParameter('db_backup', false) && $this->oWizard->GetParameter('authent', false)) { $sBackupDestination = $this->oWizard->GetParameter('db_backup_path', ''); if (file_exists($sBackupDestination.'.tar.gz')) { + $bHasBackup = true; // To mitigate security risks: pass only the filename without the extension, the download will add the extension itself $oPage->p('Your backup is ready'); $oPage->p(' Download '.basename($sBackupDestination).''); @@ -2675,7 +2677,10 @@ class WizStepDone extends WizardStep // avoid leaving in a dirty state SetupUtils::ExitMaintenanceMode(false); SetupUtils::ExitReadOnlyMode(false); - SetupUtils::EraseSetupToken(); + + if (false === $bHasBackup) { + SetupUtils::EraseSetupToken(); + } } public function CanMoveForward() @@ -2698,6 +2703,7 @@ class WizStepDone extends WizardStep public function AsyncAction(WebPage $oPage, $sCode, $aParameters) { + SetupUtils::EraseSetupToken(); // For security reasons: add the extension now so that this action can be used to read *only* .tar.gz files from the disk... $sBackupFile = $aParameters['backup'].'.tar.gz'; if (file_exists($sBackupFile)) diff --git a/synchro/synchro_import.php b/synchro/synchro_import.php index f5b0bada9..7e4b55ea2 100644 --- a/synchro/synchro_import.php +++ b/synchro/synchro_import.php @@ -491,16 +491,16 @@ try $iLoopTimeLimit = MetaModel::GetConfig()->Get('max_execution_time_per_loop'); $oMutex = new iTopMutex('synchro_import_'.$oDataSource->GetKey()); $oMutex->Lock(); - set_time_limit(intval($iLoopTimeLimit)); foreach ($aData as $iRow => $aRow) { + /** @noinspection DisconnectedForeachInstructionInspection */ + set_time_limit($iLoopTimeLimit); $sReconciliationCondition = '`primary_key` = '.CMDBSource::Quote($aRow[$iPrimaryKeyCol]); $sSelect = "SELECT COUNT(*) FROM `$sTable` WHERE $sReconciliationCondition"; $aRes = CMDBSource::QueryToArray($sSelect); $iCount = (int)$aRes[0]['COUNT(*)']; - if ($iCount === 0) - { + if ($iCount === 0) { // No record... create it // $iCountCreations++;