Elgg Core - en to es translation catalogue (359 entries)

en: "**{subject}** **{verb}** **{target}**."
es: «**{sujeto}** **{verbo}** **{objeto}**.»

en: "**{subject}** is a **{noun}** of **{target}**."
es: «**{sujeto}** es un **{substantivo}** de **{objeto}**.»

en: "Appending" metadata
es: “Anexar” metadatos

en: **$event** The event name.
es: **$event:** El nombre del evento.

en: **$handler** The callback of the handler function.
es: **$handler:** La llamada de retorno de la función manejadora.

en: **$hook** The name of the plugin hook.
es: **$hook:** El nombre del gancho de complementos.

en: **$object** The object (e.g. an instance of ``ElggUser`` or ``ElggGroup``)
es: **$object:** El objeto (como puede ser una instancia de ``ElggUser`` o de ``ElggGroup``).

en: **$object_type** The object type (e.g. "user" or "object") or 'all' for all types on which the event is fired.
es: **$object_type:** El tipo de objeto (por ejemplo: «user» o «object») en el que se lanza el evento, «all» si son todos los tipos.

en: **$object_type** The object type (e.g. "user" or "object").
es: **$object_type:** El tipo de objeto (por ejemplo: «user» o «object»).

en: **$params** Arbitrary data passed from the trigger to the handlers.
es: **$params:** Datos arbitrarios que se pasaron del desencadenante a los manejadores.

en: **$priority** The priority - 0 is first and the default is 500.
es: **$priority:** La prioridad. 0 es la mayor prioridad, 500 es el valor predeterminado.

en: **$type** The type of the hook or 'all' for all types.
es: **$type:** El tipo del gancho, o «all» si son todos los tipos.

en: **$value** The initial value of the plugin hook.
es: **$value:** El valor inicial del gancho de complementos.

en: ***This section is deprecated as of Elgg 1.8***
es: ***Esta sección está obsoleta desde Elgg 1.8***

en: **0** Private.
es: **0** Privado.

en: **1** Logged in users.
es: **1** Usuarios registrados.

en: **2** Public data.
es: **2** Público.

en: **A relationship does not imply reciprocity**. **A** follows **B** does not imply that **B** follows **A**.
es: **Las relaciones no implicar reciprocidad**. Que **A** siga a **B** no significa que **B** siga a **A**.

en: **Caveat!** The `$params` and `$value` arguments are reversed between the plugin hook handlers and trigger functions!
es: **Advertencia:** Los argumentos `$params` y `$value` tienen una posición distinta entre los manejadores del gancho de complementos y las funciones desencadenantes.

en: **Each relationship has direction.** Imagine an archer shoots an arrow at a target; The arrow moves in one direction, binding the subject (the archer) to the target.
es: **Toda relación tiene una dirección.** Imagínese un arquero disparando una flecha al objeto. La flecha se mueve en una dirección, relacionando el sujeto (el arquero) con el objeto.

en: **Object** here does not refer to an ``ElggObject`` but rather any object in the framework: system, user, object, relationship, annotation, group.
es: Aquí **object** no hace referencia a una instancia de ``ElggObject``, sino a cualquier objeto de la infraestructura: ``system`` (sistema), ``user`` (usuario), ``object`` (objeto), ``relationship`` (relación), ``annotation`` (anotación) o ``group`` (grupo).

en: **Relationships_ do not have access control.** They're never hidden from view and can be edited with code at any privilege level, with the caveat that *the entities* in a relationship may be invisible due to access control!
es: **Las relaciones_ carecen de control de acceso.** Nunca se les ocultan a las vistas, y pueden editarse mediante código independientemente del nivel de privilegios, con la pega de que las *entidades* de la relación podrían sí ser invisibles por culpa del control de acceso.

en: **Type** can vary in meaning. It may mean an Elgg entity type or something specific to the plugin hook name.
es: El significado del **tipo** puede variar. Podría tratarse del tipo de una entidad de Elgg o de algo específico del nombre del gancho de complementos.

en: **access\_id** Access controls on this entity.
es: **access\_id:** Los controles de acceso de la entidad.

en: **access\_id** An Access controls on this item of metadata.
es: **access\_id:** Los controles de acceso del metadato.

en: **class** Optional class name if this subtype is linked with a class
es: **class:** Nombre de clase opcional si el subtipo está enlazado con una clase.

en: **container\_guid** The GUID this entity is contained by - either a user or a group.
es: **container\_guid:** El identificador único de la entidad que contiene a esta, que puede ser un usuario o un grupo.

en: **enabled** If this is 'yes' an entity is accessible, if 'no' the entity has been disabled (Elgg treats it as if it were deleted without actually removing it from the database).
es: **enabled:** Si su valor es «yes» se puede acceder a la entidad, si es «no» la entidad está desactivada (Elgg la trata como si hubiese sido eliminada pero sin que se haya eliminado realmente de la base de datos).

en: **enabled** If this is 'yes' an item is accessible, if 'no' the item has been deleted.
es: **enabled:** Si su valor es «yes» se puede acceder al elemento, si es «no» el elemento ha sido eliminado.

en: **entity\_guid** The entity this is attached to.
es: **entity\_guid:** Identificador de la entidad a la que está anexado el metadato.

en: **guid** An auto-incrementing counter producing a GUID that uniquely identifies this entity in the system.
es: **guid:** Un contador que aumenta automáticamente y produce un identificador único para la entidad dentro del sistema.

en: **guid\_one** The GUID of the subject entity.
es: **guid\_one:** El identificador de la entidad sujeto.

en: **guid\_two** The GUID of the target entity.
es: **guid\_two:** El identificador de la entidad objeto.

en: **id** A counter.
es: **id:** Un contador.

en: **name\_id** A link to the metastrings table defining the name table.
es: **name\_id:** Un enlace a la tabla «metastrings» que define el nombre.

en: **name\_id** A link to the metastrings table defining the type of annotation.
es: **name\_id:** Un enlace a la tabla «metastrings» que define el tipo de anotación.

en: **owner\_guid** The GUID of the owner's entity.
es: **owner\_guid:** El identificador único del propietario de la entidad.

en: **owner\_guid** The owner GUID of the owner who set this item of metadata.
es: **owner\_guid:** El identificador único del propietario, es decir, de quien definió el metadato.

en: **relationship** The type of the relationship.
es: **relationship:** El tipo de la relación.

en: **site\_guid** The site the entity belongs to.
es: **site\_guid:** El sitio al que pertenece la entidad.

en: **subtype** A link to the `entity_subtypes` table.
es: **subtype:** Un enlace a la tabla `entity_subtypes`.

en: **subtype** The subtype name as a string.
es: **subtype:** El nombre del subtipo en forma de cadena de texto.

en: **time\_created** Unix timestamp of when the entity is created.
es: **time\_created:** La fecha y hora de creación de la entidad en formato Unix.

en: **time\_created** Unix timestamp of when the metadata is created.
es: **time\_created:** La fecha y hora de creación del metadato en formato Unix.

en: **time\_updated** Unix timestamp of when the entity was updated.
es: **time\_updated:** La fecha y hora de la última actualización de la entidad en formato Unix.

en: **type** The type of entity - object, user, group or site
es: **type:** El tipo de la entidad (``object``, ``user``, ``group`` o ``site``).

en: **type** The type of entity - object, user, group or site.
es: **type:** El tipo de la entidad (``object``, ``user``, ``group`` o ``site``)..

en: **value\_id** A link to the metastrings table defining the value.
es: **value\_id:** Un enlace a la tabla «metastrings» que define el valor.

en: **value\_type** The value class, either text or an integer.
es: **value\_type:** La clase del valor, o bien «text» (texto) o bien «integer» (número entero).

en: 1. Simplified dependency management
es: 1. Simplifica la gestión de dependencias.

en: 2. AMD works in all browsers. Today.
es: 2. AMD ya funciona en todos los navegadores.

en: 3. You do not need a build step to develop in AMD.
es: 3. No hace falta ningún paso de construcción para desarrollar con AMD.

en: A GUID is an integer that uniquely identifies every entity in an Elgg installation (a Globally Unique IDentifier). It's assigned automatically when the entity is first saved and can never be changed.
es: Un identificador único (GUID) es un número entero que identifica de manera inequívoca cada entidad de una instalación de Elgg. Se asigna de manera automática cuando la entidad se guarda por primera vez, y no se puede volver a cambiar nunca.

en: A container, usually used to associate a group's content with the group.
es: Un contenedor, usado habitualmente para asociar el contenido de un grupo con el grupo.

en: A numeric Globally Unique IDentifier (See `GUIDs`_).
es: Un identificador numérico único (véase `Identificadores únicos`_).

en: A plugin hook has a value passed into the trigger function, and each handler has an opportunity to alter the value before it's passed to the next handler. After the last handler has completed, the current value is returned by the trigger.
es: Los ganchos de complementos tienen un valor que se pasa a la función de desencadenamiento, y cada manejador tiene la oportunidad de alterar el valor antes de que se pase al siguiente manejador. Una vez se ejecute el último de los manejadores, el desencadenante devuelve el valor actual.

en: A thorough discussion of Elgg's data model design and motivation.
es: Una discusión a conciencia del diseño y la motivación del modelo de datos de Elgg.

en: A value (which can be a string or integer)
es: Un valor (que puede ser una cadena de texto o un número entero).

en: AMD is a battle-tested and well thought out module loading system for the web today. We're very thankful for the work that has gone into it, and are excited to offer it as the standard solution for JavaScript development in Elgg starting with Elgg 1.9.
es: AMD es un sistema de carga de módulos a prueba de balas y bien diseñado, pensado para la web actual. Estamos muy agradecidos por el esfuerzo que sus desarrolladores han puesto en él, y estamos emocionados ante la idea de ofrecerlo como la solución estándar para el desarrollo con JavaScript en Elgg empezando con la versión 1.9.

en: AMD modules load asynchronously and execute as soon as their dependencies are available, so this eliminates the need to specify "priority" and "location" when registering JS libs in Elgg. Also, you don't need to worry about explicitly loading a module's dependencies in PHP. The AMD loader (RequireJS in this case) takes care of all that hassle for you. It's also possible have `text dependencies <http://requirejs.org/docs/api.html#text>`_ with the RequireJS text plugin, so client-side templating should be a breeze.
es: Los módulos de AMD se cargan de manera asíncrona y se ejecutan en cuanto sus dependencias están disponibles, lo que elimina la necesidad de especificar la «prioridad» o la «localización» a la hora de registrar bibliotecas JavaScript en Elgg. Además, no tiene que preocuparse de cargar explícitamente las dependencias de un módulo desde PHP. El cargador de AMD (RequireJS en este caso) se encarga de todo ello por usted. También se pueden tener `dependencias de texto <http://requirejs.org/docs/api.html#text>`_ con el complemento de texto de RequireJS, de forma que utilizar modelos del lado del cliente será pan comido.

en: API name
es: Nombre en el API

en: Access Control
es: Control de acceso

en: Access controls in the data model
es: Controles de acceso en el modelo de datos

en: Access permissions are inherited from the entity
es: Los permisos de acceso se heredan de la entidad.

en: Access permissions. (When a plugin requests data, it never gets to touch data that the current user doesn't have permission to see.)
es: Permisos de acceso. Cuando un complemento solicita datos, no puede conseguir acceso a datos para los que el usuario actual no tiene permisos.

en: Adding an annotation
es: Añadir una anotación

en: Adding content
es: Añadir contenido

en: Adding metadata
es: Añadir metadatos

en: Admins can edit anything
es: Los administradores pueden editarlo todo.

en: After Events, with names ending in ":after", are triggered after something happens. Unlike traditional events, handlers *cannot* cancel these events; all handlers will always be called.
es: Los eventos del después, con nombres que terminan en «:after», ocurren después de que algo suceda. A diferencia de los eventos tradicionales, sus manejadores *no* pueden cancelar estos eventos; se llama siempre a todos los manejadores.

en: All data retrieval functions above the database layer - for example ``get_entities`` and its cousins - will only return items that the current user has access to see. It is not possible to retrieve items that the current user does not have access to. This makes it very hard to create a security hole for retrieval.
es: Todas las funciones de obtención de datos que hay sobre la capa de la base de datos —como ``get_entities`` y similares— sólo devuelven elementos a los que el usuario actual tiene acceso de lectura. No es posible obtener elementos a los que el usuario actual no tiene acceso. Esto dificulta el crear una brecha de seguridad en la obtención de datos.

en: Also see
es: Véase también

en: Alternative authentication
es: Autenticación alternativa

en: An access permission distinct from the entity it's attached to
es: Un permiso de acceso distinto del de la entidad a la que está anexado.

en: An arbitrary subtype. For example, a blog post is an ElggObject with a subtype of "blog". Subtypes aren't predefined; they can be any unique way to describe a particular kind of entity. "blog", "forum", "foo", "bar", "loafofbread" and "pyjamas" are all valid subtypes.
es: Un subtipo arbitrario. Por ejemplo, un artículo de blog es un «ElggObject» de subtipo «blog». Los subtipos no están predefinidos, pueden ser cualquier forma única de identificar un tipo de entidad. Son ejemplos de subtipos válidos «blog», «foro» o «pato».

en: An internal annotation type (like *comment*)
es: Un tipo de anotación interno (como *comment*, «comentario»).

en: An owner
es: Un propietario.

en: An owner.
es: Un propietario.

en: Annotations
es: Anotaciones

en: Annotations are pieces of data attached to an entity that allow users to leave ratings, or other relevant feedback. A poll plugin might register votes as annotations. Before Elgg 1.9, comments and group discussion replies were stored as annotations.
es: Las anotaciones son fragmentos de datos anexados a una entidad y que permiten a los usuarios indicar puntuaciones o añadir con ellas otro tipo de información relevante a la entidad a la que se añaden. Un complemento de encuestas podría, por ejemplo, registrar los votos como anotaciones. Antes de Elgg 1.9, los comentarios y las respuestas a discusiones de grupo se almacenaban como anotaciones.

en: Annotations are stored as instances of the ``ElggAnnotation`` class.
es: Las anotaciones se almacenan como instancias de la clase ``ElggAnnotation``.

en: Be aware that you will then need to pass the container GUID or username to the page responsible for posting and the accompanying value, so that this can then be stored in your form as a hidden input field, for easy passing to your actions. Within a "create" action, you'll need to take in this input field and save it as a property of your new element (defaulting to the current user's container):
es: Tenga en cuenta que entonces tendrá que pasarle el identificador del contenedor o el nombre del usuario a la página responsable de publicar el contenido y el valor que lo acompañe, de forma que se pueda almacenar en su formulario como un campo de entrada oculto, para pasar fácilmente sus acciones. Dentro de una acción de crear, necesitará obtener este campo de entrada y guardarlo como una propiedad del nuevo elemento cuyo valor predeterminado es el contenedor del usuario actual:

en: Because ``ElggGroup`` can be subtyped like all other ElggEntities, you can have multiple types of groups running on the same site.
es: Dado que ``ElggGroup`` puede tener un subtipo al igual que el resto de entidades, puede tener múltiples tipos de grupos en un mismo sitio.

en: Before Events have names ending in ":before" and are triggered before something happens. Like traditional events, handlers can cancel the event by returning `false`.
es: Los eventos del antes tienen nombres terminados en «:before» y ocurren antes de que ocurra algo. Igual que los eventos tradicionales, sus manejadores pueden cancelar el evento devolviendo `false`.

en: Before and After Events
es: Eventos del antes y el después

en: Below are a few functions to fetch relationship objects and/or related entities. A few are listed below:
es: A continuación se presentan algunas funciones para obtener objetos de relaciones y entidades relacionadas:

en: Besides protecting against session fixation attacks, Elgg also has a further check to try to defeat session hijacking if the session identifier is compromised. Elgg stores a hash of the browser's user agent and a site secret as a session fingerprint. The use of the site secret is rather superfluous but checking the user agent might prevent some session hijacking attempts.
es: Además de proteger contra ataques de fijación de sesión, Elgg cuenta con una comprobación adicional que intenta evitar el robo de sesión si el identificador de la sesión se ve comprometido. Elgg almacena una suma (hash) de la información del navegador web («user agent») y un secreto del sitio como huella dactilar de la sesión. El uso del secreto del sitio es un poco superfluo, pero la comprobación de la información del navegador podría evitar algunos intentos de robo de sesión.

en: Beyond the standard ElggEntity properties, ElggGroups also support:
es: Además de las propiedades estándar de ``ElggEntity``, ``ElggGroup`` ofrece las siguientes propiedades:

en: Beyond the standard ElggEntity properties, ElggObjects also support:
es: Además de las propiedades estándar de ``ElggEntity``, ``ElggObject`` ofrece las siguientes propiedades:

en: Beyond the standard ElggEntity properties, ElggSites also support:
es: Además de las propiedades estándar de ``ElggEntity``, ``ElggSite`` ofrece las siguientes propiedades:

en: Beyond the standard ElggEntity properties, ElggUsers also support:
es: Además de las propiedades estándar de ``ElggEntity``, ``ElggUser`` ofrece las siguientes propiedades:

en: By default Elgg comes with the htmLawed filtering code as a plugin. Developers can drop in any additional or replacement filtering code as a plugin.
es: De manera predeterminada, Elgg se distribuye con el código del filtro «htmLawed» como complemento. Los desarrolladores pueden añadir más código de filtrado o substituir el existente mediante complementos.

en: By passing along the group as ``container_guid`` via a hidden input field, you can use a single form and action to add both user and group content.
es: Incluyendo el identificador del grupo como ``container_guid`` mediante un campo de entrada oculto, puede usar un mismo formulario para añadir contenido tanto a un usuario como a un grupo.

en: Comments
es: Comentarios

en: Common mistakes
es: Errores habituales

en: Containers
es: Contenedores

en: Core developers will place schema upgrades in ``/engine/schema/upgrades/*``.
es: Los desarrolladores principales guardan las actualizaciones del esquema en ``/engine/schema/upgrades/*``.

en: Creating a relationship
es: Crear una relación

en: Database
es: Base de datos

en: Deleting a relationship
es: Eliminar una relación

en: Design Docs
es: Documentos de diseño

en: E.g. User A "likes" blog post B
es: Por ejemplo, el usuario A «está de acuerdo con» el comentario B.

en: E.g. to be able to assert that "**$user** is no longer a **fan** of **$artist**":
es: Por ejemplo, para poder asegurarse de que «**$user** ya no es **fan** de **$artist**»:

en: E.g. to establish that "**$user** is a **fan** of **$artist**" (user is the subject, artist is the target):
es: Por ejemplo, para establecer que «**$user** es un **fan** de **$artist**», donde $user (usuario) es el sujeto y $artist (artista) el objeto:

en: E.g. to verify that "**$user** is a **fan** of **$artist**":
es: Por ejemplo, para verificar que «**$user** es **fan** de **$artist**»:

en: E.g., three blog posts may be owned by different authors, but all be contained by the group they were posted to.
es: Por ejemplo, tres artículos de blog podrían pertenecer a autores distintos, pero estar todos contenidos por el grupo en el que se publicaron.

en: E.g., to retrieve a user's DOB
es: Por ejemplo, para obtener la fecha de cumpleaños (*DOB*) de un usuario:

en: Each Elgg event has a name and an object type (system, user, object, relationship name, annotation, group) describing the type of object passed to the handlers.
es: Todos los eventos de Elgg tienen un nombre y un tipo de objeto (``system``, ``user``, ``object``, ``relationship``, ``annotation``, ``group``) que describe el tipo del objeto que se pasa a los manejadores.

en: Each annotation has:
es: Cada anotación cuenta con:

en: Each of these have their own properties that they bring to the table: ElggObjects have a title and description, ElggUsers have a username and password, and so on. However, because they all inherit ElggEntity, they each have a number of core properties and behaviours in common.
es: Cada uno de estos objetos aporta sus propias propiedades: «ElggObjects» tiene un título y una descripción, «ElggUsers» tiene un nombre de usuario y una contraseña, etc. Sin embargo, como todos heredan de «ElggEntity», todos ellos tienen una serie de propiedades y comportamientos básicos en común.

en: Each table is prefixed by "prefix\_", this is replaced by the Elgg framework during installation.
es: Cada tabla está prefijada con «prefix\_», que la infraestructura de Elgg substituye por el prefijo seleccionado durante la instalación.

en: Elgg 1.0+ departs from previous versions in that it uses a custom text array rather than gettext. This improves system performance and reliability of the translation system.
es: La versión 1.0 de Elgg marcó una diferencia con las anteriores en cuanto a internacionalización: Elgg 1.0 y versiones posteriores usan un vector de texto personalizado en vez de Gettext. Esto mejora la eficiencia del sistema y hace más fiable el sistema de traducción.

en: Elgg Event Handlers
es: Manejadores de eventos de Elgg

en: Elgg Events
es: Eventos de Elgg

en: Elgg Events are triggered when an Elgg object is created, updated, or deleted; and at important milestones while the Elgg framework is loading. Examples: a blog post being created or a user logging in.
es: Los eventos de Elgg se desencadenan cuando se crea, actualizar o elimina un objeto. También tienen lugar en puntos importantes del proceso de carga de la infraestructura Elgg. Por ejemplo, existen eventos que suceden al crear un artículo de blog o al acceder un usuario al sitio.

en: Elgg Events vs. Plugin Hooks
es: Diferencias entre los eventos de Elgg y los ganchos de complementos

en: Elgg developers are already writing lots of JavaScript. We know you want to write more. We cannot accept waiting 5-10 years for a native JS modules solution to be available in all browsers before we can organize our JavaScript in a maintainable way.
es: Los desarrolladores de Elgg ya están escribiendo un montón de JavaScript. Y sabemos que usted quiere escribir más. No podemos aceptar esperarnos entre 5 y 10 años a que esté disponible en todos los navegadores una solución de módulos de JavaScript nativos para ponernos a organizar nuestro JavaScript para que sea fácil de mantener.

en: Elgg does not support storing ordered maps (name/value pairs) in metadata. For example, the following does not work as you might first expect it to:
es: Elgg no permite almacenar mapas ordenados (parejas con nombre y valor) en metadatos. Por ejemplo, el siguiente código no funcionaría como uno cabría esperar en un principio:

en: Elgg event handlers should have the following prototype:
es: Los manejadores de eventos de Elgg deberían tener el siguiente prototipo:

en: Elgg generates security tokens to prevent XSRF attacks. These are embedded in all forms and state-modifying AJAX requests as long as the correct API is used. Read more in the :doc:`/guides/actions` developer guide.
es: Elgg genera códigos de seguridad para evitar ataques de falsificación de petición en sitios cruzados (XSRF). Estos códigos se añaden a todos los formularios y solicitudes AJAX que modifiquen su estado, siempre que se usen las funciones correctas de la API. Para más información, véase  :doc:`/guides/actions`.

en: Elgg has a password throttling mechanism to make dictionary attacks from the outside very difficult. A user is only allowed 5 login attempts over a 5 minute period.
es: Elgg cuenta con un mecanismo de regulación de accesos que dificulta en gran medida los ataques de diccionario desde el exterior. Los usuarios sólo pueden hacer hasta 5 intentos de acceder al sistema durante un período de 5 minutos.

en: Elgg has an event system that can be used to replace or extend core functionality.
es: Elgg cuenta con un sistema de eventos que puedes usar para substituir o extender su funcionalidad predeterminada.

en: Elgg protects against session fixation by regenerating the session id when a user logs in.
es: Elgg le protege contra la fijación de la sesión mediante la generación de un nuevo identificador de sesión cada vez que accede al sitio.

en: Elgg salts passwords with a unique 8 character random string. The salt is generated each time the password is set. The main security advantages of the salting are:
es: Elgg añade un código aleatorio de 8 caracteres a las contraseñas. Este código («salt») se genera cada vez que se define la contraseña. Las principales ventajas de seguridad de este código son:

en: Elgg uses PHP's session handling with custom handlers. Session data is stored in the database. The session cookie contains the session id that links the user to the browser. The user's metadata is stored in the session including GUID, username, email address. The session's lifetime is controlled through the server's PHP configuration.
es: Elgg usa la gestión de sesiones de PHP con manejadores personalizados. Los datos de las sesiones se almacenan en la base de datos. La cookie de la sesión contiene el identificador de la sesión, que asocia el usuario con el navegador. Los metadatos del usuario se almacenan en la sesión, incluyendo su identificador, nombre de usuario y dirección de correo electrónico. El tiempo de vida de la sesión se controla desde la configuración de PHP en el servidor.

en: Elgg uses an ACL system to control which users have access to various pieces of content. Read more in the :doc:`/design/database` design doc.
es: Elgg usa un sistema de listas de control de acceso (ACL) para controlar qué usuarios tienen accedo a distintos contenidos. Para más información, véase :doc:`/design/database`.

en: ElggEntity is the base class for the Elgg data model.
es: «ElggEntity» es la clase base del modelo de datos de Elgg.

en: Elgg’s API sanitizes all input before issuing DB queries. Read more in the :doc:`/design/database` design doc.
es: La API de Elgg esteriliza todos los datos de entrada antes de ejecutar consultas contra la base de datos. Para más información, véase :doc:`/design/database`.

en: Elgg’s approach to the various security issues common to all web applications.
es: La forma en que Elgg aborda los diversos problemas de seguridad es la misma que la del resto de aplicaciones web.

en: Entities
es: Entidades

en: Entities have a ``owner_guid`` GUID property, which defines its owner. Typically this refers to the GUID of a user, although sites and users themselves often have no owner (a value of 0).
es: Las entidades tienen una propiedad, ``owner_guid``, cuyo valor es el identificador único del propietario de la entidad. Habitualmente el identificador corresponde a un usuario, aunque tanto el propio sitio como sus usuarios no suelen tener propietario (el valor de la propiedad es ``0``).

en: Events and Plugin Hooks
es: Eventos y ganchos de complementos

en: Every entity in the system inherits the ``ElggEntity`` class. This class controls access permissions, ownership and so on.
es: Toda entidad del sistema hereda de la clase ``ElggEntity``. Esta clase controla los permisos de acceso, los propietarios y demás.

en: Example:
es: Ejemplo:

en: Extra information specifically relating to groups. These are split in order to reduce load on the metadata table and make an obvious difference between attributes and metadata.
es: Información adicional relacionada específicamente con grupos. Estos están divididos para reducir la carga de la tabla de metadatos y hacer una diferencia obvia entre los atributos y los metadatos.

en: Extra information specifically relating to objects. These are split in order to reduce load on the metadata table and make an obvious difference between attributes and metadata.
es: Información adicional relacionada específicamente con objetos. Estos están divididos para reducir la carga de la tabla de metadatos y hacer una diferencia obvia entre los atributos y los metadatos.

en: Extra information specifically relating to sites. These are split in order to reduce load on the metadata table and make an obvious difference between attributes and metadata.
es: Información adicional relacionada específicamente con sitios. Estos están divididos para reducir la carga de la tabla de metadatos y hacer una diferencia obvia entre los atributos y los metadatos.

en: Extra information specifically relating to users. These are split in order to reduce load on the metadata table and make an obvious difference between attributes and metadata.
es: Información adicional relacionada específicamente con usuarios. Estos están divididos para reducir la carga de la tabla de metadatos y hacer una diferencia obvia entre los atributos y los metadatos.

en: Filtering is performed through the function ``filter_tags()``. This function takes in a string and returns a filtered string. It triggers a ``validate, input`` plugin hook.
es: El filtrado se realiza mediante la función ``filter_tags()``. Esta función recibe una cadena de texto y devuelve la misma cadena pero filtrada. La función desencadena un gancho de complementos ``validate, input``.

en: Filtering is used in Elgg to make XSS attacks more difficult. The purpose of the filtering is to remove Javascript and other dangerous input from users.
es: En Elgg se utilizan filtros para dificultar ataques de secuencias de órdenes en sitios cruzados (XSS). EL propósito del filtrado es eliminar JavaScript y otros datos de entrada peligrosos de los usuarios.

en: Finding relationships and related entities
es: Encontrar relaciones y entidades relacionadas

en: Finer control
es: Un mayor control

en: For example, to add a date of birth to a user:
es: Por ejemplo, para añadir una fecha de cumpleaños a un usuario:

en: For example, to leave a rating on an entity, you might call:
es: Por ejemplo, para dejar una puntuación en una entidad, puede llamar a:

en: For multiple values, you will need to iterate through and call ``create_metadata`` on each one. The following piece of code comes from the profile save action:
es: Para varios valores, tendrá que iterar por ellos y llamar a ``create_metadata`` una vez por cada valor. El siguiente código ha sido extraído de Elgg, concretamente de la acción de guardar de los perfiles:

en: For single values, you can therefore write metadata as follows (taking the example of a date of birth attached to a user):
es: Para valores individuales, puede escribir el metadato de la siguiente manera (siguiendo con el ejemplo de la fecha de cumpleaños anexada a un usuario):

en: GUIDs
es: Identificadores únicos

en: Gain a deep understanding of how Elgg works and why it's built the way it is.
es: Aprende y comprende el funcionamiento interno de Elgg y los principios que lo motivan.

en: Granular access controls are one of the fundamental design principles in Elgg, and a feature that has been at the centre of the system throughout its development. The idea is simple: a user should have full control over who sees an item of data he or she creates.
es: Los controles de acceso granular son uno de los principio de diseño fundamentales de Elgg, y una funcionalidad que ha estado en el centro de el sistema a lo largo de su desarrollo. La idea es sencilla: un usuario debería tener todo el control sobre quién puede ver un dato que ha creado dicho usuario.

en: Groups have a simulated username of the form *group:\ GUID*, which you can get the value of by checking ``$group->username``. If you pass this username to a page on the URL line as part of the ``username`` variable (i.e., ``/yourpage?username=group:nnn``), Elgg will automatically register that group as being the owner of the page (unless overridden).
es: Los grupos tienen un nombre de usuario simulado con la forma *group:\ identificador*, un valor al que se puede acceder mediante ``$grupo->username``. Si pasa este nombre de usuario a una página en la línea de la URL como parte de la variable ``username`` (es decir, ``/su_página?username=group:nnn``), Elgg registrará automáticamente la página como propiedad del grupo (salvo que se indique un propietario distinto de manera explícita).

en: How access affects data retrieval
es: Cómo el acceso afecta a la obtención de datos

en: If a user forgets his password, a new random password can be requested. After the request, an email is sent with a unique URL. When the user visits that URL, a new random password is sent to the user through email.
es: Si un usuario se olvida de su contraseña, se puede solicitar una nueva contraseña generada aleatoriamente. Tras la solicitud, se envía un mensaje de correo electrónico al usuario con una URL única. Cuando el usuario visita la URL, se le envía una nueva contraseña aleatoria por correo electrónico.

en: If the handler returns `false`, the event is cancelled, preventing execution of the other handlers. All other return values are ignored.
es: Si el manejador devuelve `false`, se cancela el evento, evitando la ejecución del resto de los manejadores. El valor que devuelvan el resto de manejadores se ignora.

en: If the handler returns no value (or `null` explicitly), the plugin hook value is not altered. Otherwise the return value becomes the new value of the plugin hook. It will then be passed to the next handler as `$value`.
es: Si el manejador no devuelve ningún valor (o devuelve un valor nulo [`null`] explícitamente), no se modifica el valor del gancho de complementos. En caso contrario, el valor devuelto se convierte en el nuevo valor del gancho de complementos. Entonces se le pasará dicho valor al siguiente manejador como `$value`.

en: If you need more control, for example to assign an access ID other than the default, you can use the ``create_metadata`` function, which is defined as follows:
es: Si necesita más control para, por ejemplo, asignar un identificador de acceso distinto del identificador predeterminado, puede usar la función ``create_metadata``, que está declarada así:

en: If you stored multiple values in this piece of metadata (as in the "tags" example above), you will get an array of all those values back. If you stored only one value, you will get a string or integer back. Storing an array with only one value will return a string back to you. E.g.
es: Si almacena varios valores en este metadato (como en el ejemplo de las etiquetas), obtendrá un vector (array) con todos esos valores. Si sólo almacenó un valor, obtendrá una cadena de texto o un número entero. Si almacenó un vector con un único valor, el metadato devolverá una cadena de texto. Por ejemplo:

en: If you want to provide comment functionality on your plugin objects, the following function will provide the full listing, form and actions:
es: Si quiere ofrecer la funcionalidad de dejar comentarios en los objetos de su complemento, la siguiente función se lo facilitará, formulario y acciones:

en: If your annotation type largely deals with integer values, a couple of useful mathematical functions are provided:
es: Por si el tipo de tu anotación lidia en gran medida con números enteros, tiene a su disposición una serie de funciones matemáticas que pueden resultarle útiles:

en: In Elgg, everything runs on a unified data model, based on atomic units of data called entities.
es: En Elgg, todo funciona sobre un modelo de datos unificado, basado en unidades atómicas de datos denominadas «entidades».

en: In fact, ``[[Engine/DataModel/Entities/ElggGroup|ElggGroup]]`` simulates most of the methods of ``[[Engine/DataModel/Entities/ElggUser|ElggUser]]``. You can grab the icon, name etc using the same calls, and if you ask for a group's friends, you'll get its members. This has been designed specifically for you to alternate between groups and users in your code easily.
es: Lo cierto es que ``ElggGroup`` simula la mayor parte de los métodos de ``ElggUser``. Puede obtener el icono del grupo, el nombre u otros datos con los mismos métodos, y si pide los contactos de un grupo, obtendrá sus miembros. Esto ha sido diseñado de manera específica para que usted pueda alternar entre usuarios y grupos de manera sencilla desde código.

en: In order to achieve this, every entity, annotation and piece of metadata contains an ``access_id`` property, which in turn corresponds to one of the pre-defined access controls or an entry in the ``access_collections`` database table.
es: Para conseguir esto, toda entidad, anotación y metadato contiene una propiedad ``access_id`` (identificador de acceso) que se corresponde con uno de los controles de acceso predefinidos o una entrada en la tabla ``access_collections`` de la base de datos.

en: In order to easily search content by group or by user, content is generally set to be "contained" by either the user who posted it, or the group to which the user posted. This means the new object's ``container_guid`` property will be set to the GUID of the current ElggUser or the target ElggGroup.
es: Para poder buscar contenido fácilmente por usuario o por grupo, el contenido se define generalmente como «contenido» por el usuario que lo publicó o el grupo en el que se publicó. Eso significa que a la propiedad ``container_guid`` de los nuevos objetos se le dará como valor el identificador único de la instancia de ``ElggUser`` actual o de la instancia de ``ElggGroup`` de destino.

en: Internationalization
es: Internacionalización

en: It contains the following fields:
es: Contiene los siguientes campos:

en: Juggling users and groups
es: Alternando entre usuarios y grupos

en: Main tables
es: Tablas principales

en: Menu options
es: Opciones de menú

en: Metadata
es: Metadatos

en: Metadata has an owner and access ID, both of which may be different to the owner of the entity it's attached to
es: Los metadatos tienen un identificador de acceso y un identificador de propietario, y los valores de ambos campos podrían ser distintos de los valores de dichos campos en la entidad a la que los metadatos se han añadido.

en: Metadata in Elgg allows you to store extra data on an ``entity`` beyond the built-in fields that entity supports. For example, ``ElggObjects`` only support the basic entity fields plus title and description, but you might want to include tags or an ISBN number. Similarly, you might want users to be able to save a date of birth.
es: En Elgg, los metadatos le permiten almacenar alguna información adicional en una ``entidad`` más allá de los campos predeterminados que ofrece la entidad. Por ejemplo, las instancias de ``ElggObject`` sólo ofrecen los campos de entidad básicos y campos para un título y una descripción, pero puede que quieras incluir etiquetas o un número ISBN. De manera similar, puede que quieras que los usuarios tengan la posibilidad de guardar una fecha de cumpleaños.

en: Metastrings contain the actual string of metadata which is linked to by the metadata and annotations tables.
es: Las metastrigns (metacadenas) contiene los textos reales de los metadatos, y que están enlazados con las tablas de metadatos y de anotaciones.

en: Models
es: Modela

en: Most Elgg events can be cancelled; unless the event is an "after" event, a handler that returns `false` can cancel the event, and no more handlers are called.
es: La mayor parte de los eventos de Elgg se pueden cancelar. A menos que los eventos sean eventos «after» (que tienen lugar después de que suceda algo), los manejadores de los eventos pueden cancelar dichos eventos devolviendo ``false``, y con ello evitarán que se llame al resto de manejadores.

en: Most other data about the object is generally stored via metadata.
es: La mayor parte del resto de los datos sobre el objeto se almacenan mediante metadatos.

en: Not to be confused with the entity type ``ElggGroup``, Elgg comes with a plugin called "Groups" that provides a default UI/UX for site users to interact with groups. Each group is given a discussion forum and a profile page linking users to content within the group.
es: Elgg incluye un complemento llamado «Grupos» que no debe confundirse con el tipo de entidad ``ElggGroup``. El complemento provee la interfaz predeterminada con la que los usuarios del sitio pueden interactuar con los grupos. Cada grupo recibe un foro de discusiones y una página de perfil que pone a los usuarios en contacto con el contenido del grupo.

en: Note that the *allow multiple* setting is set to *false* in the first iteration and *true* thereafter.
es: Nota: El parámetro *allow_múltiple* (permitir varios) se pone a *false* en la primera iteración y a *true* (verdadero) en las siguientes.

en: Note that this will return the absolute value of the metadata. To get metadata as an ElggMetadata object, you will need to use the methods described in the *finer control* section below.
es: Nota: El método anterior devolverá el valor absoluto del metadato. Para obtener el metadato como una instancia de ``ElggMetadata``, use los métodos descritos en la sección *Un mayor control* más adelante.

en: Note that you cannot "append" values to metadata arrays as if they were normal php arrays. For example, the following will not do what it looks like it should do.
es: No puede “anexar” valores a vectores de metadatos como si fuesen simples vectores de PHP. Por ejemplo, el siguiente código no hace lo que parece que debería hacer:

en: Note that, if the relationship exists, ``check_entity_relationship()`` returns an ``ElggRelationship`` object:
es: Tenga en cuenta que, si la relación existe, ``check_entity_relationship()`` devuelve una instancia de ``ElggRelationship``:

en: Note: Plugin hooks also allow passing a parameters array to the handlers, though this will eventually come to Elgg events as well.
es: Nota: Los ganchos de complementos permiten pasarle un vector de parámetros a los manejadores, aunque en el futuro los eventos de Elgg también lo permitirán.

en: Note: This is not always true. Comment entities are contained by the object commented upon, and in some 3rd party plugins the container may be used to model a parent-child relationship between entities (e.g. a "folder" object containing a file object).
es: Nota: Esto no es siempre cierto. Las entidades de comentarios son propiedad del que comentan, y en algunos complementos de terceros el contenedor podría usarse para modelar una relación de padre-hijo entre entidades (por ejemplo, un objeto «carpeta» que contiene un objeto «fichero»).

en: Or to add a couple of tags to an object:
es: O para añadir un par de etiquetas a un objeto:

en: Or to get all metadata objects:
es: O para obtener todos los objetos de metadatos:

en: Other useful functions:
es: Otras funciones útiles:

en: Overview
es: Resumen

en: Ownership
es: Propiedad

en: Parameters:
es: Parámetros:

en: Password hashing
es: Suma de la contraseña

en: Password resetting
es: Restablecimiento de contraseñas

en: Password salting
es: Añadido de un código aleatorio a la contraseña

en: Password storage
es: Almacenamiento de las contraseñas

en: Password throttling
es: Regulador de accesos

en: Password validation
es: Validación de contraseñas

en: Passwords
es: Contraseñas

en: Plugin Hook Handlers
es: Manejadores de ganchos de complementos

en: Plugin Hooks
es: Ganchos de complementos

en: Plugin Hooks provide a way for plugins to collaboratively determine or alter a value. E.g. this could be to set a configuration array or to decide whether a user has permission to edit an entity.
es: Los ganchos de complementos ofrecen a los complementos una forma de determinar o modificar un valor de manera colaborativa. Por ejemplo, definir un vector de configuración o decidir si un usuario tiene permisos suficientes para editar una entidad o no.

en: Plugin hook handlers should have the following prototype:
es: Los manejadores de ganchos de complementos deberían tener el siguiente prototipo:

en: Plugin hooks cannot be cancelled; all handlers are always called.
es: Los ganchos de complementos no pueden cancelarse; todos los ganchos se llaman siempre.

en: Plugin hooks pass an arbitrary value through the handlers, giving each a chance to alter along the way.
es: Los ganchos de complementos pasan un valor arbitrario a través de los manegadores, dándole a cada uno de ellos la oportunidad de modificarlo.

en: Plugin owners need not worry too much about writing group-aware functionality, but there are a few key points:
es: Los desarrolladores de complementos no tienen por qué preocuparse mucho por que sus complementos sean compatibles con los grupos o sus funcionalidades, pero aquí van algunas claves a tener en cuenta:

en: Plugins are strongly discouraged from dealing with database issues themselves, which makes for a more stable system that also has visible benefits for the end user. Content created by different plugins can be mixed together in consistent ways, which are programmed using generic principles - in other words, plugins are faster to develop, and are at the same time much more powerful.
es: Se recomienda encarecidamente que los complementos no interactúen de manera directa con la base de datos, por el bien de la estabilidad del sistema y de beneficios visibles para los usuarios. El contenido generado por complementos diferentes se puede mezclar de manera consistente si los complementos están desarrollados usando principios genéricos. Es decir, de esta forma los complementos se desarrollan más rápido, y al mismo tiempo brindan mayores funcionalidades.

en: Plugins influence the system by creating handlers (`callables <http://php.net/manual/en/language.types.callable.php>`_ such as functions and methods) and registering them to handle two types of events: `Elgg Events`_ and `Plugin Hooks`_.
es: Los complementos influencian el sistema mediante la creación de manejadores (`llamadas de retorno <http://php.net/manual/es/language.types.callable.php>`_ como funciones o métodos) y registrándolos para manejar dos tipos de eventos: `eventos de Elgg`_ y `ganchos de complementos`_.

en: Pre-defined access controls
es: Controles de acceso predefinidos

en: Privacy
es: Privacidad

en: Reading annotations
es: Leer anotaciones

en: Reading metadata
es: Leer metadatos

en: Reassigning a piece of metadata will overwrite the old value
es: Al reasignar un metadato, este substituye cualquier valor previo de ese mismo metadato.

en: Register to handle a Plugin Hook
es: Registrar un manejador para un gancho de complemento

en: Register to handle an Elgg Event
es: Registrar un manejador para un evento de Elgg

en: Register your handler to a plugin hook using ``elgg_register_plugin_hook_handler``:
es: Para registrar un manejador para un gancho de complementos, use ``elgg_register_plugin_hook_handler``:

en: Register your handler to an event using ``elgg_register_event_handler``:
es: Registre su manejador para un evento mediante ``elgg_register_event_handler``:

en: Relationships
es: Relaciones

en: Relationships allow you to bind entities together. Examples: an artist has fans, a user is a member of an organization, etc.
es: Las relaciones permiten asociar entidades las unas con las otras. Por ejemplo: un artista que tiene fans, un usuario que es miembro de una organización, etc.

en: Represents
es: Representa

en: SQL Injection
es: Inyección SQL

en: Schema
es: Esquema

en: Security
es: Seguridad

en: Session fixation
es: Fijación de la sesión

en: Session hijacking
es: Robo de sesión

en: Sessions
es: Sesiones

en: Some Elgg API functions work with GUIDs instead of ``ElggEntity`` objects.
es: Algunas funciones de la API de Elgg funcionan con identificadores en vez de con instancias de ``ElggEntity``.

en: Some events are split into "before" and "after". This avoids confusion around the state of the system while in flux. E.g. Should the user be logged in during the [login, user] event?
es: Algunos eventos se dividen entre «before» (antes) y «after» (después). Esto evita confusiones sobre el estado del sistema durante ellos. Por ejemplo, ¿debería identificarse al usuario durante el evento [login, user]?

en: Storing GUIDs in metadata
es: Almacenar identificadores únicos en metadatos

en: TODO: more plz
es: Por hacer: Más información, por favor.

en: Table: annotations
es: Tabla: annotations

en: Table: entities
es: Tabla: entidades

en: Table: entity\_subtypes
es: Tabla: entity\_subtypes

en: Table: groups\_entity
es: Tabla: groups\_entity

en: Table: metadata
es: Tabla: metadata

en: Table: metastrings
es: Tabla: metastrings

en: Table: objects\_entity
es: Tabla: objects\_entity

en: Table: relationships
es: Tabla: relationships

en: Table: sites\_entity
es: Tabla: sites\_entity

en: Table: users\_entity
es: Tabla: users\_entity

en: The Groups plugin
es: El complemento de grupos

en: The ``ElggGroup`` entity type represents an association of Elgg users. Users can join, leave, and post content to groups.
es: El tipo de entidad ``ElggGroup`` representa una asociación de usuarios de Elgg. Los usuarios pueden unirse a grupos, marcharse de ellos, o publicar contenido en ellos.

en: The ``ElggObject`` entity type represents arbitrary content within an Elgg install; things like blog posts, uploaded files, etc.
es: El tipo de entidad ``ElggObject`` representa contenido arbitrario dentro de la instalación de Elgg. Puede representar, por ejemplo, artículos de blog, ficheros, etc.

en: The ``ElggSite`` entity type represents sites within your Elgg install. Most installs will have only one.
es: El tipo de entidad ``ElggSite`` representa sitios dentro de la instalación de Elgg. En la mayoría de las instalaciones sólo se dispone de un único sitio.

en: The ``ElggUser`` entity type represents users within an Elgg install. These will be set to disabled until their accounts have been activated (unless they were created from within the admin panel).
es: El tipo de entidad ``ElggUser`` representa a un usuario de la instalación de Elgg. Estos usuarios se marcan como desactivados hasta que se activan sus cuentas, a menos que sean creados desde el panel de administración.

en: The ``filter_tags()`` function is called on any user input as long as the input is obtained through a call to ``get_input()``. If for some reason a developer did not want to perform the default filtering on some user input, the ``get_input()`` function has a parameter for turning off filtering.
es: A la función ``filter_tags()`` se la llama para todos los datos introducidos por usuarios siempre que dichos datos se obtuviesen mediante una llamada a la función ``get_input()``. Si por lo que sea no se quiera realizar ese filtrado con algún dato introducido por un usuario, la función ``get_input()`` cuenta con un parámetro que permite desactivar dicho filtrado.

en: The ``pam_authenticate()`` function used to call the different modules has a bug related to the importance variable.
es: La función ``pam_authenticate()`` que se usa para llamar a los diferentes módulos tienen un error relacionado con la variable de importancia.

en: The `reasons to choose AMD <http://requirejs.org/docs/whyamd.html>`_ are plenteous and well-documented. Let's highlight just a few of the most relevant reasons as they relate to Elgg specifically.
es: Los `motivos para elegir AMD <http://requirejs.org/docs/whyamd.html>`_ son muchos y están bien documentados. A continuación nos limitaremos a subrayar algunos de los más relevantes y más relacionados con Elgg.

en: The benefit of such an approach is that, apart from modelling data with greater ease, a common set of functions is available to handle objects, regardless of their (sub)type.
es: Lo bueno de esta estrategia es que, aparte de facilitar el modelado de datos, ofrece un grupo de funciones para manejar objetos, independientemente de su subtipo.

en: The class ``ElggRelationship`` models a directed relationship between two entities, making the statement:
es: La clase ``ElggRelationship`` modela una relación con dirección entre dos entidades, dando lugar a la expresión:

en: The database contains a number of primary tables and secondary tables. Its schema table is stored in ``/engine/schema/mysql.sql``.
es: La base de datos contiene una serie de tablas primarias y secundarias. Su esquema de tabla está almacenado en ``/engine/schema/mysql.sql``.

en: The easiest way to annotate is to use the ``annotate`` method on an entity, which is defined as:
es: La forma más sencilla de añadir una anotación a una entidad es usar el método ``annotate`` de dicha entidad. La declaración de dicho método es la siguiente:

en: The entity to which the subject is bound
es: La entidad con la que se relaciona el sujeto.

en: The final piece of the puzzle, for default groups, is to add a link to your functionality from the group's profile. Here we'll use the file plugin as an example.
es: Para los grupos predeterminados, la pieza final del rompecabezas es añadir un enlace a la funcionalidad que usted desarrolla desde el perfil del grupo. A continuación se mostrará cómo utilizando el complemento de ficheros como ejemplo.

en: The following rules govern write access:
es: Las siguientes reglar rigen el acceso de escritura:

en: The function will return ``false`` if any of the selected handlers returned ``false``, otherwise it will return ``true``.
es: La función devolverá ``false`` si cualquiera de los manejadores seleccionados devolvió ``false``. Si todos devolvieron ``true``, la función también devolverá ``true``.

en: The hashed password and the salt are stored in the users table. Neither are stored in any cookies on a user's computer.
es: Las sumas de las contraseñas y los códigos aleatorios se guardan en la tabla de usuarios. Ninguno de estos datos se almacena en cookies del equipo del usuario.

en: The hashed password is computed using md5 from the user's password text and the salt.
es: Las sumas (hash) de las contraseñas se calcular mediante MD5 a partir de la combinación de la contraseña del usuario y el código aleatorio.

en: The noun
es: Substantivo

en: The only restriction that Elgg places on a password is that it must be at least 6 characters long by default, though this may be changed in /engine/settings.php. Additional criteria can be added by a plugin by registering for the ``registeruser:validate:password`` plugin hook.
es: La única restricción que Elgg pone de manera predeterminada a las contraseñas es que tengan un mínimo de 6 caracteres. Este mínimo puede modificarse desde ``/engine/settings.php``. Pueden añadirse criterios adicionales mediante complementos que registren un manejador para el gancho de complementos ``registeruser:validate:password``.

en: The owner is set to the currently logged-in user
es: El usuario actual se convierte en el propietario de los metadatos.

en: The owner of a container can edit anything therein (note that this does not mean that the owner of a group can edit anything therein)
es: El propietario de un contenedor puede editar todo lo que hay en el contenedor. Nota: Ello no significa que el propietario de un grupo pueda editar cualquier cosa dentro del grupo).

en: The owner of an entity can always edit it
es: El propietario de una entidad siempre puede editarla.

en: The ownership of an entity dictates, in part, whether or not you can access or edit that entity.
es: La propiedad de una entidad determina, en parte, si un usuario puede o no acceder a la entidad o modificarla.

en: The simple case
es: El caso más simple

en: The site that the entity belongs to.
es: El sitio al que pertenece la entidad.

en: The subject
es: Sujeto

en: The target
es: Objeto

en: The type of relationship
es: El tipo de la relación.

en: The type of relationship may alternately be a verb, making the statement:
es: Alternativamente, el tipo de relación puede ser un verbo, dando lugar a la expresión:

en: There are a few big differences between `Elgg Events`_ and `Plugin Hooks`_:
es: Existen algunas diferencias importantes entre los `eventos de Elgg`_ y los `ganchos de complementos`_:

en: There are two JavaScript system in Elgg: the deprecated 1.8 system, and the newer `AMD (Asynchronous Module Definition) <http://requirejs.org/docs/whyamd.html>`_ compatible system introduced in 1.9.
es: En Elgg hay dos sistemas de JavaScript: el sistema de la versión 1.8, obsoleto, y el nuevo sistema compatible con `AMD <http://requirejs.org/docs/whyamd.html>`_ y fue introducido en la versión 1.9.

en: This discusses the benefits of using AMD in Elgg.
es: A continuación se discuten los beneficios de usar AMD en Elgg.

en: This involves creating a view within your plugin - in this case file/menu - which will extend the group's menu. File/menu consists of a link within paragraph tags that points to the file repository of the page\_owner():
es: Esto supone crear una vista dentro de su complemento —en este caso «fichero/menú»— que extenderá el menú del grupo. «Fichero/menú» consiste en un enlace entre etiquetas de párrafo que apunta al repositorio de ficheros del ``page\_owner()``:

en: This is a description of the main tables. Keep in mind that in a given Elgg installation, the tables will have a prefix (typically "elgg\_").
es: Esta es una descripción de las tablas principales. No se olvide de que en toda instalación de Elgg estas tablas tienen un prefijo, que suele ser «elgg\_».

en: This is not currently supported by Elgg core, but we'll be looking into it since reducing round-trips is critical for a good first-view experience, especially on mobile devices.
es: Esto aún no es compatible con el núcleo de Elgg, pero estamos investigando cómo solucionarlo, ya que no tener que dar tantas vueltas resulta fundamental para una buena primera impresión, sobre todo en dispositivos móviles.

en: This is suitable for most purposes. Be careful to note which attributes are metadata and which are built in to the entity type that you are working with. You do not need to save an entity after adding or updating metadata. You do need to save an entity if you have changed one of its built in attributes. As an example, if you changed the access id of an ElggObject, you need to save it or the change isn't pushed to the database.
es: Esto funciona bien para la mayoría de los casos. Tenga cuidado de anotar qué atributos son metadatos y cuales son parte integral del tipo de entidad con el que está trabajando. No tiene por qué guardar una entidad después de añadirle o actualizar sus metadatos. Pero si lo que ha cambiado son sus atributos integrales, debe guardar la entidad para preservar sus cambios. Por ejemplo, si ha cambiado el identificador de acceso de un objeto de tipo ``ElggObject``, tiene que guardar el objeto, o de lo contrario el cambio no se hará efectivo en la base de datos.

en: This is the main `Entities`_ table containing Elgg users, sites, objects and groups. When you first install Elgg this is automatically populated with your first site.
es: Esta es la tabla principal de entidades, y contiene a los usuarios de Elgg, los sitios, los objetos y los grupos. Cuando instala Elgg por primera vez, la tabla se rellena automáticamente con su primer sitio.

en: This is to avoid duplicating strings, saving space and making database lookups more efficient.
es: Esto permite evitar duplicar cadenas, ahorrando espacio y haciendo más eficientes las búsquedas en la base de datos.

en: This section is questionable.
es: Esta sección resulta cuestionable.

en: This section is very hand-wavy
es: Esta sección no es muy precisa.

en: This table contains `Annotations`_, this is distinct from `Metadata`_.
es: Esta tabla contiene `anotaciones`_, que no son lo mismo que `metadatos`_.

en: This table contains `Metadata`_, extra information attached to an entity.
es: Esta tabla contiene `metadatos`_, información adicional anexada a una entidad.

en: This table contains entity subtype information:
es: Esta tabla contiene información sobre los subtipos de las entidades:

en: This table defines `Relationships`_, these link one entity with another.
es: Esta tabla define `relaciones`_, las cuales enlazan unas entidades con otras.

en: This triggers the event [create, relationship], passing in the created ``ElggRelationship`` object. If a handler returns ``false``, the relationship will not be created and ``$success`` will be ``false``.
es: Esto desencadena el evento [create, relationship], pasando a éste el objeto de tipo ``ElggRelationship`` creado. Si un manejador devuelve ``false``, la relación no se creará y ``$success`` (que indica si todo fue correctamente) pasará a ser ``false``.

en: This triggers the event [delete, relationship], passing in the associated ``ElggRelationship`` object. If a handler returns ``false``, the relationship will remain, and ``$was_removed`` will be ``false``.
es: Esto desencadena el evento [delete, relationship], pasando a éste el objeto de tipo ``ElggRelationship`` asociado. Si un manejador devuelve ``false``, la relación seguirá existiendo y ``$was_removed`` («se eliminó») pasará a ser ``false``.

en: Though there are some cases to store entity GUIDs in metadata, `Relationships`_ are a much better construct for relating entities to each other.
es: Aunque existen algunos casos en los que tiene sentido almacenar identificadores únicos en metadatos, las `relaciones`_ son una construcción mucho mejor para relacionar unas entidades con otras.

en: To add a piece of metadata to an entity, just call:
es: Para añadir un metadato a una entidad, llama a:

en: To allow users to stay logged in for a longer period of time regardless of whether the browser has been closed, Elgg uses a cookie (called elggperm) that contains what could be considered a super session identifier. This identifier is stored in a cookies table. When a session is being initiated, Elgg checks for the presence of the elggperm cookie. If it exists and the session code in the cookie matches the code in the cookies table, the corresponding user is automatically logged in.
es: Para permitir que los usuario permanezcan conectados durante más tiempo independientemente de que hayan cerrado el navegador web, Elgg utiliza una cookie (llamada «elggperm») que contiene lo que podría considerarse como un identificador de «super sesión». Este identificador se almacena en una tabla de cookies. Si existe y el código de la sesión de la cookie se corresponde con el código de la tabla de la cookie, el usuario correspondiente se identifica en el sitio de manera automática.

en: To always get an array back, simply cast to an array;
es: Para obtener siempre un vector, no tiene más que invocar el método como tal:

en: To make the login form submit over https, turn on login-over-ssl from Elgg’s admin panel.
es: Para que el formulario de acceso se envíe mediante HTTPS, active «login-over-ssl» desde el panel de administración de Elgg.

en: To replace Elgg's default user authentication system, a plugin would have to replace the default action with its own through ``register_action()``. It would also have to register its own pam handler using ``register_pam_handler()``.
es: Para que un complemento pueda substituir el sistema predeterminado de autenticación de Elgg, dicho complemento debe substituir la acción predeterminada con la suya propia mediante ``register_action()``. También tendría que registrar su propio manejador «pam» mediante ``register_pam_handler()``.

en: To report a potential vulnerability in Elgg, email security@elgg.org.
es: Para informar de una posible vulnerabilidad en Elgg, envíe un correo electrónico a security@elgg.org.

en: To retrieve annotations on an object, you can call the following method:
es: Para obtener las anotaciones de un objeto, puedes llamar al método siguiente:

en: To retrieve metadata, treat it as a property of the entity:
es: Para obtener un metadato, haga lo mismo que haría con una propiedad de la entidad:

en: Trigger a Plugin Hook
es: Desencadenar un gancho de componente

en: Trigger an Elgg Event
es: Desencadenar un evento de Elgg

en: Trying to store hashmaps
es: Intentar almacenar mapas de sumas («hashmaps»)

en: Under the hood, metadata is stored as an instance of the ``ElggMetadata`` class, but you don't need to worry about that in practice (although if you're interested, see the ``ElggMetadata`` class reference). What you need to know is:
es: Internamente, los metadatos se almacenan como una instancia de ``ElggMetadata``, pero usted no tiene que preocuparse de eso en la práctica (pero si le interesa, échele una ojeada la la documentación de referencia de la clase). Lo único que necesita saber es que:

en: Unlike `Plugin Hooks`_, *most Elgg events can be cancelled*, halting the execution of the handlers, and possibly cancelling or reverting some action in the Elgg core.
es: A diferencia de los `ganchos de complementos`_, *la mayor parte de los eventos de Elgg se pueden cancelar*, interrumpiendo la ejecución de los manejadores, y posiblemente cancelando o revirtiendo alguna acción en el núcleo de Elgg.

en: Use `can_write_to_container <http://reference.elgg.org/entities_8php.html#16a972909c7cb75f646cb707be001a6f>`_ to determine whether or not the current user has the right to add content to a group.
es: Use `can_write_to_container <http://reference.elgg.org/entities_8php.html#16a972909c7cb75f646cb707be001a6f>`_ para determinar si el usuario actual tiene o no permisos para añadir contenido a un grupo.

en: Useful helper functions
es: Funciones de asistencia útiles

en: User defined access controls
es: Controles de acceso definidos por los usuarios

en: Usernames and page ownership
es: Nombres de usuario y propiedad de las páginas

en: Users, Objects, Groups, Sites
es: Usuarios, objetos, grupos y sitios

en: Verifying a relationship
es: Verificar una relación

en: We have been working hard to make Elgg's JavaScript more maintainable and useful. We made some strides in 1.8 with the introduction of the "elgg" JavaScript object and library, but have quickly realized the approach we were taking was not scalable. The size of `JS on the web is growing <http://httparchive.org/trends.php?s=All&minlabel=Feb+11+2011&maxlabel=Feb+1+2013#bytesJS&reqJS>`_ quickly, and JS in Elgg is growing too. We want Elgg to be able to offer a solution that makes JS development as productive and maintainable as possible going forward.
es: Hemos estado trabajando duro para que el código JavaScript de Elgg sea más fácil de mantener y más útil. Hicimos algunos intentos en la versión 1.8 con la introducción del objeto y biblioteca de JavaScript «elgg», pero en seguida nos dimos cuenta de que esa estrategia se nos iba a quedar corta. `El tamaño de JavaScript en internet está creciendo rápidamente <http://httparchive.org/trends.php?s=All&minlabel=Feb+11+2011&maxlabel=Feb+1+2013#bytesJS&reqJS>`_, y lo mismo le está pasando al código JavaScript de Elgg. Queremos que Elgg pueda ofrecer una solución que haga del desarrollo con JavaScript todo lo productivo y fácil de mantener posible de cara al futuro.

en: We like the edit-refresh cycle of web development. We wanted to make sure everyone developing in Elgg could continue experiencing that joy. Synchronous module formats like Closure or CommonJS just weren't an option for us. But even though AMD doesn't require a build step, *it is still very build-friendly*. Because of the ``define()`` wrapper, it's possible to concatenate multiple modules into a single file and ship them all at once in a production environment. [*]_
es: Nos gusta el ciclo de editar y actualizar que caracteriza al desarrollo web. Queríamos asegurarnos de que todos los que desarrollasen con Elgg pudiesen continuar disfrutando de ello. Los formatos de módulos síncronos como Closure o CommonJS eran simplemente inviables para nosotros. Pero aunque AMD no necesita un paso de construcción, *es perfectamente compatible con procesos de construcción*. Gracias a la envoltura de ``define()`` se pueden concatenar varios módulos en un único fichero y distribuirlos todos a la vez en un ambiente de producción. [*]_

en: When adding metadata like this:
es: Al añadir metadatos mediante el procedimiento anterior:

en: When an event is triggered, a set of handlers is assembled in order of priority, then each is executed. Each handler is passed arguments and has a chance to influence the process. Finally the "trigger" function returns a value based on the behavior of the handlers.
es: Cuando se desencadena un evento, se agrupan una serie de manejadores por orden de prioridad, y entonces se ejecuta cada uno de ellos. Cada manejador recibe argumentos que pueden influir en el proceso. Finalmente, la función «trigger» (desencadenante) devuelve un valor basado en el comportamiento de los manejadores.

en: Where before and after events are available, developers are encouraged to transition to them, though older events will be supported for backwards compatibility.
es: Cuando para un evento existen tanto la versión del antes como la del después, se recomienda a los desarrolladores que usen estas versiones del evento en vez de la principal —la que no es ni del antes ni del después—, si bien se seguirá permitiendo el uso de la versión original del evento para que Elgg siga siendo compatible con versiones anteriores de la infraestructura.

en: Which entity is being bound
es: La entidad que se está relacionando.

en: Why AMD?
es: ¿Por qué AMD?

en: Working with relationships
es: Trabajar con relaciones

en: Write access
es: Acceso de escritura

en: Writing a group-aware plugin
es: Desarrollar un complemento compatible con grupos

en: You can also serve your whole site over SSL by simply changing the site URL to include “https” instead of just “http.”
es: Para que todo el sitio utilice SSL, cambie la URL del sitio para que en vez de «http» empiece por «https».

en: You can alter the user experience via the traditional means of extending plugins or completely replace the Groups plugin with your own.
es: Usted puede cambiar la experiencia del usuario mediante los medios tradicionales de extender los complementos, o substituyendo el complemento de «Grupos» por su propio complemento.

en: You can extend entities with extra information in two ways:
es: Existen dos maneras de extender las entidades con información adicional:

en: You can instead store the information like so:
es: En vez de eso, puede hacer lo siguiente para almacenar la información:

en: You can override this behaviour using a `plugin hook`_ called ``permissions_check``, which passes the entity in question to any function that has announced it wants to be referenced. Returning ``true`` will allow write access; returning ``false`` will deny it. See `the plugin hook reference for permissions\_check`_ for more details.
es: Puede cambiar este comportamiento mediante un `gancho de complementos`_ llamado ``permissions_check`` (comprobación de permisos), que pasa la entidad en cuestión a cualquier función que haya anunciado que quiere estar de referencia. Si devuelve ``true`` se permitirá el acceso de escritura; si devuelve ``false``, se denegará. Para más información vea la `documentación de referencia del gancho de complementos para permissions\_check`_.

en: You can potentially have multiple items of each type of metadata attached to a single entity
es: Usted podría tener varios elementos de cata tipo de metadatos anexados a una única entidad.

en: You can then extend the group's menu view with this one, within your plugin's input function (in this case file\_init):
es: A continuación puede extender la vista del menú del grupo con la siguiente, dentro de la función de entrada de su complemento (en este caso ``file\_init``):

en: You can trigger a custom Elgg event using ``elgg_trigger_event``:
es: Usted puede desencadenar un evento personalizado de Elgg mediante ``elgg_trigger_event``:

en: You can trigger a custom plugin hook using ``elgg_trigger_plugin_hook``:
es: Usted puede desencadenar un gancho de componente personalizado mediante ``elgg_trigger_plugin_hook``:

en: You may define additional access groups and assign them to an entity, annotation or metadata. A number of functions have been defined to assist you; see the `access library reference`_ for more information.
es: Usted puede definir grupos de acceso adicionales y asignárselos a entidades, anotaciones o metadatos. Existen para ayudarle a ello una serie de funciones; para más información, vea la `documentación de referencia de la biblioteca de acceso`_.

en: You must enable SSL support on your server for any of these techniques to work.
es: Debe activar la compatibilidad con SSL en su servidor para que las siguientes técnicas funcionen.

en: `Access library reference`_
es: `Documentación de referencia de la biblioteca de acceso`_

en: `Engine reference`_
es: `Documentación de referencia del motor`_

en: ``Annotations``: Information generally added by third parties which
es: ``Anotaciones``: Información añadida generalmente por terceros y que

en: ``ElggEntity`` has four main specializations, which provide extra properties and methods to more easily handle different kinds of data.
es: ``ElggEntity`` cuenta con cuatro especializaciones principales que ofrecen propiedades adicionales y métodos para manejar de forma más sencilla distintos tipos de datos.

en: ``ElggGroup`` has addition methods to manage content and membership.
es: ``ElggGroup`` cuenta con métodos adicionales para gestionar su contenido y usuarios.

en: ``ElggObject``: content like blog posts, uploaded files and bookmarks ``ElggUser``: a system user ``ElggSite``: each Elgg site within an Elgg installation ``ElggGroup``: multi-user collaborative systems (called "Communities" in prior versions of Elgg)
es: ``ElggObject``: Contenido como artículos de blogs, ficheros o marcadores. ``ElggUser``: Un usuario del sistema. ``ElggSite``: cada sitio de Elgg dentro de una instalación de Elgg. ``ElggGroup``: Sistemas de colaboración entre varios usuarios (denominado «Comunidades» en versiones anteriores de Elgg).

en: ``Metadata``: This is information you can add to an object to
es: ``Metadatos``: Puedes añadirle esta información a un objeto para

en: ``code`` Their session code (moved to a separate table in 1.9).
es: ``code``: El código de la sesión, que a partir de la versión 1.9 está en una tabla separada.

en: ``delete_relationship()`` : delete by ID
es: ``delete_relationship()`` : eliminar la relación con el identificador indicado.

en: ``description`` A description of the group (HTML)
es: ``description`` Una descripción del grupo en HTML.

en: ``description`` A description of the object (HTML)
es: ``description`` Una descripción del objeto en HTML.

en: ``description`` A description of the site
es: ``description``: Una descripción del sitio.

en: ``elgg_get_entities_from_relationship()`` : fetch entities in relationships in a variety of ways
es: ``elgg_get_entities_from_relationship()``: obtener entidades en relaciones de varias formas.

en: ``elgg_get_metadata`` is the best function for retrieving metadata as ElggMetadata objects:
es: ``elgg_get_metadata`` es la mejor función para obtener metadatos como instancias de ``ElggMetadata``:

en: ``email`` Their email address
es: ``email``: La dirección de correo electrónico.

en: ``get_entity_relationships()`` : fetch relationships by subject or target entity
es: ``get_entity_relationships()``: obtener relaciones que tengan la entidad indicada como sujeto o objeto.

en: ``get_relationship()`` : get a relationship object by ID
es: ``get_relationship()``: obtener el objeto de relación con el identificador indicado.

en: ``language`` Their default language code.
es: ``language``: El código del idioma predeterminado.

en: ``last_action`` The UNIX timestamp of the last time they loaded a page
es: ``last_action``: La fecha en formato UNIX de la última vez que el usuario cargó una página.

en: ``last_login`` The UNIX timestamp of their last log in
es: ``last_login``: Fecha en formato UNIX de la última vez que el usuario accedió al sistema.

en: ``name`` The group's name (HTML escaped text)
es: ``name``: El nombre del grupo en texto escapado para HTML.

en: ``name`` The site name
es: ``name``: El nombre del sitio.

en: ``name`` The user's plain text name. e.g. "Hugh Jackman"
es: ``name``: El nombre del usuario en texto plano. Por ejemplo: «Antonio García Fernández».

en: ``password`` A hashed version of their password
es: ``password``: Una suma (hash) de la contraseña.

en: ``prev_last_action`` The previous value of ``last_action``
es: ``prev_last_action``: El valor anterior de ``last_action``.

en: ``prev_last_login`` the previous value of ``last_login``
es: ``prev_last_login``: El valor anterior de ``last_login``.

en: ``remove_entity_relationships()`` : delete those relating to an entity (*note:* in versions before Elgg 1.9, this did not trigger delete events)
es: ``remove_entity_relationships()`` : eliminar aquellas entidades que estén relacionadas con una entidad determinada. Nota: en versiones de Elgg anteriores a la 1.9 esto no desencadenaba los eventos de eliminación.

en: ``salt`` The salt that their password has been hashed with
es: ``salt``: El código aleatorio (salt) con el que se creó la suma de la contraseña.

en: ``title`` The title of the object (HTML escaped text)
es: ``title``: El título el objeto en texto escapado para HTML.

en: ``url`` The address of the site
es: ``url``: La dirección URL del sitio.

en: ``username`` Their login name. E.g. "hjackman"
es: ``username``: Nombre con el que el usuario accede al sistema. Por ejemplo, «antoniogf».

en: adds to the information provided by the entity. For example, ratings are annotations (and comments were before 1.9).
es: amplía la información que ofrece la entidad. Por ejemplo, las calificaciones son anotaciones (y también los comentarios hasta la versión 1.9).

en: describe it further. For example, tags, an ISBN number, a file location or language information would fall under metadata.
es: describirlo en más detalle. Por ejemplo con etiquetas, un número ISBN, la ruta de un fichero o información lingüística que correspondería a los metadatos.

en: preventing a site administration from noting users with the same password.
es: Evitar que los administradores del sistema puedan detectar qué usuarios tienen la misma contraseña.

en: preventing anyone with access to the database from conducting a precomputed dictionary attack
es: Evitar que cualquiera con acceso a la base de datos pueda ejecutar un ataque de diccionario pre-calculado.

en: “Remember me” cookie
es: Cookie de «recordarme»
