From f4679c6cd5af9adb7fabbedcb857324dc4eb0d03 Mon Sep 17 00:00:00 2001 From: nuxsmin Date: Wed, 11 Jan 2017 01:28:34 +0100 Subject: [PATCH] * [DEV] Upgrading bugfixes * [DEV] Updated translations * [DEV] Minor tweaks --- .../Authenticator/ActionController.class.php | 10 +- .../Authenticator/LoginController.class.php | 3 +- .../PreferencesController.class.php | 2 +- .../en_US/LC_MESSAGES/authenticator.mo | Bin 2585 -> 2585 bytes .../en_US/LC_MESSAGES/authenticator.po | 10 +- inc/SP/Api/ApiRequest.class.php | 2 +- inc/SP/Auth/Ldap/LdapBase.class.php | 2 +- inc/SP/Controller/LoginController.class.php | 2 +- inc/SP/Controller/MainController.class.php | 1 + inc/SP/Core/Crypt.class.php | 4 +- .../Mgmt/CustomFields/CustomField.class.php | 25 +- .../CustomFields/CustomFieldDef.class.php | 27 +- .../CustomFieldDefSearch.class.php | 11 +- .../CustomFields/CustomFieldsUtil.class.php | 25 +- inc/SP/Mgmt/Profiles/Profile.class.php | 14 +- inc/SP/Mgmt/PublicLinks/PublicLink.class.php | 56 +- .../PublicLinks/PublicLinkSearch.class.php | 15 +- inc/SP/Mgmt/Users/UserLdapSync.class.php | 2 +- inc/SP/Mgmt/Users/UserPass.class.php | 81 +- inc/SP/Mgmt/Users/UserPreferences.class.php | 12 +- .../Mgmt/Users/UserPreferencesUtil.class.php | 10 +- inc/SP/Util/Util.class.php | 14 +- inc/locales/en_US/LC_MESSAGES/messages.mo | Bin 82394 -> 80339 bytes inc/locales/en_US/LC_MESSAGES/messages.po | 1267 ++++++----------- inc/themes/material-blue/css/search-grid.css | 3 +- .../material-blue/css/search-grid.css.map | 2 +- .../material-blue/css/search-grid.min.css | 2 +- inc/themes/material-blue/css/search-grid.scss | 1 + .../material-blue/views/account/account.inc | 2 +- .../material-blue/views/itemshow/profiles.inc | 2 +- .../material-blue/views/itemshow/users.inc | 4 +- .../material-blue/views/main/body-footer.inc | 2 +- .../views/main/body-header-menu.inc | 4 +- .../material-blue/views/main/header.inc | 2 +- .../userpreferences/preferences-security.inc | 80 -- js/app-actions.min.js | 2 +- js/app-main.min.js | 2 +- 37 files changed, 571 insertions(+), 1132 deletions(-) delete mode 100644 inc/themes/material-blue/views/userpreferences/preferences-security.inc diff --git a/inc/Plugins/Authenticator/ActionController.class.php b/inc/Plugins/Authenticator/ActionController.class.php index 17d97697..829829f3 100644 --- a/inc/Plugins/Authenticator/ActionController.class.php +++ b/inc/Plugins/Authenticator/ActionController.class.php @@ -108,12 +108,12 @@ class ActionController implements ItemControllerInterface $twoFa = new Authenticator($this->itemId, CoreSession::getUserData()->getUserLogin(), $AuthenticatorData->getIV()); if (!$twoFa->verifyKey($pin)) { - $this->jsonResponse->setDescription(_('Código incorrecto')); + $this->jsonResponse->setDescription(_t('authenticator', 'Código incorrecto')); Json::returnJson($this->jsonResponse); } if (Checks::demoIsEnabled()) { - $this->jsonResponse->setDescription(_('Ey, esto es una DEMO!!')); + $this->jsonResponse->setDescription(_t('authenticator', 'Ey, esto es una DEMO!!')); Json::returnJson($this->jsonResponse); } @@ -139,7 +139,7 @@ class ActionController implements ItemControllerInterface Plugin::getItem($PluginData)->update(); $this->jsonResponse->setStatus(0); - $this->jsonResponse->setDescription(_('Preferencias actualizadas')); + $this->jsonResponse->setDescription(_t('authenticator', 'Preferencias actualizadas')); Json::returnJson($this->jsonResponse); } @@ -168,13 +168,13 @@ class ActionController implements ItemControllerInterface Session::setTwoFApass(true); CoreSession::setAuthCompleted(true); - $this->jsonResponse->setDescription(_('Código correcto')); + $this->jsonResponse->setDescription(_t('authenticator', 'Código correcto')); $this->jsonResponse->setStatus(0); } else { Session::setTwoFApass(false); CoreSession::setAuthCompleted(false); - $this->jsonResponse->setDescription(_('Código incorrecto')); + $this->jsonResponse->setDescription(_t('authenticator', 'Código incorrecto')); } Json::returnJson($this->jsonResponse); diff --git a/inc/Plugins/Authenticator/LoginController.class.php b/inc/Plugins/Authenticator/LoginController.class.php index 5aba3ba5..8abde344 100644 --- a/inc/Plugins/Authenticator/LoginController.class.php +++ b/inc/Plugins/Authenticator/LoginController.class.php @@ -64,6 +64,7 @@ class LoginController * @param ControllerBase $Controller * @throws \SP\Core\Exceptions\FileNotFoundException * @throws \SP\Core\Exceptions\SPException + * @throws \SP\Core\Exceptions\InvalidClassException */ public function get2FA(ControllerBase $Controller) { @@ -112,7 +113,7 @@ class LoginController $NoticeData = new NoticeData(); $NoticeData->setNoticeComponent($this->Plugin->getName()); $NoticeData->setNoticeUserId($userId); - $NoticeData->setNoticeType(_('Aviso Caducidad')); + $NoticeData->setNoticeType(_t('authenticator', 'Aviso Caducidad')); if (count(Notice::getItem($NoticeData)->getByUserCurrentDate()) > 0) { return; diff --git a/inc/Plugins/Authenticator/PreferencesController.class.php b/inc/Plugins/Authenticator/PreferencesController.class.php index bdc8deed..1ca44f9f 100644 --- a/inc/Plugins/Authenticator/PreferencesController.class.php +++ b/inc/Plugins/Authenticator/PreferencesController.class.php @@ -94,7 +94,7 @@ class PreferencesController $this->Controller->view->assign('chk2FAEnabled', $AuthenticatorData->isTwofaEnabled()); $this->Controller->view->assign('expireDays', $AuthenticatorData->getExpireDays()); - $this->Controller->view->assign('tabIndex', $this->Controller->addTab(_('Seguridad')), 'security'); + $this->Controller->view->assign('tabIndex', $this->Controller->addTab(_t('authenticator', 'Seguridad')), 'security'); $this->Controller->view->assign('actionId', ActionController::ACTION_TWOFA_SAVE, 'security'); } catch (InvalidArgumentException $e) { } diff --git a/inc/Plugins/Authenticator/locales/en_US/LC_MESSAGES/authenticator.mo b/inc/Plugins/Authenticator/locales/en_US/LC_MESSAGES/authenticator.mo index 6e9c158a087a8e7c029ceeca1da0570ed960f4d2..483a5a5f99a162617ff61dc109d96d440bc4b343 100644 GIT binary patch delta 34 kcmbO!GE-#34pt6BLj?mvD?`i42Ur!L93z9xFIWv(0I1{%D*ylh delta 34 icmbO!GE-#34pt5W3k5@CD\n" "Language-Team: nuxsmin@syspass.org\n" "Language: en_US\n" @@ -37,16 +37,16 @@ msgstr "Rigth code" msgid "No es posible acceder directamente a este archivo" msgstr "Unable to access directly to this file" -#: ../../../LoginController.class.php:115 +#: ../../../LoginController.class.php:116 msgid "Aviso Caducidad" msgstr "Expire Notice" -#: ../../../LoginController.class.php:125 +#: ../../../LoginController.class.php:126 #, php-format msgid "El código 2FA se ha de restablecer en %d días" msgstr "The 2FA code will need to be reset within %d days" -#: ../../../LoginController.class.php:129 +#: ../../../LoginController.class.php:130 msgid "" "El código 2FA ha caducado. Es necesario restablecerlo desde las preferencias" msgstr "The 2FA code is expired. You need to reset it on preferences tab" diff --git a/inc/SP/Api/ApiRequest.class.php b/inc/SP/Api/ApiRequest.class.php index 1fcb28ac..39c0429a 100644 --- a/inc/SP/Api/ApiRequest.class.php +++ b/inc/SP/Api/ApiRequest.class.php @@ -190,7 +190,7 @@ class ApiRequest $this->ApiReflection = new ReflectionClass(SyspassApi::class); if (!$this->ApiReflection->hasMethod($this->data->method)) { - throw new SPException(SPException::SP_WARNING, _('Acción inválida'), '', -32601); + throw new SPException(SPException::SP_WARNING, _('Acción Inválida'), '', -32601); } } diff --git a/inc/SP/Auth/Ldap/LdapBase.class.php b/inc/SP/Auth/Ldap/LdapBase.class.php index ab364c2d..f7995acd 100644 --- a/inc/SP/Auth/Ldap/LdapBase.class.php +++ b/inc/SP/Auth/Ldap/LdapBase.class.php @@ -112,7 +112,7 @@ abstract class LdapBase implements LdapInterface, AuthInterface } $Log->addDescription(_('Conexión a LDAP correcta')); - $Log->addDescription(sprintf(_('Objetos encontrados: %s'), (int)$results['count'])); + $Log->addDescription(sprintf(_('Objetos encontrados: %d'), (int)$results['count'])); $Log->writeLog(); return $results; diff --git a/inc/SP/Controller/LoginController.class.php b/inc/SP/Controller/LoginController.class.php index fd505d3a..8cfb1c93 100644 --- a/inc/SP/Controller/LoginController.class.php +++ b/inc/SP/Controller/LoginController.class.php @@ -289,7 +289,7 @@ class LoginController if ($loadMPass === null) { throw new AuthException(SPException::SP_INFO, _('Es necesaria su clave anterior'), '', self::STATUS_NEED_OLD_PASS); // La clave no está establecida o se ha sido cambiada por el administrador - } else if ($loadMPass === false || !$UserPass->checkUserUpdateMPass()) { + } else if ($loadMPass === false) { throw new AuthException(SPException::SP_INFO, _('La clave maestra no ha sido guardada o es incorrecta'), '', self::STATUS_INVALID_MASTER_PASS); } } diff --git a/inc/SP/Controller/MainController.class.php b/inc/SP/Controller/MainController.class.php index 3aafc3c2..d1c9ab3b 100644 --- a/inc/SP/Controller/MainController.class.php +++ b/inc/SP/Controller/MainController.class.php @@ -95,6 +95,7 @@ class MainController extends ControllerBase implements ActionsInterface $this->view->assign('logo', Init::$WEBURI . '/imgs/logo_full_bg.png'); $this->view->assign('logonobg', Init::$WEBURI . '/imgs/logo_full_nobg.png'); $this->view->assign('httpsEnabled', Checks::httpsEnabled()); + $this->view->assign('lang', Init::isLoggedIn() ? Language::$userLang : Language::$globalLang); $this->view->assign('loadApp', Session::getAuthCompleted() && !Config::getConfig()->isMaintenance()); diff --git a/inc/SP/Core/Crypt.class.php b/inc/SP/Core/Crypt.class.php index 5e41118e..9a2f467d 100644 --- a/inc/SP/Core/Crypt.class.php +++ b/inc/SP/Core/Crypt.class.php @@ -250,9 +250,7 @@ class Crypt { if (empty($cryptData) || empty($cryptIV)){ return false; - } - - if (null === $password) { + } elseif (null === $password) { $password = SessionUtil::getSessionMPass(); } diff --git a/inc/SP/Mgmt/CustomFields/CustomField.class.php b/inc/SP/Mgmt/CustomFields/CustomField.class.php index 05598f5e..221e0e21 100644 --- a/inc/SP/Mgmt/CustomFields/CustomField.class.php +++ b/inc/SP/Mgmt/CustomFields/CustomField.class.php @@ -228,20 +228,14 @@ class CustomField extends CustomFieldBase implements ItemInterface $Data->addParam($this->itemData->getModule()); $Data->addParam($id); + /** @var CustomFieldData[] $queryRes */ $queryRes = DB::getResultsArray($Data); $customFields = []; foreach ($queryRes as $CustomFieldData) { - /** - * @var CustomFieldData $CustomFieldData - * @var CustomFieldDefData $fieldDef - */ - $fieldDef = unserialize($CustomFieldData->getCustomfielddefField()); - - if (get_class($fieldDef) === '__PHP_Incomplete_Class') { - $fieldDef = Util::castToClass(CustomFieldDefData::class, $fieldDef); - } + /** @var CustomFieldDefData $fieldDef */ + $fieldDef = Util::castToClass(CustomFieldDefData::class, $CustomFieldData->getCustomfielddefField()); $CustomFieldData->setDefinition($fieldDef); $CustomFieldData->setDefinitionId($CustomFieldData->getCustomfielddefId()); @@ -300,6 +294,7 @@ class CustomField extends CustomFieldBase implements ItemInterface $Data->setQuery($query); $Data->addParam($this->itemData->getModule()); + /** @var CustomFieldDefData[] $queryRes */ $queryRes = DB::getResultsArray($Data); if (count($queryRes) === 0) { @@ -307,16 +302,8 @@ class CustomField extends CustomFieldBase implements ItemInterface } foreach ($queryRes as $CustomFieldDef) { - /** - * @var CustomFieldDefData $CustomFieldDef - * @var CustomFieldDefData $fieldDef - */ - - $fieldDef = unserialize($CustomFieldDef->getCustomfielddefField()); - - if (get_class($fieldDef) === '__PHP_Incomplete_Class') { - $fieldDef = Util::castToClass(CustomFieldDefData::class, $fieldDef); - } + /** @var CustomFieldDefData $fieldDef */ + $fieldDef = Util::castToClass(CustomFieldDefData::class, $CustomFieldDef->getCustomfielddefField()); $CustomFieldData = new CustomFieldData(); $CustomFieldData->setDefinition($fieldDef); diff --git a/inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php b/inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php index 8c183a58..b7ed6a32 100644 --- a/inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php +++ b/inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php @@ -174,23 +174,15 @@ class CustomFieldDef extends CustomFieldBase implements ItemInterface $Data->setQuery($query); $Data->addParam($id); + /** @var CustomFieldDefData $CustomFieldDef */ $CustomFieldDef = DB::getResults($Data); if ($CustomFieldDef === false) { throw new SPException(SPException::SP_INFO, _('Campo personalizado no encontrado')); } - /** - * @var CustomFieldDefData $CustomFieldDef - * @var CustomFieldDefData $fieldDef - */ - - $fieldDef = unserialize($CustomFieldDef->getCustomfielddefField()); - - if (get_class($fieldDef) === '__PHP_Incomplete_Class') { - $fieldDef = Util::castToClass($this->getDataModel(), $fieldDef); - } - + /** @var CustomFieldDefData $fieldDef */ + $fieldDef = Util::castToClass($this->getDataModel(), $CustomFieldDef->getCustomfielddefField()); $fieldDef->setId($CustomFieldDef->getCustomfielddefId()); return $fieldDef; @@ -234,6 +226,7 @@ class CustomFieldDef extends CustomFieldBase implements ItemInterface $Data->setMapClassName($this->getDataModel()); $Data->setQuery($query); + /** @var CustomFieldDefData[] $queryRes */ $queryRes = DB::getResultsArray($Data); if (count($queryRes) === 0) { @@ -243,17 +236,9 @@ class CustomFieldDef extends CustomFieldBase implements ItemInterface $fields = []; foreach ($queryRes as $CustomFieldDef) { - /** - * @var CustomFieldDefData $CustomFieldDef - * @var CustomFieldDefData $fieldDef - */ - - $fieldDef = unserialize($CustomFieldDef->getCustomfielddefField()); - - if (get_class($fieldDef) === '__PHP_Incomplete_Class') { - $fieldDef = Util::castToClass($this->getDataModel(), $fieldDef); - } + /** @var CustomFieldDefData $fieldDef */ + $fieldDef = Util::castToClass($this->getDataModel(), $CustomFieldDef->getCustomfielddefField()); $fieldDef->setId($CustomFieldDef->getCustomfielddefId()); $fields[] = $fieldDef; diff --git a/inc/SP/Mgmt/CustomFields/CustomFieldDefSearch.class.php b/inc/SP/Mgmt/CustomFields/CustomFieldDefSearch.class.php index 78e441d7..1db8271b 100644 --- a/inc/SP/Mgmt/CustomFields/CustomFieldDefSearch.class.php +++ b/inc/SP/Mgmt/CustomFields/CustomFieldDefSearch.class.php @@ -71,20 +71,15 @@ class CustomFieldDefSearch extends CustomFieldBase implements ItemSearchInterfac DB::setFullRowCount(); + /** @var CustomFieldDefData[] $queryRes */ $queryRes = DB::getResultsArray($Data); $customFields = []; foreach ($queryRes as $CustomField) { - /** - * @var CustomFieldDefData $CustomField - * @var CustomFieldDefData $fieldDef - */ - $fieldDef = unserialize($CustomField->getCustomfielddefField()); - if (get_class($fieldDef) === '__PHP_Incomplete_Class') { - $fieldDef = Util::castToClass($this->getDataModel(), $fieldDef); - } + /** @var CustomFieldDefData $fieldDef */ + $fieldDef = Util::castToClass($this->getDataModel(), $CustomField->getCustomfielddefField()); if ($SearchData->getSeachString() === '' || stripos($fieldDef->getName(), $SearchData->getSeachString()) !== false diff --git a/inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php b/inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php index 09675205..a1049841 100644 --- a/inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php +++ b/inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php @@ -30,9 +30,11 @@ defined('APP_ROOT') || die(_('No es posible acceder directamente a este archivo' use SP\Core\Crypt; use SP\Core\Exceptions\SPException; use SP\DataModel\CustomFieldData; +use SP\DataModel\CustomFieldDefData; use SP\Log\Log; use SP\Storage\DB; use SP\Storage\QueryData; +use SP\Util\Util; /** * Class CustomFieldsUtil utilidades para los campos personalizados @@ -119,7 +121,7 @@ class CustomFieldsUtil /** * Crear los campos personalizados de un elemento * - * @param array $customFields + * @param array $customFields * @param CustomFieldData $CustomFieldData * @throws \SP\Core\Exceptions\InvalidClassException * @throws \SP\Core\Exceptions\SPException @@ -137,7 +139,7 @@ class CustomFieldsUtil /** * Actualizar los campos personalizados de un elemento * - * @param array $customFields + * @param array $customFields * @param CustomFieldData $CustomFieldData * @throws \SP\Core\Exceptions\InvalidClassException * @throws \SP\Core\Exceptions\SPException @@ -163,11 +165,15 @@ class CustomFieldsUtil $Log = new Log(__FUNCTION__); $query = /** @lang SQL */ - 'SELECT customfielddata_defId FROM customFieldsData WHERE customfielddata_moduleId = 20'; + 'SELECT customfielddef_id, customfielddef_field + FROM customFieldsData + LEFT JOIN customFieldsDef ON customfielddef_id = customfielddata_defId + WHERE customfielddata_moduleId = 20'; $Data = new QueryData(); $Data->setQuery($query); + /** @var CustomFieldDefData[] $oldDefs */ $oldDefs = DB::getResultsArray($Data); try { @@ -188,8 +194,9 @@ class CustomFieldsUtil customfielddef_field = ? WHERE customfielddef_id= ? LIMIT 1'; - foreach ($oldDefs as $def) { - $CustomFieldDef = CustomFieldDef::getItem()->getById($def->customfielddata_defId); + foreach ($oldDefs as $CustomFieldDef) { + $CustomFieldDef = Util::castToClass(CustomFieldDefData::class, $CustomFieldDef->getCustomfielddefField()); + $CustomFieldDef->setId($CustomFieldDef->getCustomfielddefId()); $CustomFieldDef->setModule(10); $CustomFieldDef->setCustomfielddefModule(10); @@ -197,13 +204,13 @@ class CustomFieldsUtil $Data->setQuery($query); $Data->addParam(10); $Data->addParam(serialize($CustomFieldDef)); - $Data->addParam($CustomFieldDef->getId()); + $Data->addParam($CustomFieldDef->getCustomfielddefId()); if (DB::getQuery($Data) === false) { - throw new SPException(SPException::SP_ERROR, _('Error al actualizar el campo personalizado')); + $Log->addDetails(_('Error al actualizar el campo personalizado'), $CustomFieldDef->getCustomfielddefId()); + } else { + $Log->addDetails(_('Campo actualizado'), $CustomFieldDef->getCustomfielddefId()); } - - $Log->addDetails(_('Campo actualizado'), $def->customfielddata_defId); } } diff --git a/inc/SP/Mgmt/Profiles/Profile.class.php b/inc/SP/Mgmt/Profiles/Profile.class.php index a8f47897..f04ae7df 100644 --- a/inc/SP/Mgmt/Profiles/Profile.class.php +++ b/inc/SP/Mgmt/Profiles/Profile.class.php @@ -183,18 +183,14 @@ class Profile extends ProfileBase implements ItemInterface, ItemSelectInterface $Data->addParam($id); /** - * @var ProfileBaseData $ProfileData + * @var ProfileBaseData $queryRes * @var ProfileData $Profile */ - $ProfileData = DB::getResults($Data); - $Profile = unserialize($ProfileData->getUserprofileProfile()); + $queryRes = DB::getResults($Data); - if (get_class($Profile) === '__PHP_Incomplete_Class') { - $Profile = Util::castToClass($this->getDataModel(), $Profile); - } - - $Profile->setUserprofileId($ProfileData->getUserprofileId()); - $Profile->setUserprofileName($ProfileData->getUserprofileName()); + $Profile = Util::castToClass($this->getDataModel(), $queryRes->getUserprofileProfile()); + $Profile->setUserprofileId($queryRes->getUserprofileId()); + $Profile->setUserprofileName($queryRes->getUserprofileName()); return $Profile; } diff --git a/inc/SP/Mgmt/PublicLinks/PublicLink.class.php b/inc/SP/Mgmt/PublicLinks/PublicLink.class.php index 606d73e4..00b94024 100644 --- a/inc/SP/Mgmt/PublicLinks/PublicLink.class.php +++ b/inc/SP/Mgmt/PublicLinks/PublicLink.class.php @@ -175,7 +175,7 @@ class PublicLink extends PublicLinkBase implements ItemInterface public function delete($id) { if (is_array($id)) { - foreach ($id as $itemId){ + foreach ($id as $itemId) { $this->delete($itemId); } @@ -261,22 +261,15 @@ class PublicLink extends PublicLinkBase implements ItemInterface $Data->setQuery($query); $Data->addParam($id); + /** @var PublicLinkBaseData $queryRes */ $queryRes = DB::getResults($Data); if ($queryRes === false) { throw new SPException(SPException::SP_ERROR, _('Error al obtener enlace')); } - /** - * @var $queryRes PublicLinkBaseData - * @var $PublicLink PublicLinkData - */ - $PublicLink = unserialize($queryRes->getPublicLinkLinkData()); - - if (get_class($PublicLink) === '__PHP_Incomplete_Class') { - $PublicLink = Util::castToClass($this->getDataModel(), $PublicLink); - } - + /** @var $PublicLink PublicLinkData */ + $PublicLink = Util::castToClass($this->getDataModel(), $queryRes->getPublicLinkLinkData()); $PublicLink->setPublicLinkId($id); return $PublicLink; @@ -294,20 +287,14 @@ class PublicLink extends PublicLinkBase implements ItemInterface $Data->setMapClassName($this->getDataModel()); $Data->setQuery($query); + /** @var PublicLinkData[] $queryRes */ + $queryRes = DB::getResultsArray($Data); + $publicLinks = []; - foreach (DB::getResultsArray($Data) as $PublicLinkListData) { - /** - * @var PublicLinkData $PublicLinkData - * @var PublicLinkListData $PublicLinkListData - */ - - $PublicLinkData = unserialize($PublicLinkListData->getPublicLinkLinkData()); - - if (get_class($PublicLinkData) === '__PHP_Incomplete_Class') { - $PublicLinkData = Util::castToClass($this->getDataModel(), $PublicLinkData); - } - + foreach ($queryRes as $PublicLinkListData) { + /** @var PublicLinkData $PublicLinkData */ + $PublicLinkData = Util::castToClass($this->getDataModel(), $PublicLinkListData->getPublicLinkLinkData()); $PublicLinkData->setPublicLinkId($PublicLinkListData->getPublicLinkId()); $publicLinks[] = $this->getItemForList($PublicLinkData); @@ -373,27 +360,20 @@ class PublicLink extends PublicLinkBase implements ItemInterface $Data->setQuery($query); $Data->addParam($hash); + /** @var PublicLinkBaseData $queryRes */ $queryRes = DB::getResults($Data); if ($queryRes === false) { throw new SPException(SPException::SP_ERROR, _('Error al obtener enlace')); - } elseif (count($queryRes) > 0) { - /** - * @var $queryRes PublicLinkBaseData - * @var $PublicLink PublicLinkData - */ - $PublicLink = unserialize($queryRes->getPublicLinkLinkData()); - - if (get_class($PublicLink) === '__PHP_Incomplete_Class') { - $PublicLink = Util::castToClass($this->getDataModel(), $PublicLink); - } - - $PublicLink->setPublicLinkId($queryRes->getPublicLinkId()); - - return $PublicLink; } - return false; + /** + * @var $PublicLink PublicLinkData + */ + $PublicLink = Util::castToClass($this->getDataModel(), $queryRes->getPublicLinkLinkData()); + $PublicLink->setPublicLinkId($queryRes->getPublicLinkId()); + + return $PublicLink; } /** diff --git a/inc/SP/Mgmt/PublicLinks/PublicLinkSearch.class.php b/inc/SP/Mgmt/PublicLinks/PublicLinkSearch.class.php index 722cd952..adc34739 100644 --- a/inc/SP/Mgmt/PublicLinks/PublicLinkSearch.class.php +++ b/inc/SP/Mgmt/PublicLinks/PublicLinkSearch.class.php @@ -51,7 +51,7 @@ class PublicLinkSearch extends PublicLinkBase implements ItemSearchInterface public function getMgmtSearch(ItemSearchData $SearchData) { $Data = new QueryData(); - $Data->setMapClassName('SP\DataModel\PublicLinkListData'); + $Data->setMapClassName(PublicLinkListData::class); $Data->setSelect('publicLink_id, publicLink_hash, publicLink_linkData'); $Data->setFrom('publicLinks'); $Data->setLimit('?,?'); @@ -60,25 +60,18 @@ class PublicLinkSearch extends PublicLinkBase implements ItemSearchInterface DB::setFullRowCount(); + /** @var PublicLinkListData[] $queryRes */ $queryRes = DB::getResultsArray($Data); $publicLinks = []; $publicLinks['count'] = $Data->getQueryNumRows(); foreach ($queryRes as $PublicLinkListData) { - /** - * @var PublicLinkListData $PublicLinkListData - * @var PublicLinkData $PublicLinkData - */ - $PublicLinkData = unserialize($PublicLinkListData->getPublicLinkLinkData()); - - if (get_class($PublicLinkData) === '__PHP_Incomplete_Class') { - $PublicLinkData = Util::castToClass($this->getDataModel(), $PublicLinkData); - } + $PublicLinkData = Util::castToClass($this->getDataModel(), $PublicLinkListData->getPublicLinkLinkData()); $PublicLinkListData->setAccountName(AccountUtil::getAccountNameById($PublicLinkData->getItemId())); $PublicLinkListData->setUserLogin(UserUtil::getUserLoginById($PublicLinkData->getUserId())); - $PublicLinkListData->setNotify(($PublicLinkData->isNotify()) ? _('ON') : _('OFF')); + $PublicLinkListData->setNotify($PublicLinkData->isNotify() ? _('ON') : _('OFF')); $PublicLinkListData->setDateAdd(date('Y-m-d H:i', $PublicLinkData->getDateAdd())); $PublicLinkListData->setDateExpire(date('Y-m-d H:i', $PublicLinkData->getDateExpire())); $PublicLinkListData->setCountViews($PublicLinkData->getCountViews() . '/' . $PublicLinkData->getMaxCountViews()); diff --git a/inc/SP/Mgmt/Users/UserLdapSync.class.php b/inc/SP/Mgmt/Users/UserLdapSync.class.php index b7e8e5e5..e2270c1b 100644 --- a/inc/SP/Mgmt/Users/UserLdapSync.class.php +++ b/inc/SP/Mgmt/Users/UserLdapSync.class.php @@ -38,7 +38,7 @@ class UserLdapSync $ldapObjects = $Ldap->findObjects(); self::$totalObjects = (int)$ldapObjects['count']; - $Log->addDescription(sprintf(_('Objetos encontrados: %s'), self::$totalObjects)); + $Log->addDescription(sprintf(_('Objetos encontrados: %d'), self::$totalObjects)); if (self::$totalObjects > 0) { $UserData = new UserData(); diff --git a/inc/SP/Mgmt/Users/UserPass.class.php b/inc/SP/Mgmt/Users/UserPass.class.php index 75dae2c7..f30ca511 100644 --- a/inc/SP/Mgmt/Users/UserPass.class.php +++ b/inc/SP/Mgmt/Users/UserPass.class.php @@ -96,7 +96,7 @@ class UserPass extends UserBase { $configMPassTime = ConfigDB::getValue('lastupdatempass'); - if ($configMPassTime === false) { + if (empty($configMPassTime)) { return false; } @@ -177,22 +177,17 @@ class UserPass extends UserBase $userMPass = $this->getUserMPass(); $configHashMPass = ConfigDB::getValue('masterPwd'); - if ($userMPass === false - || $configHashMPass === false - || null === $configHashMPass - ) { + if ($userMPass === false || empty($configHashMPass)) { return false; - } elseif ($userMPass === null) { - return null; - } // Comprobamos el hash de la clave del usuario con la guardada - if (Crypt::checkHashPass($userMPass, $configHashMPass, true)) { + } elseif (Crypt::checkHashPass($userMPass, $configHashMPass, true)) { $this->clearUserMPass = $userMPass; - return SessionUtil::saveSessionMPass($userMPass); - } - return false; + return SessionUtil::saveSessionMPass($userMPass); + } else { + return null; + } } /** @@ -204,7 +199,7 @@ class UserPass extends UserBase public function getUserMPass($cypher = null) { $query = /** @lang SQL */ - 'SELECT user_mPass, user_mIV FROM usrData WHERE user_id = ? LIMIT 1'; + 'SELECT user_mPass, user_mIV, user_lastUpdateMPass FROM usrData WHERE user_id = ? LIMIT 1'; $Data = new QueryData(); $Data->setQuery($query); @@ -212,12 +207,12 @@ class UserPass extends UserBase $queryRes = DB::getResults($Data); - if ($queryRes === false) { - return false; - } elseif ($queryRes->user_mPass === '' - || $queryRes->user_mIV === '' + if ($queryRes === false + || empty($queryRes->user_mPass) + || empty($queryRes->user_mIV) + || $queryRes->user_lastUpdateMPass < ConfigDB::getValue('lastupdatempass') ) { - return null; + return false; } return Crypt::getDecrypt($queryRes->user_mPass, $queryRes->user_mIV, $this->getCypherPass($cypher)); @@ -236,6 +231,31 @@ class UserPass extends UserBase return Crypt::generateAesKey($pass . $this->itemData->getUserLogin()); } + /** + * @return string + */ + public function getClearUserMPass() + { + return $this->clearUserMPass; + } + + /** + * Actualizar la clave maestra con la clave anterior del usuario + * + * @param $oldUserPass + * @return bool + */ + public function updateMasterPass($oldUserPass) + { + $masterPass = $this->getUserMPass($oldUserPass); + + if ($masterPass) { + return $this->updateUserMPass($masterPass); + } + + return false; + } + /** * Actualizar la clave maestra del usuario en la BBDD. * @@ -278,29 +298,4 @@ class UserPass extends UserBase return false; } - - /** - * @return string - */ - public function getClearUserMPass() - { - return $this->clearUserMPass; - } - - /** - * Actualizar la clave maestra con la clave anterior del usuario - * - * @param $oldUserPass - * @return bool - */ - public function updateMasterPass($oldUserPass) - { - $masterPass = $this->getUserMPass($oldUserPass); - - if ($masterPass) { - return $this->updateUserMPass($masterPass); - } - - return false; - } } \ No newline at end of file diff --git a/inc/SP/Mgmt/Users/UserPreferences.class.php b/inc/SP/Mgmt/Users/UserPreferences.class.php index 0f194b27..40c4e0cc 100644 --- a/inc/SP/Mgmt/Users/UserPreferences.class.php +++ b/inc/SP/Mgmt/Users/UserPreferences.class.php @@ -99,19 +99,11 @@ class UserPreferences extends UserPreferencesBase implements ItemInterface /** @var UserData $queryRes */ $queryRes = DB::getResults($Data); - if ($queryRes === false || null === $queryRes->getUserPreferences()) { + if ($queryRes === false || $queryRes->getUserPreferences() === null) { return $this->getItemData(); } - $UserPreferencesData = unserialize($queryRes->getUserPreferences()); - - if ($UserPreferencesData === false) { - return new UserPreferencesData(); - } elseif (get_class($UserPreferencesData) === '__PHP_Incomplete_Class') { - $UserPreferencesData = Util::castToClass($this->getDataModel(), $UserPreferencesData); - } - - return $UserPreferencesData; + return Util::castToClass($this->getDataModel(), $queryRes->getUserPreferences()); } /** diff --git a/inc/SP/Mgmt/Users/UserPreferencesUtil.class.php b/inc/SP/Mgmt/Users/UserPreferencesUtil.class.php index 90d5478b..33e46b9d 100644 --- a/inc/SP/Mgmt/Users/UserPreferencesUtil.class.php +++ b/inc/SP/Mgmt/Users/UserPreferencesUtil.class.php @@ -67,13 +67,9 @@ class UserPreferencesUtil $data = []; foreach ($queryRes as $user) { - /** @var UserPreferencesData $UserPreferencesData */ - $UserPreferencesData = unserialize($user->getUserPreferences()); - - if ($UserPreferencesData !== false) { - if (get_class($UserPreferencesData) === '__PHP_Incomplete_Class') { - $UserPreferencesData = Util::castToClass(UserPreferencesData::class, $UserPreferencesData); - } + if ($user->getUserPreferences() !== '') { + /** @var UserPreferencesData $UserPreferencesData */ + $UserPreferencesData = Util::castToClass(UserPreferencesData::class, $user->getUserPreferences()); if ($UserPreferencesData->isUse2Fa()) { $Authenticator = new Authenticator($user->user_id, $user->user_login, $user->user_mIV); diff --git a/inc/SP/Util/Util.class.php b/inc/SP/Util/Util.class.php index 103cf612..e133dc5a 100644 --- a/inc/SP/Util/Util.class.php +++ b/inc/SP/Util/Util.class.php @@ -479,13 +479,21 @@ class Util * Cast an object to another class, keeping the properties, but changing the methods * * @param string $class Class name - * @param object $object - * @return object + * @param string|object $object + * @return mixed * @link http://blog.jasny.net/articles/a-dark-corner-of-php-class-casting/ */ public static function castToClass($class, $object) { - return unserialize(preg_replace('/^O:\d+:"[^"]++"/', 'O:' . strlen($class) . ':"' . $class . '"', serialize($object))); + if (!is_object($object)) { + $object = unserialize($object); + } + + if (get_class($object) === '__PHP_Incomplete_Class') { + return unserialize(preg_replace('/^O:\d+:"[^"]++"/', 'O:' . strlen($class) . ':"' . $class . '"', serialize($object))); + } else { + return $object; + } } /** diff --git a/inc/locales/en_US/LC_MESSAGES/messages.mo b/inc/locales/en_US/LC_MESSAGES/messages.mo index cf29c51219550919117703f9f67bcefcd1b3c47f..b49560fbd6d2943757f338bc34f5295ca4b11c65 100644 GIT binary patch delta 24905 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 vB`Gy&q^m

R_T7!_rbSl5)1zbY=zSv~A!Fapo*(=zQqR+0ob;=KucyAsifR delta 26838 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 PEA!pR-`dO>UFiP+HOhUp diff --git a/inc/locales/en_US/LC_MESSAGES/messages.po b/inc/locales/en_US/LC_MESSAGES/messages.po index 99b7fa7d..48cfe4d5 100644 --- a/inc/locales/en_US/LC_MESSAGES/messages.po +++ b/inc/locales/en_US/LC_MESSAGES/messages.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: sysPass\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-01-09 01:08+0100\n" -"PO-Revision-Date: 2017-01-09 01:09+0100\n" +"POT-Creation-Date: 2017-01-11 01:18+0100\n" +"PO-Revision-Date: 2017-01-11 01:19+0100\n" "Last-Translator: nuxsmin \n" "Language-Team: nuxsmin@syspass.org\n" "Language: en_US\n" @@ -22,6 +22,7 @@ msgstr "" "X-Generator: Poedit 1.6.10\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-SearchPath-0: ../../../..\n" +"X-Poedit-SearchPathExcluded-0: ../../../../inc/Plugins\n" #: ../../../../ajax/ajax_accGetFiles.php:44 #: ../../../../ajax/ajax_filesMgmt.php:58 @@ -42,7 +43,6 @@ msgstr "INVALID QUERY" #: ../../../../ajax/ajax_accViewPass.php:46 #: ../../../../ajax/ajax_migrate.php:40 #: ../../../../ajax/ajax_userPrefsSave.php:52 -#: ../../../../ajax/ajax_wiki.php:37 #: ../../../../inc/SP/Controller/RequestControllerTrait.class.php:113 msgid "La sesión no se ha iniciado o ha caducado" msgstr "Session not started or timed out" @@ -73,7 +73,7 @@ msgstr "Master Password updated" #: ../../../../inc/SP/Controller/ControllerBase.class.php:302 #: ../../../../inc/SP/Controller/ItemShowController.class.php:524 msgid "Reinicie la sesión para cambiarla" -msgstr "Restart session to update" +msgstr "Please, restart the session for update it" #: ../../../../ajax/ajax_accViewPass.php:87 #: ../../../../inc/SP/Controller/AccountSearchController.class.php:223 @@ -100,12 +100,12 @@ msgstr "ID" #: ../../../../ajax/ajax_filesMgmt.php:162 #: ../../../../inc/SP/Account/Account.class.php:164 #: ../../../../inc/SP/Account/Account.class.php:280 -#: ../../../../inc/SP/Account/Account.class.php:411 -#: ../../../../inc/SP/Account/Account.class.php:463 -#: ../../../../inc/SP/Account/Account.class.php:701 +#: ../../../../inc/SP/Account/Account.class.php:412 +#: ../../../../inc/SP/Account/Account.class.php:465 +#: ../../../../inc/SP/Account/Account.class.php:687 #: ../../../../inc/SP/Controller/Grids/Items.class.php:279 #: ../../../../inc/SP/Controller/Grids/Items.class.php:760 -#: ../../../../inc/SP/Controller/ItemActionController.class.php:749 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:766 #: ../../../../inc/SP/Controller/ItemShowController.class.php:534 #: ../../../../inc/SP/Mgmt/Files/File.class.php:87 #: ../../../../inc/SP/Mgmt/Files/File.class.php:136 @@ -129,7 +129,7 @@ msgstr "Upload File" #: ../../../../ajax/ajax_filesMgmt.php:78 msgid "No hay extensiones permitidas" -msgstr "There are no allowed extensions" +msgstr "There aren't any allowed extensions" #: ../../../../ajax/ajax_filesMgmt.php:95 #: ../../../../inc/SP/Import/FileImport.class.php:120 @@ -146,6 +146,7 @@ msgstr "Invalid file" #: ../../../../ajax/ajax_filesMgmt.php:103 #: ../../../../ajax/ajax_filesMgmt.php:163 +#: ../../../../inc/SP/Core/Upgrade.class.php:342 #: ../../../../inc/SP/Mgmt/Files/File.class.php:88 #: ../../../../inc/SP/Mgmt/Files/File.class.php:137 #: ../../../../inc/themes/material-blue/views/config/import.inc:106 @@ -203,8 +204,8 @@ msgstr "Download File" #: ../../../../inc/SP/Controller/LoginController.class.php:358 #: ../../../../inc/SP/Controller/LoginController.class.php:401 #: ../../../../inc/SP/Controller/LoginController.class.php:419 -#: ../../../../inc/SP/Core/Init.class.php:385 -#: ../../../../inc/SP/Core/Init.class.php:597 +#: ../../../../inc/SP/Core/Init.class.php:399 +#: ../../../../inc/SP/Core/Init.class.php:607 #: ../../../../inc/SP/Mgmt/Files/File.class.php:89 #: ../../../../inc/SP/Mgmt/Files/File.class.php:138 #: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:71 @@ -223,17 +224,18 @@ msgstr "File deleted" #: ../../../../ajax/ajax_filesMgmt.php:200 msgid "Error al eliminar el archivo" -msgstr "Error during file deletion" +msgstr "Error while deleting file" #: ../../../../ajax/ajax_filesMgmt.php:202 #: ../../../../ajax/ajax_userPrefsSave.php:97 +#: ../../../../inc/SP/Api/ApiRequest.class.php:193 #: ../../../../inc/SP/Controller/RequestControllerTrait.class.php:101 msgid "Acción Inválida" msgstr "Invalid Action" #: ../../../../ajax/ajax_getContent.php:55 -#: ../../../../inc/SP/Api/ApiBase.class.php:126 -#: ../../../../inc/SP/Api/ApiRequest.class.php:122 +#: ../../../../inc/SP/Api/ApiBase.class.php:150 +#: ../../../../inc/SP/Api/ApiRequest.class.php:179 msgid "Parámetros incorrectos" msgstr "Incorrect parameters" @@ -242,7 +244,6 @@ msgid "Instalación finalizada" msgstr "Installation finished" #: ../../../../ajax/ajax_migrate.php:44 -#: ../../../../inc/Plugins/Authenticator/ActionController.class.php:116 #: ../../../../inc/SP/Controller/ConfigActionController.class.php:476 #: ../../../../inc/SP/Controller/ConfigActionController.class.php:558 #: ../../../../inc/SP/Controller/ConfigActionController.class.php:606 @@ -303,8 +304,8 @@ msgid "Modificar Clave Usuario" msgstr "Edit User Password" #: ../../../../ajax/ajax_passReset.php:90 -#: ../../../../inc/SP/Controller/ItemActionController.class.php:221 -#: ../../../../inc/SP/Controller/ItemActionController.class.php:636 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:222 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:653 msgid "Clave actualizada" msgstr "Password updated" @@ -315,7 +316,7 @@ msgstr "Password updated" #: ../../../../inc/SP/Controller/LoginController.class.php:283 #: ../../../../inc/SP/Mgmt/Users/User.class.php:148 #: ../../../../inc/SP/Mgmt/Users/User.class.php:379 -#: ../../../../inc/SP/Mgmt/Users/UserMigrate.class.php:104 +#: ../../../../inc/SP/Mgmt/Users/UserMigrate.class.php:103 #: ../../../../inc/SP/Mgmt/Users/UserPass.class.php:149 #: ../../../../inc/themes/material-blue/views/itemshow/users.inc:31 #: ../../../../inc/themes/material-blue/views/itemshow/userspass.inc:23 @@ -324,16 +325,14 @@ msgstr "Login" #: ../../../../ajax/ajax_passReset.php:96 msgid "La clave es incorrecta o no coincide" -msgstr "The password is incorrect or does not match" +msgstr "Wrong password or does not match" #: ../../../../ajax/ajax_userPrefsSave.php:90 -#: ../../../../inc/Plugins/Authenticator/ActionController.class.php:142 +#: ../../../../inc/SP/Mgmt/Users/UserPreferencesUtil.class.php:100 msgid "Preferencias actualizadas" msgstr "Preferences updated" -#: ../../../../inc/Base.php:28 -#: ../../../../inc/Plugins/Authenticator/Authenticator.class.php:32 -#: ../../../../inc/SP/Account/Account.class.php:46 +#: ../../../../inc/Base.php:28 ../../../../inc/SP/Account/Account.class.php:46 #: ../../../../inc/SP/Account/AccountBase.class.php:33 #: ../../../../inc/SP/Account/AccountHistory.class.php:36 #: ../../../../inc/SP/Account/AccountInterface.class.php:32 @@ -343,7 +342,7 @@ msgstr "Preferences updated" #: ../../../../inc/SP/Account/AccountsSearchItem.class.php:28 #: ../../../../inc/SP/Account/UserAccounts.class.php:32 #: ../../../../inc/SP/Api/ApiBase.class.php:28 -#: ../../../../inc/SP/Api/ApiRequest.class.php:32 +#: ../../../../inc/SP/Api/ApiRequest.class.php:34 #: ../../../../inc/SP/Api/ApiTokens.class.php:28 #: ../../../../inc/SP/Api/ApiTokensUtil.class.php:35 #: ../../../../inc/SP/Api/SyspassApi.class.php:44 @@ -374,7 +373,7 @@ msgstr "Preferences updated" #: ../../../../inc/SP/Core/CryptMasterPass.class.php:31 #: ../../../../inc/SP/Core/CryptPKI.class.php:28 #: ../../../../inc/SP/Core/Exceptions/SPException.class.php:30 -#: ../../../../inc/SP/Core/Init.class.php:42 +#: ../../../../inc/SP/Core/Init.class.php:43 #: ../../../../inc/SP/Core/Installer.class.php:46 #: ../../../../inc/SP/Core/Language.class.php:31 #: ../../../../inc/SP/Core/Session.class.php:35 @@ -383,7 +382,7 @@ msgstr "Preferences updated" #: ../../../../inc/SP/Core/UI/Theme.class.php:34 #: ../../../../inc/SP/Core/UI/ThemeIconsBase.class.php:31 #: ../../../../inc/SP/Core/UI/ThemeIconsInterface.class.php:28 -#: ../../../../inc/SP/Core/Upgrade.class.php:39 +#: ../../../../inc/SP/Core/Upgrade.class.php:40 #: ../../../../inc/SP/Core/XmlExport.class.php:39 #: ../../../../inc/SP/DataModel/AccountData.class.php:28 #: ../../../../inc/SP/DataModel/CategoryData.class.php:28 @@ -468,7 +467,7 @@ msgstr "Preferences updated" #: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:29 #: ../../../../inc/SP/Mgmt/Profiles/ProfileBase.class.php:31 #: ../../../../inc/SP/Mgmt/Profiles/ProfileSearch.class.php:28 -#: ../../../../inc/SP/Mgmt/Profiles/ProfileUtil.class.php:35 +#: ../../../../inc/SP/Mgmt/Profiles/ProfileUtil.class.php:37 #: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:44 #: ../../../../inc/SP/Mgmt/PublicLinks/PublicLinkBase.class.php:28 #: ../../../../inc/SP/Mgmt/PublicLinks/PublicLinkSearch.class.php:38 @@ -494,56 +493,38 @@ msgstr "Preferences updated" msgid "No es posible acceder directamente a este archivo" msgstr "Unable to access this file" -#: ../../../../inc/Plugins/Authenticator/ActionController.class.php:111 -#: ../../../../inc/Plugins/Authenticator/ActionController.class.php:177 -msgid "Código incorrecto" -msgstr "Wrong code" - -#: ../../../../inc/Plugins/Authenticator/ActionController.class.php:171 -msgid "Código correcto" -msgstr "Verified code" - -#: ../../../../inc/Plugins/Authenticator/LoginController.class.php:115 -msgid "Aviso Caducidad" -msgstr "Expiry Date" - -#: ../../../../inc/Plugins/Authenticator/PreferencesController.class.php:97 -#: ../../../../inc/themes/material-blue/views/config/mail.inc:94 -msgid "Seguridad" -msgstr "Security" - #: ../../../../inc/SP/Account/Account.class.php:66 msgid "Actualizar Cuenta" msgstr "Update Account" #: ../../../../inc/SP/Account/Account.class.php:70 #: ../../../../inc/SP/Account/Account.class.php:240 -#: ../../../../inc/SP/Account/Account.class.php:453 -#: ../../../../inc/SP/Account/Account.class.php:663 +#: ../../../../inc/SP/Account/Account.class.php:455 +#: ../../../../inc/SP/Account/Account.class.php:648 msgid "Error al actualizar el historial" msgstr "Error while updating history" #: ../../../../inc/SP/Account/Account.class.php:73 #: ../../../../inc/SP/Account/Account.class.php:157 msgid "Error al modificar la cuenta" -msgstr "Error on updating account" +msgstr "Error while updating account" #: ../../../../inc/SP/Account/Account.class.php:89 -#: ../../../../inc/SP/Account/Account.class.php:397 +#: ../../../../inc/SP/Account/Account.class.php:398 msgid "Error al actualizar los usuarios de la cuenta" msgstr "Error while updating account's users" #: ../../../../inc/SP/Account/Account.class.php:163 #: ../../../../inc/SP/Account/Account.class.php:279 -#: ../../../../inc/SP/Account/Account.class.php:410 -#: ../../../../inc/SP/Account/Account.class.php:462 -#: ../../../../inc/SP/Account/Account.class.php:700 +#: ../../../../inc/SP/Account/Account.class.php:411 +#: ../../../../inc/SP/Account/Account.class.php:464 +#: ../../../../inc/SP/Account/Account.class.php:686 #: ../../../../inc/SP/Controller/AccountSearchController.class.php:346 #: ../../../../inc/SP/Controller/Grids/Items.class.php:280 #: ../../../../inc/SP/Controller/Grids/Items.class.php:349 -#: ../../../../inc/SP/Controller/ItemActionController.class.php:750 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:767 #: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:81 -#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:148 +#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:152 #: ../../../../inc/themes/material-blue/views/account/account-editpass.inc:23 #: ../../../../inc/themes/material-blue/views/account/account-editpass.inc:29 #: ../../../../inc/themes/material-blue/views/account/account-link.inc:15 @@ -563,8 +544,8 @@ msgid "Error al restaurar cuenta" msgstr "Error on restoring account" #: ../../../../inc/SP/Account/Account.class.php:309 -#: ../../../../inc/SP/Account/AccountHistory.class.php:179 -#: ../../../../inc/SP/Account/AccountHistory.class.php:480 +#: ../../../../inc/SP/Account/AccountHistory.class.php:180 +#: ../../../../inc/SP/Account/AccountHistory.class.php:456 msgid "No se pudieron obtener los datos de la cuenta" msgstr "Error while retrieving account data" @@ -572,18 +553,18 @@ msgstr "Error while retrieving account data" msgid "La cuenta no existe" msgstr "Account doesn't exist" -#: ../../../../inc/SP/Account/Account.class.php:373 +#: ../../../../inc/SP/Account/Account.class.php:374 msgid "Error al crear la cuenta" -msgstr "Error on account creation" +msgstr "Error while creating account" -#: ../../../../inc/SP/Account/Account.class.php:378 +#: ../../../../inc/SP/Account/Account.class.php:379 #: ../../../../inc/SP/Controller/AccountController.class.php:134 -#: ../../../../inc/SP/Controller/MainController.class.php:221 +#: ../../../../inc/SP/Controller/MainController.class.php:222 #: ../../../../inc/SP/Core/Acl.class.php:208 msgid "Nueva Cuenta" msgstr "New Account" -#: ../../../../inc/SP/Account/Account.class.php:449 +#: ../../../../inc/SP/Account/Account.class.php:451 #: ../../../../inc/SP/Controller/AccountController.class.php:343 #: ../../../../inc/SP/Controller/AccountSearchController.class.php:278 #: ../../../../inc/SP/Controller/AccountSearchController.class.php:279 @@ -594,74 +575,67 @@ msgstr "New Account" msgid "Eliminar Cuenta" msgstr "Delete Account" -#: ../../../../inc/SP/Account/Account.class.php:456 -#: ../../../../inc/SP/Account/Account.class.php:473 +#: ../../../../inc/SP/Account/Account.class.php:458 +#: ../../../../inc/SP/Account/Account.class.php:475 msgid "Error al eliminar la cuenta" -msgstr "Error on account deletion" +msgstr "Error while deleting account" -#: ../../../../inc/SP/Account/Account.class.php:490 +#: ../../../../inc/SP/Account/Account.class.php:492 msgid "Error al eliminar usuarios asociados a la cuenta" msgstr "Error while deleting account's users" -#: ../../../../inc/SP/Account/Account.class.php:550 +#: ../../../../inc/SP/Account/Account.class.php:552 #: ../../../../inc/SP/Controller/ConfigActionController.class.php:506 msgid "Actualizar Clave Maestra" msgstr "Update Master Password" -#: ../../../../inc/SP/Account/Account.class.php:551 -#: ../../../../inc/SP/Account/AccountHistory.class.php:221 -#: ../../../../inc/SP/Import/XmlImport.class.php:65 -msgid "Inicio" -msgstr "Start" - -#: ../../../../inc/SP/Account/Account.class.php:557 -#: ../../../../inc/SP/Account/AccountHistory.class.php:228 +#: ../../../../inc/SP/Account/Account.class.php:556 +#: ../../../../inc/SP/Account/AccountHistory.class.php:225 msgid "Error en el módulo de encriptación" msgstr "Error on encryption module" -#: ../../../../inc/SP/Account/Account.class.php:566 -#: ../../../../inc/SP/Account/AccountHistory.class.php:237 +#: ../../../../inc/SP/Account/Account.class.php:565 +#: ../../../../inc/SP/Account/AccountHistory.class.php:234 msgid "Error al obtener las claves de las cuentas" msgstr "Error while retrieving accounts' passwords" -#: ../../../../inc/SP/Account/Account.class.php:582 -#: ../../../../inc/SP/Account/AccountHistory.class.php:267 +#: ../../../../inc/SP/Account/Account.class.php:581 +#: ../../../../inc/SP/Account/AccountHistory.class.php:262 msgid "Clave de cuenta vacía" msgstr "Account password empty" -#: ../../../../inc/SP/Account/Account.class.php:587 -#: ../../../../inc/SP/Account/AccountHistory.class.php:274 +#: ../../../../inc/SP/Account/Account.class.php:586 +#: ../../../../inc/SP/Account/AccountHistory.class.php:267 msgid "IV de encriptación incorrecto" msgstr "Wrong encryption IV" -#: ../../../../inc/SP/Account/Account.class.php:596 -#: ../../../../inc/SP/Account/AccountHistory.class.php:285 +#: ../../../../inc/SP/Account/Account.class.php:595 +#: ../../../../inc/SP/Account/AccountHistory.class.php:276 msgid "No es posible desencriptar la clave de la cuenta" msgstr "Unable to decrypt account password" -#: ../../../../inc/SP/Account/Account.class.php:602 +#: ../../../../inc/SP/Account/Account.class.php:601 msgid "Fallo al actualizar la clave de la cuenta" msgstr "Error while updating account's password" -#: ../../../../inc/SP/Account/Account.class.php:616 +#: ../../../../inc/SP/Account/Account.class.php:608 +#: ../../../../inc/SP/Account/AccountHistory.class.php:289 msgid "Cuentas actualizadas" msgstr "Accounts updated" -#: ../../../../inc/SP/Account/Account.class.php:621 -#: ../../../../inc/SP/Account/AccountHistory.class.php:314 -#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:78 -#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:124 -msgid "Fin" -msgstr "End" +#: ../../../../inc/SP/Account/Account.class.php:609 +#: ../../../../inc/SP/Account/AccountHistory.class.php:290 +msgid "Errores" +msgstr "Errors" -#: ../../../../inc/SP/Account/Account.class.php:655 +#: ../../../../inc/SP/Account/Account.class.php:642 msgid "Modificar Clave" msgstr "Update Password" -#: ../../../../inc/SP/Account/Account.class.php:666 -#: ../../../../inc/SP/Account/Account.class.php:691 +#: ../../../../inc/SP/Account/Account.class.php:651 +#: ../../../../inc/SP/Account/Account.class.php:677 msgid "Error al actualizar la clave" -msgstr "Error on updating password" +msgstr "Error while updating password" #: ../../../../inc/SP/Account/AccountFavorites.class.php:81 msgid "Error al añadir favorito" @@ -671,63 +645,18 @@ msgstr "Error while adding favorite" msgid "Error al eliminar favorito" msgstr "Error while deleting favorite" -#: ../../../../inc/SP/Account/AccountHistory.class.php:220 +#: ../../../../inc/SP/Account/AccountHistory.class.php:221 msgid "Actualizar Clave Maestra (H)" msgstr "Update Master Password (H)" -#: ../../../../inc/SP/Account/AccountHistory.class.php:260 +#: ../../../../inc/SP/Account/AccountHistory.class.php:257 msgid "La clave maestra del registro no coincide" msgstr "The record's master password does not match" -#: ../../../../inc/SP/Account/AccountHistory.class.php:262 -#: ../../../../inc/SP/Account/AccountHistory.class.php:269 -#: ../../../../inc/SP/Account/AccountHistory.class.php:276 -#: ../../../../inc/SP/Account/AccountHistory.class.php:287 -#: ../../../../inc/SP/Account/AccountHistory.class.php:295 -#: ../../../../inc/SP/Controller/AccountSearchController.class.php:353 -#: ../../../../inc/SP/Controller/Grids/Items.class.php:55 -#: ../../../../inc/SP/Controller/Grids/Items.class.php:129 -#: ../../../../inc/SP/Controller/Grids/Items.class.php:204 -#: ../../../../inc/SP/Controller/Grids/Items.class.php:281 -#: ../../../../inc/SP/Controller/Grids/Items.class.php:348 -#: ../../../../inc/SP/Controller/Grids/Items.class.php:401 -#: ../../../../inc/SP/Controller/Grids/Items.class.php:520 -#: ../../../../inc/SP/Controller/Grids/Items.class.php:594 -#: ../../../../inc/SP/Controller/Grids/Items.class.php:840 -#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:233 -#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:233 -#: ../../../../inc/SP/Mgmt/Groups/Group.class.php:241 -#: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:80 -#: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:141 -#: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:231 -#: ../../../../inc/SP/Mgmt/Users/User.class.php:149 -#: ../../../../inc/themes/material-blue/views/account/account-editpass.inc:12 -#: ../../../../inc/themes/material-blue/views/account/account-link.inc:9 -#: ../../../../inc/themes/material-blue/views/account/account.inc:40 -#: ../../../../inc/themes/material-blue/views/account/request.inc:12 -#: ../../../../inc/themes/material-blue/views/accountsearch/rows.inc:43 -#: ../../../../inc/themes/material-blue/views/config/info.inc:26 -#: ../../../../inc/themes/material-blue/views/itemshow/categories.inc:15 -#: ../../../../inc/themes/material-blue/views/itemshow/customers.inc:18 -#: ../../../../inc/themes/material-blue/views/itemshow/customfields.inc:18 -#: ../../../../inc/themes/material-blue/views/itemshow/groups.inc:17 -#: ../../../../inc/themes/material-blue/views/itemshow/plugins.inc:13 -#: ../../../../inc/themes/material-blue/views/itemshow/profiles.inc:16 -#: ../../../../inc/themes/material-blue/views/itemshow/tags.inc:15 -#: ../../../../inc/themes/material-blue/views/itemshow/users.inc:16 -#: ../../../../inc/themes/material-blue/views/itemshow/userspass.inc:12 -msgid "Nombre" -msgstr "Name" - -#: ../../../../inc/SP/Account/AccountHistory.class.php:293 +#: ../../../../inc/SP/Account/AccountHistory.class.php:282 msgid "Fallo al actualizar la clave del histórico" msgstr "Error on updating history's master password" -#: ../../../../inc/SP/Account/AccountHistory.class.php:309 -#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:120 -msgid "Registros actualizados" -msgstr "Records updated" - #: ../../../../inc/SP/Account/AccountTags.class.php:76 msgid "Error al eliminar las etiquetas de la cuenta" msgstr "Error while removing account's tags" @@ -736,36 +665,28 @@ msgstr "Error while removing account's tags" msgid "No se pudieron obtener los datos de las cuentas" msgstr "Unable to retrieve accounts data" -#: ../../../../inc/SP/Api/ApiBase.class.php:99 -#: ../../../../inc/SP/Api/ApiBase.class.php:186 -#: ../../../../inc/SP/Api/ApiBase.class.php:198 -#: ../../../../inc/SP/Api/ApiBase.class.php:211 -#: ../../../../inc/SP/Api/ApiBase.class.php:241 -#: ../../../../inc/SP/Api/SyspassApi.class.php:75 -#: ../../../../inc/SP/Api/SyspassApi.class.php:138 +#: ../../../../inc/SP/Api/ApiBase.class.php:91 +#: ../../../../inc/SP/Api/ApiBase.class.php:181 +#: ../../../../inc/SP/Api/ApiBase.class.php:193 +#: ../../../../inc/SP/Api/ApiBase.class.php:206 +#: ../../../../inc/SP/Api/ApiBase.class.php:238 +#: ../../../../inc/SP/Api/SyspassApi.class.php:76 +#: ../../../../inc/SP/Api/SyspassApi.class.php:141 msgid "Acceso no permitido" msgstr "Unauthorized access" -#: ../../../../inc/SP/Api/ApiRequest.class.php:93 +#: ../../../../inc/SP/Api/ApiRequest.class.php:146 #: ../../../../inc/SP/Import/XmlImportBase.class.php:134 msgid "Método inválido" msgstr "Invalid Method" -#: ../../../../inc/SP/Api/ApiRequest.class.php:110 +#: ../../../../inc/SP/Api/ApiRequest.class.php:163 msgid "Datos inválidos" msgstr "Invalid data" -#: ../../../../inc/SP/Api/ApiRequest.class.php:136 -msgid "Acción inválida" -msgstr "Invalid Action" - -#: ../../../../inc/SP/Api/ApiRequest.class.php:148 -msgid "Token de autorización" -msgstr "Authorization Token" - -#: ../../../../inc/SP/Api/ApiRequest.class.php:149 -msgid "Acción a realizar" -msgstr "Action" +#: ../../../../inc/SP/Api/ApiRequest.class.php:165 +msgid "Formato incorrecto" +msgstr "Wrong format" #: ../../../../inc/SP/Api/ApiTokens.class.php:105 #: ../../../../inc/SP/Api/ApiTokens.class.php:138 @@ -808,12 +729,13 @@ msgstr "New Authorization" #: ../../../../inc/SP/Controller/LoginController.class.php:330 #: ../../../../inc/SP/Controller/LoginController.class.php:395 #: ../../../../inc/SP/Controller/LoginController.class.php:420 -#: ../../../../inc/SP/Core/Init.class.php:529 +#: ../../../../inc/SP/Core/Init.class.php:539 #: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:73 #: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:145 #: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:238 #: ../../../../inc/SP/Mgmt/Users/User.class.php:103 #: ../../../../inc/SP/Mgmt/Users/User.class.php:253 +#: ../../../../inc/SP/Mgmt/Users/UserPreferencesUtil.class.php:86 #: ../../../../res/test.php:64 #: ../../../../inc/themes/material-blue/views/account/account-editpass.inc:45 #: ../../../../inc/themes/material-blue/views/account/account-editpass.inc:51 @@ -851,87 +773,109 @@ msgstr "Update Authorization" msgid "Eliminar Autorización" msgstr "Delete Authorization" -#: ../../../../inc/SP/Api/SyspassApi.class.php:174 -#: ../../../../inc/SP/Controller/ItemActionController.class.php:625 +#: ../../../../inc/SP/Api/SyspassApi.class.php:177 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:642 msgid "Cuenta creada" msgstr "Account added" -#: ../../../../inc/SP/Api/SyspassApi.class.php:198 -#: ../../../../inc/SP/Controller/ItemActionController.class.php:647 +#: ../../../../inc/SP/Api/SyspassApi.class.php:202 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:664 msgid "Cuenta eliminada" msgstr "Account deleted" -#: ../../../../inc/SP/Api/SyspassApi.class.php:242 -#: ../../../../inc/SP/Controller/ItemActionController.class.php:402 +#: ../../../../inc/SP/Api/SyspassApi.class.php:248 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:414 msgid "Categoría creada" msgstr "Category added" -#: ../../../../inc/SP/Api/SyspassApi.class.php:264 -#: ../../../../inc/SP/Controller/ItemActionController.class.php:413 +#: ../../../../inc/SP/Api/SyspassApi.class.php:271 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:425 msgid "Categoría eliminada" msgstr "Category deleted" -#: ../../../../inc/SP/Api/SyspassApi.class.php:308 -#: ../../../../inc/SP/Controller/ItemActionController.class.php:366 +#: ../../../../inc/SP/Api/SyspassApi.class.php:317 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:377 msgid "Cliente creado" msgstr "Customer added" -#: ../../../../inc/SP/Api/SyspassApi.class.php:330 -#: ../../../../inc/SP/Controller/ItemActionController.class.php:377 +#: ../../../../inc/SP/Api/SyspassApi.class.php:340 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:388 msgid "Cliente eliminado" msgstr "Customer deleted" -#: ../../../../inc/SP/Api/SyspassApi.class.php:359 -#: ../../../../inc/SP/Api/SyspassApi.class.php:376 -#: ../../../../inc/SP/Api/SyspassApi.class.php:383 +#: ../../../../inc/SP/Api/SyspassApi.class.php:355 +#: ../../../../inc/SP/Controller/ConfigActionController.class.php:617 +msgid "Proceso de backup finalizado" +msgstr "Backup process finished" + +#: ../../../../inc/SP/Api/SyspassApi.class.php:361 +#: ../../../../inc/SP/Controller/ConfigActionController.class.php:611 +#: ../../../../inc/SP/Core/Backup.class.php:73 +msgid "Error al realizar el backup" +msgstr "Error while doing backup" + +#: ../../../../inc/SP/Api/SyspassApi.class.php:362 +#: ../../../../inc/SP/Controller/ChecksController.class.php:113 +#: ../../../../inc/SP/Controller/ChecksController.class.php:142 +#: ../../../../inc/SP/Controller/ConfigActionController.class.php:592 +#: ../../../../inc/SP/Controller/ConfigActionController.class.php:612 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:711 +#: ../../../../inc/SP/Import/Import.class.php:103 +msgid "Revise el registro de eventos para más detalles" +msgstr "Please check the event log for more details" + +#: ../../../../inc/SP/Api/SyspassApi.class.php:392 +#: ../../../../inc/SP/Api/SyspassApi.class.php:409 +#: ../../../../inc/SP/Api/SyspassApi.class.php:416 msgid "Id de la cuenta" msgstr "Account Id" -#: ../../../../inc/SP/Api/SyspassApi.class.php:360 -#: ../../../../inc/SP/Api/SyspassApi.class.php:377 +#: ../../../../inc/SP/Api/SyspassApi.class.php:393 +#: ../../../../inc/SP/Api/SyspassApi.class.php:410 +#: ../../../../inc/SP/Api/SyspassApi.class.php:422 msgid "Clave del usuario asociado al token" msgstr "Token user's password" -#: ../../../../inc/SP/Api/SyspassApi.class.php:361 +#: ../../../../inc/SP/Api/SyspassApi.class.php:394 msgid "Devolver detalles en la respuesta" msgstr "Send details on the response" -#: ../../../../inc/SP/Api/SyspassApi.class.php:367 +#: ../../../../inc/SP/Api/SyspassApi.class.php:400 #: ../../../../inc/themes/material-blue/views/accountsearch/searchbox.inc:15 msgid "Texto a buscar" msgstr "Text to search" -#: ../../../../inc/SP/Api/SyspassApi.class.php:368 -#: ../../../../inc/SP/Api/SyspassApi.class.php:407 -#: ../../../../inc/SP/Api/SyspassApi.class.php:427 +#: ../../../../inc/SP/Api/SyspassApi.class.php:401 +#: ../../../../inc/SP/Api/SyspassApi.class.php:441 +#: ../../../../inc/SP/Api/SyspassApi.class.php:461 msgid "Número de resultados a mostrar" msgstr "Number of results to show" -#: ../../../../inc/SP/Api/SyspassApi.class.php:369 +#: ../../../../inc/SP/Api/SyspassApi.class.php:402 msgid "Id de categoría a filtrar" msgstr "Category Id to filter on" -#: ../../../../inc/SP/Api/SyspassApi.class.php:370 +#: ../../../../inc/SP/Api/SyspassApi.class.php:403 msgid "Id de cliente a filtrar" msgstr "Customer Id to filter on" -#: ../../../../inc/SP/Api/SyspassApi.class.php:389 +#: ../../../../inc/SP/Api/SyspassApi.class.php:423 #: ../../../../inc/themes/material-blue/views/account/account-editpass.inc:18 #: ../../../../inc/themes/material-blue/views/account/account.inc:47 msgid "Nombre de cuenta" msgstr "Account name" -#: ../../../../inc/SP/Api/SyspassApi.class.php:390 -#: ../../../../inc/SP/Api/SyspassApi.class.php:420 +#: ../../../../inc/SP/Api/SyspassApi.class.php:424 +#: ../../../../inc/SP/Api/SyspassApi.class.php:454 msgid "Id de categoría" msgstr "Category Id" -#: ../../../../inc/SP/Api/SyspassApi.class.php:391 -#: ../../../../inc/SP/Api/SyspassApi.class.php:440 +#: ../../../../inc/SP/Api/SyspassApi.class.php:425 +#: ../../../../inc/SP/Api/SyspassApi.class.php:474 msgid "Id de cliente" msgstr "Customer Id" -#: ../../../../inc/SP/Api/SyspassApi.class.php:392 +#: ../../../../inc/SP/Api/SyspassApi.class.php:426 #: ../../../../inc/SP/Controller/ConfigActionController.class.php:535 #: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldTypes.class.php:64 #: ../../../../inc/themes/material-blue/views/account/account-editpass.inc:56 @@ -958,46 +902,46 @@ msgstr "Customer Id" msgid "Clave" msgstr "Password" -#: ../../../../inc/SP/Api/SyspassApi.class.php:393 +#: ../../../../inc/SP/Api/SyspassApi.class.php:427 #: ../../../../inc/themes/material-blue/views/account/account.inc:112 msgid "Usuario de acceso" msgstr "Access user" -#: ../../../../inc/SP/Api/SyspassApi.class.php:394 +#: ../../../../inc/SP/Api/SyspassApi.class.php:428 #: ../../../../inc/themes/material-blue/views/account/account.inc:100 msgid "URL o IP de acceso" msgstr "Access URL or IP" -#: ../../../../inc/SP/Api/SyspassApi.class.php:395 +#: ../../../../inc/SP/Api/SyspassApi.class.php:429 #: ../../../../inc/themes/material-blue/views/account/account.inc:167 #: ../../../../inc/themes/material-blue/views/itemshow/users.inc:126 msgid "Notas sobre la cuenta" msgstr "Notes about the account" -#: ../../../../inc/SP/Api/SyspassApi.class.php:406 +#: ../../../../inc/SP/Api/SyspassApi.class.php:440 msgid "Nombre de categoría a buscar" msgstr "Category name to search for" -#: ../../../../inc/SP/Api/SyspassApi.class.php:413 +#: ../../../../inc/SP/Api/SyspassApi.class.php:447 #: ../../../../inc/themes/material-blue/views/itemshow/categories.inc:22 msgid "Nombre de la categoría" msgstr "Category name" -#: ../../../../inc/SP/Api/SyspassApi.class.php:414 +#: ../../../../inc/SP/Api/SyspassApi.class.php:448 #: ../../../../inc/themes/material-blue/views/itemshow/categories.inc:34 msgid "Descripción de la categoría" msgstr "Category description" -#: ../../../../inc/SP/Api/SyspassApi.class.php:426 +#: ../../../../inc/SP/Api/SyspassApi.class.php:460 msgid "Nombre de cliente a buscar" msgstr "Customer name to search for" -#: ../../../../inc/SP/Api/SyspassApi.class.php:433 +#: ../../../../inc/SP/Api/SyspassApi.class.php:467 #: ../../../../inc/themes/material-blue/views/itemshow/customers.inc:25 msgid "Nombre del cliente" msgstr "Customer name" -#: ../../../../inc/SP/Api/SyspassApi.class.php:434 +#: ../../../../inc/SP/Api/SyspassApi.class.php:468 #: ../../../../inc/themes/material-blue/views/itemshow/customers.inc:38 msgid "Descripción del cliente" msgstr "Customer description" @@ -1040,10 +984,11 @@ msgid "Conexión a LDAP correcta" msgstr "LDAP connection OK" #: ../../../../inc/SP/Auth/Ldap/LdapBase.class.php:115 +#: ../../../../inc/SP/Controller/ChecksController.class.php:108 #: ../../../../inc/SP/Mgmt/Users/UserLdapSync.class.php:41 #, php-format -msgid "Objetos encontrados: %s" -msgstr "Objects found: %s" +msgid "Objetos encontrados: %d" +msgstr "Objects found: %d" #: ../../../../inc/SP/Auth/Ldap/LdapBase.class.php:141 msgid "No es posible conectar con el servidor de LDAP" @@ -1125,7 +1070,7 @@ msgstr "The user doesn't belong to the group" #: ../../../../inc/SP/Config/ConfigDB.class.php:103 #: ../../../../inc/SP/Config/ConfigDB.class.php:139 -#: ../../../../inc/SP/Controller/MainController.class.php:251 +#: ../../../../inc/SP/Controller/MainController.class.php:252 #: ../../../../inc/SP/Core/Acl.class.php:236 #: ../../../../inc/themes/material-blue/inc/Icons.class.php:75 #: ../../../../inc/themes/material-blue/views/itemshow/profiles.inc:120 @@ -1138,6 +1083,8 @@ msgid "Modificar configuración" msgstr "Update Configuration" #: ../../../../inc/SP/Config/ConfigDB.class.php:141 +#: ../../../../inc/SP/Core/Upgrade.class.php:316 +#: ../../../../inc/SP/Core/Upgrade.class.php:322 msgid "Parámetro" msgstr "Parameter" @@ -1194,13 +1141,48 @@ msgstr "More Actions" msgid "Ordenar por Cliente" msgstr "Sort by Customer" +#: ../../../../inc/SP/Controller/AccountSearchController.class.php:353 +#: ../../../../inc/SP/Controller/Grids/Items.class.php:55 +#: ../../../../inc/SP/Controller/Grids/Items.class.php:129 +#: ../../../../inc/SP/Controller/Grids/Items.class.php:204 +#: ../../../../inc/SP/Controller/Grids/Items.class.php:281 +#: ../../../../inc/SP/Controller/Grids/Items.class.php:348 +#: ../../../../inc/SP/Controller/Grids/Items.class.php:401 +#: ../../../../inc/SP/Controller/Grids/Items.class.php:520 +#: ../../../../inc/SP/Controller/Grids/Items.class.php:594 +#: ../../../../inc/SP/Controller/Grids/Items.class.php:840 +#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:237 +#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:237 +#: ../../../../inc/SP/Mgmt/Groups/Group.class.php:241 +#: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:80 +#: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:141 +#: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:227 +#: ../../../../inc/SP/Mgmt/Users/User.class.php:149 +#: ../../../../inc/themes/material-blue/views/account/account-editpass.inc:12 +#: ../../../../inc/themes/material-blue/views/account/account-link.inc:9 +#: ../../../../inc/themes/material-blue/views/account/account.inc:40 +#: ../../../../inc/themes/material-blue/views/account/request.inc:12 +#: ../../../../inc/themes/material-blue/views/accountsearch/rows.inc:43 +#: ../../../../inc/themes/material-blue/views/config/info.inc:26 +#: ../../../../inc/themes/material-blue/views/itemshow/categories.inc:15 +#: ../../../../inc/themes/material-blue/views/itemshow/customers.inc:18 +#: ../../../../inc/themes/material-blue/views/itemshow/customfields.inc:18 +#: ../../../../inc/themes/material-blue/views/itemshow/groups.inc:17 +#: ../../../../inc/themes/material-blue/views/itemshow/plugins.inc:13 +#: ../../../../inc/themes/material-blue/views/itemshow/profiles.inc:16 +#: ../../../../inc/themes/material-blue/views/itemshow/tags.inc:15 +#: ../../../../inc/themes/material-blue/views/itemshow/users.inc:16 +#: ../../../../inc/themes/material-blue/views/itemshow/userspass.inc:12 +msgid "Nombre" +msgstr "Name" + #: ../../../../inc/SP/Controller/AccountSearchController.class.php:354 msgid "Ordenar por Nombre" msgstr "Sort by Name" #: ../../../../inc/SP/Controller/AccountSearchController.class.php:360 #: ../../../../inc/SP/Mgmt/Categories/Category.class.php:79 -#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:149 +#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:153 #: ../../../../inc/themes/material-blue/views/account/account-link.inc:21 #: ../../../../inc/themes/material-blue/views/account/account.inc:73 #: ../../../../inc/themes/material-blue/views/accountsearch/rows.inc:57 @@ -1229,20 +1211,6 @@ msgstr "URL / IP" msgid "Ordenar por URL / IP" msgstr "Sort by URL / IP" -#: ../../../../inc/SP/Controller/ChecksController.class.php:108 -#, php-format -msgid "Objetos encontrados: %d" -msgstr "Objects found: %d" - -#: ../../../../inc/SP/Controller/ChecksController.class.php:113 -#: ../../../../inc/SP/Controller/ChecksController.class.php:142 -#: ../../../../inc/SP/Controller/ConfigActionController.class.php:592 -#: ../../../../inc/SP/Controller/ConfigActionController.class.php:612 -#: ../../../../inc/SP/Controller/ItemActionController.class.php:694 -#: ../../../../inc/SP/Import/Import.class.php:103 -msgid "Revise el registro de eventos para más detalles" -msgstr "Please check the event log for more details" - #: ../../../../inc/SP/Controller/ChecksController.class.php:127 msgid "Los parámetros de DokuWiki no están configurados" msgstr "DokuWiki parameters are not set" @@ -1256,8 +1224,10 @@ msgid "Conexión correcta" msgstr "Connection successful" #: ../../../../inc/SP/Controller/ChecksController.class.php:138 -#: ../../../../inc/SP/Core/Init.class.php:384 -#: ../../../../inc/SP/Core/Init.class.php:596 +#: ../../../../inc/SP/Core/Init.class.php:398 +#: ../../../../inc/SP/Core/Init.class.php:606 +#: ../../../../inc/SP/Core/Upgrade.class.php:86 +#: ../../../../inc/SP/Core/Upgrade.class.php:335 #: ../../../../inc/themes/material-blue/views/config/info.inc:34 #: ../../../../inc/themes/material-blue/views/itemshow/plugins.inc:25 msgid "Versión" @@ -1414,7 +1384,7 @@ msgstr "The current master password does not match" #: ../../../../inc/SP/Controller/ConfigActionController.class.php:486 msgid "Errores al actualizar las claves de las cuentas" -msgstr "Error on updating accounts' passwords" +msgstr "Error while updating accounts' passwords" #: ../../../../inc/SP/Controller/ConfigActionController.class.php:493 msgid "Errores al actualizar las claves de las cuentas del histórico" @@ -1444,50 +1414,41 @@ msgstr "The passwords do not match" #: ../../../../inc/SP/Controller/ConfigActionController.class.php:591 msgid "Error al realizar la exportación" -msgstr "Error occurred during export" +msgstr "Error while exporting" #: ../../../../inc/SP/Controller/ConfigActionController.class.php:597 msgid "Proceso de exportación finalizado" msgstr "Export process finished" -#: ../../../../inc/SP/Controller/ConfigActionController.class.php:611 -#: ../../../../inc/SP/Core/Backup.class.php:73 -msgid "Error al realizar el backup" -msgstr "Error performing backup" - -#: ../../../../inc/SP/Controller/ConfigActionController.class.php:617 -msgid "Proceso de backup finalizado" -msgstr "Backup process finished" - #: ../../../../inc/SP/Controller/ConfigController.class.php:301 #: ../../../../inc/SP/Core/Acl.class.php:238 #: ../../../../inc/themes/material-blue/views/itemshow/profiles.inc:135 msgid "Encriptación" msgstr "Encryption" -#: ../../../../inc/SP/Controller/ConfigController.class.php:337 +#: ../../../../inc/SP/Controller/ConfigController.class.php:339 msgid "Último backup" msgstr "Last backup" -#: ../../../../inc/SP/Controller/ConfigController.class.php:337 +#: ../../../../inc/SP/Controller/ConfigController.class.php:339 msgid "No se encontraron backups" -msgstr "There are no backups available" +msgstr "There aren't backups available" -#: ../../../../inc/SP/Controller/ConfigController.class.php:344 +#: ../../../../inc/SP/Controller/ConfigController.class.php:348 msgid "Última exportación" msgstr "Last export" -#: ../../../../inc/SP/Controller/ConfigController.class.php:344 +#: ../../../../inc/SP/Controller/ConfigController.class.php:348 msgid "No se encontró archivo de exportación" msgstr "No export file found" -#: ../../../../inc/SP/Controller/ConfigController.class.php:346 +#: ../../../../inc/SP/Controller/ConfigController.class.php:350 #: ../../../../inc/SP/Core/Acl.class.php:239 #: ../../../../inc/themes/material-blue/views/config/backup.inc:7 msgid "Copia de Seguridad" msgstr "Backup" -#: ../../../../inc/SP/Controller/ConfigController.class.php:368 +#: ../../../../inc/SP/Controller/ConfigController.class.php:372 #: ../../../../inc/SP/Import/CsvImportBase.class.php:80 #: ../../../../inc/SP/Import/Import.class.php:65 #: ../../../../inc/SP/Import/XmlImport.class.php:65 @@ -1495,7 +1456,7 @@ msgstr "Backup" msgid "Importar Cuentas" msgstr "Import Accounts" -#: ../../../../inc/SP/Controller/ConfigController.class.php:392 +#: ../../../../inc/SP/Controller/ConfigController.class.php:396 #: ../../../../inc/themes/material-blue/inc/Icons.class.php:77 msgid "Información" msgstr "Information" @@ -1508,7 +1469,7 @@ msgstr "Option unavailable" #: ../../../../inc/SP/Controller/ControllerBase.class.php:299 #: ../../../../inc/SP/Controller/ControllerBase.class.php:300 #: ../../../../inc/SP/Controller/ControllerBase.class.php:301 -#: ../../../../inc/SP/Core/Init.class.php:280 +#: ../../../../inc/SP/Core/Init.class.php:281 msgid "Consulte con el administrador" msgstr "Please contact to the administrator" @@ -1536,9 +1497,9 @@ msgstr "Error while clearing event log" #: ../../../../inc/SP/Controller/Grids/Items.class.php:130 #: ../../../../inc/SP/Controller/Grids/Items.class.php:521 #: ../../../../inc/SP/Controller/Grids/Notices.class.php:55 -#: ../../../../inc/SP/Controller/ItemActionController.class.php:751 -#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:234 -#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:234 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:768 +#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:238 +#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:238 #: ../../../../inc/SP/Mgmt/Groups/Group.class.php:242 #: ../../../../inc/themes/material-blue/views/eventlog/eventlog.inc:37 #: ../../../../inc/themes/material-blue/views/itemshow/categories.inc:27 @@ -1577,7 +1538,7 @@ msgstr "Edit Category" #: ../../../../inc/SP/Controller/Grids/Items.class.php:110 #: ../../../../inc/SP/Controller/Grids/Items.class.php:111 #: ../../../../inc/SP/Core/Acl.class.php:221 -#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:148 +#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:152 msgid "Eliminar Categoría" msgstr "Delete Category" @@ -1609,7 +1570,7 @@ msgstr "Edit Customer" #: ../../../../inc/SP/Controller/Grids/Items.class.php:184 #: ../../../../inc/SP/Controller/Grids/Items.class.php:185 #: ../../../../inc/SP/Core/Acl.class.php:226 -#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:147 +#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:151 msgid "Eliminar Cliente" msgstr "Delete Customer" @@ -1619,7 +1580,7 @@ msgid "Módulo" msgstr "Module" #: ../../../../inc/SP/Controller/Grids/Items.class.php:221 -#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:66 +#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:68 #: ../../../../inc/themes/material-blue/views/account/account.inc:244 #: ../../../../inc/themes/material-blue/views/itemshow/profiles.inc:198 msgid "Campos Personalizados" @@ -1684,7 +1645,7 @@ msgstr "Accounts" #: ../../../../inc/SP/Controller/Grids/Items.class.php:372 msgid "Buscar Cuenta" -msgstr "Search for Accounts" +msgstr "Search for Account" #: ../../../../inc/SP/Controller/Grids/Items.class.php:403 #: ../../../../inc/SP/Controller/LoginController.class.php:233 @@ -1735,6 +1696,9 @@ msgstr "Edit User" #: ../../../../inc/SP/Controller/Grids/Items.class.php:490 #: ../../../../inc/SP/Controller/Grids/Items.class.php:491 +#: ../../../../inc/themes/material-blue/views/main/body-footer.inc:16 +#: ../../../../inc/themes/material-blue/views/main/body-header-menu.inc:46 +#: ../../../../inc/themes/material-blue/views/main/body-header-menu.inc:52 msgid "Cambiar Clave de Usuario" msgstr "Change User's Password" @@ -1969,7 +1933,7 @@ msgid "Leída" msgstr "Read" #: ../../../../inc/SP/Controller/Grids/Notices.class.php:74 -#: ../../../../inc/SP/Controller/MainController.class.php:270 +#: ../../../../inc/SP/Controller/MainController.class.php:271 #: ../../../../inc/themes/material-blue/inc/Icons.class.php:79 msgid "Notificaciones" msgstr "Notifications" @@ -1994,181 +1958,182 @@ msgstr "Checkout Notification" msgid "Eliminar Notificación" msgstr "Delete Notification" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:204 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:205 msgid "Usuario creado" msgstr "User added" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:210 -#: ../../../../inc/SP/Mgmt/Users/UserMigrate.class.php:103 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:211 +#: ../../../../inc/SP/Mgmt/Users/UserMigrate.class.php:102 msgid "Usuario actualizado" msgstr "User updated" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:216 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:217 msgid "Usuario eliminado" msgstr "User deleted" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:292 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:301 msgid "Grupo creado" msgstr "Group added" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:298 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:307 msgid "Grupo actualizado" msgstr "Group updated" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:304 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:313 msgid "Grupo eliminado" msgstr "Group deleted" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:329 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:339 msgid "Perfil creado" msgstr "Profile added" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:335 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:345 msgid "Perfil actualizado" msgstr "Profile updated" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:341 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:351 msgid "Perfil eliminado" msgstr "Profile deleted" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:372 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:383 msgid "Cliente actualizado" msgstr "Customer updated" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:408 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:420 msgid "Categoría actualizada" msgstr "Category updated" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:435 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:447 msgid "Autorización creada" msgstr "Authorization added" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:440 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:452 msgid "Autorización actualizada" msgstr "Authorization updated" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:445 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:457 msgid "Autorización eliminada" msgstr "Authorization deleted" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:467 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:480 msgid "Campo creado" msgstr "Field added" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:472 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:485 +#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:212 msgid "Campo actualizado" msgstr "Field updated" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:477 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:490 msgid "Campo eliminado" msgstr "Field deleted" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:502 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:516 #: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:142 msgid "Enlace creado" msgstr "Link created" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:507 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:521 #: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:235 msgid "Enlace actualizado" -msgstr "Link Updated" +msgstr "Link updated" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:512 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:526 #: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:197 msgid "Enlace eliminado" msgstr "Link deleted" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:534 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:549 msgid "Etiqueta creada" msgstr "Tag added" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:539 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:554 msgid "Etiqueta actualizada" msgstr "Tag updated" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:544 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:559 msgid "Etiqueta eliminada" msgstr "Tag removed" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:560 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:576 msgid "Archivo actualizado" msgstr "File updated" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:581 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:597 msgid "Plugin habilitado" msgstr "Plugin enabled" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:587 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:603 msgid "Plugin deshabilitado" msgstr "Plugin disabled" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:592 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:608 msgid "Plugin restablecido" msgstr "Plugin reset" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:631 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:648 msgid "Cuenta actualizada" msgstr "Account updated" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:641 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:658 msgid "Cuenta restaurada" msgstr "Account restored" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:668 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:685 msgid "Favorito añadido" msgstr "Favorite added" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:673 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:690 msgid "Favorito eliminado" msgstr "Favorite deleted" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:687 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:704 msgid "Importación de usuarios de LDAP realizada" msgstr "LDAP users import finished" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:688 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:705 #, php-format msgid "Usuarios importados %d/%d" msgstr "Imported users %d/%d" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:689 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:706 #, php-format msgid "Errores: %d" msgstr "Errors: %d" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:691 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:708 msgid "Error al importar usuarios de LDAP" msgstr "Error while importing LDAP users" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:709 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:726 msgid "Notificación leída" msgstr "Notification read" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:714 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:731 msgid "Notificación eliminada" msgstr "Notification deleted" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:732 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:749 msgid "Es necesaria una descripción" msgstr "A description is needed" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:747 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:764 msgid "Solicitud de Modificación de Cuenta" msgstr "Request for Account Modification" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:748 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:765 msgid "Solicitante" msgstr "Requester" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:768 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:785 msgid "Solicitud enviada por correo" msgstr "Request sent by email" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:770 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:787 msgid "Solicitud no enviada por correo" msgstr "Request not sent by email" -#: ../../../../inc/SP/Controller/ItemActionController.class.php:785 +#: ../../../../inc/SP/Controller/ItemActionController.class.php:802 msgid "Solicitud realizada" msgstr "Request done" @@ -2269,113 +2234,56 @@ msgid "Servidor LDAP" msgstr "LDAP Server" #: ../../../../inc/SP/Controller/LoginController.class.php:421 -#: ../../../../inc/themes/material-blue/views/userpreferences/preferences-security.inc:7 msgid "Autentificación" msgstr "Authentication" -#: ../../../../inc/SP/Controller/MainController.class.php:194 +#: ../../../../inc/SP/Controller/MainController.class.php:195 #: ../../../../inc/themes/material-blue/inc/Icons.class.php:52 +#: ../../../../inc/themes/material-blue/views/itemshow/users.inc:142 msgid "Admin Aplicación" msgstr "Application Admin" -#: ../../../../inc/SP/Controller/MainController.class.php:212 +#: ../../../../inc/SP/Controller/MainController.class.php:213 #: ../../../../inc/themes/material-blue/inc/Icons.class.php:72 msgid "Buscar" msgstr "Search" -#: ../../../../inc/SP/Controller/MainController.class.php:231 +#: ../../../../inc/SP/Controller/MainController.class.php:232 msgid "Usuarios y Accesos" msgstr "Users and Accesses" -#: ../../../../inc/SP/Controller/MainController.class.php:241 +#: ../../../../inc/SP/Controller/MainController.class.php:242 msgid "Elementos y Personalización" msgstr "Items and Customizations" -#: ../../../../inc/SP/Controller/MainController.class.php:261 +#: ../../../../inc/SP/Controller/MainController.class.php:262 #: ../../../../inc/themes/material-blue/views/eventlog/eventlog.inc:7 msgid "Registro de Eventos" msgstr "Event Log" -#: ../../../../inc/SP/Controller/MainController.class.php:291 -msgid "Nuevo estilo visual basado en Material Design Lite by Google" -msgstr "New visual design based on Material Design by Google" - -#: ../../../../inc/SP/Controller/MainController.class.php:292 -msgid "Usuarios en múltiples grupos" -msgstr "Users can belong to multiple groups" - -#: ../../../../inc/SP/Controller/MainController.class.php:293 -msgid "Previsualización de imágenes" -msgstr "Images previsualization" - -#: ../../../../inc/SP/Controller/MainController.class.php:294 -msgid "Mostrar claves como imágenes" -msgstr "Show passwords as images" - -#: ../../../../inc/SP/Controller/MainController.class.php:295 -msgid "Campos personalizados" -msgstr "Custom Fields" - -#: ../../../../inc/SP/Controller/MainController.class.php:296 -msgid "API de consultas" -msgstr "API queries" - -#: ../../../../inc/SP/Controller/MainController.class.php:297 -#: ../../../../inc/themes/material-blue/views/userpreferences/preferences-security.inc:17 -msgid "Autentificación en 2 pasos" -msgstr "Two factor authentication" - -#: ../../../../inc/SP/Controller/MainController.class.php:298 -msgid "Complejidad de generador de claves" -msgstr "Random number generator with complexity configuration" - -#: ../../../../inc/SP/Controller/MainController.class.php:299 -msgid "Consultas especiales" -msgstr "Special queries" - -#: ../../../../inc/SP/Controller/MainController.class.php:300 -msgid "Exportación a XML" -msgstr "XML Export" - -#: ../../../../inc/SP/Controller/MainController.class.php:301 -msgid "Clave maestra temporal" -msgstr "Temporary Master Password" - -#: ../../../../inc/SP/Controller/MainController.class.php:302 -msgid "Importación de cuentas desde sysPass, KeePass, KeePassX y CSV" -msgstr "Accounts import from KeePass, KeePassX and CSV" - -#: ../../../../inc/SP/Controller/MainController.class.php:303 -msgid "Optimización del código y mayor rapidez de carga" -msgstr "Code optimization and faster loading" - -#: ../../../../inc/SP/Controller/MainController.class.php:304 -msgid "Mejoras de seguridad en XSS e inyección SQL" -msgstr "Improved security to prevent XSS and SQL injection" - -#: ../../../../inc/SP/Controller/MainController.class.php:333 +#: ../../../../inc/SP/Controller/MainController.class.php:317 msgid "La version de PHP es vulnerable al ataque NULL Byte (CVE-2006-7243)" msgstr "This PHP version is vulnerable to NULL Byte attack CVE-2006-7243)" -#: ../../../../inc/SP/Controller/MainController.class.php:334 +#: ../../../../inc/SP/Controller/MainController.class.php:318 msgid "Actualice la versión de PHP para usar sysPass de forma segura" msgstr "Please update PHP version to run sysPass in a secure way" -#: ../../../../inc/SP/Controller/MainController.class.php:340 +#: ../../../../inc/SP/Controller/MainController.class.php:324 msgid "No se encuentra el generador de números aleatorios." msgstr "Cannot find random number generator." -#: ../../../../inc/SP/Controller/MainController.class.php:341 +#: ../../../../inc/SP/Controller/MainController.class.php:325 msgid "" "Sin esta función un atacante puede utilizar su cuenta al resetear la clave" msgstr "" "Without this function, an attacker could take your account on password reset." -#: ../../../../inc/SP/Controller/MainController.class.php:406 +#: ../../../../inc/SP/Controller/MainController.class.php:388 msgid "Descargar nueva versión" msgstr "Download new version" -#: ../../../../inc/SP/Controller/MainController.class.php:418 +#: ../../../../inc/SP/Controller/MainController.class.php:400 msgid "Avisos de sysPass" msgstr "sysPass Notices" @@ -2471,6 +2379,7 @@ msgid "Gestión Perfiles" msgstr "Profiles Management" #: ../../../../inc/SP/Core/Acl.class.php:237 +#: ../../../../inc/themes/material-blue/views/itemshow/profiles.inc:128 msgid "Configuración General" msgstr "General Configuration" @@ -2549,82 +2458,81 @@ msgstr "Observer not initialized" msgid "Es necesario un objeto" msgstr "An object is needed" -#: ../../../../inc/SP/Core/Init.class.php:147 +#: ../../../../inc/SP/Core/Init.class.php:148 msgid "Error en la verificación de la base de datos" msgstr "Error while checking database" -#: ../../../../inc/SP/Core/Init.class.php:276 +#: ../../../../inc/SP/Core/Init.class.php:277 msgid "Sesion" msgstr "Session" -#: ../../../../inc/SP/Core/Init.class.php:276 -#: ../../../../inc/SP/Core/Init.class.php:280 +#: ../../../../inc/SP/Core/Init.class.php:277 +#: ../../../../inc/SP/Core/Init.class.php:281 msgid "La sesión no puede ser inicializada" msgstr "Session cannot be initialized" -#: ../../../../inc/SP/Core/Init.class.php:382 -#: ../../../../inc/SP/Core/Init.class.php:594 -#: ../../../../inc/themes/material-blue/views/main/upgrade.inc:4 +#: ../../../../inc/SP/Core/Init.class.php:396 +#: ../../../../inc/SP/Core/Init.class.php:604 msgid "Actualización" msgstr "Update" -#: ../../../../inc/SP/Core/Init.class.php:383 -#: ../../../../inc/SP/Core/Init.class.php:595 +#: ../../../../inc/SP/Core/Init.class.php:397 +#: ../../../../inc/SP/Core/Init.class.php:605 msgid "Actualización de versión realizada." msgstr "Version updating done." -#: ../../../../inc/SP/Core/Init.class.php:406 +#: ../../../../inc/SP/Core/Init.class.php:417 msgid "El directorio \"/config\" no existe" msgstr "The \"/config\" directory does not exist." -#: ../../../../inc/SP/Core/Init.class.php:411 +#: ../../../../inc/SP/Core/Init.class.php:422 msgid "No es posible escribir en el directorio \"config\"" msgstr "Unable to write into the \"/config\" directory" -#: ../../../../inc/SP/Core/Init.class.php:418 +#: ../../../../inc/SP/Core/Init.class.php:429 msgid "Los permisos del directorio \"/config\" son incorrectos" -msgstr "The \"/config\" directory permissions are incorrect" +msgstr "The \"/config\" directory permissions are wrong" -#: ../../../../inc/SP/Core/Init.class.php:418 +#: ../../../../inc/SP/Core/Init.class.php:429 msgid "Actual:" msgstr "Current:" -#: ../../../../inc/SP/Core/Init.class.php:418 +#: ../../../../inc/SP/Core/Init.class.php:429 msgid "Necesario: 750" msgstr "Needed: 750" -#: ../../../../inc/SP/Core/Init.class.php:495 +#: ../../../../inc/SP/Core/Init.class.php:505 msgid "Aplicación en mantenimiento" msgstr "Application in maintenance" -#: ../../../../inc/SP/Core/Init.class.php:495 +#: ../../../../inc/SP/Core/Init.class.php:505 msgid "En breve estará operativa" msgstr "It will be running shortly" -#: ../../../../inc/SP/Core/Init.class.php:528 +#: ../../../../inc/SP/Core/Init.class.php:538 msgid "Finalizar sesión" msgstr "Logout session" -#: ../../../../inc/SP/Core/Init.class.php:530 +#: ../../../../inc/SP/Core/Init.class.php:540 msgid "Tiempo inactivo" msgstr "Inactive time" -#: ../../../../inc/SP/Core/Init.class.php:531 +#: ../../../../inc/SP/Core/Init.class.php:541 msgid "Tiempo total" msgstr "Total time" -#: ../../../../inc/SP/Core/Init.class.php:572 +#: ../../../../inc/SP/Core/Init.class.php:582 msgid "La aplicación necesita actualizarse" msgstr "The application needs to be updated" -#: ../../../../inc/SP/Core/Init.class.php:572 +#: ../../../../inc/SP/Core/Init.class.php:582 #, php-format msgid "Si es un administrador pulse en el enlace: %s" msgstr "If you are an administrator, click on the link: %s" -#: ../../../../inc/SP/Core/Init.class.php:572 +#: ../../../../inc/SP/Core/Init.class.php:582 #: ../../../../inc/themes/material-blue/inc/Icons.class.php:57 -#: ../../../../inc/themes/material-blue/views/main/upgrade.inc:25 +#: ../../../../inc/themes/material-blue/views/main/upgrade.inc:34 msgid "Actualizar" msgstr "Update" @@ -2690,7 +2598,7 @@ msgstr "Database name cannot contain \".\"" #: ../../../../inc/SP/Core/Installer.class.php:169 msgid "Elimine los puntos del nombre de la Base de Datos" -msgstr "Please remove dots in database name" +msgstr "Please, remove dots in database name" #: ../../../../inc/SP/Core/Installer.class.php:173 msgid "Indicar el servidor de la BBDD" @@ -2720,7 +2628,7 @@ msgstr "Unable to check the sysPass user" #: ../../../../inc/SP/Core/Installer.class.php:228 msgid "Compruebe los permisos del usuario de conexión a la BD" -msgstr "Please check the DB connection user rights" +msgstr "Please, check the DB connection user rights" #: ../../../../inc/SP/Core/Installer.class.php:279 #, php-format @@ -2837,54 +2745,49 @@ msgstr "Unable to unset the \"%s\" variable" msgid "La plantilla no contiene archivos" msgstr "Template does not contain files" -#: ../../../../inc/SP/Core/Upgrade.class.php:61 -msgid "Error al aplicar la actualización de la Base de Datos" -msgstr "Error on updating database" - #: ../../../../inc/SP/Core/Upgrade.class.php:62 -#: ../../../../inc/SP/Core/Upgrade.class.php:68 +msgid "Error al aplicar la actualización de la Base de Datos" +msgstr "Error while updating database" + +#: ../../../../inc/SP/Core/Upgrade.class.php:63 +#: ../../../../inc/SP/Core/Upgrade.class.php:69 msgid "Compruebe el registro de eventos para más detalles" msgstr "Please, check the event log for more details" -#: ../../../../inc/SP/Core/Upgrade.class.php:62 -#: ../../../../inc/SP/Core/Upgrade.class.php:68 +#: ../../../../inc/SP/Core/Upgrade.class.php:63 +#: ../../../../inc/SP/Core/Upgrade.class.php:69 #: ../../../../inc/themes/material-blue/views/main/login.inc:64 msgid "Acceder" msgstr "Sign in" -#: ../../../../inc/SP/Core/Upgrade.class.php:67 +#: ../../../../inc/SP/Core/Upgrade.class.php:68 msgid "Error al aplicar la actualización auxiliar" msgstr "Error while applying auxiliary update" -#: ../../../../inc/SP/Core/Upgrade.class.php:84 +#: ../../../../inc/SP/Core/Upgrade.class.php:85 msgid "Actualizar BBDD" msgstr "Update DB" -#: ../../../../inc/SP/Core/Upgrade.class.php:162 +#: ../../../../inc/SP/Core/Upgrade.class.php:130 msgid "No es necesario actualizar la Base de Datos." msgstr "Database update not needed." -#: ../../../../inc/SP/Core/Upgrade.class.php:174 +#: ../../../../inc/SP/Core/Upgrade.class.php:143 msgid "Error al aplicar la actualización de la Base de Datos." msgstr "Error while updating database." -#: ../../../../inc/SP/Core/Upgrade.class.php:183 +#: ../../../../inc/SP/Core/Upgrade.class.php:152 msgid "Actualización de la Base de Datos realizada correctamente." msgstr "Database updating was completed successfully." -#: ../../../../inc/SP/Core/Upgrade.class.php:283 -#: ../../../../inc/SP/Core/Upgrade.class.php:287 +#: ../../../../inc/SP/Core/Upgrade.class.php:304 msgid "Actualizar Configuración" msgstr "Update Configuration" -#: ../../../../inc/SP/Core/Upgrade.class.php:283 +#: ../../../../inc/SP/Core/Upgrade.class.php:341 msgid "Error al actualizar la configuración" msgstr "Error while updating the configuration" -#: ../../../../inc/SP/Core/Upgrade.class.php:287 -msgid "Actualización de la Configuración realizada correctamente." -msgstr "Configuration updating was completed successfully." - #: ../../../../inc/SP/Core/XmlExport.class.php:128 msgid "Exportar XML" msgstr "XML Export" @@ -3024,16 +2927,16 @@ msgstr "Please check the web server's user permissions" #: ../../../../inc/SP/Import/FileImport.class.php:121 msgid "Compruebe la extensión del archivo" -msgstr "Please check file extension" +msgstr "Please, check file extension" #: ../../../../inc/SP/Import/FileImport.class.php:137 msgid "Compruebe la configuración de PHP para subir archivos" -msgstr "Please check PHP configuration for upload files" +msgstr "Please, check PHP configuration for upload files" #: ../../../../inc/SP/Import/FileImport.class.php:157 #: ../../../../inc/SP/Import/FileImport.class.php:177 msgid "Compruebe los permisos del directorio temporal" -msgstr "Please check temporary directory permissions" +msgstr "Please, check temporary directory permissions" #: ../../../../inc/SP/Import/Import.class.php:81 #, php-format @@ -3042,7 +2945,7 @@ msgstr "Mime type not supported (\"%s\")" #: ../../../../inc/SP/Import/Import.class.php:82 msgid "Compruebe el formato del archivo" -msgstr "Please check the file format" +msgstr "Please, check the file format" #: ../../../../inc/SP/Import/Import.class.php:90 #: ../../../../inc/themes/material-blue/inc/Icons.class.php:66 @@ -3071,6 +2974,10 @@ msgstr "Customer Id not set. Unable to import the account." msgid "Clave de encriptación no indicada" msgstr "Encryption password not set" +#: ../../../../inc/SP/Import/XmlImport.class.php:65 +msgid "Inicio" +msgstr "Start" + #: ../../../../inc/SP/Import/XmlImport.class.php:66 #, php-format msgid "Formato detectado: %s" @@ -3097,6 +3004,7 @@ msgstr "Invalid XML format" msgid "El nodo \"%s\" no existe" msgstr "The \"%s\" node doesn't exist" +# Not available #: ../../../../inc/SP/Log/Email.class.php:66 msgid "N/D" msgstr "N/A" @@ -3152,39 +3060,44 @@ msgstr "Error while creating category" msgid "No es posible eliminar" msgstr "Unable to delete" -#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:145 +#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:138 +msgid "Categoría no encontrada" +msgstr "Category not found" + +#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:149 msgid "Error al eliminar la categoría" msgstr "Error while deleting category" -#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:209 +#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:213 msgid "Nombre de categoría duplicado" msgstr "Duplicated category name" -#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:229 +#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:233 msgid "Error al actualizar la categoría" msgstr "Error while updating category" -#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:232 +#: ../../../../inc/SP/Mgmt/Categories/Category.class.php:236 msgid "Modificar Categoría" msgstr "Category Edit" -#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php:71 +#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php:72 msgid "Error al crear el campo personalizado" msgstr "Error while creating custom field" -#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php:102 +#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php:103 msgid "Error al eliminar el campo personalizado" msgstr "Error while removing custom field" -#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php:146 +#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php:148 +#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:210 msgid "Error al actualizar el campo personalizado" msgstr "Error while updating custom field" -#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php:178 +#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php:181 msgid "Campo personalizado no encontrado" msgstr "Custom field not found" -#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php:237 +#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldDef.class.php:233 msgid "No se encontraron campos personalizados" msgstr "Custom fields not found" @@ -3214,32 +3127,48 @@ msgstr "Link" msgid "Color" msgstr "Color" -#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:84 +#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:81 +msgid "No hay datos de campos personalizados" +msgstr "No data from custom fields" + +#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:86 msgid "Actualizando datos encriptados" msgstr "Updating encrypted data" -#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:115 +#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:114 msgid "Registros no actualizados" -msgstr "No updated records" +msgstr "Records not updated" + +#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:115 +msgid "Registros actualizados" +msgstr "Records updated" + +#: ../../../../inc/SP/Mgmt/CustomFields/CustomFieldsUtil.class.php:188 +msgid "Error al migrar campos personalizados" +msgstr "Error while migrating custom fields" #: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:59 -#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:209 +#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:213 msgid "Cliente duplicado" -msgstr "Duplicate customer" +msgstr "Duplicated customer" #: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:75 msgid "Error al crear el cliente" msgstr "Error while creating customer" -#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:144 -msgid "Error al eliminar el cliente" -msgstr "Error on customer deletion" +#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:137 +msgid "Cliente no encontrado" +msgstr "Customer not found" -#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:229 +#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:148 +msgid "Error al eliminar el cliente" +msgstr "Error while deleting customer" + +#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:233 msgid "Error al actualizar el cliente" msgstr "Error while updating customer" -#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:232 +#: ../../../../inc/SP/Mgmt/Customers/Customer.class.php:236 msgid "Actualizar Cliente" msgstr "Update Customer" @@ -3258,7 +3187,7 @@ msgstr "Duplicated group name" #: ../../../../inc/SP/Mgmt/Groups/Group.class.php:69 msgid "Error al crear el grupo" -msgstr "Error on group creation" +msgstr "Error while creating group" #: ../../../../inc/SP/Mgmt/Groups/Group.class.php:83 msgid "Error al añadir los usuarios del grupo" @@ -3270,7 +3199,7 @@ msgstr "Group in use" #: ../../../../inc/SP/Mgmt/Groups/Group.class.php:137 msgid "Error al eliminar el grupo" -msgstr "Error on group deletion" +msgstr "Error while deleting group" #: ../../../../inc/SP/Mgmt/Groups/Group.class.php:145 #: ../../../../inc/SP/Mgmt/Groups/GroupUsers.class.php:94 @@ -3279,7 +3208,7 @@ msgstr "Error while deleting group users" #: ../../../../inc/SP/Mgmt/Groups/Group.class.php:226 msgid "Error al actualizar el grupo" -msgstr "Error on updating group" +msgstr "Error while updating group" #: ../../../../inc/SP/Mgmt/Groups/Group.class.php:229 msgid "Actualizar Grupo" @@ -3366,7 +3295,7 @@ msgid "Deshabilitado" msgstr "Disabled" #: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:60 -#: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:209 +#: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:205 msgid "Nombre de perfil duplicado" msgstr "Duplicated profile name" @@ -3382,27 +3311,27 @@ msgstr "Profile in use" msgid "Error al eliminar perfil" msgstr "Error while removing profile" -#: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:227 +#: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:223 msgid "Error al modificar perfil" msgstr "Error while modifying profile" -#: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:230 +#: ../../../../inc/SP/Mgmt/Profiles/Profile.class.php:226 msgid "Modificar Perfil" msgstr "Edit Profile" -#: ../../../../inc/SP/Mgmt/Profiles/ProfileUtil.class.php:51 +#: ../../../../inc/SP/Mgmt/Profiles/ProfileUtil.class.php:55 msgid "Migrar Perfiles" msgstr "Migrate Profiles" -#: ../../../../inc/SP/Mgmt/Profiles/ProfileUtil.class.php:82 +#: ../../../../inc/SP/Mgmt/Profiles/ProfileUtil.class.php:86 msgid "Error al obtener perfiles" msgstr "Error while retrieving profiles" -#: ../../../../inc/SP/Mgmt/Profiles/ProfileUtil.class.php:142 +#: ../../../../inc/SP/Mgmt/Profiles/ProfileUtil.class.php:146 msgid "Operación realizada correctamente" msgstr "Operation completed successfully" -#: ../../../../inc/SP/Mgmt/Profiles/ProfileUtil.class.php:144 +#: ../../../../inc/SP/Mgmt/Profiles/ProfileUtil.class.php:148 msgid "Fallo al realizar la operación" msgstr "Error while performing operation" @@ -3412,7 +3341,7 @@ msgstr "Link viewed" #: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:102 msgid "Error al actualizar enlace" -msgstr "Error on updating link" +msgstr "Error while updating link" #: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:115 msgid "Enlace ya creado" @@ -3438,19 +3367,19 @@ msgstr "Error while renewing link" msgid "Actualizar Enlace" msgstr "Update Link" -#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:267 -#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:379 -#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:419 +#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:268 +#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:367 +#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:399 msgid "Error al obtener enlace" msgstr "Error while retrieving link" -#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:332 -#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLinkSearch.class.php:81 +#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:319 +#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLinkSearch.class.php:74 msgid "ON" msgstr "ON" -#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:332 -#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLinkSearch.class.php:81 +#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLink.class.php:319 +#: ../../../../inc/SP/Mgmt/PublicLinks/PublicLinkSearch.class.php:74 msgid "OFF" msgstr "OFF" @@ -3483,7 +3412,7 @@ msgstr "Duplicated user login/email" #: ../../../../inc/SP/Mgmt/Users/User.class.php:97 msgid "Error al crear el usuario" -msgstr "Error on creating user" +msgstr "Error while creating user" #: ../../../../inc/SP/Mgmt/Users/User.class.php:107 #: ../../../../inc/SP/Mgmt/Users/User.class.php:257 @@ -3492,7 +3421,7 @@ msgstr "Could not perform the password change request." #: ../../../../inc/SP/Mgmt/Users/User.class.php:142 msgid "Error al eliminar el usuario" -msgstr "Error on user deletion" +msgstr "Error while deleting user" #: ../../../../inc/SP/Mgmt/Users/User.class.php:201 #: ../../../../inc/SP/Mgmt/Users/User.class.php:427 @@ -3501,7 +3430,7 @@ msgstr "Error while retrieving user's data" #: ../../../../inc/SP/Mgmt/Users/User.class.php:247 msgid "Error al actualizar el usuario" -msgstr "Error on user update" +msgstr "Error while updating user" #: ../../../../inc/SP/Mgmt/Users/User.class.php:252 msgid "Modificar Usuario" @@ -3514,7 +3443,7 @@ msgstr "Error while retrieving users" #: ../../../../inc/SP/Mgmt/Users/User.class.php:375 #: ../../../../inc/SP/Mgmt/Users/UserPass.class.php:145 msgid "Error al modificar la clave" -msgstr "Error on updating password" +msgstr "Error while updating password" #: ../../../../inc/SP/Mgmt/Users/UserLdap.class.php:101 #: ../../../../inc/themes/material-blue/inc/Icons.class.php:54 @@ -3523,7 +3452,7 @@ msgstr "LDAP User" #: ../../../../inc/SP/Mgmt/Users/UserLdap.class.php:112 msgid "Error al guardar los datos de LDAP" -msgstr "Error on saving LDAP user data" +msgstr "Error while saving LDAP user data" #: ../../../../inc/SP/Mgmt/Users/UserLdap.class.php:118 msgid "Activación Cuenta" @@ -3562,19 +3491,19 @@ msgstr "There are no objects to synchronize" msgid "Sincronización finalizada" msgstr "Synchronization finished" -#: ../../../../inc/SP/Mgmt/Users/UserMigrate.class.php:99 +#: ../../../../inc/SP/Mgmt/Users/UserMigrate.class.php:98 msgid "Error al migrar cuenta de usuario" msgstr "Error while migrating user account" -#: ../../../../inc/SP/Mgmt/Users/UserMigrate.class.php:124 +#: ../../../../inc/SP/Mgmt/Users/UserMigrate.class.php:123 msgid "Error al obtener grupo de usuarios" msgstr "Error while retrieving users group" -#: ../../../../inc/SP/Mgmt/Users/UserMigrate.class.php:135 +#: ../../../../inc/SP/Mgmt/Users/UserMigrate.class.php:134 msgid "Migrar Grupos" msgstr "Migrate Groups" -#: ../../../../inc/SP/Mgmt/Users/UserMigrate.class.php:135 +#: ../../../../inc/SP/Mgmt/Users/UserMigrate.class.php:134 msgid "Error al migrar grupo del usuario" msgstr "Error while migrating user group" @@ -3591,9 +3520,14 @@ msgid "Error al generar el hash de recuperación" msgstr "Error while generating the recovering hash" #: ../../../../inc/SP/Mgmt/Users/UserPreferences.class.php:79 +#: ../../../../inc/SP/Mgmt/Users/UserPreferencesUtil.class.php:103 msgid "Error al actualizar preferencias" msgstr "Error while updating preferences" +#: ../../../../inc/SP/Mgmt/Users/UserPreferencesUtil.class.php:55 +msgid "Actualizando preferencias" +msgstr "Updating preferences" + #: ../../../../inc/SP/Storage/XmlHandler.class.php:84 #, php-format msgid "No es posible leer/escribir el archivo: %s" @@ -3601,7 +3535,7 @@ msgstr "Unable to read/write the file: %s" #: ../../../../inc/SP/Storage/XmlHandler.class.php:160 msgid "No hay elementos para guardar" -msgstr "There are no items to save" +msgstr "There aren't items to save" #: ../../../../inc/SP/Util/Checks.class.php:84 msgid "Versión de PHP requerida >= " @@ -3633,6 +3567,10 @@ msgstr "Error while sending data" msgid "Error de codificación" msgstr "Encoding error" +#: ../../../../inc/SP/Util/Util.class.php:272 +msgid "Respuesta" +msgstr "Response" + #: ../../../../inc/SP/Util/Wiki/DokuWikiApi.class.php:69 msgid "Fallo de autentificación" msgstr "Authentication error" @@ -3641,7 +3579,7 @@ msgstr "Authentication error" msgid "Error al realizar la consulta" msgstr "Error while doing query" -#: ../../../../inc/SP/Util/Wiki/DokuWikiApiBase.class.php:211 +#: ../../../../inc/SP/Util/Wiki/DokuWikiApiBase.class.php:216 msgid "URL de conexión no establecida" msgstr "Connection URL not set" @@ -3669,6 +3607,7 @@ msgid "Cambiar Clave" msgstr "Change password" #: ../../../../inc/themes/material-blue/inc/Icons.class.php:53 +#: ../../../../inc/themes/material-blue/views/itemshow/users.inc:149 msgid "Admin Cuentas" msgstr "Account Admin" @@ -3677,8 +3616,8 @@ msgid "Copiar" msgstr "Copy" #: ../../../../inc/themes/material-blue/inc/Icons.class.php:63 +#: ../../../../inc/themes/material-blue/views/main/error.inc:12 #: ../../../../inc/themes/material-blue/views/main/error.inc:13 -#: ../../../../inc/themes/material-blue/views/main/error.inc:14 #: ../../../../inc/themes/material-blue/views/main/passreset.inc:56 msgid "Volver" msgstr "Back" @@ -3731,7 +3670,7 @@ msgstr "Last page" #: ../../../../js/strings.js.php:27 msgid "Error en la consulta" -msgstr "Error during query" +msgstr "Error while querying" #: ../../../../js/strings.js.php:28 msgid "Ha ocurrido un error" @@ -3975,6 +3914,7 @@ msgstr "This action will reset all plugin data. Do you want to continue?" #: ../../../../inc/themes/material-blue/views/account/account-editpass.inc:67 #: ../../../../inc/themes/material-blue/views/account/account.inc:130 +#: ../../../../inc/themes/material-blue/views/account/account.inc:137 #: ../../../../inc/themes/material-blue/views/itemshow/users.inc:105 #: ../../../../inc/themes/material-blue/views/itemshow/users.inc:112 #: ../../../../inc/themes/material-blue/views/itemshow/userspass.inc:47 @@ -4051,10 +3991,6 @@ msgstr "Private" msgid "Histórico" msgstr "History" -#: ../../../../inc/themes/material-blue/views/account/account.inc:137 -msgid "Clave (Repetir)" -msgstr "Password (Repeat)" - #: ../../../../inc/themes/material-blue/views/account/account.inc:175 msgid "Seleccionar Etiquetas" msgstr "Select Tags" @@ -4215,7 +4151,7 @@ msgstr "Search for accounts which contains a file with the name 'file_name'" #: ../../../../inc/themes/material-blue/views/accountsearch/searchbox.inc:30 msgid "Buscar cuentas con la etiqueta 'tag_name'" -msgstr "Search for accounts within tag 'tag_name'" +msgstr "Search for accounts with tag 'tag_name'" #: ../../../../inc/themes/material-blue/views/accountsearch/searchbox.inc:31 msgid "Buscar cuentas con la clave caducada" @@ -4263,7 +4199,7 @@ msgstr "sysPass Backup" #: ../../../../inc/themes/material-blue/views/config/backup.inc:38 msgid "No hay backups para descargar" -msgstr "There are no backups for download" +msgstr "There aren't backups for download" #: ../../../../inc/themes/material-blue/views/config/backup.inc:65 msgid "" @@ -4287,7 +4223,7 @@ msgstr "Export Accounts" #: ../../../../inc/themes/material-blue/views/config/backup.inc:111 msgid "No hay archivos XML para descargar" -msgstr "There is no files for download" +msgstr "There isn't files for download" #: ../../../../inc/themes/material-blue/views/config/backup.inc:117 #: ../../../../inc/themes/material-blue/views/config/backup.inc:125 @@ -4546,7 +4482,7 @@ msgstr "Allowed file extensions" #: ../../../../inc/themes/material-blue/views/config/general-files.inc:35 msgid "Extensiones permitidas para la subida de archivos." -msgstr "Allowed file extensions for file uploading." +msgstr "Allowed file extensions for uploading." #: ../../../../inc/themes/material-blue/views/config/general-files.inc:39 msgid "Se permite un máximo de 4 caracteres." @@ -4918,7 +4854,7 @@ msgstr "This group needs to be placed in the LDAP search base." #: ../../../../inc/themes/material-blue/views/config/ldap.inc:193 msgid "" "Define el grupo de usuarios por defecto para los nuevos usuarios de LDAP." -msgstr "Define the default users group for new LDAP users" +msgstr "Define the default users group for newly LDAP users" #: ../../../../inc/themes/material-blue/views/config/ldap.inc:210 msgid "Perfil por Defecto" @@ -4949,6 +4885,10 @@ msgstr "Enable email notifications" msgid "Habilitar Autentificación" msgstr "Enable Authentication" +#: ../../../../inc/themes/material-blue/views/config/mail.inc:94 +msgid "Seguridad" +msgstr "Security" + #: ../../../../inc/themes/material-blue/views/config/mail.inc:98 msgid "Deshabilitada" msgstr "Disabled" @@ -5214,10 +5154,6 @@ msgstr "Create private account" msgid "Asignar permisos" msgstr "Assign permissions" -#: ../../../../inc/themes/material-blue/views/itemshow/profiles.inc:128 -msgid "Configuración general" -msgstr "General configuration" - #: ../../../../inc/themes/material-blue/views/itemshow/profiles.inc:135 msgid "Opciones de encriptación" msgstr "Encryption options" @@ -5336,18 +5272,10 @@ msgstr "Email address" msgid "Administrador de la aplicación" msgstr "Application administrator" -#: ../../../../inc/themes/material-blue/views/itemshow/users.inc:142 -msgid "Admin. Aplicación" -msgstr "Application Admin" - #: ../../../../inc/themes/material-blue/views/itemshow/users.inc:146 msgid "Administrador de cuentas" msgstr "Accounts administrator" -#: ../../../../inc/themes/material-blue/views/itemshow/users.inc:149 -msgid "Admin. Cuentas" -msgstr "Accounts Admin" - #: ../../../../inc/themes/material-blue/views/itemshow/users.inc:161 msgid "Forzar cambio de clave" msgstr "Force password change" @@ -5370,12 +5298,6 @@ msgstr "Master Password Date" msgid "Salir" msgstr "Sign Out" -#: ../../../../inc/themes/material-blue/views/main/body-footer.inc:16 -#: ../../../../inc/themes/material-blue/views/main/body-header-menu.inc:46 -#: ../../../../inc/themes/material-blue/views/main/body-header-menu.inc:52 -msgid "Cambiar clave de usuario" -msgstr "Change user password" - #: ../../../../inc/themes/material-blue/views/main/body-footer.inc:21 #: ../../../../inc/themes/material-blue/views/main/body-header-menu.inc:56 msgid "Preferencias de usuario" @@ -5522,6 +5444,11 @@ msgstr "Updated" msgid "Error al comprobar actualizaciones" msgstr "Error while checking for updates" +#: ../../../../inc/themes/material-blue/views/main/upgrade.inc:4 +#, php-format +msgid "Actualización %s" +msgstr "Update %s" + #: ../../../../inc/themes/material-blue/views/main/upgrade.inc:9 msgid "Actualización de BBDD" msgstr "DB Update" @@ -5530,44 +5457,17 @@ msgstr "DB Update" msgid "Código de Seguridad" msgstr "Security Code" -#: ../../../../inc/themes/material-blue/views/main/upgrade.inc:27 +#: ../../../../inc/themes/material-blue/views/main/upgrade.inc:23 +msgid "" +"Este código se encuentra en el archivo de configuración de sysPass con la " +"etiqueta \"upgradeKey\"" +msgstr "" +"This code is set in the sysPass config file with the tag name \"upgradekey\"" + +#: ../../../../inc/themes/material-blue/views/main/upgrade.inc:36 msgid "Iniciar Actualización" msgstr "Start Update" -#: ../../../../inc/themes/material-blue/views/userpreferences/preferences-security.inc:22 -msgid "" -"Habilita la autentificación en 2 pasos que requiere de la introducción de un " -"token generado por una aplicación como Google Authenticator." -msgstr "" -"Enables two factor authentication that requires you to enter a token that is " -"generated by an application like Google Authenticator." - -#: ../../../../inc/themes/material-blue/views/userpreferences/preferences-security.inc:26 -msgid "" -"Escanee el código QR proporcionado y a continuación introduzca la clave de 6 " -"dígitos." -msgstr "Scan the provided QR code and then enter the 6 digit code." - -#: ../../../../inc/themes/material-blue/views/userpreferences/preferences-security.inc:35 -msgid "Activar" -msgstr "Activate" - -#: ../../../../inc/themes/material-blue/views/userpreferences/preferences-security.inc:41 -msgid "Error al obtener el código QR. Inténtelo de nuevo" -msgstr "Error while retrieving the QR code. Please, try again." - -#: ../../../../inc/themes/material-blue/views/userpreferences/preferences-security.inc:51 -msgid "Código" -msgstr "Code" - -#: ../../../../inc/themes/material-blue/views/userpreferences/preferences-security.inc:57 -msgid "" -"Una vez activada, sólo es posible acceder si se dispone del dispositivo " -"generador de códigos asociado." -msgstr "" -"Once enabled, you can only login if you have the device that generates the " -"code." - #: ../../../../inc/themes/material-blue/views/userpreferences/preferences-site.inc:84 msgid "Ordenar resultados por visitas" msgstr "Sort search results by views" @@ -5607,320 +5507,3 @@ msgstr "Search results of '%s'" #: ../../../../inc/themes/material-blue/views/wiki/wikipage.inc:23 msgid "Página" msgstr "Page" - -#~ msgid "Error al enviar la solicitud" -#~ msgstr "Error while sending request" - -#~ msgid "El código 2FA se ha de restablecer en %d días" -#~ msgstr "The 2FA code should be reset within %d days" - -#, fuzzy -#~ msgid "" -#~ "El código 2FA ha caducado. Es necesario restablecerlo desde las " -#~ "preferencias" -#~ msgstr "The 2FA code should be reset within %d days" - -#~ msgid "No hay categorías para importar" -#~ msgstr "There are no categories to import" - -#~ msgid "No hay clientes para importar" -#~ msgstr "There are no customers to import" - -#~ msgid "No hay cuentas para importar" -#~ msgstr "There are no accounts to import" - -#~ msgid "Introducir código" -#~ msgstr "Enter code" - -#~ msgid "Días Caducidad" -#~ msgstr "Expiry Days" - -#~ msgid "Días" -#~ msgstr "Days" - -#~ msgid "Cadena a buscar" -#~ msgstr "String to search for" - -#~ msgid "Numero de cuentas a mostar en la búsqueda" -#~ msgstr "Number of results per page to show when doing searches." - -#~ msgid "Item a devolver" -#~ msgstr "Item to return" - -#~ msgid "Plugin no inicializado" -#~ msgstr "Plugin not initialized" - -#~ msgid "Usuario/Clave incorrectos" -#~ msgstr "Wrong user/pass" - -#~ msgid "Id inválido" -#~ msgstr "Invalid Id" - -#~ msgid "Email de usuario duplicado" -#~ msgstr "Duplicated user email" - -#~ msgid "Error al actualizar el perfil" -#~ msgstr "Error on updating profile" - -#~ msgid "Error de conexión a LDAP" -#~ msgstr "Error on LDAP connection" - -#~ msgid "Servidor Login" -#~ msgstr "Login Server" - -#~ msgid "" -#~ "No se ha podido realizar la solicitud. Consulte con el administrador." -#~ msgstr "" -#~ "The request cannot be performed. Please contact to the administrator" - -#~ msgid "ERROR: Error en la operación." -#~ msgstr "ERROR: Operation failed" - -#~ msgid "No es posible escribir el archivo de configuración" -#~ msgstr "Unable to write in configuration file" - -#~ msgid "Compruebe los permisos del directorio \"config\"" -#~ msgstr "Please, check the \"config\" directory permissions" - -#~ msgid "Gestión de Categorías" -#~ msgstr "Categories Management" - -#~ msgid "Gestión de Clientes" -#~ msgstr "Customers Management" - -#~ msgid "Gestión de Usuarios" -#~ msgstr "Users Management" - -#~ msgid "Gestión de Grupos" -#~ msgstr "Groups Management" - -#~ msgid "Gestión de Perfiles" -#~ msgstr "Profiles Management" - -#~ msgid "Gestión de Autorizaciones API" -#~ msgstr "API Authorizations Management" - -#~ msgid "Gestión de Enlaces" -#~ msgstr "Links Management" - -#~ msgid "Pulse aquí para acceder" -#~ msgstr "Click here to sign in" - -#~ msgid "El usuario de MySQL ya existe" -#~ msgstr "The MySQL user already exists" - -#~ msgid "Indique un nuevo usuario o elimine el existente" -#~ msgstr "Enter a new username or delete the existing one" - -#~ msgid "Faltan parámetros" -#~ msgstr "Missing parameters" - -#~ msgid "Actualice a la última versión de phpPMS" -#~ msgstr "Please update to the last version of phpPMS" - -#~ msgid "Error al vaciar tabla" -#~ msgstr "Error while cleaning table" - -#~ msgid "Usuario actual no es administrador de la aplicación" -#~ msgstr "Current user is not an application administrator" - -#~ msgid "Contacte con el desarrollador" -#~ msgstr "Please contact the developer" - -#~ msgid "Importar Clientes" -#~ msgstr "Import Customers" - -#~ msgid "Registros" -#~ msgstr "Records" - -#~ msgid "Error al obtener los clientes" -#~ msgstr "Error while retrieving customer" - -#~ msgid "Cliente no encontrado" -#~ msgstr "Customer not found" - -#~ msgid "Error al migrar cuenta" -#~ msgstr "Error while importing account" - -#~ msgid "Error al obtener los grupos de cuentas" -#~ msgstr "Error while retrieving accounts groups" - -#~ msgid "Importar Grupos de Cuentas" -#~ msgstr "Import Accounts Groups" - -#~ msgid "Error al crear grupos de cuentas" -#~ msgstr "Error while creating accounts groups" - -#~ msgid "Error al obtener el historico de cuentas" -#~ msgstr "Error while retrieving accounts history" - -#~ msgid "Importar Histórico de Cuentas" -#~ msgstr "Import Accounts History" - -#~ msgid "Error al crear historico de cuentas" -#~ msgstr "Error while creating accounts history" - -#~ msgid "Error al obtener los archivos de cuentas" -#~ msgstr "Error while retrieving accounts files" - -#~ msgid "Importar Archivos de Cuentas" -#~ msgstr "Import Accounts Files" - -#~ msgid "Error al crear archivos de cuentas" -#~ msgstr "Error on creating accounts files" - -#~ msgid "Error al obtener las categorías de cuentas" -#~ msgstr "Error while retrieving accounts categories" - -#~ msgid "Importar Categorías de Cuentas" -#~ msgstr "Import Accounts Categories" - -#~ msgid "Error al crear categorías de cuentas" -#~ msgstr "Error while retrieving accounts categories" - -#~ msgid "Error al crear usuarios" -#~ msgstr "Error while creating users" - -#~ msgid "Importar Grupos de Usuarios" -#~ msgstr "Import Users Groups" - -#~ msgid "Error al crear los grupos de usuarios" -#~ msgstr "Error while adding users groups" - -#~ msgid "Importar Configuración" -#~ msgstr "Import Configuration" - -#~ msgid "Categoría en uso por:" -#~ msgstr "Category in use by:" - -#~ msgid "Cliente en uso por:" -#~ msgstr "Customer in use by:" - -#~ msgid "Buscar en desplegable o introducir" -#~ msgstr "Search down or enter" - -#~ msgid "Seleccionar grupos secundarios" -#~ msgstr "Select secondary groups" - -#~ msgid "Seleccionar usuarios" -#~ msgstr "Select users" - -#~ msgid "Añadir extensión" -#~ msgstr "Add extension" - -#~ msgid "Eliminar extensión" -#~ msgstr "Delete extension" - -#~ msgid "Atención" -#~ msgstr "Warning" - -#~ msgid "Validez" -#~ msgstr "Life" - -#~ msgid "Seguro" -#~ msgstr "Secure" - -#~ msgid "Inseguro" -#~ msgstr "Insecure" - -#~ msgid "Importar phpPMS" -#~ msgstr "phpPMS Import" - -#~ msgid "Usuario BBDD" -#~ msgstr "DB Username" - -#~ msgid "Indicar el usuario de conexión a la base de datos de phpPMS." -#~ msgstr "Provide the phpPMS database connection user." - -#~ msgid "Clave BBDD" -#~ msgstr "DB Password" - -#~ msgid "Nombre BBDD" -#~ msgstr "DB Name" - -#~ msgid "Indicar el nombre de la base de datos de phpPMS." -#~ msgstr "Provide the phpPMS database name." - -#~ msgid "Indicar el servidor de la base de datos de phpPMS." -#~ msgstr "Provide the phpPMS database server." - -#~ msgid "Confirmar" -#~ msgstr "Confirm" - -#~ msgid "Los datos actuales serán borrados (excepto el usuario actual)" -#~ msgstr "Current data will be removed (except current user)" - -#~ msgid "Iniciar" -#~ msgstr "Start" - -#~ msgid "Crear cuenta de admin de sysPass" -#~ msgstr "Create sysPass admin account" - -#~ msgid "Login de usuario con permisos de administrador de MySQL" -#~ msgstr "User login with database administrative rights" - -#~ msgid "Nombre del servidor de la base de datos de sysPass" -#~ msgstr "sysPass database server name" - -#~ msgid "Comprobar conexión con LDAP" -#~ msgstr "Check LDAP connection" - -#~ msgid "Verificar" -#~ msgstr "Verify" - -#~ msgid "Nuevas Características" -#~ msgstr "New Features" - -#~ msgid "Login del Usuario" -#~ msgstr "User login" - -#~ msgid "Nueva Clave" -#~ msgstr "New Password" - -#~ msgid "Solicitar cambio de clave" -#~ msgstr "Request password change" - -#~ msgid "Autenticación" -#~ msgstr "Authentication" - -#~ msgid "Autenticación en 2 pasos" -#~ msgstr "Two factor authentication" - -#~ msgid "Añadir nueva cuenta" -#~ msgstr "Add new account" - -#~ msgid "Borrar cuenta" -#~ msgstr "Delete account" - -#~ msgid "Borrar" -#~ msgstr "Delete" - -#~ msgid "Cambiar clave maestra" -#~ msgstr "Change Master Password" - -#~ msgid "Realizar copia de seguridad" -#~ msgstr "Perform backup" - -#~ msgid "No usado" -#~ msgstr "Not used" - -#~ msgid "Global ON" -#~ msgstr "Global ON" - -#~ msgid "CPP" -#~ msgstr "APP" - -#~ msgid "Introducir Código de Seguridad" -#~ msgstr "Enter Security Code" - -#~ msgid "Comprobar conexión con DokuWiki" -#~ msgstr "Check DokuWiki connection" - -#~ msgid "Añadir filtro" -#~ msgstr "Add filter" - -#~ msgid "Eliminar filtro" -#~ msgstr "Delete filter" - -#~ msgid "Seleccionar o escribir para crear uno nuevo" -#~ msgstr "Select or write to create a new one" diff --git a/inc/themes/material-blue/css/search-grid.css b/inc/themes/material-blue/css/search-grid.css index bc765846..5c00f052 100644 --- a/inc/themes/material-blue/css/search-grid.css +++ b/inc/themes/material-blue/css/search-grid.css @@ -70,7 +70,8 @@ #content #data-search .account-info { padding: .5em 0 .5em 0; text-align: left; - opacity: 0.3; } + opacity: 0.3; + min-height: 4em; } #content #data-search .account-info:hover { opacity: 1; } #content #data-search .account-actions { diff --git a/inc/themes/material-blue/css/search-grid.css.map b/inc/themes/material-blue/css/search-grid.css.map index c6cf126b..de52c6d8 100644 --- a/inc/themes/material-blue/css/search-grid.css.map +++ b/inc/themes/material-blue/css/search-grid.css.map @@ -1,6 +1,6 @@ { "version": 3, -"mappings": ";;AAIE,qBAAa;EACX,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,OAAO;EAChB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,MAAM;EAEd;4CACqB;IACnB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,OAAO;EAGjB,oCAAe;IACb,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,aAAa;IAC9B,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,OAAO;IACd,gBAAgB,EAAE,OAAO;IACzB,OAAO,EAAE,MAAM;IAEf;wDACgB;MACd,OAAO,EAAE,IAAI;MACb,UAAU,EAAE,GAAG;MACf,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MACX,OAAO,EAAE,OAAO;IAGlB,oDAAgB;MACd,MAAM,EAAE,GAAG;IAGb,gDAAY;MACV,OAAO,EAAE,IAAI;MACb,SAAS,EAAE,IAAI;MACf,WAAW,EAAE,MAAM;MACnB,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,GAAG;IAGb,iDAAa;MACX,OAAO,EAAE,IAAI;MACb,SAAS,EAAE,IAAI;MACf,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,GAAG;MACX,uDAAQ;QACN,KAAK,EAAE,IAAI;IAIf,iDAAa;MACX,KAAK,EAAE,IAAI;MACX,UAAU,EAAE,GAAG;MACf,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,MAAM;IAGjB,gDAAY;MACV,SAAS,EAAE,UAAU;MACrB,kDAAE;QACA,KAAK,EC7DG,OAAO;IDiEnB,oDAAgB;MACd,SAAS,EAAE,CAAC;IAGd,gDAAY;MACV,OAAO,EAAE,WAAW;MACpB,KAAK,EAAE,OAAO;MACd,OAAO,EAAE,IAAI;IAGf,uDAAmB;MACjB,OAAO,EAAE,IAAI;IAGf,wDAAoB;MAClB,KAAK,EAAE,KAAK;MACZ,WAAW,EAAE,IAAI;IAGnB;mDACW;MACT,KAAK,EAAE,KAAK;MACZ,WAAW,EAAE,IAAI;EAIrB,mCAAc;IACZ,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,GAAG;IACZ,yCAAQ;MACN,OAAO,EAAE,CAAC;EAId,sCAAiB;IACf,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,iBAAiB;EAG/B,qCAAgB;IACd,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;EAGZ,+BAAU;IACR,OAAO,EAAE,YAAY;IAErB,wCAAS;MACP,MAAM,EAAE,OAAO;MACf,OAAO,EAAE,GAAG;MACZ,8CAAQ;QACN,OAAO,EAAE,CAAC;;AAOpB,qCAAsC;EAGhC,oCAAe;IACb,SAAS,EAAE,IAAI;IAEf;wDACgB;MACd,SAAS,EAAE,IAAI;MACf,MAAM,EAAE,IAAI;IAIZ,6DAAY;MACV,OAAO,EAAE,KAAK;MACd,UAAU,EAAE,IAAI;MAChB,aAAa,EAAE,iBAAiB;IAIpC;qDACa;MACX,MAAM,EAAE,IAAI;IAGd;2DACmB;MACjB,KAAK,EAAE,IAAI", +"mappings": ";;AAIE,qBAAa;EACX,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,OAAO;EAChB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,MAAM;EAEd;4CACqB;IACnB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,MAAM,EAAE,OAAO;EAGjB,oCAAe;IACb,OAAO,EAAE,IAAI;IACb,eAAe,EAAE,aAAa;IAC9B,KAAK,EAAE,IAAI;IACX,UAAU,EAAE,GAAG;IACf,MAAM,EAAE,IAAI;IACZ,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,OAAO;IACd,gBAAgB,EAAE,OAAO;IACzB,OAAO,EAAE,MAAM;IAEf;wDACgB;MACd,OAAO,EAAE,IAAI;MACb,UAAU,EAAE,GAAG;MACf,MAAM,EAAE,IAAI;MACZ,KAAK,EAAE,IAAI;MACX,OAAO,EAAE,OAAO;IAGlB,oDAAgB;MACd,MAAM,EAAE,GAAG;IAGb,gDAAY;MACV,OAAO,EAAE,IAAI;MACb,SAAS,EAAE,IAAI;MACf,WAAW,EAAE,MAAM;MACnB,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,GAAG;IAGb,iDAAa;MACX,OAAO,EAAE,IAAI;MACb,SAAS,EAAE,IAAI;MACf,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,GAAG;MACX,uDAAQ;QACN,KAAK,EAAE,IAAI;IAIf,iDAAa;MACX,KAAK,EAAE,IAAI;MACX,UAAU,EAAE,GAAG;MACf,MAAM,EAAE,IAAI;MACZ,OAAO,EAAE,MAAM;IAGjB,gDAAY;MACV,SAAS,EAAE,UAAU;MACrB,kDAAE;QACA,KAAK,EC7DG,OAAO;IDiEnB,oDAAgB;MACd,SAAS,EAAE,CAAC;IAGd,gDAAY;MACV,OAAO,EAAE,WAAW;MACpB,KAAK,EAAE,OAAO;MACd,OAAO,EAAE,IAAI;IAGf,uDAAmB;MACjB,OAAO,EAAE,IAAI;IAGf,wDAAoB;MAClB,KAAK,EAAE,KAAK;MACZ,WAAW,EAAE,IAAI;IAGnB;mDACW;MACT,KAAK,EAAE,KAAK;MACZ,WAAW,EAAE,IAAI;EAIrB,mCAAc;IACZ,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,IAAI;IAChB,OAAO,EAAE,GAAG;IACZ,UAAU,EAAE,GAAG;IACf,yCAAQ;MACN,OAAO,EAAE,CAAC;EAId,sCAAiB;IACf,UAAU,EAAE,QAAQ;IACpB,OAAO,EAAE,MAAM;IACf,UAAU,EAAE,KAAK;IACjB,UAAU,EAAE,iBAAiB;EAG/B,qCAAgB;IACd,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,GAAG;IACX,KAAK,EAAE,GAAG;EAGZ,+BAAU;IACR,OAAO,EAAE,YAAY;IAErB,wCAAS;MACP,MAAM,EAAE,OAAO;MACf,OAAO,EAAE,GAAG;MACZ,8CAAQ;QACN,OAAO,EAAE,CAAC;;AAOpB,qCAAsC;EAGhC,oCAAe;IACb,SAAS,EAAE,IAAI;IAEf;wDACgB;MACd,SAAS,EAAE,IAAI;MACf,MAAM,EAAE,IAAI;IAIZ,6DAAY;MACV,OAAO,EAAE,KAAK;MACd,UAAU,EAAE,IAAI;MAChB,aAAa,EAAE,iBAAiB;IAIpC;qDACa;MACX,MAAM,EAAE,IAAI;IAGd;2DACmB;MACjB,KAAK,EAAE,IAAI", "sources": ["search-grid.scss","_base.scss"], "names": [], "file": "search-grid.css" diff --git a/inc/themes/material-blue/css/search-grid.min.css b/inc/themes/material-blue/css/search-grid.min.css index d8d985fd..134132f7 100644 --- a/inc/themes/material-blue/css/search-grid.min.css +++ b/inc/themes/material-blue/css/search-grid.min.css @@ -1 +1 @@ -@charset "UTF-8";#content #data-search{text-align:center;padding:.5em 0;width:100%;margin:0 auto}#content #data-search .account-info img,#content #data-search .account-actions img{width:24px;height:24px;margin:0 .5em}#content #data-search .account-label{display:flex;justify-content:space-between;width:100%;min-height:8em;height:auto;text-align:left;margin:0 auto .5em;color:#696969;background-color:#fcfcfc;padding:0 .5em}#content #data-search .account-label .label-row-up,#content #data-search .account-label .label-row-down{display:flex;min-height:3em;height:auto;width:100%;padding:.5em 0}#content #data-search .account-label .label-row-down{height:3em}#content #data-search .account-label .label-left{display:flex;flex-wrap:wrap;align-items:center;width:100%;height:4em}#content #data-search .account-label .label-right{display:flex;flex-wrap:wrap;width:18em;height:4em}#content #data-search .account-label .label-right>div{width:18em}#content #data-search .account-label .label-field{width:100%;min-height:3em;height:auto;padding:0 .3em}#content #data-search .account-label .field-text{word-wrap:break-word}#content #data-search .account-label .field-text a{color:#5c6bc0}#content #data-search .account-label .field-customer{flex-grow:2}#content #data-search .account-label .field-name{padding:.3em .2em;color:#b9b9b9;display:none}#content #data-search .account-label .field-name-hidden{display:none}#content #data-search .account-label .header .field-name{color:white;font-weight:bold}#content #data-search .account-label .no-link,#content #data-search .account-label .no-link a{color:white;font-weight:bold}#content #data-search .account-info{padding:.5em 0 .5em 0;text-align:left;opacity:.3}#content #data-search .account-info:hover{opacity:1}#content #data-search .account-actions{align-self:baseline;padding:.5em 0;text-align:right;border-top:1px solid #c9c9c9}#content #data-search .account-spacer{float:left;clear:left;height:2em;width:20%}#content #data-search .tags-box{display:inline-block}#content #data-search .tags-box span.tag{cursor:pointer;opacity:.3}#content #data-search .tags-box span.tag:hover{opacity:1}@media screen and (max-width:1000px){#content #data-search .account-label{flex-wrap:wrap}#content #data-search .account-label .label-row-up,#content #data-search .account-label .label-row-down{flex-wrap:wrap;height:auto}#content #data-search .account-label .label-field .field-name{display:block;text-align:left;border-bottom:1px solid #d9d9d9}#content #data-search .account-label .label-left,#content #data-search .account-label .label-right{height:auto}#content #data-search .account-label .label-right,#content #data-search .account-label .label-right>div{width:100%}} \ No newline at end of file +@charset "UTF-8";#content #data-search{text-align:center;padding:.5em 0;width:100%;margin:0 auto}#content #data-search .account-info img,#content #data-search .account-actions img{width:24px;height:24px;margin:0 .5em}#content #data-search .account-label{display:flex;justify-content:space-between;width:100%;min-height:8em;height:auto;text-align:left;margin:0 auto .5em;color:#696969;background-color:#fcfcfc;padding:0 .5em}#content #data-search .account-label .label-row-up,#content #data-search .account-label .label-row-down{display:flex;min-height:3em;height:auto;width:100%;padding:.5em 0}#content #data-search .account-label .label-row-down{height:3em}#content #data-search .account-label .label-left{display:flex;flex-wrap:wrap;align-items:center;width:100%;height:4em}#content #data-search .account-label .label-right{display:flex;flex-wrap:wrap;width:18em;height:4em}#content #data-search .account-label .label-right>div{width:18em}#content #data-search .account-label .label-field{width:100%;min-height:3em;height:auto;padding:0 .3em}#content #data-search .account-label .field-text{word-wrap:break-word}#content #data-search .account-label .field-text a{color:#5c6bc0}#content #data-search .account-label .field-customer{flex-grow:2}#content #data-search .account-label .field-name{padding:.3em .2em;color:#b9b9b9;display:none}#content #data-search .account-label .field-name-hidden{display:none}#content #data-search .account-label .header .field-name{color:white;font-weight:bold}#content #data-search .account-label .no-link,#content #data-search .account-label .no-link a{color:white;font-weight:bold}#content #data-search .account-info{padding:.5em 0 .5em 0;text-align:left;opacity:.3;min-height:4em}#content #data-search .account-info:hover{opacity:1}#content #data-search .account-actions{align-self:baseline;padding:.5em 0;text-align:right;border-top:1px solid #c9c9c9}#content #data-search .account-spacer{float:left;clear:left;height:2em;width:20%}#content #data-search .tags-box{display:inline-block}#content #data-search .tags-box span.tag{cursor:pointer;opacity:.3}#content #data-search .tags-box span.tag:hover{opacity:1}@media screen and (max-width:1000px){#content #data-search .account-label{flex-wrap:wrap}#content #data-search .account-label .label-row-up,#content #data-search .account-label .label-row-down{flex-wrap:wrap;height:auto}#content #data-search .account-label .label-field .field-name{display:block;text-align:left;border-bottom:1px solid #d9d9d9}#content #data-search .account-label .label-left,#content #data-search .account-label .label-right{height:auto}#content #data-search .account-label .label-right,#content #data-search .account-label .label-right>div{width:100%}} \ No newline at end of file diff --git a/inc/themes/material-blue/css/search-grid.scss b/inc/themes/material-blue/css/search-grid.scss index 688bcf53..96155401 100644 --- a/inc/themes/material-blue/css/search-grid.scss +++ b/inc/themes/material-blue/css/search-grid.scss @@ -102,6 +102,7 @@ padding: .5em 0 .5em 0; text-align: left; opacity: 0.3; + min-height: 4em; &:hover { opacity: 1; } diff --git a/inc/themes/material-blue/views/account/account.inc b/inc/themes/material-blue/views/account/account.inc index 6acb1153..5077e5d1 100644 --- a/inc/themes/material-blue/views/account/account.inc +++ b/inc/themes/material-blue/views/account/account.inc @@ -134,7 +134,7 @@ class="mdl-textfield__input mdl-color-text--indigo-400" maxlength="255" autocomplete="off"> + for="accountpassR"> diff --git a/inc/themes/material-blue/views/itemshow/profiles.inc b/inc/themes/material-blue/views/itemshow/profiles.inc index eccfdea4..56273e39 100644 --- a/inc/themes/material-blue/views/itemshow/profiles.inc +++ b/inc/themes/material-blue/views/itemshow/profiles.inc @@ -125,7 +125,7 @@ class="mdl-switch__input mdl-color-text--indigo-400" name="profile_config" isConfigGeneral() ? 'CHECKED' : ''; ?> /> + title="">
diff --git a/inc/themes/material-blue/views/main/body-footer.inc b/inc/themes/material-blue/views/main/body-footer.inc index a3515730..bd504950 100644 --- a/inc/themes/material-blue/views/main/body-footer.inc +++ b/inc/themes/material-blue/views/main/body-footer.inc @@ -13,7 +13,7 @@ data-item-id="" data-sk="">security + class="mdl-tooltip mdl-tooltip--top"> account_circle diff --git a/inc/themes/material-blue/views/main/body-header-menu.inc b/inc/themes/material-blue/views/main/body-header-menu.inc index 8d497b02..35ecec09 100644 --- a/inc/themes/material-blue/views/main/body-header-menu.inc +++ b/inc/themes/material-blue/views/main/body-header-menu.inc @@ -43,13 +43,13 @@ security - + - + <?php echo $appInfo['appname'], ' :: ', $appInfo['appdesc']; ?> diff --git a/inc/themes/material-blue/views/userpreferences/preferences-security.inc b/inc/themes/material-blue/views/userpreferences/preferences-security.inc deleted file mode 100644 index 37197d06..00000000 --- a/inc/themes/material-blue/views/userpreferences/preferences-security.inc +++ /dev/null @@ -1,80 +0,0 @@ - - - -

\ No newline at end of file diff --git a/js/app-actions.min.js b/js/app-actions.min.js index 304385ab..3ca5d543 100644 --- a/js/app-actions.min.js +++ b/js/app-actions.min.js @@ -1,5 +1,5 @@ var $jscomp={scope:{},findInternal:function(c,d,h){c instanceof String&&(c=String(c));for(var e=c.length,g=0;g