From 78c3106c9e111f0bebe1026a03a026c2538bd595 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 18:10:49 +0100 Subject: [PATCH 001/264] New translations updates.md (French) --- .../version-20/Notes/updates.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/Notes/updates.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/Notes/updates.md index b65b3976b2ba52..75bc8ba7bb479c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/Notes/updates.md @@ -11,6 +11,14 @@ Lisez [**Les nouveautés de 4D 20**](https://blog.4d.com/fr-whats-new-in-4d-v20/ ::: +## 4D 20.8 LTS + +#### Points forts + +- [**Fixed bugs list**](https://bugs.4d.com/fixes?version=20.8): list of all bugs that have been fixed in 4D 20.8 LTS. + + + ## 4D 20.7 LTS #### Points forts From e0db05007f66be57e50fb4a59488866de49c308a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 18:36:53 +0100 Subject: [PATCH 002/264] New translations privileges.md (French) --- .../current/ORDA/privileges.md | 364 ++++++++---------- 1 file changed, 158 insertions(+), 206 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/privileges.md b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/privileges.md index 8357f0fdab2d8c..c9fe27abd154c3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/privileges.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/ORDA/privileges.md @@ -27,27 +27,21 @@ Si un utilisateur tente d'exécuter une action et ne dispose pas des droits d'ac Vous pouvez assigner des actions de permission spécifiques aux ressources suivantes dans votre projet : -- le datastore -- une dataclass -- un attribut (y compris calculé et alias) -- une fonction de classe du modèle de données -- une fonction [singleton](../REST/$singleton.md) +- the [datastore](../ORDA/dsMapping.md#datastore) +- the [dataclasses](../ORDA/dsMapping.md#dataclass) +- [attributes](../ORDA/dsMapping.md#attribute) (including [computed](./ordaClasses.md#computed-attributes-1) and [alias](./ordaClasses.md#alias-attributes-1)) +- functions of the [data model classes](../ORDA/ordaClasses.md) +- [singleton](../REST/$singleton.md) functions Chaque fois qu'on accède à une ressource dans une session (quelle que soit la manière dont on y accède), 4D vérifie que la session dispose des autorisations appropriées et rejette l'accès s'il n'est pas autorisé. -Une action de permission définie à un certain niveau est héritée par défaut aux niveaux inférieurs, mais plusieurs niveaux de permissions peuvent être définis : - -- Une action de permission définie au niveau du datastore est automatiquement assignée à toutes les dataclass. L'action de permission *execute* définie au niveau du datastore s'applique à toutes les fonctions du projet, y compris aux fonctions [singleton](../REST/$singleton.md). -- Une action de permission définie au niveau dataclass remplace le paramétrage du datastore (le cas échéant). Par défaut, tous les attributs de la dataclass héritent des permissions de la dataclass. -- Contrairement aux permissions des dataclass, une action de permission définie au niveau de l'attribut ne remplace pas la permission de la dataclass parente, mais y est ajoutée. Par exemple, si vous avez attribué le privilège "général" à une dataclass et le privilège "détail" à un attribut de la dataclass, les deux privilèges, "général" et "détail", doivent être définis dans la session afin d'accéder à l'attribut. +## Permissions -:::info +A permission is the ability to do an action on a resource. For example, *execute the ds.myTable.myFunction()* represents a **permission**. Permissions are defined for the project in the [`roles.json`](#rolesjson-file) file. Each permission can be given to one or more [privileges](#privileges-and-roles). -Les permissions contrôlent l'accès aux objets ou fonctions du datastore. Si vous voulez filtrer les données de lecture selon certains critères, vous pouvez envisager d'utiliser les [entity selections restreintes](entities.md#restricting-entity-selections) qui peuvent être plus appropriées dans ce cas. +When **no specific permission** has been defined for a resource, access to the resource may be automatically **unrestricted** or **restricted** depending on the [default mode defined for the project](#restriction-modes). -::: - -## Actions de permission +### Actions de permission Les actions disponibles sont liées à la ressource cible. @@ -73,6 +67,65 @@ Les actions disponibles sont liées à la ressource cible. Le paramétrage des permissions nécessite d'être cohérent, en particulier les permissions **update** et **drop** ont également besoin d'une permission **read** (mais **create** n'en a pas besoin). +### Inherited permissions + +Une action de permission définie à un certain niveau est héritée par défaut aux niveaux inférieurs, mais plusieurs niveaux de permissions peuvent être définis : + +- Une action de permission définie au niveau du datastore est automatiquement assignée à toutes les dataclass. L'action de permission *execute* définie au niveau du datastore s'applique à toutes les fonctions du projet, y compris aux fonctions [singleton](../REST/$singleton.md). +- Une action de permission définie au niveau dataclass remplace le paramétrage du datastore (le cas échéant). Par défaut, tous les attributs de la dataclass héritent des permissions de la dataclass. +- Contrairement aux permissions des dataclass, une action de permission définie au niveau de l'attribut ne remplace pas la permission de la dataclass parente, mais y est ajoutée. Par exemple, si vous avez attribué le privilège "général" à une dataclass et le privilège "détail" à un attribut de la dataclass, les deux privilèges, "général" et "détail", doivent être définis dans la session afin d'accéder à l'attribut. + +:::info + +Les permissions contrôlent l'accès aux objets ou fonctions du datastore. Si vous voulez filtrer les données de lecture selon certains critères, vous pouvez envisager d'utiliser les [entity selections restreintes](entities.md#restricting-entity-selections) qui peuvent être plus appropriées dans ce cas. + +::: + +### Attribution de permissions aux fonctions de la classe ORDA + +Lors de la configuration des permissions, les fonctions de classe ORDA sont déclarées dans l'élément `applyTo` en utilisant la syntaxe suivante : + +```json +. +``` + +Par exemple, si vous voulez appliquer une permission à la fonction suivante : + +```4d +// cs.CityEntity class +Class extends Entity + Function getPopulation() : Integer + ... +``` + +... vous devez écrire : + +```json +"applyTo":"City.getPopulation" +``` + +Cela signifie que vous ne pouvez pas utiliser les mêmes noms de fonctions dans les différentes classes ORDA (entité, entity selection, dataclass) si vous souhaitez que des privilèges leur soient attribués. Dans ce cas, vous devez utiliser des noms de fonction distincts. Par exemple, si vous avez créé une fonction "drop" dans les classes `cs.CityEntity` et `cs.CitySelection`, vous devez leur donner des noms différents tels que `dropEntity()` et `dropSelection()`. Vous pouvez ensuite écrire dans le fichier "roles.json" : + +```json + "permissions": { + "allowed": [ + { + "applyTo": "City.dropEntity", + "type": "method", + "promote": [ + "name" + ] + }, + { + "applyTo": "City.dropSelection", + "type": "method", + "promote": [ + "name" + ] + } + ] +``` + ## Privilèges et Rôles Un **privilège** est la capacité technique d'exécuter des **actions** sur des **ressources**, tandis qu'un **rôle** est un privilège public destiné à être utilisé par un administrateur. Fondamentalement, un rôle rassemble plusieurs privilèges pour définir un profil utilisateur métier. Par exemple, "manageInvoices" pourrait être un privilège tandis que "secrétaire" pourrait être un rôle (qui inclut "manageInvoices" et d'autres privilèges). @@ -111,142 +164,106 @@ exposed Function authenticate($identifier : Text; $password : Text)->$result : T ## `roles.json` -Le fichier `roles.json` décrit l'ensemble des paramètres de sécurité du projet. - -### Fichier par défaut +The `roles.json` file describes the whole web security settings for the project. La syntaxe du fichier `roles.json` est la suivante: + +| Nom de propriété | | | Type | Obligatoire | Description | +| ------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| privileges | | | Collection d'objets `privilege` | X | Liste de privilèges définis | +| | \[].privilege | | Text | | Nom de privilège | +| | \[].includes | | Collection de chaînes | | Liste de noms de privilèges inclus | +| roles | | | Collection d'objets `role` | | Liste de rôles définis | +| | \[].role | | Text | | Nom de rôle | +| | \[].privileges | | Collection de chaînes | | Liste de noms de privilèges inclus | +| permissions | | | Object | X | Liste d'actions autorisées | +| | allowed | | Collection d'objets `permission` | | Liste de permissions autorisées | +| | | \[].applyTo | Text | X | Nom de [ressource](#resources) cible | +| | | \[].type | Text | X | Type de [ressource](#ressources) : "datastore", "dataclass", "attribute", "method", "singletonMethod", "singleton" | +| | | \[].read | Collection de chaînes | | Liste de privilèges | +| | | \[].create | Collection de chaînes | | Liste de privilèges | +| | | \[].update | Collection de chaînes | | Liste de privilèges | +| | | \[].drop | Collection de chaînes | | Liste de privilèges | +| | | \[].execute | Collection de chaînes | | Liste de privilèges | +| | | \[].promote | Collection de chaînes | | Liste de privilèges | +| restrictedByDefault | | | Boolean | | If true, access to resources without explicit permissions is denied | +| forceLogin | | | Boolean | | If true, enables ["forceLogin" mode](../REST/authUsers.md#force-login-mode) | -Lorsque vous créez un projet, un fichier `roles.json` par défaut est créé à l'emplacement suivant : `/Project/Sources/` (voir la section [Architecture](../Project/architecture.md#sources)). +:::caution Rappel -Le fichier par défaut a le contenu suivant : +- Le nom de privilège "WebAdmin" est réservé à l'application. Il est déconseillé d'utiliser ce nom pour les privilèges personnalisés. +- `privileges` and `roles` names are case-insensitive. -```json title="/Project/Sources/roles.json" +::: -{ - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - - "roles": [], - - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": ["all"], - "create": ["all"], - "update": ["all"], - "drop": ["all"], - "execute": ["all"], - "promote": ["all"] - } - ] - }, - - "forceLogin": true +### Default File Location and Content -} +When a new project is created, a default `roles.json` file is generated at: +``` +/Project/Sources/ ``` -Pour un niveau de sécurité maximal, le privilège "all" est attribué à toutes les autorisations dans le datastore, ce qui signifie que l'accès aux données sur l'ensemble de l'objet `ds` est désactivé par défaut. Le principe est le suivant : attribuer une autorisation, c'est comme mettre un verrou sur une porte. Seules les sessions disposant d'un privilège et de la clé correspondante (c'est-à-dire d'une permission) pourront ouvrir la serrure. -Il est recommandé de ne pas modifier ou utiliser ce privilège de verrouillage, mais d'ajouter des permissions spécifiques à chaque ressource que vous souhaitez rendre disponible à partir de requêtes web ou REST ([voir l'exemple ci-dessous](#example-of-privilege-configuration)). +Voir la section [Architecture](../Project/architecture.md#sources) . -:::caution +Default content: -Si aucun paramètre spécifique n'est défini dans le fichier `roles.json`, les accès ne sont pas limités. Cette configuration vous permet de développer l'application sans avoir à vous soucier des accès, mais est fortement déconseillée dans un environnement de production. +```json title="/Project/Sources/roles.json" -::: +{ + "privileges": [ + ], + "roles": [ + ], + "permissions": { + "allowed": [ + { + "applyTo": "ds", + "type": "datastore", + "read": [], + "create": [], + "update": [], + "drop": [], + "execute": [], + "promote": [] + } + ] + }, + "restrictedByDefault": false, + "forceLogin": false +} +``` :::note Compatibilité Dans les versions précédentes, le fichier `roles.json` n'était pas créé par défaut. Depuis 4D 20 R6, lors de l'ouverture d'un projet existant qui ne contient pas de fichier `roles.json` ou les paramètres `"forceLogin" : true`, le bouton **Activer l'authentification REST via la fonction ds.authentify()** est disponible dans la page [**Fonctionnalités Web** de la boîte de dialogue Paramètres](../settings/web.md#access). Ce bouton met automatiquement à jour vos paramètres de sécurité (vous devrez peut-être modifier votre code, [voir cet article de blog](https://blog.4d.com/force-login-becomes-default-for-all-rest-auth/)). + ::: :::note Qodly Studio -Dans Qodly Studio for 4D, le mode peut être défini en utilisant l'option [**Force login**](../WebServer/qodly-studio.md#force-login) dans l'onglet Privileges. +In Qodly Studio for 4D, the login mode can be set using the [**Force login** option](https://developer.4d.com/qodly/4DQodlyPro/force-login) in the Roles and Privileges panel. ::: -### Syntaxe - -La syntaxe du fichier `roles.json` est la suivante: - -| Nom de propriété | | | Type | Obligatoire | Description | -| ---------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| privileges | | | Collection d'objets `privilege` | X | Liste de privilèges définis | -| | \[].privilege | | Text | | Nom de privilège | -| | \[].includes | | Collection de chaînes | | Liste de noms de privilèges inclus | -| roles | | | Collection d'objets `role` | | Liste de rôles définis | -| | \[].role | | Text | | Nom de rôle | -| | \[].privileges | | Collection de chaînes | | Liste de noms de privilèges inclus | -| permissions | | | Object | X | Liste d'actions autorisées | -| | allowed | | Collection d'objets `permission` | | Liste de permissions autorisées | -| | | \[].applyTo | Text | X | Nom de [ressource](#resources) cible | -| | | \[].type | Text | X | Type de [ressource](#ressources) : "datastore", "dataclass", "attribute", "method", "singletonMethod", "singleton" | -| | | \[].read | Collection de chaînes | | Liste de privilèges | -| | | \[].create | Collection de chaînes | | Liste de privilèges | -| | | \[].update | Collection de chaînes | | Liste de privilèges | -| | | \[].drop | Collection de chaînes | | Liste de privilèges | -| | | \[].execute | Collection de chaînes | | Liste de privilèges | -| | | \[].promote | Collection de chaînes | | Liste de privilèges | -| forceLogin | | | Boolean | | True pour activer le [mode "forceLogin"](../REST/authUsers.md#force-login-mode) | - -:::caution Rappel - -- Le nom de privilège "WebAdmin" est réservé à l'application. Il est déconseillé d'utiliser ce nom pour les privilèges personnalisés. -- Les noms `privileges` et `roles` sont insensibles à la casse. +## Restriction Modes -::: +The `restrictedByDefault` property configures how every [resource](#resources) are accessed when [no specific permission is defined for it](#permission): -#### Attribution de permissions aux fonctions de la classe ORDA +- **Unrestricted mode** (`restrictedByDefault`: **false**): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. +- **Restricted mode** (`restrictedByDefault`: **true**): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. -Lors de la configuration des permissions, les fonctions de classe ORDA sont déclarées dans l'élément `applyTo` en utilisant la syntaxe suivante : - -```json -. -``` +:::note Compatibilité -Par exemple, si vous voulez appliquer une permission à la fonction suivante : +- When **creating a new project**, the `restrictedByDefault` property is set to **false** in the *roles.json* file (see below). Keep in mind that this configuration is tailored for quick start and smooth development. In production environment, [it is recommended to set the `restrictedByDefault` and `forceLogin` properties to **true**](#configuring-restrictedbydefault-and-forcelogin-properties). +- In **projects converted from previous releases**; when enabling access to Qodly Studio using the [One-click configuration dialog](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#one-click-configuration), the `restrictedByDefault` property is added with value **true** in the *roles.json* file. -```4d -// cs.CityEntity class -Class extends Entity - Function getPopulation() : Integer - ... -``` +::: -... vous devez écrire : +### Recommended Configuration -```json -"applyTo":"City.getPopulation" -``` +Depending on your environment, the recommended settings are: -Cela signifie que vous ne pouvez pas utiliser les mêmes noms de fonctions dans les différentes classes ORDA (entité, entity selection, dataclass) si vous souhaitez que des privilèges leur soient attribués. Dans ce cas, vous devez utiliser des noms de fonction distincts. Par exemple, si vous avez créé une fonction "drop" dans les classes `cs.CityEntity` et `cs.CitySelection`, vous devez leur donner des noms différents tels que `dropEntity()` et `dropSelection()`. Vous pouvez ensuite écrire dans le fichier "roles.json" : - -```json - "permissions": { - "allowed": [ - { - "applyTo": "City.dropEntity", - "type": "method", - "promote": [ - "name" - ] - }, - { - "applyTo": "City.dropSelection", - "type": "method", - "promote": [ - "name" - ] - } - ] -``` +- **Production**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **true**. This ensures maximum security by requiring user authentication and explicitly defined permissions for resource access. +- **Development**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **false**. This allows easier access during development and debugging, with the possibility to gradually apply restrictions. ### `Roles_Errors.json` @@ -267,93 +284,28 @@ End if ## Exemple de configuration de privilèges -La bonne pratique est de garder tous les accès aux données verrouillés par défaut grâce au privilège "all" et de configurer le fichier `roles.json` pour n'ouvrir les parties contrôlées qu'aux sessions autorisées. Par exemple, pour autoriser certains accès aux sessions "guest" : - ```json title="/Project/Sources/roles.json" { - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - "roles": [], - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": [ - "all" - ], - "create": [ - "all" - ], - "update": [ - "all" - ], - "drop": [ - "all" - ], - "execute": [ - "all" - ], - "promote": [ - "all" - ] - }, - { - "applyTo": "ds.loginAs", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.hasPrivilege", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.clearPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.isGuest", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.getPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.setAllPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "mySingletonClass.createID", - "type": "singletonMethod", - "execute": [ - "guest" - ] - } - ] - }, - "forceLogin": true + "forceLogin": true, + "restrictedByDefault": true, + "permissions": { + "allowed": [ + { + "applyTo": "People", + "type": "dataclass", + "read": [ + "viewPeople" + ] + } + ] + }, + "privileges": [ + { + "privilege": "viewPeople", + "includes": [] + } + ], + "roles": [] } ``` From 23ebbcbc81f5001202b9d816192dabd5aedc95d4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 18:37:48 +0100 Subject: [PATCH 003/264] New translations configuration.md (French) --- .../current/REST/configuration.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/REST/configuration.md b/i18n/fr/docusaurus-plugin-content-docs/current/REST/configuration.md index e287a8275b6b29..82420294acf7b9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/REST/configuration.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/REST/configuration.md @@ -70,9 +70,9 @@ Pour supprimer l'exposition REST d'un champ : 1. Affichez l'Inspecteur de champ dans l'Editeur de structure et sélectionnez le champ à modifier. -2. Décochez la case **Exposer en tant que ressource REST** pour le champ. - ![alt-text](../assets/en/REST/field.png) - Répétez cette opération pour chaque champ dont l'exposition doit être modifiée. +2. Uncheck the **Expose as REST resource** for the field.
+ ![alt-text](../assets/en/REST/field.png)
+ Repeat this for each field whose exposure needs to be modified. > Pour qu'un champ soit accessible via REST, la table parente doit l'être également. Si la table parente n'est pas exposée, aucun de ses champs ne le sera, quel que soit leur statut. From 1668c415f34cead07054f3ad5bf787106c26e039 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 19:59:21 +0100 Subject: [PATCH 004/264] New translations updates.md (French) --- .../docusaurus-plugin-content-docs/version-21/Notes/updates.md | 1 + 1 file changed, 1 insertion(+) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Notes/updates.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Notes/updates.md index f9cd498f3e85e2..8c81601b612bfb 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Notes/updates.md @@ -16,6 +16,7 @@ Lisez [**Les nouveautés de 4D 21**](https://blog.4d.com/fe-whats-new-in-4d-v21/ - possibilité de définir des [gestionnaires de requêtes HTTP](../WebServer/http-request-handler.md) en utilisant une propriété `handlers` dans le paramètre *settings* de la fonction [`start()`](../API/WebServerClass.md#start) du serveur Web, - l'objet serveur Web contient de nouvelles propriétés [`rules`](../API/WebServerClass.md#rules) et [`handlers`](../API/WebServerClass.md#handlers). - Nouveaux [événements ORDA sur les données](../ORDA/orda-events.md) : validateSave, saving, afterSave, validateDrop, dropping, afterDrop. +- Support of the new [`restrictedByDefault` property](../ORDA/privileges.md#restriction-modes) in the `roles.json` file to block access by default to all resources without explicit permission. - Nouvelle option permettant d'utiliser les certificats du Windows Certificate Store au lieu d'un dossier de certificats locaux dans les classes [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) et [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew). - Client/serveur : - Vous pouvez afficher des pages Qodly dans des zones Web et [partager la session du client distant](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). From 378a9f2e5f78de6787780ee57a60bab4a9c9ae8a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 19:59:36 +0100 Subject: [PATCH 005/264] New translations privileges.md (French) --- .../version-21/ORDA/privileges.md | 364 ++++++++---------- 1 file changed, 158 insertions(+), 206 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md index 8357f0fdab2d8c..c9fe27abd154c3 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md @@ -27,27 +27,21 @@ Si un utilisateur tente d'exécuter une action et ne dispose pas des droits d'ac Vous pouvez assigner des actions de permission spécifiques aux ressources suivantes dans votre projet : -- le datastore -- une dataclass -- un attribut (y compris calculé et alias) -- une fonction de classe du modèle de données -- une fonction [singleton](../REST/$singleton.md) +- the [datastore](../ORDA/dsMapping.md#datastore) +- the [dataclasses](../ORDA/dsMapping.md#dataclass) +- [attributes](../ORDA/dsMapping.md#attribute) (including [computed](./ordaClasses.md#computed-attributes-1) and [alias](./ordaClasses.md#alias-attributes-1)) +- functions of the [data model classes](../ORDA/ordaClasses.md) +- [singleton](../REST/$singleton.md) functions Chaque fois qu'on accède à une ressource dans une session (quelle que soit la manière dont on y accède), 4D vérifie que la session dispose des autorisations appropriées et rejette l'accès s'il n'est pas autorisé. -Une action de permission définie à un certain niveau est héritée par défaut aux niveaux inférieurs, mais plusieurs niveaux de permissions peuvent être définis : - -- Une action de permission définie au niveau du datastore est automatiquement assignée à toutes les dataclass. L'action de permission *execute* définie au niveau du datastore s'applique à toutes les fonctions du projet, y compris aux fonctions [singleton](../REST/$singleton.md). -- Une action de permission définie au niveau dataclass remplace le paramétrage du datastore (le cas échéant). Par défaut, tous les attributs de la dataclass héritent des permissions de la dataclass. -- Contrairement aux permissions des dataclass, une action de permission définie au niveau de l'attribut ne remplace pas la permission de la dataclass parente, mais y est ajoutée. Par exemple, si vous avez attribué le privilège "général" à une dataclass et le privilège "détail" à un attribut de la dataclass, les deux privilèges, "général" et "détail", doivent être définis dans la session afin d'accéder à l'attribut. +## Permissions -:::info +A permission is the ability to do an action on a resource. For example, *execute the ds.myTable.myFunction()* represents a **permission**. Permissions are defined for the project in the [`roles.json`](#rolesjson-file) file. Each permission can be given to one or more [privileges](#privileges-and-roles). -Les permissions contrôlent l'accès aux objets ou fonctions du datastore. Si vous voulez filtrer les données de lecture selon certains critères, vous pouvez envisager d'utiliser les [entity selections restreintes](entities.md#restricting-entity-selections) qui peuvent être plus appropriées dans ce cas. +When **no specific permission** has been defined for a resource, access to the resource may be automatically **unrestricted** or **restricted** depending on the [default mode defined for the project](#restriction-modes). -::: - -## Actions de permission +### Actions de permission Les actions disponibles sont liées à la ressource cible. @@ -73,6 +67,65 @@ Les actions disponibles sont liées à la ressource cible. Le paramétrage des permissions nécessite d'être cohérent, en particulier les permissions **update** et **drop** ont également besoin d'une permission **read** (mais **create** n'en a pas besoin). +### Inherited permissions + +Une action de permission définie à un certain niveau est héritée par défaut aux niveaux inférieurs, mais plusieurs niveaux de permissions peuvent être définis : + +- Une action de permission définie au niveau du datastore est automatiquement assignée à toutes les dataclass. L'action de permission *execute* définie au niveau du datastore s'applique à toutes les fonctions du projet, y compris aux fonctions [singleton](../REST/$singleton.md). +- Une action de permission définie au niveau dataclass remplace le paramétrage du datastore (le cas échéant). Par défaut, tous les attributs de la dataclass héritent des permissions de la dataclass. +- Contrairement aux permissions des dataclass, une action de permission définie au niveau de l'attribut ne remplace pas la permission de la dataclass parente, mais y est ajoutée. Par exemple, si vous avez attribué le privilège "général" à une dataclass et le privilège "détail" à un attribut de la dataclass, les deux privilèges, "général" et "détail", doivent être définis dans la session afin d'accéder à l'attribut. + +:::info + +Les permissions contrôlent l'accès aux objets ou fonctions du datastore. Si vous voulez filtrer les données de lecture selon certains critères, vous pouvez envisager d'utiliser les [entity selections restreintes](entities.md#restricting-entity-selections) qui peuvent être plus appropriées dans ce cas. + +::: + +### Attribution de permissions aux fonctions de la classe ORDA + +Lors de la configuration des permissions, les fonctions de classe ORDA sont déclarées dans l'élément `applyTo` en utilisant la syntaxe suivante : + +```json +. +``` + +Par exemple, si vous voulez appliquer une permission à la fonction suivante : + +```4d +// cs.CityEntity class +Class extends Entity + Function getPopulation() : Integer + ... +``` + +... vous devez écrire : + +```json +"applyTo":"City.getPopulation" +``` + +Cela signifie que vous ne pouvez pas utiliser les mêmes noms de fonctions dans les différentes classes ORDA (entité, entity selection, dataclass) si vous souhaitez que des privilèges leur soient attribués. Dans ce cas, vous devez utiliser des noms de fonction distincts. Par exemple, si vous avez créé une fonction "drop" dans les classes `cs.CityEntity` et `cs.CitySelection`, vous devez leur donner des noms différents tels que `dropEntity()` et `dropSelection()`. Vous pouvez ensuite écrire dans le fichier "roles.json" : + +```json + "permissions": { + "allowed": [ + { + "applyTo": "City.dropEntity", + "type": "method", + "promote": [ + "name" + ] + }, + { + "applyTo": "City.dropSelection", + "type": "method", + "promote": [ + "name" + ] + } + ] +``` + ## Privilèges et Rôles Un **privilège** est la capacité technique d'exécuter des **actions** sur des **ressources**, tandis qu'un **rôle** est un privilège public destiné à être utilisé par un administrateur. Fondamentalement, un rôle rassemble plusieurs privilèges pour définir un profil utilisateur métier. Par exemple, "manageInvoices" pourrait être un privilège tandis que "secrétaire" pourrait être un rôle (qui inclut "manageInvoices" et d'autres privilèges). @@ -111,142 +164,106 @@ exposed Function authenticate($identifier : Text; $password : Text)->$result : T ## `roles.json` -Le fichier `roles.json` décrit l'ensemble des paramètres de sécurité du projet. - -### Fichier par défaut +The `roles.json` file describes the whole web security settings for the project. La syntaxe du fichier `roles.json` est la suivante: + +| Nom de propriété | | | Type | Obligatoire | Description | +| ------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| privileges | | | Collection d'objets `privilege` | X | Liste de privilèges définis | +| | \[].privilege | | Text | | Nom de privilège | +| | \[].includes | | Collection de chaînes | | Liste de noms de privilèges inclus | +| roles | | | Collection d'objets `role` | | Liste de rôles définis | +| | \[].role | | Text | | Nom de rôle | +| | \[].privileges | | Collection de chaînes | | Liste de noms de privilèges inclus | +| permissions | | | Object | X | Liste d'actions autorisées | +| | allowed | | Collection d'objets `permission` | | Liste de permissions autorisées | +| | | \[].applyTo | Text | X | Nom de [ressource](#resources) cible | +| | | \[].type | Text | X | Type de [ressource](#ressources) : "datastore", "dataclass", "attribute", "method", "singletonMethod", "singleton" | +| | | \[].read | Collection de chaînes | | Liste de privilèges | +| | | \[].create | Collection de chaînes | | Liste de privilèges | +| | | \[].update | Collection de chaînes | | Liste de privilèges | +| | | \[].drop | Collection de chaînes | | Liste de privilèges | +| | | \[].execute | Collection de chaînes | | Liste de privilèges | +| | | \[].promote | Collection de chaînes | | Liste de privilèges | +| restrictedByDefault | | | Boolean | | If true, access to resources without explicit permissions is denied | +| forceLogin | | | Boolean | | If true, enables ["forceLogin" mode](../REST/authUsers.md#force-login-mode) | -Lorsque vous créez un projet, un fichier `roles.json` par défaut est créé à l'emplacement suivant : `/Project/Sources/` (voir la section [Architecture](../Project/architecture.md#sources)). +:::caution Rappel -Le fichier par défaut a le contenu suivant : +- Le nom de privilège "WebAdmin" est réservé à l'application. Il est déconseillé d'utiliser ce nom pour les privilèges personnalisés. +- `privileges` and `roles` names are case-insensitive. -```json title="/Project/Sources/roles.json" +::: -{ - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - - "roles": [], - - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": ["all"], - "create": ["all"], - "update": ["all"], - "drop": ["all"], - "execute": ["all"], - "promote": ["all"] - } - ] - }, - - "forceLogin": true +### Default File Location and Content -} +When a new project is created, a default `roles.json` file is generated at: +``` +/Project/Sources/ ``` -Pour un niveau de sécurité maximal, le privilège "all" est attribué à toutes les autorisations dans le datastore, ce qui signifie que l'accès aux données sur l'ensemble de l'objet `ds` est désactivé par défaut. Le principe est le suivant : attribuer une autorisation, c'est comme mettre un verrou sur une porte. Seules les sessions disposant d'un privilège et de la clé correspondante (c'est-à-dire d'une permission) pourront ouvrir la serrure. -Il est recommandé de ne pas modifier ou utiliser ce privilège de verrouillage, mais d'ajouter des permissions spécifiques à chaque ressource que vous souhaitez rendre disponible à partir de requêtes web ou REST ([voir l'exemple ci-dessous](#example-of-privilege-configuration)). +Voir la section [Architecture](../Project/architecture.md#sources) . -:::caution +Default content: -Si aucun paramètre spécifique n'est défini dans le fichier `roles.json`, les accès ne sont pas limités. Cette configuration vous permet de développer l'application sans avoir à vous soucier des accès, mais est fortement déconseillée dans un environnement de production. +```json title="/Project/Sources/roles.json" -::: +{ + "privileges": [ + ], + "roles": [ + ], + "permissions": { + "allowed": [ + { + "applyTo": "ds", + "type": "datastore", + "read": [], + "create": [], + "update": [], + "drop": [], + "execute": [], + "promote": [] + } + ] + }, + "restrictedByDefault": false, + "forceLogin": false +} +``` :::note Compatibilité Dans les versions précédentes, le fichier `roles.json` n'était pas créé par défaut. Depuis 4D 20 R6, lors de l'ouverture d'un projet existant qui ne contient pas de fichier `roles.json` ou les paramètres `"forceLogin" : true`, le bouton **Activer l'authentification REST via la fonction ds.authentify()** est disponible dans la page [**Fonctionnalités Web** de la boîte de dialogue Paramètres](../settings/web.md#access). Ce bouton met automatiquement à jour vos paramètres de sécurité (vous devrez peut-être modifier votre code, [voir cet article de blog](https://blog.4d.com/force-login-becomes-default-for-all-rest-auth/)). + ::: :::note Qodly Studio -Dans Qodly Studio for 4D, le mode peut être défini en utilisant l'option [**Force login**](../WebServer/qodly-studio.md#force-login) dans l'onglet Privileges. +In Qodly Studio for 4D, the login mode can be set using the [**Force login** option](https://developer.4d.com/qodly/4DQodlyPro/force-login) in the Roles and Privileges panel. ::: -### Syntaxe - -La syntaxe du fichier `roles.json` est la suivante: - -| Nom de propriété | | | Type | Obligatoire | Description | -| ---------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| privileges | | | Collection d'objets `privilege` | X | Liste de privilèges définis | -| | \[].privilege | | Text | | Nom de privilège | -| | \[].includes | | Collection de chaînes | | Liste de noms de privilèges inclus | -| roles | | | Collection d'objets `role` | | Liste de rôles définis | -| | \[].role | | Text | | Nom de rôle | -| | \[].privileges | | Collection de chaînes | | Liste de noms de privilèges inclus | -| permissions | | | Object | X | Liste d'actions autorisées | -| | allowed | | Collection d'objets `permission` | | Liste de permissions autorisées | -| | | \[].applyTo | Text | X | Nom de [ressource](#resources) cible | -| | | \[].type | Text | X | Type de [ressource](#ressources) : "datastore", "dataclass", "attribute", "method", "singletonMethod", "singleton" | -| | | \[].read | Collection de chaînes | | Liste de privilèges | -| | | \[].create | Collection de chaînes | | Liste de privilèges | -| | | \[].update | Collection de chaînes | | Liste de privilèges | -| | | \[].drop | Collection de chaînes | | Liste de privilèges | -| | | \[].execute | Collection de chaînes | | Liste de privilèges | -| | | \[].promote | Collection de chaînes | | Liste de privilèges | -| forceLogin | | | Boolean | | True pour activer le [mode "forceLogin"](../REST/authUsers.md#force-login-mode) | - -:::caution Rappel - -- Le nom de privilège "WebAdmin" est réservé à l'application. Il est déconseillé d'utiliser ce nom pour les privilèges personnalisés. -- Les noms `privileges` et `roles` sont insensibles à la casse. +## Restriction Modes -::: +The `restrictedByDefault` property configures how every [resource](#resources) are accessed when [no specific permission is defined for it](#permission): -#### Attribution de permissions aux fonctions de la classe ORDA +- **Unrestricted mode** (`restrictedByDefault`: **false**): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. +- **Restricted mode** (`restrictedByDefault`: **true**): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. -Lors de la configuration des permissions, les fonctions de classe ORDA sont déclarées dans l'élément `applyTo` en utilisant la syntaxe suivante : - -```json -. -``` +:::note Compatibilité -Par exemple, si vous voulez appliquer une permission à la fonction suivante : +- When **creating a new project**, the `restrictedByDefault` property is set to **false** in the *roles.json* file (see below). Keep in mind that this configuration is tailored for quick start and smooth development. In production environment, [it is recommended to set the `restrictedByDefault` and `forceLogin` properties to **true**](#configuring-restrictedbydefault-and-forcelogin-properties). +- In **projects converted from previous releases**; when enabling access to Qodly Studio using the [One-click configuration dialog](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#one-click-configuration), the `restrictedByDefault` property is added with value **true** in the *roles.json* file. -```4d -// cs.CityEntity class -Class extends Entity - Function getPopulation() : Integer - ... -``` +::: -... vous devez écrire : +### Recommended Configuration -```json -"applyTo":"City.getPopulation" -``` +Depending on your environment, the recommended settings are: -Cela signifie que vous ne pouvez pas utiliser les mêmes noms de fonctions dans les différentes classes ORDA (entité, entity selection, dataclass) si vous souhaitez que des privilèges leur soient attribués. Dans ce cas, vous devez utiliser des noms de fonction distincts. Par exemple, si vous avez créé une fonction "drop" dans les classes `cs.CityEntity` et `cs.CitySelection`, vous devez leur donner des noms différents tels que `dropEntity()` et `dropSelection()`. Vous pouvez ensuite écrire dans le fichier "roles.json" : - -```json - "permissions": { - "allowed": [ - { - "applyTo": "City.dropEntity", - "type": "method", - "promote": [ - "name" - ] - }, - { - "applyTo": "City.dropSelection", - "type": "method", - "promote": [ - "name" - ] - } - ] -``` +- **Production**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **true**. This ensures maximum security by requiring user authentication and explicitly defined permissions for resource access. +- **Development**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **false**. This allows easier access during development and debugging, with the possibility to gradually apply restrictions. ### `Roles_Errors.json` @@ -267,93 +284,28 @@ End if ## Exemple de configuration de privilèges -La bonne pratique est de garder tous les accès aux données verrouillés par défaut grâce au privilège "all" et de configurer le fichier `roles.json` pour n'ouvrir les parties contrôlées qu'aux sessions autorisées. Par exemple, pour autoriser certains accès aux sessions "guest" : - ```json title="/Project/Sources/roles.json" { - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - "roles": [], - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": [ - "all" - ], - "create": [ - "all" - ], - "update": [ - "all" - ], - "drop": [ - "all" - ], - "execute": [ - "all" - ], - "promote": [ - "all" - ] - }, - { - "applyTo": "ds.loginAs", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.hasPrivilege", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.clearPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.isGuest", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.getPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.setAllPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "mySingletonClass.createID", - "type": "singletonMethod", - "execute": [ - "guest" - ] - } - ] - }, - "forceLogin": true + "forceLogin": true, + "restrictedByDefault": true, + "permissions": { + "allowed": [ + { + "applyTo": "People", + "type": "dataclass", + "read": [ + "viewPeople" + ] + } + ] + }, + "privileges": [ + { + "privilege": "viewPeople", + "includes": [] + } + ], + "roles": [] } ``` From 898b9cc5202835de178749ccb32001e87aff9a17 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:31:23 +0100 Subject: [PATCH 006/264] New translations updates.md (Spanish) --- .../version-20/Notes/updates.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/version-20/Notes/updates.md index b3728efa113318..f1bbda81ce6386 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/Notes/updates.md @@ -11,6 +11,14 @@ Lea las [**novedades de 4D 20**](https://blog.4d.com/en-whats-new-in-4d-v20/), l ::: +## 4D 20.8 LTS + +#### Lo más destacado + +- [**Lista de bugs corregidos**](https://bugs.4d.com/fixes?version=20.8): lista de todos los bugs corregidos en 4D 20.8 LTS. + + + ## 4D 20.7 LTS #### Lo más destacado @@ -25,7 +33,7 @@ Por razones internas, la versión de los clientes remotos que se conectan a 4D S #### Cambios de comportamiento -- As of 4D **20.7 HF2**, the [`Time`](https://doc.4d.com/4dv20/help/command/en/page179.html) command returns a negative time expression when the *timeValue* parameter is negative. For instance, `Time("-01:02:03")` will now return -01:02:03. En versiones anteriores, se ignoraba el signo negativo. +- As of 4D **20.7 HF2**, the [`Time`](https://doc.4d.com/4dv20/help/command/en/page179.html) command returns a negative time expression when the *timeValue* parameter is negative. Por ejemplo, `Time("-01:02:03")` ahora devolverá -01:02:03. En versiones anteriores, se ignoraba el signo negativo. ## 4D 20.6 LTS From 845283c67ab01c18c8ffc1e876c884042a426634 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:50:48 +0100 Subject: [PATCH 007/264] New translations web.md (Spanish) --- .../version-20/settings/web.md | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/settings/web.md b/i18n/es/docusaurus-plugin-content-docs/version-20/settings/web.md index 87ae538ddee0c1..5cc43e25d1efc9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/settings/web.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/settings/web.md @@ -170,7 +170,7 @@ El menú de formato de registro ofrece las siguientes opciones: Each field is separated by a space and each line ends by the CR/LF sequence (character 13, character 10). - host: dirección IP del cliente (por ejemplo: "192.100.100.10) - rfc931: información no generada por 4D, siempre es - (un signo menos) - - usuario: nombre del usuario como está autenticado, o - (un signo menos). If the user name contains spaces, they will be replaced by \_ (an underscore). + - usuario: nombre del usuario como está autenticado, o - (un signo menos). Si el nombre de usuario contiene espacios, se remplazan por \_ (un guión bajo). - DD: día, MMM: una abreviatura de 3 letras para el nombre del mes (Jan, Feb,...), YYYY: año, HH: hora, MM: minutos, SS: segundos > La fecha y hora son locales al servidor. @@ -197,30 +197,30 @@ El menú de formato de registro ofrece las siguientes opciones: La siguiente tabla enumera los campos disponibles para cada formato (en orden alfabético) y describe su contenido: -| Campo | ELF | WLF | Valor | -| -------------- | --- | --- | --------------------------------------------------------------------------- | -| BYTES_RECEIVED | | X | Número de bytes recibidos por el servidor | -| BYTES_SENT | X | X | Número de bytes enviados por el servidor al cliente | -| C_DNS | X | X | Dirección IP del DNS (ELF: campo idéntico al campo C_IP) | -| C_IP | X | X | Dirección IP del cliente (por ejemplo 192.100.100.10) | -| CONNECTION_ID | | X | Número de identificación de la conexión | -| CS(COOKIE) | X | X | Información sobre las cookies contenidas en la petición HTTP | -| CS(HOST) | X | X | Campo Host de la petición HTTP | -| CS(REFERER) | X | X | URL de la página que apunta al documento solicitado | -| CS(USER_AGENT) | X | X | Información sobre el software y el sistema operativo del cliente | -| CS_SIP | X | X | Dirección IP del servidor | -| CS_URI | X | X | URI sobre el que se realiza la petición | -| CS_URI_QUERY | X | X | Parámetros de consulta de la petición | -| CS_URI_STEM | X | X | Parte de la solicitud sin los parámetros de la consulta | -| DATE | X | X | DD: día, MMM: abreviación de 3 letras para el mes (Jan, Feb,...), YYYY: año | -| METHOD | X | X | Método HTTP utilizado para la solicitud enviada al servidor | -| PATH_ARGS | | X | Parámetros de la CGI: cadena situada después del caracter "$" | -| STATUS | X | X | Respuesta ofrecida por el servidor | -| TIME | X | X | HH: hora, MM: minutos, SS: segundos | -| TRANSFER_TIME | X | X | Tiempo solicitado por el servidor para generar la respuesta | -| USER | X | X | Nombre de usuario si está autenticado; en caso contrario, - (signo menos). | -| | | | If the user name contains spaces, they are replaced by \_ (underlines) | -| URL | | X | URL solicitado por el cliente | +| Campo | ELF | WLF | Valor | +| -------------- | --- | --- | -------------------------------------------------------------------------------- | +| BYTES_RECEIVED | | X | Número de bytes recibidos por el servidor | +| BYTES_SENT | X | X | Número de bytes enviados por el servidor al cliente | +| C_DNS | X | X | Dirección IP del DNS (ELF: campo idéntico al campo C_IP) | +| C_IP | X | X | Dirección IP del cliente (por ejemplo 192.100.100.10) | +| CONNECTION_ID | | X | Número de identificación de la conexión | +| CS(COOKIE) | X | X | Información sobre las cookies contenidas en la petición HTTP | +| CS(HOST) | X | X | Campo Host de la petición HTTP | +| CS(REFERER) | X | X | URL de la página que apunta al documento solicitado | +| CS(USER_AGENT) | X | X | Información sobre el software y el sistema operativo del cliente | +| CS_SIP | X | X | Dirección IP del servidor | +| CS_URI | X | X | URI sobre el que se realiza la petición | +| CS_URI_QUERY | X | X | Parámetros de consulta de la petición | +| CS_URI_STEM | X | X | Parte de la solicitud sin los parámetros de la consulta | +| DATE | X | X | DD: día, MMM: abreviación de 3 letras para el mes (Jan, Feb,...), YYYY: año | +| METHOD | X | X | Método HTTP utilizado para la solicitud enviada al servidor | +| PATH_ARGS | | X | Parámetros de la CGI: cadena situada después del caracter "$" | +| STATUS | X | X | Respuesta ofrecida por el servidor | +| TIME | X | X | HH: hora, MM: minutos, SS: segundos | +| TRANSFER_TIME | X | X | Tiempo solicitado por el servidor para generar la respuesta | +| USER | X | X | Nombre de usuario si está autenticado; en caso contrario, - (signo menos). | +| | | | Si el nombre de usuario contiene espacios, son reemplazados por \_ (subrayado) | +| URL | | X | URL solicitado por el cliente | > Las fechas y horas se indican en GMT. From 1c235776fc374521b24c88956ee3970579ff0f62 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:51:00 +0100 Subject: [PATCH 008/264] New translations collectionclass.md (Spanish) --- .../current/API/CollectionClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/CollectionClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/CollectionClass.md index 52e214a97ff15e..07743af4897bf7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/CollectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/CollectionClass.md @@ -3169,7 +3169,7 @@ La función `.sort()` ordena los elemento > Esta función modifica la colección original. Si se llama a `.sort()` sin parámetros, sólo se ordenan los valores escalares (número, texto, fecha, booleanos). Los elementos se ordenan por defecto de forma ascendente, según su tipo. -You can also pass one of the following constants in the *ascOrDesc* parameter: +También puede pasar una de las siguientes constantes en el parámetro *ascOrDesc*: ``` |Constant| Type|Value|Comment| From a7e4e020cb788db63a7062783bdd5ca339cb26e7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:51:19 +0100 Subject: [PATCH 009/264] New translations entityclass.md (Spanish) --- .../current/API/EntityClass.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md index e3b227f3ed96b9..f0d3001988b748 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md @@ -397,9 +397,9 @@ El objeto devuelto por `.drop()` contiene las siguientes propiedades: | ----------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using entity.drop(), this error can be returned when dk force drop if stamp changed option is used. When using entity.lock(), this error can be returned when dk reload if stamp changed option is used.
  • **Associated statusText**: "Entity does not exist anymore" | | `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista.
    **statusText asociado**: "Already locked" | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | +| `dk status validation failed` | 7 | Error no crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | | `dk status serious error` | 4 | Un error grave es un error de base de datos de bajo nivel (por ejemplo, una llave duplicada), un error de hardware, etc.
    **statusText asociado**: "Other error" | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | +| `dk status serious validation error` | 8 | Error crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | | `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used
  • **Associated statusText**: "Stamp has changed"
  • | | `dk status wrong permission` | 1 | Los privilegios actuales no permiten suprimir la entidad. **Associated statusText**: "Permission Error" | @@ -1282,9 +1282,9 @@ Los siguientes valores pueden ser devueltos en las propiedades `status`y `status | `dk status automerge failed` | 6 | (Only if the `dk auto merge` option is used) The automatic merge option failed when saving the entity. **statusText asociado**: "Fallo de la fusión automática" | | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | | `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista. **statusText asociado**: "Already locked" | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | +| `dk status validation failed` | 7 | Error no crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | | `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc. **Associated statusText**: "Other error" | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | +| `dk status serious validation error` | 8 | Error crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | | `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used

  • **Associated statusText**: "Stamp has changed" | | `dk status wrong permission` | 1 | Los privilegios actuales no permiten guardar la entidad. **Associated statusText**: "Permission Error" | From 41b7c7b47b98468bfa88ebd1f1ed01f71620fe00 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:51:43 +0100 Subject: [PATCH 010/264] New translations sessionclass.md (Spanish) --- .../docusaurus-plugin-content-docs/current/API/SessionClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md index 79acc673f1076b..91f8d8279ab497 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -753,7 +753,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage :::note -This function does nothing and always returns **False** with stored procedure sessions and standalone sessions. +Esta función no hace nada y siempre devuelve **False** con sesiones de procedimientos almacenadas y las sesiones independientes. ::: From 7d9fc152d6188963342ba20eca8211018a3307d5 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:51:52 +0100 Subject: [PATCH 011/264] New translations webserverclass.md (Spanish) --- .../current/API/WebServerClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebServerClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebServerClass.md index 6fed6a0c01983c..3f311fe35dba48 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebServerClass.md @@ -495,7 +495,7 @@ La ruta de la carpeta raíz del s *Propiedad de sólo lectura* -A collection of rule objects currently handled to customize HTTP headers. A rule object contains a "regexPattern" property, as well as an action name with a value. HTTP rules can be defined through a HTTPRules.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Rules](../WebServer/http-rules.md) page. +A collection of rule objects currently handled to customize HTTP headers. A rule object contains a "regexPattern" property, as well as an action name with a value. HTTP rules can be defined through a HTTPRules.json file or the *settings* parameter of the [`.start()`](#start) function. Para obtener más información, consulte la página [Reglas HTTP](../WebServer/http-rules.md). From f5e303396fb98e8d979c15631b2dd034f98f5b03 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:54:17 +0100 Subject: [PATCH 012/264] New translations overview.md (Spanish) --- .../current/Extensions/overview.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md index 681ada54c0c77e..615fc7ae5c281d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/overview.md @@ -16,21 +16,21 @@ La [arquitectura del proyecto] 4D (../Project/architecture.md) es abierta y pued ## Componentes desarrollados por 4D -4D proposes various components to the 4D community, covering many development needs. All 4D components can be found on the [**4D github repository**](https://github.com/4d). +4D proposes various components to the 4D community, covering many development needs. Todos los componentes 4D se pueden encontrar en el [**repositorio github de 4D**](https://github.com/4d). A subset of these components is listed by default in the [Dependency Manager](../Project/components.md), including: -| Componente | Repositorio Github | Descripción | Principales funcionalidades | -| -------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| 4D AIKit | https://github.com/4d/4D-AIKit | Conjunto de clases a conectar con las APIs OpenAI de terceros | `OpenAIChat`, `OpenAIImage`... | -| 4D NetKit | https://github.com/4d/4D-NetKit | Conjunto de herramientas de servicios web para conectarse a APIs de terceros | `OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` | -| 4D Progress | https://github.com/4d/4D-Progress | Abrir una o varias barras de progreso en la misma ventana | `Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... | -| 4D QPDF | https://github.com/4d/4D-QPDF | Extraer archivos adjuntos de archivos PDF/A-3 | `PDF Get attachments` | -| 4D SVG | https://github.com/4d/4D-SVG | Crear y manipular objetos gráficos svg comunes | `SVGTool_Display_viewer`, métodos múltiples `SVG_` | -| 4D ViewPro | https://github.com/4d/4d-view-pro | Funciones de hoja de cálculo en sus formularios | Ver la [documentación 4D View Pro](ViewPro/getting-started.md) | -| 4D Widgets | https://github.com/4d/4D-Widgets | Gestione los widgets DatePicker, TimePicker, SearchPicker 4D | `DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ... | -| Interfaz 4D WritePro | https://github.com/4d/4D-WritePro-Interface | Manage 4D Write Pro palettes and [table wizard](../WritePro/writeprointerface.md) | `WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget` | -| Build4D | https://github.com/4d-depot/Build4D | Compilar, construir y firmar proyectos | CI/CD | +| Componente | Repositorio Github | Descripción | Principales funcionalidades | +| -------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | +| 4D AIKit | https://github.com/4d/4D-AIKit | Conjunto de clases a conectar con las APIs OpenAI de terceros | `OpenAIChat`, `OpenAIImage`... | +| 4D NetKit | https://github.com/4d/4D-NetKit | Conjunto de herramientas de servicios web para conectarse a APIs de terceros | `OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` | +| 4D Progress | https://github.com/4d/4D-Progress | Abrir una o varias barras de progreso en la misma ventana | `Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... | +| 4D QPDF | https://github.com/4d/4D-QPDF | Extraer archivos adjuntos de archivos PDF/A-3 | `PDF Get attachments` | +| 4D SVG | https://github.com/4d/4D-SVG | Crear y manipular objetos gráficos svg comunes | `SVGTool_Display_viewer`, métodos múltiples `SVG_` | +| 4D ViewPro | https://github.com/4d/4d-view-pro | Funciones de hoja de cálculo en sus formularios | Ver la [documentación 4D View Pro](ViewPro/getting-started.md) | +| 4D Widgets | https://github.com/4d/4D-Widgets | Gestione los widgets DatePicker, TimePicker, SearchPicker 4D | `DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ... | +| Interfaz 4D WritePro | https://github.com/4d/4D-WritePro-Interface | Gestión de paletas y del [asistente de tablas](../WritePro/writeprointerface.md) en 4D Write Pro | `WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget` | +| Build4D | https://github.com/4d-depot/Build4D | Compilar, construir y firmar proyectos | CI/CD | From a8e21aa0f63f9f611325b42d8af250b518c07abe Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:54:22 +0100 Subject: [PATCH 013/264] New translations formeditor.md (Spanish) --- .../current/FormEditor/formEditor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md index 67472967bbab23..fb295146f24425 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md @@ -352,7 +352,7 @@ Cuando se superponen varios objetos, se puede utilizar el atajo **Ctrl+Mayús+cl :::note -In binary databases, use **Ctrl+Click / Command+Click** to perform the same action. +En bases de datos binarias, utilice **Ctrl+Clic / Comando+Clic** para efectuar la misma acción. ::: From c3d4cfe965ca802d8ae7908a7b5cb99417248148 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:54:52 +0100 Subject: [PATCH 014/264] New translations listbox_overview.md (Spanish) --- .../current/FormObjects/listbox_overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox_overview.md index 452875652a7f60..c0eb2ead1f7645 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox_overview.md @@ -812,7 +812,7 @@ If the user selects a break row, [`LISTBOX GET CELL POSITION`](../commands/listb ![](../assets/en/FormObjects/hierarch11.png) -... [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) returns (2;4). To select a break row by programming, you will need to use the [`LISTBOX SELECT BREAK`](../commands/listbox-select-break) command. +... [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) devuelve (2;4). To select a break row by programming, you will need to use the [`LISTBOX SELECT BREAK`](../commands/listbox-select-break) command. Las líneas de rotura no se tienen en cuenta en los arrays internos utilizados para gestionar el aspecto gráfico de los list box (estilos y colores). No obstante, es posible modificar estas características para las líneas de ruptura mediante los comandos de gestión gráfica de los objetos. Basta con ejecutar los comandos adecuados en los arrays que constituyen la jerarquía. From 93d940b7a326d3549e2b9881baf2fa48f7f3117b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:55:02 +0100 Subject: [PATCH 015/264] New translations properties_backgroundandborder.md (Spanish) --- .../current/FormObjects/properties_BackgroundAndBorder.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_BackgroundAndBorder.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_BackgroundAndBorder.md index 065a522fb7c54f..152f5cb885112e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_BackgroundAndBorder.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_BackgroundAndBorder.md @@ -186,7 +186,7 @@ Designa el grosor de una línea. --- -## Row Background Color Array {#row-background-color-array} +## Array colores de fondo {#row-background-color-array} `List boxes de tipo array` From 7851a55f86127f9072fd8fd49bf935193c13d61b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:56:22 +0100 Subject: [PATCH 016/264] New translations privileges.md (Spanish) --- .../current/ORDA/privileges.md | 352 ++++++++---------- 1 file changed, 152 insertions(+), 200 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/privileges.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/privileges.md index 5bb31631d97539..c1f9354eff3f69 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/privileges.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/privileges.md @@ -27,27 +27,21 @@ Si un usuario intenta ejecutar una acción y no tiene los derechos de acceso ade Puede asignar acciones de permiso específicas a los siguientes recursos en su proyecto: -- el almacén de datos -- una clase de datos -- un atributo (incluidos los calculados y los alias) -- una función de clase de modelo de datos -- una función [singleton](../REST/$singleton.md) +- the [datastore](../ORDA/dsMapping.md#datastore) +- the [dataclasses](../ORDA/dsMapping.md#dataclass) +- [attributes](../ORDA/dsMapping.md#attribute) (including [computed](./ordaClasses.md#computed-attributes-1) and [alias](./ordaClasses.md#alias-attributes-1)) +- functions of the [data model classes](../ORDA/ordaClasses.md) +- [singleton](../REST/$singleton.md) functions Cada vez que se accede a un recurso dentro de una sesión (sin importar la forma en que se acceda), 4D verifica que la sesión tenga los permisos apropiados y rechaza el acceso si no está autorizado. -Una acción de permiso definida en un nivel determinado se hereda por defecto en los niveles inferiores, pero se pueden establecer varios permisos: - -- Una acción de permiso definida a nivel de almacén de datos se asigna automáticamente a todas las clases de datos. La acción de permiso *execute* definida en el nivel del datastore se aplica a todas las funciones del proyecto, incluyendo todas las funciones [singleton](../REST/$singleton.md). -- Una acción de permiso definida a nivel de clase de datos anula la configuración del almacén de datos (si existe). Por defecto, todos los atributos de la clase de datos heredan de los permisos de la clase de datos. -- A diferencia de los permisos de clase de datos, una acción de permiso definida a nivel de atributo no anula los permisos de clase de datos padre, sino que se añade a ellos. Por ejemplo, si asignó el privilegio "general" a una clase de datos y el privilegio "detail" a un atributo de la clase de datos, tanto el privilegio "general" como el privilegio "detail" deben definirse en la sesión para acceder al atributo. - -:::info +## Permissions -Los permisos controlan el acceso a los objetos o funciones del almacén de datos. Si desea filtrar los datos leídos según algún criterio, puede considerar [restringir las selecciones de entidades](entities.md#restricting-entity-selections) que puede ser más apropiado en este caso. +A permission is the ability to do an action on a resource. For example, *execute the ds.myTable.myFunction()* represents a **permission**. Permissions are defined for the project in the [`roles.json`](#rolesjson-file) file. Cada permiso se puede dar a uno o más [privilegios](#privileges-and-roles). -::: +When **no specific permission** has been defined for a resource, access to the resource may be automatically **unrestricted** or **restricted** depending on the [default mode defined for the project](#restriction-modes). -## Acciones de autorización +### Acciones de autorización Las acciones disponibles están relacionadas con el recurso de destino. @@ -73,6 +67,65 @@ Las acciones disponibles están relacionadas con el recurso de destino. Los parámetros de permisos requieren ser consistentes, en particular los permisos **update** y **drop** también necesitan el permiso **read** (pero **create** no lo necesita). +### Permisos heredados + +Una acción de permiso definida en un nivel determinado se hereda por defecto en los niveles inferiores, pero se pueden establecer varios permisos: + +- Una acción de permiso definida a nivel de almacén de datos se asigna automáticamente a todas las clases de datos. La acción de permiso *execute* definida en el nivel del datastore se aplica a todas las funciones del proyecto, incluyendo todas las funciones [singleton](../REST/$singleton.md). +- Una acción de permiso definida a nivel de clase de datos anula la configuración del almacén de datos (si existe). Por defecto, todos los atributos de la clase de datos heredan de los permisos de la clase de datos. +- A diferencia de los permisos de clase de datos, una acción de permiso definida a nivel de atributo no anula los permisos de clase de datos padre, sino que se añade a ellos. Por ejemplo, si asignó el privilegio "general" a una clase de datos y el privilegio "detail" a un atributo de la clase de datos, tanto el privilegio "general" como el privilegio "detail" deben definirse en la sesión para acceder al atributo. + +:::info + +Los permisos controlan el acceso a los objetos o funciones del almacén de datos. Si desea filtrar los datos leídos según algún criterio, puede considerar [restringir las selecciones de entidades](entities.md#restricting-entity-selections) que puede ser más apropiado en este caso. + +::: + +### Asignación de permisos a las funciones de la clase ORDA + +Al configurar los permisos, las funciones de clase ORDA se declaran en el elemento `applyTo` usando la siguiente sintaxis: + +```json +. +``` + +Por ejemplo, si desea aplicar un permiso a la siguiente función: + +```4d +// cs.CityEntity class +Class extends Entity + Function getPopulation() : Integer + ... +``` + +... tiene que escribir: + +```json +"applyTo":"City.getPopulation" +``` + +Significa que no puede utilizar los mismos nombres de función en las distintas clases ORDA (entidad, selección de entidad, dataclass) si desea que se les asignen privilegios. En este caso, debe utilizar nombres de función distintos. Por ejemplo, si has creado una función "drop" en ambas clases `cs.CityEntity` y `cs.CitySelection`, necesita darles nombres diferentes como `dropEntity()` y `dropSelection()`. A continuación, puede escribir en el archivo "roles.json": + +```json + "permissions": { + "allowed": [ + { + "applyTo": "City.dropEntity", + "type": "method", + "promote": [ + "name" + ] + }, + { + "applyTo": "City.dropSelection", + "type": "method", + "promote": [ + "name" + ] + } + ] +``` + ## Privilegios y roles Un \*\*privilegio \*\* es la capacidad técnica de ejecutar \*\*acciones \*\* en \*\*recursos \*\*, mientras que un **rol** es un privilegio publicado para ser utilizado por un administrador. Básicamente, un rol reúne varios privilegios para definir un perfil de usuario empresarial. Por ejemplo, "manageInvoices" podría ser un privilegio mientras que "secretary" podría ser un rol (que incluye "manageInvoices" y otros privilegios). @@ -111,70 +164,7 @@ exposed Function authenticate($identifier : Text; $password : Text)->$result : T ## archivo `roles.json` -El archivo `roles.json` describe todos los parámetros de seguridad del proyecto. - -### Archivo por defecto - -Al crear un proyecto, se crea un archivo `roles.json` por defecto en la siguiente ubicación: `/Project/Sources/` (ver la sección [Architecture](../Project/architecture.md#sources)). - -El archivo por defecto tiene el siguiente contenido: - -```json title="/Project/Sources/roles.json" - -{ - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - - "roles": [], - - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": ["all"], - "create": ["all"], - "update": ["all"], - "drop": ["all"], - "execute": ["all"], - "promote": ["all"] - } - ] - }, - - "forceLogin": true - -} - -``` - -For a highest level of security, the "all" privilege is assigned to all permissions in the datastore, thus data access on the whole `ds` object is disabled by default. The principle is as follows: assigning a permission is like putting a lock on a door. Only sessions with privilege having the corresponding key (i.e., a permission) will be able to open the lock. -Se recomienda no modificar ni utilizar este privilegio de bloqueo, sino agregar permisos específicos a cada recurso que desee poner a disposición desde solicitudes web o REST ([ver ejemplo a continuación](#example-of-privilege-configuration)). - -:::caution - -Cuando no se definen parámetros específicos en el archivo `roles.json`, los accesos no son limitados. Esta configuración le permite desarrollar la aplicación sin tener que preocuparse por los accesos, pero no se recomienda en entornos de producción. - -::: - -:::note Compatibilidad - -En versiones anteriores, el archivo `roles.json` no fue creado por defecto. A partir de 4D 20 R6, al abrir un proyecto existente que no contiene un archivo `roles.json` o los parámetros `"forceLogin": true`, el botón **Activar la autenticación REST mediante la función ds.authentify()** está disponible en la página [**Funcionalidades web** de la caja de diálogo Parámetros](../settings/web.md#access). Este botón actualiza automáticamente su configuración de seguridad (es posible que tenga que modificar su código, [ver esta publicación del blog](https://blog.4d.com/force-login-becomes-default-for-all-rest-auth/)). -::: - -:::note Qodly Studio - -En Qodly Studio for 4D, el modo se puede definir utilizando la opción [**Forzar inicio de sesión**](../WebServer/qodly-studio.md#force-login) en el panel de Privilegios. - -::: - -### Sintaxis - -La sintaxis del archivo `roles.json` es la siguiente: +El archivo `roles.json` describe todos los parámetros de seguridad web del proyecto. La sintaxis del archivo `roles.json` es la siguiente: | Nombre de propiedad | | | Tipo | Obligatorio | Descripción | | ------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------ | @@ -194,60 +184,87 @@ La sintaxis del archivo `roles.json` es la siguiente: | | | \[].drop | Colección de cadenas | | Lista de privilegios | | | | \[].execute | Colección de cadenas | | Lista de privilegios | | | | \[].promote | Colección de cadenas | | Lista de privilegios | -| forceLogin | | | Boolean | | True para habilitar el [modo "forceLogin"](../REST/authUsers.md#force-login-mode) | +| restrictedByDefault | | | Boolean | | Si es true, se niega el acceso a recursos sin permisos explícitos | +| forceLogin | | | Boolean | | If true, enables ["forceLogin" mode](../REST/authUsers.md#force-login-mode) | :::caution Recordatorio - El nombre de privilegio "WebAdmin" está reservado a la aplicación. No se recomienda utilizar este nombre para los privilegios personalizados. -- los nombres de `privileges` y `roles` son insensibles a mayúsculas y minúsculas. +- `privileges` and `roles` names are case-insensitive. ::: -#### Asignación de permisos a las funciones de la clase ORDA +### Default File Location and Content -Al configurar los permisos, las funciones de clase ORDA se declaran en el elemento `applyTo` usando la siguiente sintaxis: +When a new project is created, a default `roles.json` file is generated at: -```json -. ``` - -Por ejemplo, si desea aplicar un permiso a la siguiente función: - -```4d -// cs.CityEntity class -Class extends Entity - Function getPopulation() : Integer - ... +/Project/Sources/ ``` -... tiene que escribir: +Ver la sección [Arquitectura](../Project/architecture.md#sources). -```json -"applyTo":"City.getPopulation" -``` +Contenido predeterminado: -Significa que no puede utilizar los mismos nombres de función en las distintas clases ORDA (entidad, selección de entidad, dataclass) si desea que se les asignen privilegios. En este caso, debe utilizar nombres de función distintos. Por ejemplo, si has creado una función "drop" en ambas clases `cs.CityEntity` y `cs.CitySelection`, necesita darles nombres diferentes como `dropEntity()` y `dropSelection()`. A continuación, puede escribir en el archivo "roles.json": +```json title="/Project/Sources/roles.json" -```json - "permissions": { - "allowed": [ - { - "applyTo": "City.dropEntity", - "type": "method", - "promote": [ - "name" - ] - }, - { - "applyTo": "City.dropSelection", - "type": "method", - "promote": [ - "name" - ] - } +{ + "privileges": [ + ], + "roles": [ + ], + "permissions": { + "allowed": [ + { + "applyTo": "ds", + "type": "datastore", + "read": [], + "create": [], + "update": [], + "drop": [], + "execute": [], + "promote": [] + } ] + }, + "restrictedByDefault": false, + "forceLogin": false +} ``` +:::note Compatibilidad + +En versiones anteriores, el archivo `roles.json` no fue creado por defecto. A partir de 4D 20 R6, al abrir un proyecto existente que no contiene un archivo `roles.json` o los parámetros `"forceLogin": true`, el botón **Activar la autenticación REST mediante la función ds.authentify()** está disponible en la página [**Funcionalidades web** de la caja de diálogo Parámetros](../settings/web.md#access). Este botón actualiza automáticamente su configuración de seguridad (es posible que tenga que modificar su código, [ver esta publicación del blog](https://blog.4d.com/force-login-becomes-default-for-all-rest-auth/)). + +::: + +:::note Qodly Studio + +In Qodly Studio for 4D, the login mode can be set using the [**Force login** option](https://developer.4d.com/qodly/4DQodlyPro/force-login) in the Roles and Privileges panel. + +::: + +## Restriction Modes + +The `restrictedByDefault` property configures how every [resource](#resources) are accessed when [no specific permission is defined for it](#permission): + +- **Unrestricted mode** (`restrictedByDefault`: **false**): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. +- **Restricted mode** (`restrictedByDefault`: **true**): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. + +:::note Compatibilidad + +- When **creating a new project**, the `restrictedByDefault` property is set to **false** in the *roles.json* file (see below). Tenga en cuenta que esta configuración está hecha a medida para un inicio rápido y un desarrollo fluido. In production environment, [it is recommended to set the `restrictedByDefault` and `forceLogin` properties to **true**](#configuring-restrictedbydefault-and-forcelogin-properties). +- In **projects converted from previous releases**; when enabling access to Qodly Studio using the [One-click configuration dialog](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#one-click-configuration), the `restrictedByDefault` property is added with value **true** in the *roles.json* file. + +::: + +### Configuración recomendada + +Depending on your environment, the recommended settings are: + +- **Production**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **true**. This ensures maximum security by requiring user authentication and explicitly defined permissions for resource access. +- **Development**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **false**. This allows easier access during development and debugging, with the possibility to gradually apply restrictions. + ### Archivo `Roles_Errors.json` El archivo `roles.json` es analizado por 4D al inicio. Debe reiniciar la aplicación si desea que se tengan en cuenta las modificaciones en este archivo. @@ -267,93 +284,28 @@ End if ## Ejemplo de configuración de privilegios -The good practice is to keep all data access locked by default thanks to the "all" privilege and to configure the `roles.json` file to only open controlled parts to authorized sessions. For example, to allow some accesses to "guest" sessions: - ```json title="/Project/Sources/roles.json" { - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - "roles": [], - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": [ - "all" - ], - "create": [ - "all" - ], - "update": [ - "all" - ], - "drop": [ - "all" - ], - "execute": [ - "all" - ], - "promote": [ - "all" - ] - }, - { - "applyTo": "ds.loginAs", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.hasPrivilege", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.clearPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.isGuest", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.getPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.setAllPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "mySingletonClass.createID", - "type": "singletonMethod", - "execute": [ - "guest" - ] - } - ] - }, - "forceLogin": true + "forceLogin": true, + "restrictedByDefault": true, + "permissions": { + "allowed": [ + { + "applyTo": "People", + "type": "dataclass", + "read": [ + "viewPeople" + ] + } + ] + }, + "privileges": [ + { + "privilege": "viewPeople", + "includes": [] + } + ], + "roles": [] } ``` From 823804bd2b562b965c7f50dcce7d7c6ae0583492 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:56:54 +0100 Subject: [PATCH 017/264] New translations $filter.md (Spanish) --- .../es/docusaurus-plugin-content-docs/current/REST/$filter.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$filter.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$filter.md index fb80d3d89867e4..c23fb41145c825 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$filter.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$filter.md @@ -96,7 +96,7 @@ El parámetro *vectorComparison* es una colección de los siguientes elementos: | [].metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. Supported values:
  • "cosine" (default if omitted): calculates the cosine similarity between vectors.
  • "dot": calculates the dot similarity of vectors.
  • "euclidean": calculates the Euclidean distance between vectors. | | [].threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | -Only a subset of **comparator** symbols are supported with vector comparisons. Tenga en cuenta que comparan los resultados con el valor umbral: +Solo un subconjunto de símbolos **comparadores** son soportados con comparaciones vectoriales. Tenga en cuenta que comparan los resultados con el valor umbral: | Comparador | Símbolo(s) | Comentario | | ----------------- | ----------------------------- | --------------------------- | @@ -126,7 +126,7 @@ En este ejemplo, buscamos en la clase de datos Person todas las personas cuya pr GET /rest/Person/?filter="anotherobj.mynum > 50" ``` -In this example, we do a vector search with basic values: +En este ejemplo, hacemos una búsqueda vectorial con valores de base: ``` GET /rest/Person/?filter="VectorAtt>=:1"&$params='[{vector:[1,2,3],threshold:1}]' From 8b4a8dcb21be6a03fc8344a91cfb16041743ed73 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:57:16 +0100 Subject: [PATCH 018/264] New translations configuration.md (Spanish) --- .../current/REST/configuration.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/configuration.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/configuration.md index a27d1bfcff6814..64fe5f6e667aec 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/configuration.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/configuration.md @@ -70,9 +70,9 @@ Para eliminar la exposición REST de un campo: 1. Visualice el inspector de campo en el editor de estructuras y seleccione el campo a modificar. -2. Desmarque la opción **Exponer como recurso REST** para el campo. - ![alt-text](../assets/en/REST/field.png) - Repita esta operación para cada campo cuya exposición deba modificarse. +2. Uncheck the **Expose as REST resource** for the field.
    + ![alt-text](../assets/en/REST/field.png)
    + Repeat this for each field whose exposure needs to be modified. > Para que un campo sea accesible a través de REST, la tabla padre también debe serlo. Si la tabla padre no está expuesta, ninguno de sus campos lo estará, independientemente de su estado. From bd7faa5687488b20c15307e6dd18720e68fcf969 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:58:03 +0100 Subject: [PATCH 019/264] New translations vp-export-document.md (Spanish) --- .../current/ViewPro/commands/vp-export-document.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index 8dfcf9c5401f37..7617707ba0cfbb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -77,11 +77,11 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para | | includeStyles | boolean | Si se incluye el estilo al exportar, por defecto true. | | | includeFormulas | boolean | Si se incluye la fórmula al exportar, por defecto true. | | | saveAsView | boolean | Si aplicar la cadena de formato al valor de exportación al exportar, por defecto false. | -| | rowHeadersAsFrozenColumns | boolean | Whether to treat the row headers as frozen columns when exporting, default false. | +| | rowHeadersAsFrozenColumns | boolean | Si tratar los encabezados de línea como columnas congeladas al exportar, por defecto false. | | | columnHeadersAsFrozenRows | boolean | Si tratar los encabezados de columna como líneas congeladas al exportar, por defecto false. | | | includeAutoMergedCells | boolean | Si se incluyen las celdas combinadas automáticamente al exportar, false por defecto. | -| | includeCalcModelCache | boolean | Si desea incluir los datos adicionales de cálculo. Can be faster when open the file with those data, default false. | -| | includeUnusedNames | boolean | Whether to include the unused custom name when exporting, default true. | +| | includeCalcModelCache | boolean | Si desea incluir los datos adicionales de cálculo. Puede ser más rápido al abrir el archivo con esos datos, false por defecto. | +| | includeUnusedNames | boolean | Si se incluye el nombre personalizado no utilizado al exportar, true por defecto. | | | includeEmptyRegionCells | boolean | Si se incluyen celdas vacías (celdas sin datos o solo con estilo) fuera del rango de datos utilizado, por defecto true. | | | contraseña | text | Contraseña a definir para abrir el libro de trabajo. | | `\` | | any | Toda propiedad personalizada que estará disponible a través del parámetro $3 en el método de retrollamada. | From 08a9d99c02e47f9da9ead45c234ca6e08be079f8 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 20:58:50 +0100 Subject: [PATCH 020/264] New translations vp-import-document.md (Spanish) --- .../current/ViewPro/commands/vp-import-document.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md index 045a2e27cb83c5..2634788b5efb66 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-import-document.md @@ -63,7 +63,7 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento | | includeStyles | boolean | Si se incluye el estilo al importar, por defecto true. | | | includeFormulas | boolean | Si se incluye la fórmula al importar, por defecto true. | | | frozenColumnsAsRowHeaders | boolean | Bien sea tratar las columnas congeladas como encabezados de línea al importar, por defecto false. | -| | frozenRowsAsColumnHeaders | boolean | Whether to treat the frozen rows as column headers when importing, default false. | +| | frozenRowsAsColumnHeaders | boolean | Bien sea tratar las líneas congeladas como encabezados de columna al importar, por defecto false. | | | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | | | dynamicReferences | boolean | Si calcular funciones con referencia dinámica, por defecto true. | | | calcOnDemand | boolean | Whether to calculate formulas only when they are demanded, default false. | From 3a7d96b2852906f1815904b7efa1d72c68326bd6 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:00:22 +0100 Subject: [PATCH 021/264] New translations qodly-studio.md (Spanish) --- .../current/WebServer/qodly-studio.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md index 70390ec805a88e..66280d9e0e24f6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/qodly-studio.md @@ -80,7 +80,7 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- el despliegue de aplicaciones 4D alimentadas por páginas Qodly debe hacerse utilizando **4D Server**. :::warning From 7a22c68770da06d1eeb781245dc1e23b415829cc Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:00:28 +0100 Subject: [PATCH 022/264] New translations webserver.md (Spanish) --- .../current/WebServer/webServer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServer.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServer.md index 1a85350e7e6a34..3563c5462c2ac4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServer.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/webServer.md @@ -8,7 +8,7 @@ title: Servidor Web :::warning Funcionalidad obsoleta -Using the web server on a remote 4D is **deprecated** as of 4D 21. Ya no se recomienda utilizar esta funcionalidad. +El uso del servidor web en un 4D remoto es **obsoleto** a partir de 4D 21. Ya no se recomienda utilizar esta funcionalidad. ::: From b4ee55aeb30fe5d8cac140de20bef85b59ee89f7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:14:16 +0100 Subject: [PATCH 023/264] New translations client-server.md (Spanish) --- .../current/settings/client-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md index b03e5465634991..1b184fc5a8f83b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -92,7 +92,7 @@ En caso de modificación, deberá reiniciar la aplicación para que se tenga en :::note -This option is not available when the [QUIC](#network-layer) network layer is selected. +Esta opción no está disponible cuando se selecciona la capa de red [QUIC](#network-layer). ::: From c819980d7543cae88f741bf73ba9818d643cb8b9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:14:29 +0100 Subject: [PATCH 024/264] New translations web.md (Spanish) --- i18n/es/docusaurus-plugin-content-docs/current/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md index 052d2beaf51c2c..d827ba37fa6121 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md @@ -124,7 +124,7 @@ Define el sistema de autenticación que desea aplicar a su servidor web. Se prop - Contraseñas con protocolo BASIC - Contraseñas con protocolo DIGEST -Se recomienda utilizar la autenticación **personalizada**. See [**Authentication**](../WebServer/authentication.md) section. +Se recomienda utilizar la autenticación **personalizada**. Ver la sección[**autenticación**](../WebServer/authentication.md). #### Generic Web User From ddbb306f788c3378f5e80e3f0de5090c9e007d09 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:20:25 +0100 Subject: [PATCH 025/264] New translations managing-formulas.md (Spanish) --- .../current/WritePro/managing-formulas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md index a0c8eaf8464807..d5e753802bc137 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md @@ -104,7 +104,7 @@ When used in a formula within the table, the **This** keyword gives access to di | | [This](../commands/this.md).tableData | Collection o Entity selection (por lo general) | table.dataSource evaluada | | In each data row when a table datasource returns a collection or an entity selection | [This](../commands/this.md).item.xxx | Cualquiera | Mapped to each item of the table datasource collection or entity selection, for example **This.item.firstName** if the associated entity has the *firstName* attribute | | | [This](../commands/this.md).itemIndex | Number | Índice del elemento actual en la colección o selección de entidades, a partir de 0 | -| In any row (except header rows) when a table datasource returns a collection or an entity selection | [This](../commands/this.md).previousItems | Collection o entity selection | Items displayed on the pages before the bottom carry over row (if any) or before the row of the expression, including the page where is displayed the row containing the expression.
    This expression returns the same type of value as the **This.tableData** expression. | +| In any row (except header rows) when a table datasource returns a collection or an entity selection | [This](../commands/this.md).previousItems | Collection o entity selection | Items displayed on the pages before the bottom carry over row (if any) or before the row of the expression, including the page where is displayed the row containing the expression.
    Esta expresión devuelve el mismo tipo de valor que la expresión **This.tableData**. | | In a break row | [This](../commands/this.md).breakItems | Collection o entity selection | Items of the collection or entity selection displayed in the rows between:
    • the current break row and the previous break row of the same level (or the start of the table) if the break row(s) are displayed after the data row.
    • the current break and the next break row of the same level (or the end of the table) if the break row(s) are displayed before the data row.
    | En cualquier otro contexto, estas expresiones devolverán *undefined*. From b0c23b3cb3cb8480e4fdaaa3b2a0d691ff20fd3c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:20:33 +0100 Subject: [PATCH 026/264] New translations wp-import-document.md (Spanish) --- .../WritePro/commands/wp-import-document.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-import-document.md index 57405625d969f7..9c7318f72c70ba 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-import-document.md @@ -51,16 +51,16 @@ Por defecto, las expresiones HTML insertadas en documentos heredados de 4D Write Puede pasar un objeto para definir cómo se gestionan los siguientes atributos durante la operación de importación: -| **Atributo** | **Tipo** | **Description** | -| ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| anchoredTextAreas | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las áreas de texto ancladas en Word. Valores disponibles:

    **anchored** (por defecto) - Las áreas de texto ancladas se tratan como cuadros de texto. **inline** - Las áreas de texto ancladas se tratan como texto en línea en la posición del ancla. **ignore** \- Las áreas de texto ancladas son ignoradas. **Nota**: el diseño y el número de páginas en el documento pueden cambiar. Ver también *Cómo importar formato .docx* | -| anchoredImages | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las imágenes ancladas. Available values:

    **all** (default) - All anchored images are imported as anchored images with their text wrapping properties (exception: the .docx wrapping option "tight" is imported as wrap square). **ignoreWrap** \- Anchored images are imported, but any text wrapping around the image is ignored. **ignore** \- Las imágenes ancladas no son importadas. | -| secciones | Text | Sólo para documentos MS Word (.docx). Especifica cómo se maneja la sección. Valores disponibles:

    **all** (por defecto) - Se importan todas las secciones. Continuous, even, or odd sections are converted to standard sections. **ignore** \- Sections are converted to default 4D Write Pro sections (A4 portrait layout without header or footer). **Note**: Section breaks of any type but continuous are converted to section breaks with page break. Continuous section breaks are imported as continuous section breaks. | -| fields | Text | Sólo para documentos MS Word (.docx). Specifies how .docx fields that can't be converted to 4D Write Pro formulas are handled. Valores disponibles:

    **ignore** \- Los campos .docx son ignorados. **label** \- .docx field references are imported as labels within double curly braces ("{{ }}"). Ej: el campo "ClientName" se importará como {{ClientName}}. **value** (default) - The last computed value for the .docx field (if available) is imported. **Note**: If a .docx field corresponds to a 4D Write Pro variable, the field is imported as a formula and this option is ignored. | -| borderRules | Text | Sólo para documentos MS Word (.docx). Especifica cómo se gestionan los bordes de los párrafos. Available values:

    **collapse** \- Paragraph formatting is modified to mimic automatically collapsed borders. Tenga en cuenta que la propiedad contraída sólo se aplica durante la operación de importación. If a stylesheet with a automatic border collapse setting is reapplied after the import operation, the setting will be ignored. **noCollapse** (por defecto) - No se modifica el formato de los párrafos. | -| preferredFontScriptType | Text | Sólo para documentos MS Word (.docx). Specifies the preferred typeface to use when different typefaces are defined for a single font property in OOXML. Available values:

    **latin** (default) - Latin script **bidi** \- Bidrectional script. Suitable if document is mainly bidirectional left-to-right (LTR) or right-to-left (RTL) text (e.g., Arabic or Hebrew). **eastAsia** \- East Asian script. Adecuado si el documento es principalmente texto asiático. | -| htmlExpressions | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se manejan las expresiones HTML. Available values:

    **rawText** \- HTML expressions are imported as raw text within ##htmlBegin## and ##htmlEnd## tags **ignore** (default) - HTML expressions are ignored. | -| importDisplayMode | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se gestiona la visualización de imágenes. Available values:

    **legacy -** 4W7 image display mode is converted using a background image if different than scaled to fit. **noLegacy** (default) - 4W7 image display mode is converted to the *imageDisplayMode* attribute if different than scaled to fit. | +| **Atributo** | **Tipo** | **Description** | +| ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| anchoredTextAreas | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las áreas de texto ancladas en Word. Valores disponibles:

    **anchored** (por defecto) - Las áreas de texto ancladas se tratan como cuadros de texto. **inline** - Las áreas de texto ancladas se tratan como texto en línea en la posición del ancla. **ignore** \- Las áreas de texto ancladas son ignoradas. **Nota**: el diseño y el número de páginas en el documento pueden cambiar. Ver también *Cómo importar formato .docx* | +| anchoredImages | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las imágenes ancladas. Available values:

    **all** (default) - All anchored images are imported as anchored images with their text wrapping properties (exception: the .docx wrapping option "tight" is imported as wrap square). **ignoreWrap** \- Anchored images are imported, but any text wrapping around the image is ignored. **ignore** \- Las imágenes ancladas no son importadas. | +| secciones | Text | Sólo para documentos MS Word (.docx). Especifica cómo se maneja la sección. Valores disponibles:

    **all** (por defecto) - Se importan todas las secciones. Secciones continuas, incluso impares se convierten en secciones estándar. **ignore** \- Sections are converted to default 4D Write Pro sections (A4 portrait layout without header or footer). **Note**: Section breaks of any type but continuous are converted to section breaks with page break. Continuous section breaks are imported as continuous section breaks. | +| fields | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan los campos .docx que no pueden ser convertidos a fórmulas 4D Write Pro. Valores disponibles:

    **ignore** \- Los campos .docx son ignorados. **label** \- .docx field references are imported as labels within double curly braces ("{{ }}"). Ej: el campo "ClientName" se importará como {{ClientName}}. **value** (default) - El último valor calculado para el campo .docx (si está disponible) es importado. **Note**: If a .docx field corresponds to a 4D Write Pro variable, the field is imported as a formula and this option is ignored. | +| borderRules | Text | Sólo para documentos MS Word (.docx). Especifica cómo se gestionan los bordes de los párrafos. Available values:

    **collapse** \- Paragraph formatting is modified to mimic automatically collapsed borders. Tenga en cuenta que la propiedad contraída sólo se aplica durante la operación de importación. If a stylesheet with a automatic border collapse setting is reapplied after the import operation, the setting will be ignored. **noCollapse** (por defecto) - No se modifica el formato de los párrafos. | +| preferredFontScriptType | Text | Sólo para documentos MS Word (.docx). Specifies the preferred typeface to use when different typefaces are defined for a single font property in OOXML. Valores disponibles:

    **latin** (por defecto) - script latino **bidi** \- script bidreccional. Suitable if document is mainly bidirectional left-to-right (LTR) or right-to-left (RTL) text (e.g., Arabic or Hebrew). **eastAsia** \- East Asian script. Adecuado si el documento es principalmente texto asiático. | +| htmlExpressions | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se manejan las expresiones HTML. Available values:

    **rawText** \- HTML expressions are imported as raw text within ##htmlBegin## and ##htmlEnd## tags **ignore** (default) - HTML expressions are ignored. | +| importDisplayMode | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se gestiona la visualización de imágenes. Available values:

    **legacy -** 4W7 image display mode is converted using a background image if different than scaled to fit. **noLegacy** (default) - 4W7 image display mode is converted to the *imageDisplayMode* attribute if different than scaled to fit. | **Notas de compatibilidad** From 81367a8570fc2a9e8ea10e9c077218150b93619a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:21:00 +0100 Subject: [PATCH 027/264] New translations labels.md (Spanish) --- .../current/Desktop/labels.md | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/labels.md b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/labels.md index e1a5817b9f5bc7..aa663b94431609 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/labels.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/labels.md @@ -127,22 +127,22 @@ El lado derecho de la barra de herramientas contiene comandos utilizados para mo ## Página Diseño -The Layout page contains controls for printing labels based on the requirements of your current print settings. +Esta página contiene los controles para imprimir etiquetas en función de los requisitos de sus parámetros de impresión actuales. ![](../assets/en/Desktop/label-layout.png) -- **Labels Order**: Specifies whether labels should be printed in the direction of the rows or the columns. -- **Rows** and **Columns**: Set the number of labels to be printed by "row" and by "column" on each sheet. These settings determine the label size when the "Automatic resizing" option is enabled. -- **Labels per record**: Sets the number of copies to print for each label (copies are printed consecutively). -- **Print Setup...**: Sets the format of the page on which the sheet of labels will be printed. When you click this button, the setup dialog box for the printer selected in your system appears. By default, the sheet of labels is generated based on an A4 page in portrait mode. - **Note:** The sheet created by the editor is based on the logical page of the printer, i.e. the physical page (for instance, an A4 page) less the margins that cannot be used on each side of the sheet. The physical margins of the page are shown by blue lines in the preview area. -- **Unit**: Changes the units in which you specify your label and label page measurements. Puede utilizar puntos, milímetros, centímetros o pulgadas. -- **Automatic resizing**: Means that 4D automatically calculates the size of the labels (i.e. the Width and Height parameters) according to the values set in all the other parameters. When this option is checked, the label size is adjusted each time you modify a page parameter. Los parámetros Ancho y Alto ya no pueden ajustarse manualmente. -- **Ancho** y **Alto**: define la altura y el ancho de cada etiqueta manualmente. They cannot be edited when the **Automatic resizing** option is checked. -- **Márgenes** (Superior, Derecho, Izquierdo, Inferior): define los márgenes de su hoja. Estos márgenes son simbolizados por líneas azules en el área de vista previa. Clicking on **Use printer margins** replicates, in the preview area, the margin information provided by the selected printer (these values can be modified). -- **Gaps**: Set the amount of vertical and/or horizontal space between label rows and columns. -- **Method**: Lets you trigger a specific method that will be run at print time. For example, you can execute a method that posts the date and time that each label was printed. This feature is also useful when you print labels using a dedicated table form, in which case you can fill variables from a method. - To be eligible for label processing, a project method must comply with the following settings: +- **Orden de etiquetas**: indica si las etiquetas deben imprimirse en la dirección de las líneas o de las columnas. +- **Líneas** y **Columnas**: defina el número de etiquetas a imprimir por "línea" y "columna" en cada hoja. Estos parámetros determinan las dimensiones de las etiquetas cuando la opción "Dimensiones automáticas" está activada. +- **Etiquetas por registro**: define el número de copias a imprimir para cada etiqueta (las copias se imprimen consecutivamente). +- **Formato de impresión...**: formato de la página en la que se imprimirá la hoja de etiquetas. Cuando hace clic en este botón, aparece el cuadro de diálogo de configuración de la impresora seleccionada en su sistema. Por defecto, la hoja de etiquetas se genera basándose en una página A4 en modo retrato. + **Nota:** la hoja creada por el editor se basa en la página lógica de la impresora, es decir, la página física (por ejemplo, una hoja A4) menos los márgenes que no se pueden utilizar a cada lado de la hoja. Los márgenes de la página física se representan por las líneas azules en el área de vista previa. +- **Unidad**: modifica las unidades en las que especifica las medidas de la etiqueta y de la página de etiqueta. Puede utilizar puntos, milímetros, centímetros o pulgadas. +- **Dimensiones automáticas**: indica que 4D calcula automáticamente el tamaño de las etiquetas (es decir, los parámetros Ancho y Alto) según los valores definidos en todos los demás parámetros. Cuando esta opción está marcada, el tamaño de las etiquetas se recalcula cada vez que se modifica un parámetro en la página. Los parámetros Ancho y Alto ya no pueden ajustarse manualmente. +- **Ancho** y **Alto**: define la altura y el ancho de cada etiqueta manualmente. No se pueden editar cuando la opción **Dimensionamiento automático** está marcada. +- **Márgenes** (Superior, Derecho, Izquierdo, Inferior): define los márgenes de su hoja. Estos márgenes son simbolizados por líneas azules en el área de vista previa. Al hacer clic en **Aplicar los márgenes de la impresora** con el fin de replicar, en el área de vista previa, la información de margen proporcionada por la impresora seleccionada (estos valores pueden ser modificados). +- **Intervalos**: defina el espacio vertical y/o horizontal entre las líneas y columnas de las etiquetas. +- **Método**: permite activar un método específico que se ejecutará al momento de la impresión. Por ejemplo, puede ejecutar un método que publique la fecha y la hora en que se imprimió cada etiqueta. Esta funcionalidad también es útil cuando se imprimen etiquetas usando un formulario tabla dedicado, en cuyo caso se pueden llenar variables a partir de un método. + Para ser elegible para el procesamiento de etiquetas, un método proyecto debe cumplir con las siguientes condiciones: - debe ser "permitido" para la base de datos (los métodos permitidos dependen de los [parámetros del proyecto](../settings/security.md#options) y el comando [`SET ALLOWED METHODS`](../commands/set-allowed-methods.md), de lo contrario no se mostrará en el menú **Aplicación**. - debe tener la opción [Compartido por componentes y base de datos local](../Project/code-overview.md#shared-by-components-and-host-database). Ver también [este ejemplo](#printing-labels-using-forms-and-methods-example) a continuación. @@ -150,20 +150,20 @@ The Layout page contains controls for printing labels based on the requirements :::note Para necesidades avanzadas, puede restringir la lista de métodos disponibles utilizando un [archivo json específico](#controlling-available-forms-and-methods). -The **For each: Record or Label** options are used to specify whether to run the method once per label or once per record. This control has meaning only if you are printing more than one copy of each label and you are also executing a method at print time. +Las opciones **Para cada: Registro o Etiqueta** permiten especificar si ejecutar el método una vez por etiqueta o una vez por registro. Este control sólo tiene sentido si está imprimiendo más de una copia de cada etiqueta y también está ejecutando un método al momento de la impresión. ::: -- **Layout preview**: Provides a reduced view of how an entire page of labels will look, based on the dimensions you enter in the Label editor. The page preview also reflects the paper size selected in the Print Setup dialog box. También puede utilizar esta zona para designar la primera etiqueta de la página que se va a imprimir (esta opción sólo afecta a la primera hoja en caso de impresión multipágina). This can be useful, for example, when you want to print on a sheet of adhesive labels, part of which has already been used. También puede seleccionar la primera etiqueta en la página a imprimir haciendo clic en ella: +- **Vista previa del diseño**: permite visualizar en tiempo real las modificaciones que ingrese en el editor de etiquetas. La vista previa de la página también refleja el tamaño de papel seleccionado en el cuadro de diálogo Configuración de la impresión. También puede utilizar esta área para designar la primera etiqueta de la página a imprimir (esta opción solo afecta a la primera hoja en el caso de la impresión multipágina). Esto puede ser útil, por ejemplo, cuando se desea imprimir en una hoja de etiquetas adhesivas, parte de las cuales ya se ha utilizado. También puede seleccionar la primera etiqueta en la página a imprimir haciendo clic en ella: ![](../assets/en/Desktop/label-start.png) ## Impresión de etiquetas mediante formularios y métodos (ejemplo) -You can use dedicated table forms and project methods to print labels with calculated variables. This simple example shows how to configure the different elements. +Puede utilizar formularios de tabla dedicados y métodos proyecto para imprimir etiquetas con variables calculadas. Este ejemplo explica como configurar los diferentes elementos. 1. En un formulario tabla dedicado, añada su(s) campo(s) de etiqueta y su(s) variable(s). - Here, in a table form named "label", we added the *myVar* variable: + Aquí, en una tabla llamada "etiqueta", sumamos la variable *myVar*: ![](../assets/en/Desktop/label-example1.png) 2. Crea un método proyecto llamado `setMyVar` con el siguiente código: @@ -174,7 +174,7 @@ You can use dedicated table forms and project methods to print labels with calcu 3. Defina el método proyecto como ["Compartido por los componentes y la base de datos local"](../Project/code-overview.md#shared-by-components-and-host-database). -4. Before displaying the Label editor, make sure the project method is allowed by executing this code: +4. Antes de mostrar el editor de etiquetas, asegúrese de que el método proyecto está autorizado ejecutando este código: ```4d ARRAY TEXT($methods;1) @@ -182,18 +182,18 @@ You can use dedicated table forms and project methods to print labels with calcu SET ALLOWED METHODS($methods) ``` -5. Open the Label editor and use your form: +5. Abre el editor de etiquetas y use su formulario: ![](../assets/en/Desktop/label-example2.png) -6. In the Layout page, select the method: +6. En la página Diseño, seleccione el método: ![](../assets/en/Desktop/label-example3.png) Luego puede imprimir sus etiquetas: ![](../assets/en/Desktop/label-example4.png) -## Control de los formularios y métodos disponibles +## Definición de los formularios y métodos disponibles -The Label editor includes an advanced feature allowing you to restrict which project forms and methods (within "allowed" methods) can be selected in the dialog box: +El editor de etiquetas incluye una función avanzada que le permite limitar los formularios y los métodos proyecto (dentro de los métodos "permitidos") pueden seleccionarse en el cuadro de diálogo: - en el menú **Formulario a utilizar** de la página "Etiqueta" y/o - en el menú **Aplicar (método)** de la página "Diseño". From aa052a7e7efaf3ebb03ed96ae5e573c26039ed15 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:21:24 +0100 Subject: [PATCH 028/264] New translations select-log-file.md (Spanish) --- .../current/commands/select-log-file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/select-log-file.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/select-log-file.md index 4645679308f3d1..68e30387c2c4cb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/select-log-file.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/select-log-file.md @@ -19,7 +19,7 @@ displayed_sidebar: docs The **SELECT LOG FILE** command creates, or closes the log file according to the value you pass in parameter. -In *logFile*, pass the name or the full pathname of the log file to be created. If you only pass a name, the file will be created in the "Logs" folder of the database located next to the database structure file. +En *logFile*, pase el nombre o la ruta completa del archivo de registro a ser creado. If you only pass a name, the file will be created in the "Logs" folder of the database located next to the database structure file. If you pass an empty string in *logFile*, **SELECT LOG FILE** presents an Save File dialog box, allowing the user to choose the name and location of the log file to be created. Si el archivo se crea correctamente, la variable OK toma el valor 1. Otherwise, if the user clicks Cancel or if the log file could not be created, OK is set to 0. From aabd9b8c2a066550a56e6ca2ad1cfb83d4793497 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:22:53 +0100 Subject: [PATCH 029/264] New translations wa-get-context.md (Spanish) --- .../current/commands/wa-get-context.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/wa-get-context.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/wa-get-context.md index 98329331b077f7..366311d7124bd5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/wa-get-context.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/wa-get-context.md @@ -18,7 +18,7 @@ displayed_sidebar: docs ### Descripción -El comando `WA Get context` recupera el objeto de contexto definido para `$4d` en el área Web designada por los parámetros \* y *object* utilizando [`WA SET CONTEXT`](./wa-set-context.md). If `WA SET CONTEXT` was not called for the web area the command returns `null`. +El comando `WA Get context` recupera el objeto de contexto definido para `$4d` en el área Web designada por los parámetros \* y *object* utilizando [`WA SET CONTEXT`](./wa-set-context.md). Si `WA SET CONTEXT` no fue llamado para el área web, el comando devuelve `null`. :::note From 50f55bed6069e4d1402959d9ca67f514cb4afbb0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:23:02 +0100 Subject: [PATCH 030/264] New translations openaichatapi.md (Spanish) --- .../current/aikit/Classes/OpenAIChatAPI.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md index 8b794fda25d429..acf7c8b80ee550 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatAPI.md @@ -9,10 +9,10 @@ The `OpenAIChatAPI` class provides an interface to interact with OpenAI's chat b ## Propiedades -| Propiedad | Tipo | Descripción | -| ------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | Una instancia que maneja las solicitudes de finalización del chat. | -| `vision` | [OpenAIVision](OpenAIVision.md) | A helper instance that handles vision-related requests. | +| Propiedad | Tipo | Descripción | +| ------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | Una instancia que maneja las solicitudes de finalización del chat. | +| `vision` | [OpenAIVision](OpenAIVision.md) | Una instancia de ayuda que gestiona las peticiones relacionadas con la visión. | ## Function From 3f2085e1647510d7dc119aea7a496ec73aefa788 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:23:03 +0100 Subject: [PATCH 031/264] New translations openaichatcompletionsapi.md (Spanish) --- .../current/aikit/Classes/OpenAIChatCompletionsAPI.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsAPI.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsAPI.md index f5d15116434873..4ce850b3b4ecd9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsAPI.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsAPI # OpenAIChatCompletionsAPI -La clase `OpenAIChatCompletionsAPI` está diseñada para gestionar las finalizaciones de chat con la API OpenAI. It provides methods to create, retrieve, update, delete, and list chat completions. +La clase `OpenAIChatCompletionsAPI` está diseñada para gestionar las finalizaciones de chat con la API OpenAI. Ofrece métodos para crear, recuperar, actualizar, eliminar y listar respuestas de chat. https://platform.openai.com/docs/api-reference/chat @@ -21,7 +21,7 @@ https://platform.openai.com/docs/api-reference/chat | *parámetros* | [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) | Los parámetros para la solicitud de finalización del chat. | | Resultado | Object | El resultado de la solicitud de finalización del chat. | -Creates a model response for the given chat conversation. +Crea un modelo de respuesta para la conversación dada. https://platform.openai.com/docs/api-reference/chat/create From b066703f32f8070bf4cb9529ddfe27a6eeff5706 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:23:06 +0100 Subject: [PATCH 032/264] New translations openaichatcompletionsmessagesapi.md (Spanish) --- .../aikit/Classes/OpenAIChatCompletionsMessagesAPI.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md index 2502d80c2c15ea..c9624656bfe290 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md @@ -13,11 +13,11 @@ The `OpenAIChatCompletionsMessagesAPI` class is designed to interact with the Op **list**(*completionID* : Text; *parameters* : OpenAIChatCompletionsMessagesParameters) : Variant -| Parámetros | Tipo | Descripción | -| -------------- | ----------------------------------------- | -------------------------------------------------------------------------------- | -| *completionID* | Text | The ID of the chat completion to retrieve messages for. | -| *parámetros* | `OpenAIChatCompletionsMessagesParameters` | Parámetros para filtrar y personalizar la respuesta. | -| Resultado | Variant | Los mensajes recuperados asociados con la finalización del chat. | +| Parámetros | Tipo | Descripción | +| -------------- | ----------------------------------------- | ------------------------------------------------------------------------------------- | +| *completionID* | Text | El ID de la finalización de chat para la cual recuperar los mensajes. | +| *parámetros* | `OpenAIChatCompletionsMessagesParameters` | Parámetros para filtrar y personalizar la respuesta. | +| Resultado | Variant | Los mensajes recuperados asociados con la finalización del chat. | La función `list()` recupera los mensajes asociados a un ID de finalización de chat específico. Lanza un error si `completionID` está vacío. If the *parameters* argument is not an instance of `OpenAIChatCompletionsMessagesParameters`, it will create a new instance using the provided parameters. From 359028a4b3cbf3ff489d46411fa964ee1fc2c73f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:23:15 +0100 Subject: [PATCH 033/264] New translations openaierror.md (Spanish) --- .../current/aikit/Classes/OpenAIError.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIError.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIError.md index a1b407b5774618..50c983790a5e75 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIError.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIError.md @@ -41,7 +41,7 @@ La clase `OpenAIError` está diseñada para manejar errores devueltos por la API | ---------------------------- | ------- | ------------------------------------------------------------------------------------------------- | | `isBadRequestError` | Boolean | Indica si se trata de un error 400 Bad Request. | | `isAuthenticationError` | Boolean | Indica si se trata de un error de autenticación 401. | -| `isPermissionDeniedError` | Boolean | Indicates ∏if the error is a 403 Permission Denied error. | +| `isPermissionDeniedError` | Boolean | Indica si el error es un error 403 Permiso denegado. | | `isNotFoundError` | Boolean | Indica si el error es un error 404 Not Found. | | `isUnprocessableEntityError` | Boolean | Indica si el error es un error de entidad no procesable (422). | | `isRateLimitError` | Boolean | Indica si el error es un error de límite de velocidad 429. | From 7431d877dd562b8ee5c8159797b7ef015f9d4f0c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:23:17 +0100 Subject: [PATCH 034/264] New translations openaiimage.md (Spanish) --- .../current/aikit/Classes/OpenAIImage.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md index 04c86973e749d1..2917ecf2bf83db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIImage.md @@ -11,11 +11,11 @@ https://platform.openai.com/docs/api-reference/images/object ## Propiedades -| Propiedad | Tipo | Descripción | -| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------- | -| `url` | Text | La URL de la imagen generada, si `response_format` es `url` (por defecto). | -| `b64_json` | Text | The base64-encoded JSON of the generated image, if `response_format` is `b64_json`. | -| `revised_prompt` | Variant | The prompt that was used to generate the image, if there was any revision to the prompt. | +| Propiedad | Tipo | Descripción | +| ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------- | +| `url` | Text | La URL de la imagen generada, si `response_format` es `url` (por defecto). | +| `b64_json` | Text | El JSON codificado en base64 de la imagen generada, si `response_format` es `b64_json`. | +| `revised_prompt` | Variant | La instrucción que se utilizó para generar la imagen, si hubo alguna revisión de la instrucción. | ## Funciones @@ -23,9 +23,9 @@ https://platform.openai.com/docs/api-reference/images/object **asBlob**() : 4D.Blob -| Parámetros | Tipo | Descripción | -| ---------- | ----------------------- | ------------------------------------------------------------------------------------------------------ | -| Resultado | 4D.Blob | Converts the generated image to a blob format based on its URL or base64-encoded JSON. | +| Parámetros | Tipo | Descripción | +| ---------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------ | +| Resultado | 4D.Blob | Convierte la imagen generada a un formato blob basado en su URL o en un JSON codificado en base64. | #### Ejemplo de Uso From d87914cfb03cd3c23032ff7702e4c12936663b2e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:23:22 +0100 Subject: [PATCH 035/264] New translations openaimessage.md (Spanish) --- .../current/aikit/Classes/OpenAIMessage.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md index fe0fd70f8dbc2e..701a9fd8d4f043 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md @@ -9,13 +9,13 @@ The `OpenAIMessage` class represents a structured message containing a role, con ## Propiedades -| Propiedad | Tipo | Descripción | -| -------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `rol` | Text | The role of the message (e.g., "user", "assistant", "system", "tool"). | -| `contenido` | Variant | El contenido del mensaje, que puede ser un texto o una colección de objetos. | -| `user` | Text | An optional property representing the user associated with the message. | -| `tool_calls` | Collection | A collection of tool calls requested by the assistant. Cada llamada a una herramienta contiene un objeto `id`, `type` y `function`. | -| `tool_call_id` | Text | El ID de la llamada a la herramienta a la que responde este mensaje (se utiliza cuando `role` es "tool"). | +| Propiedad | Tipo | Descripción | +| -------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `rol` | Text | El rol del mensaje (por ejemplo, "user", "assistant", "system", "tool"). | +| `contenido` | Variant | El contenido del mensaje, que puede ser un texto o una colección de objetos. | +| `user` | Text | Una propiedad opcional que representa al usuario asociado al mensaje. | +| `tool_calls` | Collection | Una colección de llamadas de herramientas solicitadas por el asistente. Cada llamada a una herramienta contiene un objeto `id`, `type` y `function`. | +| `tool_call_id` | Text | El ID de la llamada a la herramienta a la que responde este mensaje (se utiliza cuando `role` es "tool"). | ## Propiedades calculadas From afad51c6df186658eb462d1691b951b38bd25c28 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:23:32 +0100 Subject: [PATCH 036/264] New translations openaiparameters.md (Spanish) --- .../current/aikit/Classes/OpenAIParameters.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md index 9f01e306d19db4..9b33b972486a0f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md @@ -19,14 +19,14 @@ Utilice esta propiedad de retrollamada para recibir el resultado independienteme Use these callback properties for more granular control over success and error handling: -| Propiedad | Tipo | Descripción | -| ------------ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `onResponse` | 4D.Function | A function to be called asynchronously when the request finishes **successfully**. Asegúrese de que el proceso actual no termina. | -| `onError` | 4D.Function | A function to be called asynchronously when the request finishes **with errors**. Asegúrese de que el proceso actual no termina. | +| Propiedad | Tipo | Descripción | +| ------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onResponse` | 4D.Function | Una función a llamar de forma asíncrona cuando la petición finalice **con éxito**. Asegúrese de que el proceso actual no termina. | +| `onError` | 4D.Function | Una función que se llamará de forma asíncrona cuando la petición finalice **con errores**. Asegúrese de que el proceso actual no termina. | > The callback function will receive the same result object type (one of [OpenAIResult](./OpenAIResult.md) child classes) that would be returned by the function in synchronous code. -See [documentation about asynchronous code for examples](../asynchronous-call.md) +Ver la [documentación sobre código asíncrono para ejemplos](../asynchronous-call.md) ### Propiedades de la red From 190bb5555090f579fce8bef4403e7e6f217a259b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:23:34 +0100 Subject: [PATCH 037/264] New translations openairesult.md (Spanish) --- .../current/aikit/Classes/OpenAIResult.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md index a56ffcdcd8d803..be533ccb4d72d6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md @@ -21,7 +21,7 @@ The `OpenAIResult` class is designed to handle the response from HTTP requests a | `errors` | Collection | Devuelve una colección de errores. Estos podrían ser errores de red o errores devueltos por OpenAI. | | `terminated` | Boolean | Un booleano que indica si la petición HTTP fue terminada. | | `headers` | Object | Devuelve los encabezados de respuesta como un objeto. | -| `rateLimit` | Object | Returns rate limit information from the response headers. | +| `rateLimit` | Object | Devuelve la información relativa al límite de tasa de los encabezados de la respuesta. | | `utilización` | Object | Devuelve la información de uso del cuerpo de la respuesta, si existe. | ### rateLimit From 66bb5e5e6a3726c997fb70f21cb155abd366d4e4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:23:42 +0100 Subject: [PATCH 038/264] New translations call-chain.md (Spanish) --- .../current/commands/call-chain.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/call-chain.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/call-chain.md index 71416c9f2cbcc3..096864393492ed 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/call-chain.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/call-chain.md @@ -32,7 +32,7 @@ The command facilitates debugging by enabling the identification of the method o | **Propiedad** | **Tipo** | **Description** | **Ejemplo** | | ------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | | database | Text | Name of the database calling the method (to distinguish host methods and component methods) | "database":"contactInfo" | -| formula | Text (si lo hay) | Contents of the current line of code at the current level of the call chain (raw text). Corresponde al contenido de la línea referenciada por la propiedad `line` en el archivo fuente indicado por el método. Si el código fuente no está disponible, la propiedad `formula` se omite (Undefined). | "var $stack:=Call chain" | +| formula | Text (si lo hay) | Contenido de la línea actual de código en el nivel actual de la cadena de llamadas (texto bruto). Corresponde al contenido de la línea referenciada por la propiedad `line` en el archivo fuente indicado por el método. Si el código fuente no está disponible, la propiedad `formula` se omite (Undefined). | "var $stack:=Call chain" | | línea | Integer | Número de línea de llamada al método | "line":6 | | name | Text | Nombre del método llamado | "name":"On Load" | | type | Text | Type of the method:
  • "projectMethod"
  • "formObjectMethod"
  • "formmethod"
  • "databaseMethod"
  • "triggerMethod"
  • "executeOnServer" (when calling a project method with the *Execute on Server attribute*)
  • "executeFormula" (when executing a formula via [PROCESS 4D TAGS](../commands-legacy/process-4d-tags.md) or the evaluation of a formula in a 4D Write Pro document)
  • "classFunction"
  • "formMethod"
  • | "type":"formMethod" | From f836c35c9cd321f75787151576c4776549eb3c95 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:23:43 +0100 Subject: [PATCH 039/264] New translations command-name.md (Spanish) --- .../current/commands/command-name.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/command-name.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/command-name.md index 015524764df850..b5a26f7990e234 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/command-name.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/command-name.md @@ -36,7 +36,7 @@ Hay dos parámetros opcionales: - *info*: propiedades del comando. The returned value is a *bit field*, where the following bits are meaningful: - Primer bit (bit 0): definido en 1 si el comando es [**hilo-seguro**](../Develop/preemptive.md#thread-safe-vs-thread-unsafe-code) (es decir, compatible con la ejecución en un proceso apropiativo) y 0 si es **hilo-inseguro**. Only thread-safe commands can be used in [preemptive processes](../Develop/preemptive.md). - - Second bit (bit 1): set to 1 if the command is **deprecated**, and 0 if it is not. A deprecated command will continue to work normally as long as it is supported, but should be replaced whenever possible and must no longer be used in new code. Los comandos obsoletos en su código generan advertencias en el [Live Checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). + - Segundo bit (bit 1): se define en 1 si el comando es **obsoleto**, y en 0 si no lo es. A deprecated command will continue to work normally as long as it is supported, but should be replaced whenever possible and must no longer be used in new code. Los comandos obsoletos en su código generan advertencias en el [Live Checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). *theme*: nombre del tema del lenguaje 4D para el comando. @@ -80,7 +80,7 @@ En un formulario, quiere una lista desplegable con los comandos básicos de info  End case ``` -In the English version of 4D, the drop-down list will read: Sum, Average, Min, and Max. In the French version\*, the drop-down list will read: Somme, Moyenne, Min, and Max. +En la versión inglesa de 4D, la lista desplegable leerá: Sum, Average, Min y Max. In the French version\*, the drop-down list will read: Somme, Moyenne, Min, and Max. \*with a 4D application configured to use the French programming language (see compatibility note) @@ -110,7 +110,7 @@ Luego, para el comando "SAVE RECORD" (53) por ejemplo, puede escribir: ## Ejemplo 4 -You want to return a collection of all deprecated commands in your version of 4D. +Quiere devolver una colección de todos los comandos obsoletos en su versión de 4D. ```4d var $info; $Lon_id : Integer From 6b9deaafd5115f78a75f4943e87da4c62dc5e27f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:23:53 +0100 Subject: [PATCH 040/264] New translations listbox-get-property.md (Spanish) --- .../current/commands/listbox-get-property.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/listbox-get-property.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/listbox-get-property.md index 1950ec74b81673..e0fe65323178a0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/listbox-get-property.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/listbox-get-property.md @@ -85,7 +85,7 @@ Dado un list box "MyListbox", si ejecuta la siguiente instrucción: $Value:=LISTBOX Get property(*; "MyListbox";lk selection mode) // el valor devuelto indica el modo de selección ``` -In this case, the result returned indicates whether multiple rows can be selected. +En este caso, el resultado devuelto indica si varios registros pueden ser seleccionados. ## Ejemplo 2 From b311ab9b8c2cf1d5c8ba0d51b0260ac0726f6962 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:23:55 +0100 Subject: [PATCH 041/264] New translations listbox-set-property.md (Spanish) --- .../current/commands/listbox-set-property.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/listbox-set-property.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/listbox-set-property.md index bad06c1b5092c0..8b269bcc21784a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/listbox-set-property.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/listbox-set-property.md @@ -69,7 +69,7 @@ In the *property* and *value* parameters, you indicate, respectively, the proper ## Ejemplo 1 -You want to make all columns of the "MyListbox" list box resizable: +Quiere que todas las columnas del list box "MyListbox" sean redimensionables: ```4d LISTBOX SET PROPERTY(*;"MyListbox";lk column resizable;lk yes) //Todas las columnas del list box "MyListbox" se establecen como redimensionables From 8550d2e0905869daa2ef7ae6ec5fa4725e4c2feb Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:23:59 +0100 Subject: [PATCH 042/264] New translations orda-events.md (Spanish) --- .../current/ORDA/orda-events.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index afa0adc08d196e..076256023e0f40 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -327,11 +327,11 @@ Function event validateSave ($event : Object) Este evento se activa cada vez que una entidad está a punto de ser guardada. - si define la función a nivel de entidad (primera sintaxis), se llama para cualquier atributo de la entidad. -- si definió la función en el nivel de atributo (segunda sintaxis), sólo se llama para este atributo. This function is **not** executed if the attribute has not been touched in the entity. +- si definió la función en el nivel de atributo (segunda sintaxis), sólo se llama para este atributo. Esta función **no** se ejecuta si el atributo no ha sido tocado en la entidad. La función recibe un [objeto *event*](#event-parameter) como parámetro. -This event is triggered by the following functions: +Este evento es activado por las siguientes funciones: - [`entity.save()`](../API/EntityClass.md#save) - [`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) @@ -348,7 +348,7 @@ No se recomienda actualizar la entidad dentro de esta función (utilizando `This #### Ejemplo -In this example, it is not allowed to save a product with a margin lower than 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. +En este ejemplo, no se permite guardar un producto con un margen inferior al 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. ```4d // ProductsEntity class @@ -380,16 +380,16 @@ Function event saving ($event : Object) Este evento se activa cada vez que se guarda una entidad. - If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. The function is executed even if no attribute has been touched in the entity (e.g. in case of sending data to an external app each time a save is done). -- If you defined the function at the attribute level (second syntax), it is called only for this attribute. The function is **not** executed if the attribute has not been touched in the entity. +- If you defined the function at the attribute level (second syntax), it is called only for this attribute. La función **no** se ejecuta si el atributo no ha sido tocado en la entidad. La función recibe un [objeto *event*](#event-parameter) como parámetro. -This event is triggered by the following functions: +Este evento es activado por las siguientes funciones: - [`entity.save()`](../API/EntityClass.md#save) - [`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) -Este evento se activa **mientras** la entidad se guarda. If a [`validateSave()`](#function-event-validatesave) event function was defined, the `saving()` event function is called if no error was triggered by `validateSave()`. For example, you can use this event to create a document on a Google Drive account. +Este evento se activa **mientras** la entidad se guarda. If a [`validateSave()`](#function-event-validatesave) event function was defined, the `saving()` event function is called if no error was triggered by `validateSave()`. Por ejemplo, puede utilizar este evento para crear un documento en una cuenta de Google Drive. :::note @@ -403,7 +403,7 @@ To stop the action, the code of the function must return an [error object](#erro #### Ejemplo -When a file is saved on disk, catch errors related to disk space for example. +Cuando se guarda un archivo en el disco, por ejemplo, se capturan errores relacionados con el espacio de disco. ```4d // ProductsEntity class @@ -443,14 +443,14 @@ Función evento afterSave($event : Object) // código ``` -This event is triggered just after an entity is saved in the data file, when at least one attribute was modified. It is not executed if no attribute has been touched in the entity. +This event is triggered just after an entity is saved in the data file, when at least one attribute was modified. No se ejecuta si no se ha tocado ningún atributo en la entidad. -This event is useful after saving data to propagate the save action outside the application or to execute administration tasks. For example, it can be used to send a confirmation email after data have been saved. Or, in case of error while saving data, it can make a rollback to restore a consistent state of data. +This event is useful after saving data to propagate the save action outside the application or to execute administration tasks. Por ejemplo, se puede utilizar para enviar un correo electrónico de confirmación después de guardar los datos. Or, in case of error while saving data, it can make a rollback to restore a consistent state of data. La función recibe un [objeto *event*](#event-parameter) como parámetro. - To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. Se producirá un error. -- Throwing an [error object](#error-object) is **not supported** by this function. +- Arrojar un [objeto error](#error-object) **no es soportado** por esta función. #### Ejemplo @@ -483,7 +483,7 @@ Function event validateDrop ($event : Object) // código ``` -This event is triggered each time an entity is about to be dropped. +Este evento se activa cada vez que una entidad está a punto de ser soltada. - If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. - If you defined the function at the attribute level (second syntax), it is called only for this attribute. @@ -555,7 +555,7 @@ To stop the action, the code of the function must return an [error object](#erro #### Ejemplo -Here is an example of `dropping` event at entity level: +Estes es un ejemplo del evento `dropping` a nivel de entidad: ```4d // ProductsEntity class @@ -589,18 +589,18 @@ Function event afterDrop($event : Object) // código ``` -This event is triggered just after an entity is dropped. +Este evento se activa justo después de que una entidad es soltada. -This event is useful after dropping data to propagate the drop action outside the application or to execute administration tasks. For example, it can be used to send a cancellation email after data have been dropped. Or, in case of error while dropping data, it can log an information for the administrator to check data consistency. +This event is useful after dropping data to propagate the drop action outside the application or to execute administration tasks. Por ejemplo, se puede utilizar para enviar un correo electrónico de cancelación después de soltar los datos. Or, in case of error while dropping data, it can log an information for the administrator to check data consistency. La función recibe un [objeto *event*](#event-parameter) como parámetro. - To avoid infinite loops, calling a [`drop()`](../API/EntityClass.md#drop) on the current entity (through `This`) in this function is **not allowed**. Se producirá un error. -- Throwing an [error object](#error-object) is **not supported** by this function. +- Arrojar un [objeto error](#error-object) **no es soportado** por esta función. :::note -The dropped entity is referenced by `This` and still exists in memory. +La entidad eliminada es referenciada por `This` y aún existe en memoria. ::: From f3edad1d1d9d3761343e737eecd11170e23d2bf3 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:24:05 +0100 Subject: [PATCH 043/264] New translations field-properties.md (Spanish) --- .../current/Develop/field-properties.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Develop/field-properties.md b/i18n/es/docusaurus-plugin-content-docs/current/Develop/field-properties.md index e58d6470b5e614..2ab9d95557dbdf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Develop/field-properties.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Develop/field-properties.md @@ -17,7 +17,7 @@ Puede introducir cualquier nombre de clase válido en esta propiedad, incluyendo - Clases 4D integradas (por ejemplo, `4D.File`, `4D.Folder`) - [Exposed](../Extensions/develop-components.md#sharing-of-classes) component-defined classes (e.g. `cs.MyComponent.MyClass`) -If you enter an invalid class name, a warning is triggered and the input is rejected. +Si introduce un nombre de clase inválido, se activa una advertencia y se rechaza la entrada. :::note From 9f16d4a73109ecb2f66865aa0e795604a1abfd3f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:24:11 +0100 Subject: [PATCH 044/264] New translations openaiembeddingsapi.md (Spanish) --- .../current/aikit/Classes/OpenAIEmbeddingsAPI.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsAPI.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsAPI.md index dabbcc1cee4797..7d99ad8f1204a6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIEmbeddingsAPI.md @@ -15,14 +15,14 @@ https://platform.openai.com/docs/api-reference/embeddings **create**(*input* : Text; *model*: Text; *parameters* : OpenAIEmbeddingsParameters) : OpenAIEmbeddingsResult -Creates an embeddings for the provided input, model and parameters. - -| Argumento | Tipo | Descripción | -| ------------ | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------- | -| *entrada* | Texto o colección de texto | La entrada a vectorizar. | -| *model* | Text | The [model to use](https://platform.openai.com/docs/guides/embeddings#embedding-models) | -| *parámetros* | [OpenAIEmbeddingsParameters](OpenAIEmbeddingsParameters.md) | Los parámetros para personalizar la petición de representaciones vectoriales. | -| Resultado | [OpenAIEmbeddingsResult](OpenAIEmbeddingsResult.md) | Las integraciones. | +Crea una representación vectorial para la entrada, el modelo y los parámetros ofrecidos. + +| Argumento | Tipo | Descripción | +| ------------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| *entrada* | Texto o colección de texto | La entrada a vectorizar. | +| *model* | Text | El [modelo a utilizar] (https://platform.openai.com/docs/guides/embeddings#embedding-models) | +| *parámetros* | [OpenAIEmbeddingsParameters](OpenAIEmbeddingsParameters.md) | Los parámetros para personalizar la petición de representaciones vectoriales. | +| Resultado | [OpenAIEmbeddingsResult](OpenAIEmbeddingsResult.md) | Las integraciones. | #### Ejemplos de uso From 1c3067d006a127a8b7d44eba650950c436ef4d18 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:24:24 +0100 Subject: [PATCH 045/264] New translations collectionclass.md (Spanish) --- .../version-20-R10/API/CollectionClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/CollectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/CollectionClass.md index de25918e361018..b19fb72882385a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/CollectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/CollectionClass.md @@ -3169,7 +3169,7 @@ La función `.sort()` ordena los elemento > Esta función modifica la colección original. Si se llama a `.sort()` sin parámetros, sólo se ordenan los valores escalares (número, texto, fecha, booleanos). Los elementos se ordenan por defecto de forma ascendente, según su tipo. -You can also pass one of the following constants in the *ascOrDesc* parameter: +También puede pasar una de las siguientes constantes en el parámetro *ascOrDesc*: ``` |Constant| Type|Value|Comment| From bc5b1b57c46fecaa968c6b1f8989ef71305bf841 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:24:26 +0100 Subject: [PATCH 046/264] New translations cryptokeyclass.md (Spanish) --- .../version-20-R10/API/CryptoKeyClass.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/CryptoKeyClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/CryptoKeyClass.md index 165d71999ad19e..e6539b08c0c614 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/CryptoKeyClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/CryptoKeyClass.md @@ -54,12 +54,12 @@ La función `4D.CryptoKey.new()` crea un #### *settings* -| Propiedad | Tipo | Descripción | -| --------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [type](#type) | text | Defines the type of the key to create:
  • "RSA": generates a RSA key pair, using [.size](#size) as size.
  • "ECDSA": generates an Elliptic Curve Digital Signature Algorithm key pair, using [.curve](#curve) as curve. Tenga en cuenta que las llaves ECDSA no pueden utilizarse para el cifrado, sino solo para la firma.
  • "PEM": loads a key pair definition in PEM format, using [.pem](#pem).
  • | -| [curve](#curve) | text | Nombre de la curva ECDSA | -| [pem](#pem) | text | Definición PEM de una llave de cifrado a cargar | -| [size](#size) | integer | Tamaño de la llave RSA en bits | +| Propiedad | Tipo | Descripción | +| --------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [type](#type) | text | Defines the type of the key to create:
  • "RSA": generates a RSA key pair, using [.size](#size) as size.
  • "ECDSA": generates an Elliptic Curve Digital Signature Algorithm key pair, using [.curve](#curve) as curve. Tenga en cuenta que las llaves ECDSA no pueden utilizarse para el cifrado, sino solo para la firma.
  • "PEM": carga una definición de par de llaves en formato PEM, utilizando [.pem](#pem).
  • | +| [curve](#curve) | text | Nombre de la curva ECDSA | +| [pem](#pem) | text | Definición PEM de una llave de cifrado a cargar | +| [size](#size) | integer | Tamaño de la llave RSA en bits | #### *CryptoKey* From c598ec9bc17062d5176866e8c708b838c2107609 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:24:58 +0100 Subject: [PATCH 047/264] New translations imaptransporterclass.md (Spanish) --- .../API/IMAPTransporterClass.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/IMAPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/IMAPTransporterClass.md index 05be142672c1db..00fb9eee94ee8e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/IMAPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/IMAPTransporterClass.md @@ -791,16 +791,16 @@ En el parámetro opcional `parameters`, pase un objeto que contenga valores para Cada objeto de la colección devuelta contiene las siguientes propiedades: -| Propiedad | Tipo | Descripción | -| ------------------------------------------------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| \[].name | Text | Nombre del buzón. Devuelto si withBoxProperties=true o withBoxInfo=true | -| \[].selectable | Boolean | Indica si los derechos de acceso permiten o no seleccionar el buzón de correo:
    • true - el buzón puede ser seleccionado
    • false - el buzón de correo no puede ser seleccionado
    Devuelto si withBoxProperties=true | -| \[].inferior | Boolean | Indica si los derechos de acceso permiten o no crear una jerarquía inferior en el buzón:
    • true - se puede crear un nivel inferior
    • false - no se puede crear un nivel inferior
    Se devuelve si withBoxProperties=true | -| \[].interesting | Boolean | Indica si el buzón ha sido marcado como "interesante" por el servidor:
    • true - El buzón ha sido marcado como "interesante" por el servidor. Por ejemplo, puede contener mensajes nuevos.
    • false - The mailbox has not been marked "interesting" by the server.
    Se devuelve si withBoxProperties=true | -| [].mailCount | Number | Número de mensajes en el buzón. Devuelto si withBoxInfo=true | -| [].mailRecent | Number | Número de mensajes marcados como "recent" (indicando nuevos mensajes). Devuelto si withBoxInfo=true | -| [].mailUnseen | Number | Número de mensajes marcados como "unseen". Devuelto si withBoxInfo=true | -| [].id | Text | Identificador único del buzón. Devuelto si withBoxInfo=true | +| Propiedad | Tipo | Descripción | +| ------------------------------------------------------------------------------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| \[].name | Text | Nombre del buzón. Devuelto si withBoxProperties=true o withBoxInfo=true | +| \[].selectable | Boolean | Indica si los derechos de acceso permiten o no seleccionar el buzón de correo:
    • true - el buzón puede ser seleccionado
    • false - el buzón de correo no puede ser seleccionado
    Devuelto si withBoxProperties=true | +| \[].inferior | Boolean | Indica si los derechos de acceso permiten o no crear una jerarquía inferior en el buzón:
    • true - se puede crear un nivel inferior
    • false - no se puede crear un nivel inferior
    Se devuelve si withBoxProperties=true | +| \[].interesting | Boolean | Indica si el buzón ha sido marcado como "interesante" por el servidor:
    • true - El buzón ha sido marcado como "interesante" por el servidor. Por ejemplo, puede contener mensajes nuevos.
    • false - El buzón no ha sido marcado como "interesante" por el servidor.
    Se devuelve si withBoxProperties=true | +| [].mailCount | Number | Número de mensajes en el buzón. Devuelto si withBoxInfo=true | +| [].mailRecent | Number | Número de mensajes marcados como "recent" (indicando nuevos mensajes). Devuelto si withBoxInfo=true | +| [].mailUnseen | Number | Número de mensajes marcados como "unseen". Devuelto si withBoxInfo=true | +| [].id | Text | Identificador único del buzón. Devuelto si withBoxInfo=true | Si la cuenta no contiene buzones, se devuelve una colección vacía. From 3952c7e54c6f2ef5c649f0653f36e14b06d03e9f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:25:33 +0100 Subject: [PATCH 048/264] New translations cli.md (Spanish) --- .../version-20-R10/Admin/cli.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Admin/cli.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Admin/cli.md index 629c6c21a7223c..cc30a3dc01b1af 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Admin/cli.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Admin/cli.md @@ -44,25 +44,25 @@ Sintaxis: [--utility] [--skip-onstartup] [--startup-method ] ``` -| Argumento | Valor | Descripción | -| :-------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `applicationPath` | Ruta de 4D, 4D Server, aplicación fusionada o tool4d | Lanza la aplicación.
    If not headless: identical to double-clicking the application; when called without structure file argument, the application is executed and the 'select database' dialog box appears. | -| `--version` | | Muestra la versión de la aplicación y sale | -| `--help` | | Muestra el mensaje de ayuda y sale. Argumentos alternativos: -?, -h | -| `--project` | projectPath | packagePath | 4dlinkPath | Archivo de proyecto a abrir con el archivo de datos actual. No aparece ninguna caja de diálogo. | -| `--data` | dataPath | Archivo de datos a abrir con el archivo de proyecto designado. Si no se especifica, se utiliza el último archivo de datos abierto. | -| `--opening-mode` | interpreted | compiled | Base de datos de peticiones a abrir en modo interpretado o compilado. No se lanza ningún error si el modo solicitado no está disponible. | -| `--create-data` | | Crea automáticamente un nuevo archivo de datos si no se encuentra un archivo de datos válido. No aparece ninguna caja de diálogo. 4D utiliza el nombre del archivo pasado en el argumento "--data" si lo hay (genera un error si ya existe un archivo con el mismo nombre). | -| `--user-param` | Cadena usuario personalizada | Una cadena que estará disponible en la aplicación a través del comando [`Get database parameter`](../commands-legacy/get-database-parameter.md) (la cadena no debe comenzar por un carácter "-", que está reservado). | -| `--headless` | | Lanza 4D, 4D Server o la aplicación fusionada sin interfaz (modo headless). En este modo:
  • El modo Diseño no está disponible, la base de datos se inicia en modo Aplicación
  • No se muestra la barra de herramientas, la barra de menú, la ventana MDI ni la pantalla de presentación
  • No se muestra ningún icono en el dock o la barra de tareas
  • La base de datos abierta no se registra en el menú "Bases de datos recientes"
  • Se inicia automáticamente el registro de diagnóstico (ver [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md), selector 79)
  • Se intercepta cada llamada a una caja de diálogo y se suministra una respuesta automática (por ejemplo, OK para el comando [ALERT](../commands-legacy/alert.md), Abort para un diálogo de error...). All intercepted commands(\*) are logged in the diagnostic log.

  • For maintenance needs, you can send any text to standard output streams using the [LOG EVENT](../commands-legacy/log-event.md) command. Tenga en cuenta que las aplicaciones 4D sin interfaz sólo pueden cerrarse mediante una llamada a [QUIT 4D](../commands-legacy/quit-4d.md) o utilizando el administrador de tareas del sistema operativo. | -| `--dataless` | | Lanza 4D, 4D Server, la aplicación fusionada o tool4d en modo sin datos. El modo sin datos es útil cuando 4D ejecuta tareas sin necesidad de datos (compilación de proyectos, por ejemplo). In this mode:
  • No file containing data is opened, even if specified in the command line or the `.4DLink` file, or when using the `CREATE DATA FILE` and `OPEN DATA FILE` commands.
  • Los comandos que manipulan datos arrojarán un error. Por ejemplo, `CREATE RECORD` lanza "no hay tabla a la que aplicar el comando".

  • **Nota**:
  • si se pasa en la línea de comando, el modo dataless se aplica a todas las bases de datos abiertas en 4D, mientras no se cierre la aplicación.
  • Si se pasa utilizando el archivo `.4DLink`, el modo dataless sólo se aplica a la base de datos especificada en el archivo `.4DLink`. Para más información sobre los archivos `.4DLink`, ver [Atajos para abrir proyectos](../GettingStarted/creating.md#project-opening-shortcuts).
  • | -| `--webadmin-settings-file` | Ruta del archivo | Ruta del archivo `.4DSettings` personalizado para el [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | -| `--webadmin-access-key` | Text | Llave de acceso para el [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | -| `--webadmin-auto-start` | Boolean | Estado del lanzamiento automático del [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | -| `--webadmin-store-settings` | | Almacena la llave de acceso y los parámetros de inicio automático en el archivo de parámetros actualmente utilizado (es decir, el archivo [`WebAdmin.4DSettings`](webAdmin.md#webadmin-settings) por defecto o un archivo personalizado designado con el parámetro `--webadmin-settings-path`). Utilice el argumento `--webadmin-store-settings` para guardar esta configuración si es necesario. No disponible con [tool4d](#tool4d). | -| `--utility` | | Sólo disponible con 4D Server. Sólo disponible con 4D Server. | -| `--skip-onstartup` | | Lanza el proyecto sin ejecutar ningún método "automático", incluyendo los métodos base `On Startup` y `On Exit` | -| `--startup-method` | Nombre del método proyecto (cadena) | Método de proyecto a ejecutar inmediatamente después del método base `On Startup` (si no se omite con `--skip-onstartup`). | +| Argumento | Valor | Descripción | +| :-------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `applicationPath` | Ruta de 4D, 4D Server, aplicación fusionada o tool4d | Lanza la aplicación.
    If not headless: identical to double-clicking the application; when called without structure file argument, the application is executed and the 'select database' dialog box appears. | +| `--version` | | Muestra la versión de la aplicación y sale | +| `--help` | | Muestra el mensaje de ayuda y sale. Argumentos alternativos: -?, -h | +| `--project` | projectPath | packagePath | 4dlinkPath | Archivo de proyecto a abrir con el archivo de datos actual. No aparece ninguna caja de diálogo. | +| `--data` | dataPath | Archivo de datos a abrir con el archivo de proyecto designado. Si no se especifica, se utiliza el último archivo de datos abierto. | +| `--opening-mode` | interpreted | compiled | Base de datos de peticiones a abrir en modo interpretado o compilado. No se lanza ningún error si el modo solicitado no está disponible. | +| `--create-data` | | Crea automáticamente un nuevo archivo de datos si no se encuentra un archivo de datos válido. No aparece ninguna caja de diálogo. 4D utiliza el nombre del archivo pasado en el argumento "--data" si lo hay (genera un error si ya existe un archivo con el mismo nombre). | +| `--user-param` | Cadena usuario personalizada | Una cadena que estará disponible en la aplicación a través del comando [`Get database parameter`](../commands-legacy/get-database-parameter.md) (la cadena no debe comenzar por un carácter "-", que está reservado). | +| `--headless` | | Lanza 4D, 4D Server o la aplicación fusionada sin interfaz (modo headless). En este modo:
  • El modo Diseño no está disponible, la base de datos se inicia en modo Aplicación
  • No se muestra la barra de herramientas, la barra de menú, la ventana MDI ni la pantalla de presentación
  • No se muestra ningún icono en el dock o la barra de tareas
  • La base de datos abierta no se registra en el menú "Bases de datos recientes"
  • Se inicia automáticamente el registro de diagnóstico (ver [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md), selector 79)
  • Se intercepta cada llamada a una caja de diálogo y se suministra una respuesta automática (por ejemplo, OK para el comando [ALERT](../commands-legacy/alert.md), Abort para un diálogo de error...). Todos los comandos interceptados(\*) se registran en el registro de diagnóstico.

  • For maintenance needs, you can send any text to standard output streams using the [LOG EVENT](../commands-legacy/log-event.md) command. Tenga en cuenta que las aplicaciones 4D sin interfaz sólo pueden cerrarse mediante una llamada a [QUIT 4D](../commands-legacy/quit-4d.md) o utilizando el administrador de tareas del sistema operativo. | +| `--dataless` | | Lanza 4D, 4D Server, la aplicación fusionada o tool4d en modo sin datos. El modo sin datos es útil cuando 4D ejecuta tareas sin necesidad de datos (compilación de proyectos, por ejemplo). In this mode:
  • No file containing data is opened, even if specified in the command line or the `.4DLink` file, or when using the `CREATE DATA FILE` and `OPEN DATA FILE` commands.
  • Los comandos que manipulan datos arrojarán un error. Por ejemplo, `CREATE RECORD` lanza "no hay tabla a la que aplicar el comando".

  • **Nota**:
  • si se pasa en la línea de comando, el modo dataless se aplica a todas las bases de datos abiertas en 4D, mientras no se cierre la aplicación.
  • Si se pasa utilizando el archivo `.4DLink`, el modo dataless sólo se aplica a la base de datos especificada en el archivo `.4DLink`. Para más información sobre los archivos `.4DLink`, ver [Atajos para abrir proyectos](../GettingStarted/creating.md#project-opening-shortcuts).
  • | +| `--webadmin-settings-file` | Ruta del archivo | Ruta del archivo `.4DSettings` personalizado para el [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | +| `--webadmin-access-key` | Text | Llave de acceso para el [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | +| `--webadmin-auto-start` | Boolean | Estado del lanzamiento automático del [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | +| `--webadmin-store-settings` | | Almacena la llave de acceso y los parámetros de inicio automático en el archivo de parámetros actualmente utilizado (es decir, el archivo [`WebAdmin.4DSettings`](webAdmin.md#webadmin-settings) por defecto o un archivo personalizado designado con el parámetro `--webadmin-settings-path`). Utilice el argumento `--webadmin-store-settings` para guardar esta configuración si es necesario. No disponible con [tool4d](#tool4d). | +| `--utility` | | Sólo disponible con 4D Server. Sólo disponible con 4D Server. | +| `--skip-onstartup` | | Lanza el proyecto sin ejecutar ningún método "automático", incluyendo los métodos base `On Startup` y `On Exit` | +| `--startup-method` | Nombre del método proyecto (cadena) | Método de proyecto a ejecutar inmediatamente después del método base `On Startup` (si no se omite con `--skip-onstartup`). | (\*) Algunos diálogos se muestran antes de abrir la base de datos, por lo que es imposible escribir en el [archivo de registro de diagnóstico](Debugging/debugLogFiles.md#4ddiagnosticlogtxt) (alerta de licencia, diálogo de conversión, selección de bases de datos, selección de archivos de datos). En este caso, se lanza un mensaje de error tanto en el flujo stderr como en el registro de eventos sistema, From 27130dc9cd5c70ba1c073d0ec46ef26f6b08e4fd Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:26:37 +0100 Subject: [PATCH 049/264] New translations labels.md (Spanish) --- .../version-20-R10/Desktop/labels.md | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Desktop/labels.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Desktop/labels.md index 6f88b8f6be305b..ebbb7212ad3b94 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Desktop/labels.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Desktop/labels.md @@ -127,22 +127,22 @@ El lado derecho de la barra de herramientas contiene comandos utilizados para mo ## Página Diseño -The Layout page contains controls for printing labels based on the requirements of your current print settings. +Esta página contiene los controles para imprimir etiquetas en función de los requisitos de sus parámetros de impresión actuales. ![](../assets/en/Desktop/label-layout.png) -- **Labels Order**: Specifies whether labels should be printed in the direction of the rows or the columns. -- **Rows** and **Columns**: Set the number of labels to be printed by "row" and by "column" on each sheet. These settings determine the label size when the "Automatic resizing" option is enabled. -- **Labels per record**: Sets the number of copies to print for each label (copies are printed consecutively). -- **Print Setup...**: Sets the format of the page on which the sheet of labels will be printed. When you click this button, the setup dialog box for the printer selected in your system appears. By default, the sheet of labels is generated based on an A4 page in portrait mode. - **Note:** The sheet created by the editor is based on the logical page of the printer, i.e. the physical page (for instance, an A4 page) less the margins that cannot be used on each side of the sheet. The physical margins of the page are shown by blue lines in the preview area. -- **Unit**: Changes the units in which you specify your label and label page measurements. Puede utilizar puntos, milímetros, centímetros o pulgadas. -- **Automatic resizing**: Means that 4D automatically calculates the size of the labels (i.e. the Width and Height parameters) according to the values set in all the other parameters. When this option is checked, the label size is adjusted each time you modify a page parameter. Los parámetros Ancho y Alto ya no pueden ajustarse manualmente. -- **Ancho** y **Alto**: define la altura y el ancho de cada etiqueta manualmente. They cannot be edited when the **Automatic resizing** option is checked. -- **Márgenes** (Superior, Derecho, Izquierdo, Inferior): define los márgenes de su hoja. Estos márgenes son simbolizados por líneas azules en el área de vista previa. Clicking on **Use printer margins** replicates, in the preview area, the margin information provided by the selected printer (these values can be modified). -- **Gaps**: Set the amount of vertical and/or horizontal space between label rows and columns. -- **Method**: Lets you trigger a specific method that will be run at print time. For example, you can execute a method that posts the date and time that each label was printed. This feature is also useful when you print labels using a dedicated table form, in which case you can fill variables from a method. - To be eligible for label processing, a project method must comply with the following settings: +- **Orden de etiquetas**: indica si las etiquetas deben imprimirse en la dirección de las líneas o de las columnas. +- **Líneas** y **Columnas**: defina el número de etiquetas a imprimir por "línea" y "columna" en cada hoja. Estos parámetros determinan las dimensiones de las etiquetas cuando la opción "Dimensiones automáticas" está activada. +- **Etiquetas por registro**: define el número de copias a imprimir para cada etiqueta (las copias se imprimen consecutivamente). +- **Formato de impresión...**: formato de la página en la que se imprimirá la hoja de etiquetas. Cuando hace clic en este botón, aparece el cuadro de diálogo de configuración de la impresora seleccionada en su sistema. Por defecto, la hoja de etiquetas se genera basándose en una página A4 en modo retrato. + **Nota:** la hoja creada por el editor se basa en la página lógica de la impresora, es decir, la página física (por ejemplo, una hoja A4) menos los márgenes que no se pueden utilizar a cada lado de la hoja. Los márgenes de la página física se representan por las líneas azules en el área de vista previa. +- **Unidad**: modifica las unidades en las que especifica las medidas de la etiqueta y de la página de etiqueta. Puede utilizar puntos, milímetros, centímetros o pulgadas. +- **Dimensiones automáticas**: indica que 4D calcula automáticamente el tamaño de las etiquetas (es decir, los parámetros Ancho y Alto) según los valores definidos en todos los demás parámetros. Cuando esta opción está marcada, el tamaño de las etiquetas se recalcula cada vez que se modifica un parámetro en la página. Los parámetros Ancho y Alto ya no pueden ajustarse manualmente. +- **Ancho** y **Alto**: define la altura y el ancho de cada etiqueta manualmente. No se pueden editar cuando la opción **Dimensionamiento automático** está marcada. +- **Márgenes** (Superior, Derecho, Izquierdo, Inferior): define los márgenes de su hoja. Estos márgenes son simbolizados por líneas azules en el área de vista previa. Al hacer clic en **Aplicar los márgenes de la impresora** con el fin de replicar, en el área de vista previa, la información de margen proporcionada por la impresora seleccionada (estos valores pueden ser modificados). +- **Intervalos**: defina el espacio vertical y/o horizontal entre las líneas y columnas de las etiquetas. +- **Método**: permite activar un método específico que se ejecutará al momento de la impresión. Por ejemplo, puede ejecutar un método que publique la fecha y la hora en que se imprimió cada etiqueta. Esta funcionalidad también es útil cuando se imprimen etiquetas usando un formulario tabla dedicado, en cuyo caso se pueden llenar variables a partir de un método. + Para ser elegible para el procesamiento de etiquetas, un método proyecto debe cumplir con las siguientes condiciones: - debe ser "permitido" para la base de datos (los métodos permitidos dependen de los [parámetros del proyecto](../settings/security.md#options) y el comando [`SET ALLOWED METHODS`](../commands/set-allowed-methods.md), de lo contrario no se mostrará en el menú **Aplicación**. - debe tener la opción [Compartido por componentes y base de datos local](../Project/code-overview.md#shared-by-components-and-host-database). Ver también [este ejemplo](#printing-labels-using-forms-and-methods-example) a continuación. @@ -150,20 +150,20 @@ The Layout page contains controls for printing labels based on the requirements :::note Para necesidades avanzadas, puede restringir la lista de métodos disponibles utilizando un [archivo json específico](#controlling-available-forms-and-methods). -The **For each: Record or Label** options are used to specify whether to run the method once per label or once per record. This control has meaning only if you are printing more than one copy of each label and you are also executing a method at print time. +Las opciones **Para cada: Registro o Etiqueta** permiten especificar si ejecutar el método una vez por etiqueta o una vez por registro. Este control sólo tiene sentido si está imprimiendo más de una copia de cada etiqueta y también está ejecutando un método al momento de la impresión. ::: -- **Layout preview**: Provides a reduced view of how an entire page of labels will look, based on the dimensions you enter in the Label editor. The page preview also reflects the paper size selected in the Print Setup dialog box. También puede utilizar esta zona para designar la primera etiqueta de la página que se va a imprimir (esta opción sólo afecta a la primera hoja en caso de impresión multipágina). This can be useful, for example, when you want to print on a sheet of adhesive labels, part of which has already been used. También puede seleccionar la primera etiqueta en la página a imprimir haciendo clic en ella: +- **Vista previa del diseño**: permite visualizar en tiempo real las modificaciones que ingrese en el editor de etiquetas. La vista previa de la página también refleja el tamaño de papel seleccionado en el cuadro de diálogo Configuración de la impresión. También puede utilizar esta área para designar la primera etiqueta de la página a imprimir (esta opción solo afecta a la primera hoja en el caso de la impresión multipágina). Esto puede ser útil, por ejemplo, cuando se desea imprimir en una hoja de etiquetas adhesivas, parte de las cuales ya se ha utilizado. También puede seleccionar la primera etiqueta en la página a imprimir haciendo clic en ella: ![](../assets/en/Desktop/label-start.png) ## Impresión de etiquetas mediante formularios y métodos (ejemplo) -You can use dedicated table forms and project methods to print labels with calculated variables. This simple example shows how to configure the different elements. +Puede utilizar formularios de tabla dedicados y métodos proyecto para imprimir etiquetas con variables calculadas. Este ejemplo explica como configurar los diferentes elementos. 1. En un formulario tabla dedicado, añada su(s) campo(s) de etiqueta y su(s) variable(s). - Here, in a table form named "label", we added the *myVar* variable: + Aquí, en una tabla llamada "etiqueta", sumamos la variable *myVar*: ![](../assets/en/Desktop/label-example1.png) 2. Crea un método proyecto llamado `setMyVar` con el siguiente código: @@ -174,7 +174,7 @@ You can use dedicated table forms and project methods to print labels with calcu 3. Defina el método proyecto como ["Compartido por los componentes y la base de datos local"](../Project/code-overview.md#shared-by-components-and-host-database). -4. Before displaying the Label editor, make sure the project method is allowed by executing this code: +4. Antes de mostrar el editor de etiquetas, asegúrese de que el método proyecto está autorizado ejecutando este código: ```4d ARRAY TEXT($methods;1) @@ -182,7 +182,7 @@ You can use dedicated table forms and project methods to print labels with calcu SET ALLOWED METHODS($methods) ``` -5. Open the Label editor and use your form: +5. Abre el editor de etiquetas y use su formulario: ![](../assets/en/Desktop/label-example2.png) 6. En la página Diseño, seleccione el método: @@ -191,9 +191,9 @@ You can use dedicated table forms and project methods to print labels with calcu Luego puede imprimir sus etiquetas: ![](../assets/en/Desktop/label-example4.png) -## Control de los formularios y métodos disponibles +## Definición de los formularios y métodos disponibles -The Label editor includes an advanced feature allowing you to restrict which project forms and methods (within "allowed" methods) can be selected in the dialog box: +El editor de etiquetas incluye una función avanzada que le permite limitar los formularios y los métodos proyecto (dentro de los métodos "permitidos") pueden seleccionarse en el cuadro de diálogo: - en el menú **Formulario a utilizar** de la página "Etiqueta" y/o - en el menú **Aplicar (método)** de la página "Diseño". From a35892602b5f3ab9ae57db78425e4f3d65e68048 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:26:39 +0100 Subject: [PATCH 050/264] New translations field-properties.md (Spanish) --- .../version-20-R10/Develop/field-properties.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md index e58d6470b5e614..2ab9d95557dbdf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md @@ -17,7 +17,7 @@ Puede introducir cualquier nombre de clase válido en esta propiedad, incluyendo - Clases 4D integradas (por ejemplo, `4D.File`, `4D.Folder`) - [Exposed](../Extensions/develop-components.md#sharing-of-classes) component-defined classes (e.g. `cs.MyComponent.MyClass`) -If you enter an invalid class name, a warning is triggered and the input is rejected. +Si introduce un nombre de clase inválido, se activa una advertencia y se rechaza la entrada. :::note From 76e43e74710aaacbcb1fc85a4c2fe8755922b553 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:27:53 +0100 Subject: [PATCH 051/264] New translations overview.md (Spanish) --- .../version-20-R10/Extensions/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/overview.md index 4610ce00bef790..41a091f767c275 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/overview.md @@ -3,7 +3,7 @@ id: overview title: Extendiendo aplicaciones 4D --- -The 4D architecture is open and can be extended in different ways. Si necesita una funcionalidad que no está disponible de forma nativa en 4D, siempre puede integrarla en su aplicación de diversas maneras, por ejemplo: +La arquitectura 4D está abierta y puede ampliarse de diferentes maneras. Si necesita una funcionalidad que no está disponible de forma nativa en 4D, siempre puede integrarla en su aplicación de diversas maneras, por ejemplo: - Los [**workers del sistema**](../API/SystemWorkerClass.md) permiten al código 4D llamar a cualquier proceso externo (un comando shell, PHP, cualquier script, etc.) y supervisar su ejecución. - Los [**comandos SQL**](../commands/theme/SQL) permiten conectar y utilizar diversas fuentes de datos SQL. From 519d67bcec13d7fae078c88f7b316abf088170b9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:27:57 +0100 Subject: [PATCH 052/264] New translations formeditor.md (Spanish) --- .../version-20-R10/FormEditor/formEditor.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md index 4aea53b4daeb2e..694ff9a97fc7fb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md @@ -325,7 +325,7 @@ Para distribuir objetos utilizando la caja de diálogo Alinear y Distribuir: 3. En las áreas Alineación izquierda/derecha y/o Alineación superior/inferior, haga clic en el icono de distribución estándar: ![](../assets/en/FormEditor/horizontalDistribution.png)
    (Icono de distribución horizontal estándar)
    El área de ejemplo muestra los resultados de su selección. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
    In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
    OR:
    To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:
    +4. Para efectuar una repartición estándar que utilice el esquema estándar, haga clic en **Previsualización** o *Aplicar*.
    In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
    OR:
    To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:
    - Horizontalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los lados izquierdos, centros (hor.) y los lados derechos de los objetos seleccionados. - Verticalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los bordes superiores, centros (vert.) y los bordes inferiores de los objetos seleccionados. @@ -352,7 +352,7 @@ Cuando se superponen varios objetos, se puede utilizar el atajo **Ctrl+Mayús+cl :::note -In binary databases, use **Ctrl+Click / Command+Click** to perform the same action. +En bases de datos binarias, utilice **Ctrl+Clic / Comando+Clic** para efectuar la misma acción. ::: @@ -390,7 +390,7 @@ Para ver o cambiar el orden de entrada: El puntero se convierte en un puntero de orden de entrada y 4D dibuja una línea en el formulario mostrando el orden en que selecciona los objetos durante la entrada de datos. Ver y cambiar el orden de entrada de datos son las únicas acciones que puede realizar hasta que haga clic en cualquier herramienta de la paleta Herramientas. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
    ![](../assets/en/FormEditor/entryOrder3.png)
    4D will adjust the entry order accordingly. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
    ![](../assets/en/FormEditor/entryOrder3.png)
    4D ajustará el orden de entrada en consecuencia. 3. Repita el paso 2 tantas veces como sea necesario para establecer el orden de entrada de datos que desee. From eba1b5565c7888754a2fa7fafb4c9be594dba54c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:28:09 +0100 Subject: [PATCH 053/264] New translations properties_markers.md (Spanish) --- .../version-20-R10/FormEditor/properties_Markers.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_Markers.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_Markers.md index cecc6b6b4e022d..b80b59a9bca1cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_Markers.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/properties_Markers.md @@ -21,9 +21,9 @@ Puede hacer que las áreas Ruptura sean más pequeñas o más grandes. Puede uti #### Gramática JSON -| Nombre | Tipos de datos | Valores posibles | -| ----------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| markerBreak | integer | integer collection | Break marker position or collection of break marker positions in pixels.
    Valor mínimo: 0 | +| Nombre | Tipos de datos | Valores posibles | +| ----------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| markerBreak | integer | integer collection | Posición del marcador de ruptura o colección de posiciones del marcador de ruptura en píxeles.
    Valor mínimo: 0 | --- From 3b3604126fb3cb2fe79f739e2b923bcdcdca429f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:28:16 +0100 Subject: [PATCH 054/264] New translations button_overview.md (Spanish) --- .../version-20-R10/FormObjects/button_overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/button_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/button_overview.md index bc28dd10b260a0..f47035dbbd758a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/button_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/button_overview.md @@ -328,7 +328,7 @@ Todos los botones comparten el mismo conjunto de propiedades básicas: [Negrita](properties_Text.md#bold) - [Estilo de línea de borde](properties_BackgroundAndBorder.md#border-line-style) - [Fondo](properties_CoordinatesAndSizing.md#bottom) - [Estilo de botón](properties_TextAndPicture.md#button-style) - [Clase](properties_Object.md#css-class) - [Soltable](properties_Action.md#droppable) - [Enfocable](properties_Entry.md#focusable) - [Fuente](properties_Text.md#font) - [Color de fuente](properties_Text.md#font-color) - [Tamaño de fuente](properties_Text.md#font-size) - [Altura](properties_CoordinatesAndSizing.md#height) - [Consejo de ayuda](properties_Help.md#help-tip) - [Alineación horizontal](properties_Text.md#horizontal-alignment) - [Tamaño horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Cursiva](properties_Text.md#italic) - [Título de abrazos de imagen](properties_TextAndPicture.md#image-hugs-title)(1) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [No renderizado](properties_Display.md#not-rendered) - [Número de estados](properties_TextAndPicture.md#number-of-states)(1) - [Nombre del objeto](properties_Object.md#object-name) - [Nombre de la ruta de la imagen](properties_TextAndPicture.md#picture-pathname)(1) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Acceso directo](properties_Entry.md#shortcut) - [Acción estándar](properties_Action.md#standard-action) - [Título](properties_Object.md#title) - [Posición del título/imagen](properties_TextAndPicture.md#titlepicture-position)(1) - [Superior](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#tipo) - [Subrayado](properties_Text.md#underline) - [Variable o expresión](properties_Object.md#variable-or-expression) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Visibilidad](properties_Display.md#visibility) - [Ancho](properties_CoordinatesAndSizing.md#width) - [Con menú emergente](properties_TextAndPicture.md#with-pop-up-menu)(2) > (1) No soportado por el estilo [Ayuda](#help).
    -> (2) Not supported by the [Help](#help), [Flat](#flat) and [Regular](#regular) styles. +> (2) No soportado por los estilos [Help](#help), [Flat](#flat) y [Regular](#regular). Existen propiedades específicas adicionales, dependiendo del [estilo-de-botón](#button-styles): From e2b02f0ab0be15508c5fa48d3b15f74dcca90c71 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:28:28 +0100 Subject: [PATCH 055/264] New translations listbox_overview.md (Spanish) --- .../version-20-R10/FormObjects/listbox_overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/listbox_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/listbox_overview.md index 978af992f51d90..3f61236a812366 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/listbox_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/listbox_overview.md @@ -523,7 +523,7 @@ El soporte de ordenación estándar depende del tipo de list box: | Tipo de list box | Soporte de ordenación estándar | Comentarios | | ------------------------------ | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Colección de objetos | Sí |
    • "This.a" or "This.a.b" columns are sortable.
    • The [list box source property](properties_Object.md#variable-or-expression) must be an [assignable expression](../Concepts/quick-tour.md#assignable-vs-non-assignable-expressions).
    | +| Colección de objetos | Sí |
    • Las columnas "This.a" o "This.a.b" son ordenables.
    • The [list box source property](properties_Object.md#variable-or-expression) must be an [assignable expression](../Concepts/quick-tour.md#assignable-vs-non-assignable-expressions).
    | | Colección de valores escalares | No | Utilice la ordenación personalizada con la función [`orderBy()`](../API/CollectionClass.md#orderby) | | Entity selection | Sí |
  • The [list box source property](properties_Object.md#variable-or-expression) must be an [assignable expression](../Concepts/quick-tour.md#assignable-vs-non-assignable-expressions).
  • Supported: sorts on object attribute properties (e.g. "This.data.city" when "data" is an object attribute)
  • Supported: sorts on related attributes (e.g. "This.company.name")
  • Not supported: sorts on object attribute properties through related attributes (e.g. "This.company.data.city"). Para ello, debe utilizar la ordenación personalizada con la función [`orderByFormula()`](../API/EntitySelectionClass.md#orderbyformula) (ver el siguiente ejemplo)
  • | | Selección actual | Sí | Sólo se pueden ordenar las expresiones simples (por ejemplo, `[Table_1]Campo_2`) | @@ -812,7 +812,7 @@ If the user selects a break row, [`LISTBOX GET CELL POSITION`](../commands/listb ![](../assets/en/FormObjects/hierarch11.png) -... [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) returns (2;4). To select a break row by programming, you will need to use the [`LISTBOX SELECT BREAK`](../commands/listbox-select-break) command. +... [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) devuelve (2;4). To select a break row by programming, you will need to use the [`LISTBOX SELECT BREAK`](../commands/listbox-select-break) command. Las líneas de rotura no se tienen en cuenta en los arrays internos utilizados para gestionar el aspecto gráfico de los list box (estilos y colores). No obstante, es posible modificar estas características para las líneas de ruptura mediante los comandos de gestión gráfica de los objetos. Basta con ejecutar los comandos adecuados en los arrays que constituyen la jerarquía. From 647cd7b32f1d750694b5e723aadcd107ef0f5dbd Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:28:39 +0100 Subject: [PATCH 056/264] New translations properties_backgroundandborder.md (Spanish) --- .../FormObjects/properties_BackgroundAndBorder.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_BackgroundAndBorder.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_BackgroundAndBorder.md index 84e2079f5e71ac..0eb71aceb033b9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_BackgroundAndBorder.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_BackgroundAndBorder.md @@ -186,7 +186,7 @@ Designa el grosor de una línea. --- -## Row Background Color Array {#row-background-color-array} +## Array colores de fondo {#row-background-color-array} `List boxes de tipo array` From 53511890f5e8eed90f8f5d30f8132cdfe868ac79 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:28:56 +0100 Subject: [PATCH 057/264] New translations properties_object.md (Spanish) --- .../version-20-R10/FormObjects/properties_Object.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Object.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Object.md index ebf3f923c3ff42..385ba4bf48a567 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Object.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Object.md @@ -86,9 +86,9 @@ Las variables o expresiones se pueden introducir o no y pueden recibir datos de #### Gramática JSON -| Nombre | Tipos de datos | Valores posibles | -| ---------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| dataSource | cadena o array de cadenas |
  • Variable, nombre de campo o cualquier expresión 4D.
  • Empty string for [dynamic variables](#dynamic-variables).
  • String array (collection of array names) for a [hierarchical listbox](listbox_overview.md#hierarchical-list-boxes) column]
  • | +| Nombre | Tipos de datos | Valores posibles | +| ---------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| dataSource | cadena o array de cadenas |
  • Variable, nombre de campo o cualquier expresión 4D.
  • Cadena vacía para las [variables dinámicas](#dynamic-variables).
  • String array (collection of array names) for a [hierarchical listbox](listbox_overview.md#hierarchical-list-boxes) column]
  • | ### Expresiones From 3bcee31f1bf15764435fe8f13ba7db52c3d2c828 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:29:52 +0100 Subject: [PATCH 058/264] New translations entities.md (Spanish) --- .../version-20-R10/ORDA/entities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md index 1d3ac2bbf5320c..ceb0d989f2296a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/entities.md @@ -566,7 +566,7 @@ El siguiente diagrama ilustra el bloqueo optimista: 1. Dos procesos cargan la misma entidad.

    ![](../assets/en/ORDA/optimisticLock1.png) -2. El primer proceso modifica la entidad y valida el cambio. Se llama al método `entity.save( )`. El motor 4D compara automáticamente el valor del marcador interno de la entidad modificada con el de la entidad almacenada en los datos. Since they match, the entity is saved and its stamp value is incremented.

    ![](../assets/en/ORDA/optimisticLock2.png) +2. El primer proceso modifica la entidad y valida el cambio. Se llama al método `entity.save( )`. El motor 4D compara automáticamente el valor del marcador interno de la entidad modificada con el de la entidad almacenada en los datos. Como corresponden, la entidad se guarda y el valor de su marcador se incrementa.

    ![](../assets/en/ORDA/optimisticLock2.png) 3. El segundo proceso también modifica la entidad cargada y valida sus cambios. Se llama al método `entity.save( )`. Since the stamp value of the modified entity does not match the one of the entity stored in the data, the save is not performed and an error is returned.

    ![](../assets/en/ORDA/optimisticLock3.png) From f1226e4a8ca2461321db231aa641af5171cc278c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:31:48 +0100 Subject: [PATCH 059/264] New translations vp-export-document.md (Spanish) --- .../version-20-R10/ViewPro/commands/vp-export-document.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index 8dfcf9c5401f37..7617707ba0cfbb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -77,11 +77,11 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para | | includeStyles | boolean | Si se incluye el estilo al exportar, por defecto true. | | | includeFormulas | boolean | Si se incluye la fórmula al exportar, por defecto true. | | | saveAsView | boolean | Si aplicar la cadena de formato al valor de exportación al exportar, por defecto false. | -| | rowHeadersAsFrozenColumns | boolean | Whether to treat the row headers as frozen columns when exporting, default false. | +| | rowHeadersAsFrozenColumns | boolean | Si tratar los encabezados de línea como columnas congeladas al exportar, por defecto false. | | | columnHeadersAsFrozenRows | boolean | Si tratar los encabezados de columna como líneas congeladas al exportar, por defecto false. | | | includeAutoMergedCells | boolean | Si se incluyen las celdas combinadas automáticamente al exportar, false por defecto. | -| | includeCalcModelCache | boolean | Si desea incluir los datos adicionales de cálculo. Can be faster when open the file with those data, default false. | -| | includeUnusedNames | boolean | Whether to include the unused custom name when exporting, default true. | +| | includeCalcModelCache | boolean | Si desea incluir los datos adicionales de cálculo. Puede ser más rápido al abrir el archivo con esos datos, false por defecto. | +| | includeUnusedNames | boolean | Si se incluye el nombre personalizado no utilizado al exportar, true por defecto. | | | includeEmptyRegionCells | boolean | Si se incluyen celdas vacías (celdas sin datos o solo con estilo) fuera del rango de datos utilizado, por defecto true. | | | contraseña | text | Contraseña a definir para abrir el libro de trabajo. | | `\` | | any | Toda propiedad personalizada que estará disponible a través del parámetro $3 en el método de retrollamada. | From 7385cf57f040c1ad4506436d1f21c908d6b6981c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:31:53 +0100 Subject: [PATCH 060/264] New translations vp-find.md (Spanish) --- .../version-20-R10/ViewPro/commands/vp-find.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md index 4ccd334c12e81f..cdf07a14ec6e8f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-find.md @@ -33,7 +33,7 @@ Puede pasar el parámetro opcional *searchCondition* para especificar el funcion | afterRow | Integer | El número de la línea justo antes de la línea inicial de la búsqueda. Si *rangeObj* es un rango combinado, el número de línea indicado debe ser del primer rango. Valor por defecto: -1 (inicio de *rangeObj*) | | all | Boolean |
  • True - Se devuelven todas las celdas en *rangeObj* correspondientes a *searchValue*
  • False - (valor por defecto) Sólo se devuelve la primera celda de *rangeObj* correspondiente a *searchValue*
  • | | flags | Integer |
    `vk find flag exact match`El contenido completo de la celda debe coincidir completamente con el valor de búsqueda
    `vk find flag ignore case`Las mayúsculas y minúsculas se consideran iguales. Ej: "a" es lo mismo que "A".
    `vk find flag none`no search flags are considered (default)
    `vk find flag use wild cards`Wildcard characters (\*,?) puede utilizarse en la cadena de búsqueda. Los caracteres comodín se pueden utilizar en cualquier comparación de cadenas para coincidir con cualquier número de caracteres:
  • \* para cero o varios caracteres (por ejemplo, al buscar "bl*" se puede encontrar "bl", "black" o "blob")
  • ? para un solo carácter (por ejemplo, la búsqueda de "h?t" puede encontrar "hot", o "hit"
  • Estos indicadores pueden combinarse. Por ejemplo: $search.flags:=vk find flag use wild cards+vk find flag ignore case | -| order | Integer |
    `vk find order by columns`La búsqueda se realiza por columnas. Each row of a column is searched before the search continues to the next column.
    `vk find order by rows`The search is performed by rows. Se busca en cada columna de una linea antes de continuar con la siguiente linea (por defecto)
    | +| order | Integer |
    `vk find order by columns`La búsqueda se realiza por columnas. Se busca en cada línea de una columna antes de continuar con la siguiente.
    `vk find order by rows`La búsqueda es realizada por líneas. Se busca en cada columna de una linea antes de continuar con la siguiente linea (por defecto)
    | | target | Integer |
    `vk find target formula`La búsqueda se realiza en la fórmula de la celda
    `vk find target tag`La búsqueda se realiza en la etiqueta de la celda
    `vk find target text`La búsqueda se realiza en el texto de la celda (predeterminado)

    Estas banderas pueden combinarse. Por ejemplo:$search.target:=vk find target formula+vk find target text

    | En el parámetro opcional *replaceValue*, puede pasar un texto para que ocupe el lugar de toda instancia del texto en el *searchValue* encontrado en *rangeObj*. From a97f9ca0293aeb8fd664a88ffcbdf563eb097375 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:32:37 +0100 Subject: [PATCH 061/264] New translations vp-import-document.md (Spanish) --- .../version-20-R10/ViewPro/commands/vp-import-document.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index 061561650ed55b..068ca2cf7addd8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -63,7 +63,7 @@ El parámetro opcional *paramObj* permite definir las propiedades del documento | | includeStyles | boolean | Si se incluye el estilo al importar, por defecto true. | | | includeFormulas | boolean | Si se incluye la fórmula al importar, por defecto true. | | | frozenColumnsAsRowHeaders | boolean | Bien sea tratar las columnas congeladas como encabezados de línea al importar, por defecto false. | -| | frozenRowsAsColumnHeaders | boolean | Whether to treat the frozen rows as column headers when importing, default false. | +| | frozenRowsAsColumnHeaders | boolean | Bien sea tratar las líneas congeladas como encabezados de columna al importar, por defecto false. | | | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | | | dynamicReferences | boolean | Si calcular funciones con referencia dinámica, por defecto true. | | | calcOnDemand | boolean | Si se calculan las fórmulas solo cuando se solicitan, por defecto false. | From a3d378b55989c4a2f675968bb3e89690d4ee724e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:33:45 +0100 Subject: [PATCH 062/264] New translations vp-set-workbook-options.md (Spanish) --- .../version-20-R10/ViewPro/commands/vp-set-workbook-options.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-workbook-options.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-workbook-options.md index bdc02342a44e14..1b299444582e1b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-workbook-options.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-workbook-options.md @@ -48,7 +48,7 @@ En la siguiente tabla se listan las opciones de libros de trabajo disponibles: | autoFitType | number | El contenido se formatea para que se ajuste en las celdas, o en las celdas y los encabezados. Valores disponibles:
    ConstanteValorDescripción
    vk auto fit type cell 0 El contenido se ajusta automáticamente a las celdas
    vk auto fit type cell with header 1 El contenido se ajusta automáticamente a las celdas y encabezados
    | | backColor | string | Una cadena de color utilizada para representar el color de fondo del área, como "red", "#FFFF00", "rgb(255,0,0)", "Acento 5". El color de fondo inicial se oculta cuando se define una backgroundImage. | | backgroundImage | string / picture / file | Imagen de fondo para el área. | -| backgroundImageLayout | number | Cómo se muestra la imagen de fondo. Available values:
    ConstantValueDescription
    vk image layout center 1 In the center of the area.
    vk image layout none 3 In the upper left corner of the area with its original size.
    vk image layout stretch 0 Fills the area.
    vk image layout zoom 2 Displayed with its original aspect ratio.
    | +| backgroundImageLayout | number | Cómo se muestra la imagen de fondo. Available values:
    ConstantValueDescription
    vk image layout center 1 In the center of the area.
    vk image layout none 3 In the upper left corner of the area with its original size.
    vk image layout stretch 0 Llena el área.
    vk image layout zoom 2 Displayed with its original aspect ratio.
    | | calcOnDemand | boolean | Las fórmulas se calculan sólo cuando se piden. | | columnResizeMode | number | Redimensiona modo para columnas. Valores disponibles:
    ConstanteValorDescripción
    vk resize mode normal 0 Utiliza el modo de redimensionamiento normal (es decir, las columnas restantes se ven afectadas)
    vk resize mode split 1 Utiliza el modo dividido (es decir, las columnas restantes no se ven afectadas)
    | | copyPasteHeaderOptions | number | Encabezados para incluir cuando se copian o pegan datos. Available values:
    ConstantValueDescription
    vk copy paste header options all headers3 Includes selected headers when data is copied; overwrites selected headers when data is pasted.
    vk copy paste header options column headers 2 Includes selected column headers when data is copied; overwrites selected column headers when data is pasted.
    vk copy paste header options no headers0 Column and row headers are not included when data is copied; does not overwrite selected column or row headers when data is pasted.
    vk copy paste header options row headers1 Includes selected row headers when data is copied; overwrites selected row headers when data is pasted.
    | From 6fd3ce1d32b0f78724e1c1e69175b08002d6444c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:34:02 +0100 Subject: [PATCH 063/264] New translations http-request-handler.md (Spanish) --- .../version-20-R10/WebServer/http-request-handler.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md index 8ac073255275ca..1b8df02e565772 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/http-request-handler.md @@ -32,7 +32,7 @@ Se soportan gestores de solicitudes HTTP personalizados: Define sus manejadores de petición HTTP personalizados en un archivo de configuración llamado **HTTPHandlers.json** almacenado en la carpeta [`Project/Sources`](../Project/architecture.md#sources). -This file contains all listened URL patterns, the handled verbs, and the code to be called. Los administradores se proporcionan en forma de colección en formato JSON. +Este archivo contiene todos los patrones de URL a interceptar, los verbos manipulados y el código a llamar. Los administradores se proporcionan en forma de colección en formato JSON. Al momento de la ejecución, se ejecuta el primer patrón que coincida con la URL, los demás se ignoran. From 26a307eee68eec38ce7986142129173087d364a4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:34:07 +0100 Subject: [PATCH 064/264] New translations qodly-studio.md (Spanish) --- .../version-20-R10/WebServer/qodly-studio.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md index 615a144ad69146..105b658372a4fe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/qodly-studio.md @@ -80,7 +80,7 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- el despliegue de aplicaciones 4D alimentadas por páginas Qodly debe hacerse utilizando **4D Server**. :::warning From 254ea91b69107c986a1395bb59c1bf7ec8e4cd29 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:34:23 +0100 Subject: [PATCH 065/264] New translations wp-export-document.md (Spanish) --- .../version-20-R10/WritePro/commands/wp-export-document.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-export-document.md index 542f6849b9f2d5..fe2e0e06cbf62c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-export-document.md @@ -55,10 +55,10 @@ Pase un [objeto](# "Datos estructurados como un objeto nativo 4D") en *option* c | Constante | Valor | Comentario | | ------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | wk CID host domain name | cidHostDomain | Nombre de dominio de host CID: dominio de host que se añadirá a las URL CID generadas incluyendo una "@" como separador. Disponible sólo cuando se utiliza el formato `wk mime html`. | -| wk embedded pictures | embeddedPictures | Sólo para exportación SVG. Establece si las imágenes se incrustan en el archivo .svg exportado cuando se llama a [WP EXPORT DOCUMENT](wp-export-document.md). Valores disponibles:
  • true (por defecto): las imágenes están incrustadas en el archivo .svg exportado
  • false: las imágenes se exportan en una carpeta llamada "filename\_images" en el nivel del archivo .svg exportado, "filename" siendo el nombre pasado al comando para el archivo, sin la extensión. Las imágenes no están integradas, sino referenciadas en el archivo .svg.
  • Note: If the folder already exists, it is emptied before the file is exported. Si no hay ninguna imagen en la página exportada, se elimina la carpeta | +| wk embedded pictures | embeddedPictures | Sólo para exportación SVG. Establece si las imágenes se incrustan en el archivo .svg exportado cuando se llama a [WP EXPORT DOCUMENT](wp-export-document.md). Valores disponibles:
  • true (por defecto): las imágenes están incrustadas en el archivo .svg exportado
  • false: las imágenes se exportan en una carpeta llamada "filename\_images" en el nivel del archivo .svg exportado, "filename" siendo el nombre pasado al comando para el archivo, sin la extensión. Las imágenes no están integradas, sino referenciadas en el archivo .svg.
  • Nota: si la carpeta ya existe, se vaciará antes de exportar el archivo. Si no hay ninguna imagen en la página exportada, se elimina la carpeta | | wk factur x | facturX | Sólo para exportación en PDF. Valor: objeto que configura una exportación PDF "Factur-X (ZUGFeRD)" (ver [wk factur x object](#wk-factur-x-object)). | | wk files | Histórico | Sólo para exportación en PDF. Valor: colección de objetos, cada uno de los cuales describe un archivo que se integrará en el documento final (ver [wk files collection](#wk-files-collection)). Esta funcionalidad sólo se admite en documentos PDF/A-3: cuando se utiliza el atributo `wk files`, se establece automáticamente la versión "PDF/A-3" (se ignora el atributo `wk pdfa version`). En caso de una exportación de Factur-X PDF (ver abajo), el primer objeto de la colección debe contener el archivo Factur-X xml. | -| wk google fonts tag | googleFontsTag | Sólo para exportación SVG. Define la regla de importación para fuentes google en el SVG exportado. Valores posibles:
  • false (por defecto): no se añade ninguna regla de importación de fuentes de Google.
  • true: añade la regla @import al archivo exportado. Useful if you want to use fonts that are not available by default on Windows or macOS.
  • **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | +| wk google fonts tag | googleFontsTag | Sólo para exportación SVG. Define la regla de importación para fuentes google en el SVG exportado. Valores posibles:
  • false (por defecto): no se añade ninguna regla de importación de fuentes de Google.
  • true: añade la regla @import al archivo exportado. Útil si desea utilizar fuentes que no están disponibles por defecto en Windows o macOS.
  • **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | | wk HTML pretty print | htmlPrettyPrint | El código HTML está formateado para facilitar su lectura. | | wk max picture DPI | maxPictureDPI | Se utiliza para reducir imágenes a la resolución preferida. Para imágenes SVG en Windows, utilizado para la rasterización. Valores por defecto: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Valor máximo posible: 1440 | | wk optimized for | optimizedFor | Define cómo se optimiza un documento exportado en función de su soporte. Valores posibles:
  • `wk print` (valor por defecto para `wk pdf` y `wk svg`) Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 300 (valor por defecto) y pueden convertirse a PNG si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 300 (sólo Windows). Si una imagen contiene más de un formato, se utiliza el mejor formato para la impresión (*por ejemplo*, .tiff en lugar de .jpg)
  • `wk screen` (valor por defecto para `wk web page complete` y `wk mime html`). Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 192 (valor por defecto) y pueden convertirse a JPEG (imágenes opacas) o PNG (imágenes transparentes) si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 192 (sólo Windows). If a picture contains more than one format, the format for screen rendering is used.
  • **Nota:** los documentos exportados en formato `wk docx` siempre se optimizan para la impresión wk (la opción wk optimized for se ignora). | From 9f66e01904858f711b2db4cab7fe0351c6a2af98 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:34:25 +0100 Subject: [PATCH 066/264] New translations wp-export-variable.md (Spanish) --- .../version-20-R10/WritePro/commands/wp-export-variable.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-export-variable.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-export-variable.md index 0975d8aeb5e67b..606d4bcc42bcd7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-export-variable.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-export-variable.md @@ -55,10 +55,10 @@ Pase un [objeto](# "Datos estructurados como un objeto nativo 4D") en *option* c | Constante | Valor | Comentario | | ------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | wk CID host domain name | cidHostDomain | Nombre de dominio de host CID: dominio de host que se añadirá a las URL CID generadas incluyendo una "@" como separador. Disponible sólo cuando se utiliza el formato `wk mime html`. | -| wk embedded pictures | embeddedPictures | Sólo para exportación SVG. Establece si las imágenes se incrustan en el archivo .svg exportado cuando se llama a [WP EXPORT DOCUMENT](wp-export-document.md). Valores disponibles:
  • true (por defecto): las imágenes están incrustadas en el archivo .svg exportado
  • false: las imágenes se exportan en una carpeta llamada "filename\_images" en el nivel del archivo .svg exportado, "filename" siendo el nombre pasado al comando para el archivo, sin la extensión. Las imágenes no están integradas, sino referenciadas en el archivo .svg.
  • Note: If the folder already exists, it is emptied before the file is exported. Si no hay ninguna imagen en la página exportada, se elimina la carpeta | +| wk embedded pictures | embeddedPictures | Sólo para exportación SVG. Establece si las imágenes se incrustan en el archivo .svg exportado cuando se llama a [WP EXPORT DOCUMENT](wp-export-document.md). Valores disponibles:
  • true (por defecto): las imágenes están incrustadas en el archivo .svg exportado
  • false: las imágenes se exportan en una carpeta llamada "filename\_images" en el nivel del archivo .svg exportado, "filename" siendo el nombre pasado al comando para el archivo, sin la extensión. Las imágenes no están integradas, sino referenciadas en el archivo .svg.
  • Nota: si la carpeta ya existe, se vaciará antes de exportar el archivo. Si no hay ninguna imagen en la página exportada, se elimina la carpeta | | wk factur x | facturX | Sólo para exportación en PDF. Valor: objeto que configura una exportación PDF "Factur-X (ZUGFeRD)" (ver [wk factur x object](./wp-export-document.md#wk-factur-x-object)). | | wk files | Histórico | Sólo para exportación en PDF. Valor: colección de objetos, cada uno de los cuales describe un archivo que se integrará en el documento final (ver [wk files collection](./wp-export-document.md#wk-files-collection)). Esta funcionalidad sólo se admite en documentos PDF/A-3: cuando se utiliza el atributo `wk files`, se establece automáticamente la versión "PDF/A-3" (se ignora el atributo `wk pdfa version`). En caso de una exportación de Factur-X PDF (ver abajo), el primer objeto de la colección debe contener el archivo Factur-X xml. | -| wk google fonts tag | googleFontsTag | Sólo para exportación SVG. Define la regla de importación para fuentes google en el SVG exportado. Valores posibles:
  • false (por defecto): no se añade ninguna regla de importación de fuentes de Google.
  • true: añade la regla @import al archivo exportado. Useful if you want to use fonts that are not available by default on Windows or macOS.
  • **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | +| wk google fonts tag | googleFontsTag | Sólo para exportación SVG. Define la regla de importación para fuentes google en el SVG exportado. Valores posibles:
  • false (por defecto): no se añade ninguna regla de importación de fuentes de Google.
  • true: añade la regla @import al archivo exportado. Útil si desea utilizar fuentes que no están disponibles por defecto en Windows o macOS.
  • **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | | wk HTML pretty print | htmlPrettyPrint | El código HTML está formateado para facilitar su lectura. | | wk max picture DPI | maxPictureDPI | Se utiliza para reducir imágenes a la resolución preferida. Para imágenes SVG en Windows, utilizado para la rasterización. Valores por defecto: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Valor máximo posible: 1440 | | wk optimized for | optimizedFor | Define cómo se optimiza un documento exportado en función de su soporte. Valores posibles:
  • `wk print` (valor por defecto para `wk pdf` y `wk svg`) Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 300 (valor por defecto) y pueden convertirse a PNG si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 300 (sólo Windows). Si una imagen contiene más de un formato, se utiliza el mejor formato para la impresión (*por ejemplo*, .tiff en lugar de .jpg)
  • `wk screen` (valor por defecto para `wk web page complete` y `wk mime html`). Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 192 (valor por defecto) y pueden convertirse a JPEG (imágenes opacas) o PNG (imágenes transparentes) si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 192 (sólo Windows). If a picture contains more than one format, the format for screen rendering is used.
  • **Nota:** los documentos exportados en formato `wk docx` siempre se optimizan para la impresión wk (la opción wk optimized for se ignora). | From 6be78bd29f9c3a5264bb3245bfa2f153852fb062 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:34:28 +0100 Subject: [PATCH 067/264] New translations wp-import-document.md (Spanish) --- .../WritePro/commands/wp-import-document.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-import-document.md index 57405625d969f7..a2d923b5a03f7c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-import-document.md @@ -51,20 +51,20 @@ Por defecto, las expresiones HTML insertadas en documentos heredados de 4D Write Puede pasar un objeto para definir cómo se gestionan los siguientes atributos durante la operación de importación: -| **Atributo** | **Tipo** | **Description** | -| ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| anchoredTextAreas | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las áreas de texto ancladas en Word. Valores disponibles:

    **anchored** (por defecto) - Las áreas de texto ancladas se tratan como cuadros de texto. **inline** - Las áreas de texto ancladas se tratan como texto en línea en la posición del ancla. **ignore** \- Las áreas de texto ancladas son ignoradas. **Nota**: el diseño y el número de páginas en el documento pueden cambiar. Ver también *Cómo importar formato .docx* | -| anchoredImages | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las imágenes ancladas. Available values:

    **all** (default) - All anchored images are imported as anchored images with their text wrapping properties (exception: the .docx wrapping option "tight" is imported as wrap square). **ignoreWrap** \- Anchored images are imported, but any text wrapping around the image is ignored. **ignore** \- Las imágenes ancladas no son importadas. | -| secciones | Text | Sólo para documentos MS Word (.docx). Especifica cómo se maneja la sección. Valores disponibles:

    **all** (por defecto) - Se importan todas las secciones. Continuous, even, or odd sections are converted to standard sections. **ignore** \- Sections are converted to default 4D Write Pro sections (A4 portrait layout without header or footer). **Note**: Section breaks of any type but continuous are converted to section breaks with page break. Continuous section breaks are imported as continuous section breaks. | -| fields | Text | Sólo para documentos MS Word (.docx). Specifies how .docx fields that can't be converted to 4D Write Pro formulas are handled. Valores disponibles:

    **ignore** \- Los campos .docx son ignorados. **label** \- .docx field references are imported as labels within double curly braces ("{{ }}"). Ej: el campo "ClientName" se importará como {{ClientName}}. **value** (default) - The last computed value for the .docx field (if available) is imported. **Note**: If a .docx field corresponds to a 4D Write Pro variable, the field is imported as a formula and this option is ignored. | -| borderRules | Text | Sólo para documentos MS Word (.docx). Especifica cómo se gestionan los bordes de los párrafos. Available values:

    **collapse** \- Paragraph formatting is modified to mimic automatically collapsed borders. Tenga en cuenta que la propiedad contraída sólo se aplica durante la operación de importación. If a stylesheet with a automatic border collapse setting is reapplied after the import operation, the setting will be ignored. **noCollapse** (por defecto) - No se modifica el formato de los párrafos. | -| preferredFontScriptType | Text | Sólo para documentos MS Word (.docx). Specifies the preferred typeface to use when different typefaces are defined for a single font property in OOXML. Available values:

    **latin** (default) - Latin script **bidi** \- Bidrectional script. Suitable if document is mainly bidirectional left-to-right (LTR) or right-to-left (RTL) text (e.g., Arabic or Hebrew). **eastAsia** \- East Asian script. Adecuado si el documento es principalmente texto asiático. | -| htmlExpressions | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se manejan las expresiones HTML. Available values:

    **rawText** \- HTML expressions are imported as raw text within ##htmlBegin## and ##htmlEnd## tags **ignore** (default) - HTML expressions are ignored. | -| importDisplayMode | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se gestiona la visualización de imágenes. Available values:

    **legacy -** 4W7 image display mode is converted using a background image if different than scaled to fit. **noLegacy** (default) - 4W7 image display mode is converted to the *imageDisplayMode* attribute if different than scaled to fit. | +| **Atributo** | **Tipo** | **Description** | +| ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| anchoredTextAreas | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las áreas de texto ancladas en Word. Valores disponibles:

    **anchored** (por defecto) - Las áreas de texto ancladas se tratan como cuadros de texto. **inline** - Las áreas de texto ancladas se tratan como texto en línea en la posición del ancla. **ignore** \- Las áreas de texto ancladas son ignoradas. **Nota**: el diseño y el número de páginas en el documento pueden cambiar. Ver también *Cómo importar formato .docx* | +| anchoredImages | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las imágenes ancladas. Available values:

    **all** (default) - All anchored images are imported as anchored images with their text wrapping properties (exception: the .docx wrapping option "tight" is imported as wrap square). **ignoreWrap** \- Anchored images are imported, but any text wrapping around the image is ignored. **ignore** \- Las imágenes ancladas no son importadas. | +| secciones | Text | Sólo para documentos MS Word (.docx). Especifica cómo se maneja la sección. Valores disponibles:

    **all** (por defecto) - Se importan todas las secciones. Secciones continuas, incluso impares se convierten en secciones estándar. **ignore** \- Sections are converted to default 4D Write Pro sections (A4 portrait layout without header or footer). **Note**: Section breaks of any type but continuous are converted to section breaks with page break. Continuous section breaks are imported as continuous section breaks. | +| fields | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan los campos .docx que no pueden ser convertidos a fórmulas 4D Write Pro. Valores disponibles:

    **ignore** \- Los campos .docx son ignorados. **label** \- .docx field references are imported as labels within double curly braces ("{{ }}"). Ej: el campo "ClientName" se importará como {{ClientName}}. **value** (default) - El último valor calculado para el campo .docx (si está disponible) es importado. **Note**: If a .docx field corresponds to a 4D Write Pro variable, the field is imported as a formula and this option is ignored. | +| borderRules | Text | Sólo para documentos MS Word (.docx). Especifica cómo se gestionan los bordes de los párrafos. Available values:

    **collapse** \- Paragraph formatting is modified to mimic automatically collapsed borders. Tenga en cuenta que la propiedad contraída sólo se aplica durante la operación de importación. If a stylesheet with a automatic border collapse setting is reapplied after the import operation, the setting will be ignored. **noCollapse** (por defecto) - No se modifica el formato de los párrafos. | +| preferredFontScriptType | Text | Sólo para documentos MS Word (.docx). Specifies the preferred typeface to use when different typefaces are defined for a single font property in OOXML. Valores disponibles:

    **latin** (por defecto) - script latino **bidi** \- script bidreccional. Suitable if document is mainly bidirectional left-to-right (LTR) or right-to-left (RTL) text (e.g., Arabic or Hebrew). **eastAsia** \- East Asian script. Adecuado si el documento es principalmente texto asiático. | +| htmlExpressions | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se manejan las expresiones HTML. Available values:

    **rawText** \- HTML expressions are imported as raw text within ##htmlBegin## and ##htmlEnd## tags **ignore** (default) - HTML expressions are ignored. | +| importDisplayMode | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se gestiona la visualización de imágenes. Available values:

    **legacy -** 4W7 image display mode is converted using a background image if different than scaled to fit. **noLegacy** (default) - 4W7 image display mode is converted to the *imageDisplayMode* attribute if different than scaled to fit. | **Notas de compatibilidad** -- *Character style sheets in legacy 4D Write documents use a proprietary mechanism, which is not supported by 4D Write Pro. To get the best result for imported text, style sheet attributes are converted to "hard coded" style attributes. Legacy character style sheets are not imported and are no longer referenced in the document.* +- *Character style sheets in legacy 4D Write documents use a proprietary mechanism, which is not supported by 4D Write Pro. To get the best result for imported text, style sheet attributes are converted to "hard coded" style attributes. Las hojas de estilo de caracteres antiguos no son importadas y ya no están referenciadas en el documento.* - *Support for importing in .docx format is only certified for Microsoft Word 2010 and newer. Versiones antiguas, especialmente Microsoft Word 2007, pueden no importar correctamente.* ## Ejemplo 1 From bfae159c590c97c8cbed1bb0ac247ca5590762d4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:34:45 +0100 Subject: [PATCH 068/264] New translations openaichatcompletionsapi.md (Spanish) --- .../version-20-R10/aikit/Classes/OpenAIChatCompletionsAPI.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsAPI.md index 679642b16e70bf..2bae9229729d29 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsAPI.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsAPI # OpenAIChatCompletionsAPI -La clase `OpenAIChatCompletionsAPI` está diseñada para gestionar las finalizaciones de chat con la API OpenAI. It provides methods to create, retrieve, update, delete, and list chat completions. +La clase `OpenAIChatCompletionsAPI` está diseñada para gestionar las finalizaciones de chat con la API OpenAI. Ofrece métodos para crear, recuperar, actualizar, eliminar y listar respuestas de chat. https://platform.openai.com/docs/api-reference/chat @@ -21,7 +21,7 @@ https://platform.openai.com/docs/api-reference/chat | *parámetros* | [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) | Los parámetros para la solicitud de finalización del chat. | | Resultado | Object | El resultado de la solicitud de finalización del chat. | -Creates a model response for the given chat conversation. +Crea un modelo de respuesta para la conversación dada. https://platform.openai.com/docs/api-reference/chat/create From 89e0e75bf3fcc4bdc1e5846e1e3e02690413b394 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:34:48 +0100 Subject: [PATCH 069/264] New translations openaichatcompletionsmessagesapi.md (Spanish) --- .../aikit/Classes/OpenAIChatCompletionsMessagesAPI.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md index 2502d80c2c15ea..c9624656bfe290 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md @@ -13,11 +13,11 @@ The `OpenAIChatCompletionsMessagesAPI` class is designed to interact with the Op **list**(*completionID* : Text; *parameters* : OpenAIChatCompletionsMessagesParameters) : Variant -| Parámetros | Tipo | Descripción | -| -------------- | ----------------------------------------- | -------------------------------------------------------------------------------- | -| *completionID* | Text | The ID of the chat completion to retrieve messages for. | -| *parámetros* | `OpenAIChatCompletionsMessagesParameters` | Parámetros para filtrar y personalizar la respuesta. | -| Resultado | Variant | Los mensajes recuperados asociados con la finalización del chat. | +| Parámetros | Tipo | Descripción | +| -------------- | ----------------------------------------- | ------------------------------------------------------------------------------------- | +| *completionID* | Text | El ID de la finalización de chat para la cual recuperar los mensajes. | +| *parámetros* | `OpenAIChatCompletionsMessagesParameters` | Parámetros para filtrar y personalizar la respuesta. | +| Resultado | Variant | Los mensajes recuperados asociados con la finalización del chat. | La función `list()` recupera los mensajes asociados a un ID de finalización de chat específico. Lanza un error si `completionID` está vacío. If the *parameters* argument is not an instance of `OpenAIChatCompletionsMessagesParameters`, it will create a new instance using the provided parameters. From 7665e387b8e434d0d42c9f407135cdc541611952 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:34:57 +0100 Subject: [PATCH 070/264] New translations openaiembeddingsapi.md (Spanish) --- .../aikit/Classes/OpenAIEmbeddingsAPI.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIEmbeddingsAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIEmbeddingsAPI.md index dabbcc1cee4797..7d99ad8f1204a6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIEmbeddingsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIEmbeddingsAPI.md @@ -15,14 +15,14 @@ https://platform.openai.com/docs/api-reference/embeddings **create**(*input* : Text; *model*: Text; *parameters* : OpenAIEmbeddingsParameters) : OpenAIEmbeddingsResult -Creates an embeddings for the provided input, model and parameters. - -| Argumento | Tipo | Descripción | -| ------------ | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------- | -| *entrada* | Texto o colección de texto | La entrada a vectorizar. | -| *model* | Text | The [model to use](https://platform.openai.com/docs/guides/embeddings#embedding-models) | -| *parámetros* | [OpenAIEmbeddingsParameters](OpenAIEmbeddingsParameters.md) | Los parámetros para personalizar la petición de representaciones vectoriales. | -| Resultado | [OpenAIEmbeddingsResult](OpenAIEmbeddingsResult.md) | Las integraciones. | +Crea una representación vectorial para la entrada, el modelo y los parámetros ofrecidos. + +| Argumento | Tipo | Descripción | +| ------------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| *entrada* | Texto o colección de texto | La entrada a vectorizar. | +| *model* | Text | El [modelo a utilizar] (https://platform.openai.com/docs/guides/embeddings#embedding-models) | +| *parámetros* | [OpenAIEmbeddingsParameters](OpenAIEmbeddingsParameters.md) | Los parámetros para personalizar la petición de representaciones vectoriales. | +| Resultado | [OpenAIEmbeddingsResult](OpenAIEmbeddingsResult.md) | Las integraciones. | #### Ejemplos de uso From d8174fab1906e548de39906abaf8c10ae1b01034 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:35:01 +0100 Subject: [PATCH 071/264] New translations openaierror.md (Spanish) --- .../version-20-R10/aikit/Classes/OpenAIError.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIError.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIError.md index a1b407b5774618..50c983790a5e75 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIError.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIError.md @@ -41,7 +41,7 @@ La clase `OpenAIError` está diseñada para manejar errores devueltos por la API | ---------------------------- | ------- | ------------------------------------------------------------------------------------------------- | | `isBadRequestError` | Boolean | Indica si se trata de un error 400 Bad Request. | | `isAuthenticationError` | Boolean | Indica si se trata de un error de autenticación 401. | -| `isPermissionDeniedError` | Boolean | Indicates ∏if the error is a 403 Permission Denied error. | +| `isPermissionDeniedError` | Boolean | Indica si el error es un error 403 Permiso denegado. | | `isNotFoundError` | Boolean | Indica si el error es un error 404 Not Found. | | `isUnprocessableEntityError` | Boolean | Indica si el error es un error de entidad no procesable (422). | | `isRateLimitError` | Boolean | Indica si el error es un error de límite de velocidad 429. | From c16d251b84d60a145997a568a697f8467fed91cb Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:35:03 +0100 Subject: [PATCH 072/264] New translations openaiimage.md (Spanish) --- .../version-20-R10/aikit/Classes/OpenAIImage.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImage.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImage.md index 04c86973e749d1..2917ecf2bf83db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImage.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIImage.md @@ -11,11 +11,11 @@ https://platform.openai.com/docs/api-reference/images/object ## Propiedades -| Propiedad | Tipo | Descripción | -| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------- | -| `url` | Text | La URL de la imagen generada, si `response_format` es `url` (por defecto). | -| `b64_json` | Text | The base64-encoded JSON of the generated image, if `response_format` is `b64_json`. | -| `revised_prompt` | Variant | The prompt that was used to generate the image, if there was any revision to the prompt. | +| Propiedad | Tipo | Descripción | +| ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------- | +| `url` | Text | La URL de la imagen generada, si `response_format` es `url` (por defecto). | +| `b64_json` | Text | El JSON codificado en base64 de la imagen generada, si `response_format` es `b64_json`. | +| `revised_prompt` | Variant | La instrucción que se utilizó para generar la imagen, si hubo alguna revisión de la instrucción. | ## Funciones @@ -23,9 +23,9 @@ https://platform.openai.com/docs/api-reference/images/object **asBlob**() : 4D.Blob -| Parámetros | Tipo | Descripción | -| ---------- | ----------------------- | ------------------------------------------------------------------------------------------------------ | -| Resultado | 4D.Blob | Converts the generated image to a blob format based on its URL or base64-encoded JSON. | +| Parámetros | Tipo | Descripción | +| ---------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------ | +| Resultado | 4D.Blob | Convierte la imagen generada a un formato blob basado en su URL o en un JSON codificado en base64. | #### Ejemplo de Uso From 84adca408b2506ad9ab057605cba754b23ac6efd Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:35:08 +0100 Subject: [PATCH 073/264] New translations openaimessage.md (Spanish) --- .../version-20-R10/aikit/Classes/OpenAIMessage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIMessage.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIMessage.md index 7f872456010175..25479618986396 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIMessage.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIMessage.md @@ -13,7 +13,7 @@ The `OpenAIMessage` class represents a structured message containing a role, con | ----------- | ------- | -------------------------------------------------------------------------------------------- | | `rol` | Text | El rol del mensaje (por ejemplo, "user", "assistant"). | | `contenido` | Variant | El contenido del mensaje, que puede ser un texto o una colección de objetos. | -| `user` | Text | An optional property representing the user associated with the message. | +| `user` | Text | Una propiedad opcional que representa al usuario asociado al mensaje. | ## Propiedades calculadas From 3805824670571501452b5035aee9cadb3b1e804c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:35:18 +0100 Subject: [PATCH 074/264] New translations openaiparameters.md (Spanish) --- .../version-20-R10/aikit/Classes/OpenAIParameters.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIParameters.md index 30a0ee07ce9043..54c9d61d806d8a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIParameters.md @@ -11,12 +11,12 @@ The `OpenAIParameters` class is designed to handle execution and request paramet ### Propiedades de la programación asíncrona -| Propiedad | Tipo | Descripción | -| ------------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `formula` u `onTerminate` | Function | Una función que se llamará de forma asíncrona cuando termine. Asegúrese de que el proceso actual no termina. | -| `onResponse` | Function | A function to be called asynchronously when the request finishes successfully. Asegúrese de que el proceso actual no termina. | -| `onError` | Function | A function to be called asynchronously when the request finishes with errors. Asegúrese de que el proceso actual no termina. | -| `throw` | Boolean | Si es true, lanza un error si se produce uno. Sólo si no se ha definido ninguna retrollamada de fórmula. | +| Propiedad | Tipo | Descripción | +| ------------------------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `formula` u `onTerminate` | Function | Una función que se llamará de forma asíncrona cuando termine. Asegúrese de que el proceso actual no termina. | +| `onResponse` | Function | Una función a llamar de forma asíncrona cuando la petición finalice con éxito. Asegúrese de que el proceso actual no termina. | +| `onError` | Function | Una función que se llamará de forma asíncrona cuando la petición finalice con errores. Asegúrese de que el proceso actual no termina. | +| `throw` | Boolean | Si es true, lanza un error si se produce uno. Sólo si no se ha definido ninguna retrollamada de fórmula. | Ver la [documentación sobre código asíncrono](../asynchronous-call.md) From af4c93ba2c9d2cbbddc5dff16221a9a033200f31 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:35:20 +0100 Subject: [PATCH 075/264] New translations openairesult.md (Spanish) --- .../version-20-R10/aikit/Classes/OpenAIResult.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIResult.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIResult.md index a56ffcdcd8d803..be533ccb4d72d6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIResult.md @@ -21,7 +21,7 @@ The `OpenAIResult` class is designed to handle the response from HTTP requests a | `errors` | Collection | Devuelve una colección de errores. Estos podrían ser errores de red o errores devueltos por OpenAI. | | `terminated` | Boolean | Un booleano que indica si la petición HTTP fue terminada. | | `headers` | Object | Devuelve los encabezados de respuesta como un objeto. | -| `rateLimit` | Object | Returns rate limit information from the response headers. | +| `rateLimit` | Object | Devuelve la información relativa al límite de tasa de los encabezados de la respuesta. | | `utilización` | Object | Devuelve la información de uso del cuerpo de la respuesta, si existe. | ### rateLimit From 4d531c4f9e7f2528ba504d6df4bb38fa083869c3 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:35:25 +0100 Subject: [PATCH 076/264] New translations compatible-openai.md (Spanish) --- .../version-20-R10/aikit/compatible-openai.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md index 5b5e136edec480..ca4d836251504a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/compatible-openai.md @@ -5,7 +5,7 @@ title: Proveedores # Proveedores -Many AI providers propose an OpenAI-like API, so you can use this project to connect to them. +Muchos proveedores de IA proponen una API similar a la de OpenAI, así que puede utilizar este proyecto para conectarse a ellos. Para ello sólo tiene que definir la `baseURL` a la del proveedor y utilizar su clave api si es necesario. From 576531f0e745fd9dffeb5edc3ad88c5a716c94a6 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:53:33 +0100 Subject: [PATCH 077/264] New translations call-chain.md (Spanish) --- .../version-20-R10/commands/call-chain.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/call-chain.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/call-chain.md index 71416c9f2cbcc3..096864393492ed 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/call-chain.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/call-chain.md @@ -32,7 +32,7 @@ The command facilitates debugging by enabling the identification of the method o | **Propiedad** | **Tipo** | **Description** | **Ejemplo** | | ------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | | database | Text | Name of the database calling the method (to distinguish host methods and component methods) | "database":"contactInfo" | -| formula | Text (si lo hay) | Contents of the current line of code at the current level of the call chain (raw text). Corresponde al contenido de la línea referenciada por la propiedad `line` en el archivo fuente indicado por el método. Si el código fuente no está disponible, la propiedad `formula` se omite (Undefined). | "var $stack:=Call chain" | +| formula | Text (si lo hay) | Contenido de la línea actual de código en el nivel actual de la cadena de llamadas (texto bruto). Corresponde al contenido de la línea referenciada por la propiedad `line` en el archivo fuente indicado por el método. Si el código fuente no está disponible, la propiedad `formula` se omite (Undefined). | "var $stack:=Call chain" | | línea | Integer | Número de línea de llamada al método | "line":6 | | name | Text | Nombre del método llamado | "name":"On Load" | | type | Text | Type of the method:
  • "projectMethod"
  • "formObjectMethod"
  • "formmethod"
  • "databaseMethod"
  • "triggerMethod"
  • "executeOnServer" (when calling a project method with the *Execute on Server attribute*)
  • "executeFormula" (when executing a formula via [PROCESS 4D TAGS](../commands-legacy/process-4d-tags.md) or the evaluation of a formula in a 4D Write Pro document)
  • "classFunction"
  • "formMethod"
  • | "type":"formMethod" | From 39d83e141a5b2c70684e4af3a4aa8d1f0a38b970 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:53:38 +0100 Subject: [PATCH 078/264] New translations command-name.md (Spanish) --- .../version-20-R10/commands/command-name.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/command-name.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/command-name.md index f48fc456753f3c..dbbeb35148cc54 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/command-name.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/command-name.md @@ -36,7 +36,7 @@ Hay dos parámetros opcionales: - *info*: propiedades del comando. The returned value is a *bit field*, where the following bits are meaningful: - Primer bit (bit 0): definido en 1 si el comando es [**hilo-seguro**](../Develop/preemptive.md#thread-safe-vs-thread-unsafe-code) (es decir, compatible con la ejecución en un proceso apropiativo) y 0 si es **hilo-inseguro**. Only thread-safe commands can be used in [preemptive processes](../Develop/preemptive.md). - - Second bit (bit 1): set to 1 if the command is **deprecated**, and 0 if it is not. A deprecated command will continue to work normally as long as it is supported, but should be replaced whenever possible and must no longer be used in new code. Los comandos obsoletos en su código generan advertencias en el [Live Checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). + - Segundo bit (bit 1): se define en 1 si el comando es **obsoleto**, y en 0 si no lo es. A deprecated command will continue to work normally as long as it is supported, but should be replaced whenever possible and must no longer be used in new code. Los comandos obsoletos en su código generan advertencias en el [Live Checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). *theme*: nombre del tema del lenguaje 4D para el comando. @@ -80,7 +80,7 @@ En un formulario, quiere una lista desplegable con los comandos básicos de info  End case ``` -In the English version of 4D, the drop-down list will read: Sum, Average, Min, and Max. In the French version\*, the drop-down list will read: Somme, Moyenne, Min, and Max. +En la versión inglesa de 4D, la lista desplegable leerá: Sum, Average, Min y Max. En la versión francésa \*, la lista desplegable dirá: Somme, Moyenne, Min, y Max. \*with a 4D application configured to use the French programming language (see compatibility note) @@ -110,7 +110,7 @@ Luego, para el comando "SAVE RECORD" (53) por ejemplo, puede escribir: ## Ejemplo 4 -You want to return a collection of all deprecated commands in your version of 4D. +Quiere devolver una colección de todos los comandos obsoletos en su versión de 4D. ```4d var $info; $Lon_id : Integer From cfe1d821778292424332607483553f37c9ed025b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:53:54 +0100 Subject: [PATCH 079/264] New translations form.md (Spanish) --- .../version-20-R10/commands/form.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md index 355633c3e4ffb9..79fa8e19d3a3a9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/form.md @@ -24,7 +24,7 @@ displayed_sidebar: docs ## Descripción -El comando **Form** devuelve el objeto asociado al formulario actual (instanciado a partir del parámetro *formData* o de la clase de usuario asignada en el editor de formularios). 4D automatically associates an object to the current form in the following cases: +El comando **Form** devuelve el objeto asociado al formulario actual (instanciado a partir del parámetro *formData* o de la clase de usuario asignada en el editor de formularios). 4D asocia automáticamente un objeto al formulario actual en los siguientes casos: - el formulario actual ha sido cargado por uno de los comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), - el formulario actual es un subformulario, From bed5e3530a7a85074e157e5afd58dc3c7007c306 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:54:04 +0100 Subject: [PATCH 080/264] New translations listbox-get-property.md (Spanish) --- .../version-20-R10/commands/listbox-get-property.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/listbox-get-property.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/listbox-get-property.md index 1950ec74b81673..e0fe65323178a0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/listbox-get-property.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/listbox-get-property.md @@ -85,7 +85,7 @@ Dado un list box "MyListbox", si ejecuta la siguiente instrucción: $Value:=LISTBOX Get property(*; "MyListbox";lk selection mode) // el valor devuelto indica el modo de selección ``` -In this case, the result returned indicates whether multiple rows can be selected. +En este caso, el resultado devuelto indica si varios registros pueden ser seleccionados. ## Ejemplo 2 From fa73c69255d233183849e5361cbf6a162c4083d4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:54:06 +0100 Subject: [PATCH 081/264] New translations listbox-set-property.md (Spanish) --- .../version-20-R10/commands/listbox-set-property.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/listbox-set-property.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/listbox-set-property.md index bad06c1b5092c0..8b269bcc21784a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/listbox-set-property.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/listbox-set-property.md @@ -69,7 +69,7 @@ In the *property* and *value* parameters, you indicate, respectively, the proper ## Ejemplo 1 -You want to make all columns of the "MyListbox" list box resizable: +Quiere que todas las columnas del list box "MyListbox" sean redimensionables: ```4d LISTBOX SET PROPERTY(*;"MyListbox";lk column resizable;lk yes) //Todas las columnas del list box "MyListbox" se establecen como redimensionables From 80e3ae24f28ee5f991bab54530016ede91f9b335 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:54:12 +0100 Subject: [PATCH 082/264] New translations new-log-file.md (Spanish) --- .../version-20-R10/commands/new-log-file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-log-file.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-log-file.md index dc7638f769dbd6..3c630602133e46 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-log-file.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-log-file.md @@ -20,7 +20,7 @@ displayed_sidebar: docs The **New log file** command closes the current log file, renames it and creates a new one with the same name in the same location as the previous one. This command is meant to be used for setting up a backup system using a logical mirror (see the section *Setting up a logical mirror* in the [4D Server Reference Manual](https://doc/4d.com)). -The command returns the full pathname (access path + name) of the log file being closed (called the “segment”). Este archivo se almacena en la misma ubicación que el archivo de registro actual (especificado en la [página de configuración](../Backup/settings.md#configuration) en el tema de copia de seguridad de la configuración). The command does not carry out any processing (compression, segmentation) on the saved file. No aparece ninguna +The command returns the full pathname (access path + name) of the log file being closed (called the “segment”). Este archivo se almacena en la misma ubicación que el archivo de registro actual (especificado en la [página de configuración](../Backup/settings.md#configuration) en el tema de copia de seguridad de la configuración). El comando no realiza ningún procesamiento (compresión, segmentación) en el archivo guardado. No aparece ninguna caja de diálogo. The file is renamed with the current backup numbers of the database and of the log file, as shown in the following example: DatabaseName\[BackupNum-LogBackupNum\].journal. Por ejemplo: From 07ac53ff4b2d108195252ca819da36ad3d055469 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:54:26 +0100 Subject: [PATCH 083/264] New translations select-log-file.md (Spanish) --- .../version-20-R10/commands/select-log-file.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/select-log-file.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/select-log-file.md index 4645679308f3d1..93dedb8e715150 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/select-log-file.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/select-log-file.md @@ -19,9 +19,9 @@ displayed_sidebar: docs The **SELECT LOG FILE** command creates, or closes the log file according to the value you pass in parameter. -In *logFile*, pass the name or the full pathname of the log file to be created. If you only pass a name, the file will be created in the "Logs" folder of the database located next to the database structure file. +En *logFile*, pase el nombre o la ruta completa del archivo de registro a ser creado. If you only pass a name, the file will be created in the "Logs" folder of the database located next to the database structure file. -If you pass an empty string in *logFile*, **SELECT LOG FILE** presents an Save File dialog box, allowing the user to choose the name and location of the log file to be created. Si el archivo se crea correctamente, la variable OK toma el valor 1. Otherwise, if the user clicks Cancel or if the log file could not be created, OK is set to 0. +If you pass an empty string in *logFile*, **SELECT LOG FILE** presents an Save File dialog box, allowing the user to choose the name and location of the log file to be created. Si el archivo se crea correctamente, la variable OK toma el valor 1. De lo contrario, si el usuario hace clic en Cancelar o si el archivo de registro no pudo ser creado, OK toma el valor 0. **Note:** The new log file is not generated immediately after execution of the command, but after the next backup (the parameter is kept in the data file and will be taken into account even if the database is closed in the meantime) or a call to the [New log file](new-log-file.md) command. Puede llamar al comando [BACKUP](../commands-legacy/backup.md) para activar la creación del archivo de registro. From 9974f6ce1eb458fbc4f15586ada0bb6e2fd142e9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:56:03 +0100 Subject: [PATCH 084/264] New translations wa-get-context.md (Spanish) --- .../version-20-R10/commands/wa-get-context.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/wa-get-context.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/wa-get-context.md index 98329331b077f7..366311d7124bd5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/wa-get-context.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/wa-get-context.md @@ -18,7 +18,7 @@ displayed_sidebar: docs ### Descripción -El comando `WA Get context` recupera el objeto de contexto definido para `$4d` en el área Web designada por los parámetros \* y *object* utilizando [`WA SET CONTEXT`](./wa-set-context.md). If `WA SET CONTEXT` was not called for the web area the command returns `null`. +El comando `WA Get context` recupera el objeto de contexto definido para `$4d` en el área Web designada por los parámetros \* y *object* utilizando [`WA SET CONTEXT`](./wa-set-context.md). Si `WA SET CONTEXT` no fue llamado para el área web, el comando devuelve `null`. :::note From 53086c94232dacc7c8591434b25c6b149194ba7d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:57:55 +0100 Subject: [PATCH 085/264] New translations http-rules.md (Spanish) --- .../current/WebServer/http-rules.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md index 16c9f337b0de37..14f5b56fa2f051 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md @@ -58,7 +58,7 @@ Se soportan las siguientes palabras clave de acción: | `removeHeaders` | Texto o colección de textos | Encabezado(s) para eliminar de las respuestas HTTP. Si un encabezado a eliminar no existe en el encabezado de respuesta, se ignora. | | `addHeaders` | Object | Name (text) and value (text) of header(s) to add to the HTTP responses. | | `setHeaders` | Object | Name (text) and value (text) of header(s) to modify in the HTTP responses. Si un encabezado a modificar no existe en el encabezado de respuesta, se añade. | -| `denyAccess` | Boolean | true para negar el acceso al recurso, false para permitir el acceso. When the access to a resource is denied, the web server returns a 403 status by default | +| `denyAccess` | Boolean | true para negar el acceso al recurso, false para permitir el acceso. Cuando el acceso a un recurso es denegado, el servidor web devuelve un estado 403 por defecto | | `redirect` | Text | Redirigir URL. Cuando se activa una redirección, el servidor web devuelve un estado 302 por defecto | | `status` | Number | Estado HTTP | From dc25313a0752ca0209369374872f27c2ec31f68f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:58:08 +0100 Subject: [PATCH 086/264] New translations collectionclass.md (Spanish) --- .../version-21/API/CollectionClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md index de25918e361018..b19fb72882385a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CollectionClass.md @@ -3169,7 +3169,7 @@ La función `.sort()` ordena los elemento > Esta función modifica la colección original. Si se llama a `.sort()` sin parámetros, sólo se ordenan los valores escalares (número, texto, fecha, booleanos). Los elementos se ordenan por defecto de forma ascendente, según su tipo. -You can also pass one of the following constants in the *ascOrDesc* parameter: +También puede pasar una de las siguientes constantes en el parámetro *ascOrDesc*: ``` |Constant| Type|Value|Comment| From da24ee43b50f80f4407c69cd3580e7a2d45c12bc Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:58:10 +0100 Subject: [PATCH 087/264] New translations cryptokeyclass.md (Spanish) --- .../version-21/API/CryptoKeyClass.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md index 165d71999ad19e..e6539b08c0c614 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md @@ -54,12 +54,12 @@ La función `4D.CryptoKey.new()` crea un #### *settings* -| Propiedad | Tipo | Descripción | -| --------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [type](#type) | text | Defines the type of the key to create:
  • "RSA": generates a RSA key pair, using [.size](#size) as size.
  • "ECDSA": generates an Elliptic Curve Digital Signature Algorithm key pair, using [.curve](#curve) as curve. Tenga en cuenta que las llaves ECDSA no pueden utilizarse para el cifrado, sino solo para la firma.
  • "PEM": loads a key pair definition in PEM format, using [.pem](#pem).
  • | -| [curve](#curve) | text | Nombre de la curva ECDSA | -| [pem](#pem) | text | Definición PEM de una llave de cifrado a cargar | -| [size](#size) | integer | Tamaño de la llave RSA en bits | +| Propiedad | Tipo | Descripción | +| --------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [type](#type) | text | Defines the type of the key to create:
  • "RSA": generates a RSA key pair, using [.size](#size) as size.
  • "ECDSA": generates an Elliptic Curve Digital Signature Algorithm key pair, using [.curve](#curve) as curve. Tenga en cuenta que las llaves ECDSA no pueden utilizarse para el cifrado, sino solo para la firma.
  • "PEM": carga una definición de par de llaves en formato PEM, utilizando [.pem](#pem).
  • | +| [curve](#curve) | text | Nombre de la curva ECDSA | +| [pem](#pem) | text | Definición PEM de una llave de cifrado a cargar | +| [size](#size) | integer | Tamaño de la llave RSA en bits | #### *CryptoKey* From c99c56028c30e504f2d708ab3c4256ec60987e77 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:58:25 +0100 Subject: [PATCH 088/264] New translations entityclass.md (Spanish) --- .../version-21/API/EntityClass.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index 27a8ce893baa25..3ee0e5cbaf554d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -397,9 +397,9 @@ El objeto devuelto por `.drop()` contiene las siguientes propiedades: | ----------------------------------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using entity.drop(), this error can be returned when dk force drop if stamp changed option is used. When using entity.lock(), this error can be returned when dk reload if stamp changed option is used.
  • **statusText asociado**: "La entidad ya no existe" | | `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista.
    **statusText asociado**: "Already locked" | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | +| `dk status validation failed` | 7 | Error no crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | | `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
    **statusText asociado**\*: "Other error" | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | +| `dk status serious validation error` | 8 | Error crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | | `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used
  • **Associated statusText**: "Stamp has changed"
  • | | `dk status wrong permission` | 1 | Los privilegios actuales no permiten suprimir la entidad. **Associated statusText**: "Permission Error" | @@ -1282,9 +1282,9 @@ Los siguientes valores pueden ser devueltos en las propiedades `status`y `status | `dk status automerge failed` | 6 | (Only if the `dk auto merge` option is used) The automatic merge option failed when saving the entity. **statusText asociado**: "Fallo de la fusión automática" | | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | | `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista. **statusText asociado**: "Already locked" | -| `dk status validation failed` | 7 | Non fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | +| `dk status validation failed` | 7 | Error no crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | | `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc. **Associated statusText**: "Other error" | -| `dk status serious validation error` | 8 | Fatal error sent by the developer for a [validate event](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | +| `dk status serious validation error` | 8 | Error crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | | `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used

  • **Associated statusText**: "Stamp has changed" | | `dk status wrong permission` | 1 | Los privilegios actuales no permiten guardar la entidad. **Associated statusText**: "Permission Error" | From dd76fa817a213a69050da9a987d0b8781600f4c3 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:58:40 +0100 Subject: [PATCH 089/264] New translations imaptransporterclass.md (Spanish) --- .../version-21/API/IMAPTransporterClass.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md index 05be142672c1db..00fb9eee94ee8e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/IMAPTransporterClass.md @@ -791,16 +791,16 @@ En el parámetro opcional `parameters`, pase un objeto que contenga valores para Cada objeto de la colección devuelta contiene las siguientes propiedades: -| Propiedad | Tipo | Descripción | -| ------------------------------------------------------------------------------------ | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| \[].name | Text | Nombre del buzón. Devuelto si withBoxProperties=true o withBoxInfo=true | -| \[].selectable | Boolean | Indica si los derechos de acceso permiten o no seleccionar el buzón de correo:
    • true - el buzón puede ser seleccionado
    • false - el buzón de correo no puede ser seleccionado
    Devuelto si withBoxProperties=true | -| \[].inferior | Boolean | Indica si los derechos de acceso permiten o no crear una jerarquía inferior en el buzón:
    • true - se puede crear un nivel inferior
    • false - no se puede crear un nivel inferior
    Se devuelve si withBoxProperties=true | -| \[].interesting | Boolean | Indica si el buzón ha sido marcado como "interesante" por el servidor:
    • true - El buzón ha sido marcado como "interesante" por el servidor. Por ejemplo, puede contener mensajes nuevos.
    • false - The mailbox has not been marked "interesting" by the server.
    Se devuelve si withBoxProperties=true | -| [].mailCount | Number | Número de mensajes en el buzón. Devuelto si withBoxInfo=true | -| [].mailRecent | Number | Número de mensajes marcados como "recent" (indicando nuevos mensajes). Devuelto si withBoxInfo=true | -| [].mailUnseen | Number | Número de mensajes marcados como "unseen". Devuelto si withBoxInfo=true | -| [].id | Text | Identificador único del buzón. Devuelto si withBoxInfo=true | +| Propiedad | Tipo | Descripción | +| ------------------------------------------------------------------------------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| \[].name | Text | Nombre del buzón. Devuelto si withBoxProperties=true o withBoxInfo=true | +| \[].selectable | Boolean | Indica si los derechos de acceso permiten o no seleccionar el buzón de correo:
    • true - el buzón puede ser seleccionado
    • false - el buzón de correo no puede ser seleccionado
    Devuelto si withBoxProperties=true | +| \[].inferior | Boolean | Indica si los derechos de acceso permiten o no crear una jerarquía inferior en el buzón:
    • true - se puede crear un nivel inferior
    • false - no se puede crear un nivel inferior
    Se devuelve si withBoxProperties=true | +| \[].interesting | Boolean | Indica si el buzón ha sido marcado como "interesante" por el servidor:
    • true - El buzón ha sido marcado como "interesante" por el servidor. Por ejemplo, puede contener mensajes nuevos.
    • false - El buzón no ha sido marcado como "interesante" por el servidor.
    Se devuelve si withBoxProperties=true | +| [].mailCount | Number | Número de mensajes en el buzón. Devuelto si withBoxInfo=true | +| [].mailRecent | Number | Número de mensajes marcados como "recent" (indicando nuevos mensajes). Devuelto si withBoxInfo=true | +| [].mailUnseen | Number | Número de mensajes marcados como "unseen". Devuelto si withBoxInfo=true | +| [].id | Text | Identificador único del buzón. Devuelto si withBoxInfo=true | Si la cuenta no contiene buzones, se devuelve una colección vacía. From 1c07b7155bb40e17857e80172971c99a5c99a664 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:58:49 +0100 Subject: [PATCH 090/264] New translations sessionclass.md (Spanish) --- .../version-21/API/SessionClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SessionClass.md index fa0c67c6f7c7b1..4db8accfa2c0a2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SessionClass.md @@ -754,7 +754,7 @@ Function callback($request : 4D.IncomingMessage) : 4D.OutgoingMessage :::note -This function does nothing and always returns **False** with stored procedure sessions and standalone sessions. +Esta función no hace nada y siempre devuelve **False** con sesiones de procedimientos almacenadas y las sesiones independientes. ::: From 69d4746fe507cd5d3481064c846d3d33a401f30c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:59:05 +0100 Subject: [PATCH 091/264] New translations webserverclass.md (Spanish) --- .../version-21/API/WebServerClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md index 6fed6a0c01983c..3f311fe35dba48 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md @@ -495,7 +495,7 @@ La ruta de la carpeta raíz del s *Propiedad de sólo lectura* -A collection of rule objects currently handled to customize HTTP headers. A rule object contains a "regexPattern" property, as well as an action name with a value. HTTP rules can be defined through a HTTPRules.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Rules](../WebServer/http-rules.md) page. +A collection of rule objects currently handled to customize HTTP headers. A rule object contains a "regexPattern" property, as well as an action name with a value. HTTP rules can be defined through a HTTPRules.json file or the *settings* parameter of the [`.start()`](#start) function. Para obtener más información, consulte la página [Reglas HTTP](../WebServer/http-rules.md). From 986b6b95080a22c819546a1938441a4321e0be8e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 21:59:14 +0100 Subject: [PATCH 092/264] New translations cli.md (Spanish) --- .../version-21/Admin/cli.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/cli.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/cli.md index 629c6c21a7223c..cc30a3dc01b1af 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/cli.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/cli.md @@ -44,25 +44,25 @@ Sintaxis: [--utility] [--skip-onstartup] [--startup-method ] ``` -| Argumento | Valor | Descripción | -| :-------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `applicationPath` | Ruta de 4D, 4D Server, aplicación fusionada o tool4d | Lanza la aplicación.
    If not headless: identical to double-clicking the application; when called without structure file argument, the application is executed and the 'select database' dialog box appears. | -| `--version` | | Muestra la versión de la aplicación y sale | -| `--help` | | Muestra el mensaje de ayuda y sale. Argumentos alternativos: -?, -h | -| `--project` | projectPath | packagePath | 4dlinkPath | Archivo de proyecto a abrir con el archivo de datos actual. No aparece ninguna caja de diálogo. | -| `--data` | dataPath | Archivo de datos a abrir con el archivo de proyecto designado. Si no se especifica, se utiliza el último archivo de datos abierto. | -| `--opening-mode` | interpreted | compiled | Base de datos de peticiones a abrir en modo interpretado o compilado. No se lanza ningún error si el modo solicitado no está disponible. | -| `--create-data` | | Crea automáticamente un nuevo archivo de datos si no se encuentra un archivo de datos válido. No aparece ninguna caja de diálogo. 4D utiliza el nombre del archivo pasado en el argumento "--data" si lo hay (genera un error si ya existe un archivo con el mismo nombre). | -| `--user-param` | Cadena usuario personalizada | Una cadena que estará disponible en la aplicación a través del comando [`Get database parameter`](../commands-legacy/get-database-parameter.md) (la cadena no debe comenzar por un carácter "-", que está reservado). | -| `--headless` | | Lanza 4D, 4D Server o la aplicación fusionada sin interfaz (modo headless). En este modo:
  • El modo Diseño no está disponible, la base de datos se inicia en modo Aplicación
  • No se muestra la barra de herramientas, la barra de menú, la ventana MDI ni la pantalla de presentación
  • No se muestra ningún icono en el dock o la barra de tareas
  • La base de datos abierta no se registra en el menú "Bases de datos recientes"
  • Se inicia automáticamente el registro de diagnóstico (ver [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md), selector 79)
  • Se intercepta cada llamada a una caja de diálogo y se suministra una respuesta automática (por ejemplo, OK para el comando [ALERT](../commands-legacy/alert.md), Abort para un diálogo de error...). All intercepted commands(\*) are logged in the diagnostic log.

  • For maintenance needs, you can send any text to standard output streams using the [LOG EVENT](../commands-legacy/log-event.md) command. Tenga en cuenta que las aplicaciones 4D sin interfaz sólo pueden cerrarse mediante una llamada a [QUIT 4D](../commands-legacy/quit-4d.md) o utilizando el administrador de tareas del sistema operativo. | -| `--dataless` | | Lanza 4D, 4D Server, la aplicación fusionada o tool4d en modo sin datos. El modo sin datos es útil cuando 4D ejecuta tareas sin necesidad de datos (compilación de proyectos, por ejemplo). In this mode:
  • No file containing data is opened, even if specified in the command line or the `.4DLink` file, or when using the `CREATE DATA FILE` and `OPEN DATA FILE` commands.
  • Los comandos que manipulan datos arrojarán un error. Por ejemplo, `CREATE RECORD` lanza "no hay tabla a la que aplicar el comando".

  • **Nota**:
  • si se pasa en la línea de comando, el modo dataless se aplica a todas las bases de datos abiertas en 4D, mientras no se cierre la aplicación.
  • Si se pasa utilizando el archivo `.4DLink`, el modo dataless sólo se aplica a la base de datos especificada en el archivo `.4DLink`. Para más información sobre los archivos `.4DLink`, ver [Atajos para abrir proyectos](../GettingStarted/creating.md#project-opening-shortcuts).
  • | -| `--webadmin-settings-file` | Ruta del archivo | Ruta del archivo `.4DSettings` personalizado para el [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | -| `--webadmin-access-key` | Text | Llave de acceso para el [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | -| `--webadmin-auto-start` | Boolean | Estado del lanzamiento automático del [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | -| `--webadmin-store-settings` | | Almacena la llave de acceso y los parámetros de inicio automático en el archivo de parámetros actualmente utilizado (es decir, el archivo [`WebAdmin.4DSettings`](webAdmin.md#webadmin-settings) por defecto o un archivo personalizado designado con el parámetro `--webadmin-settings-path`). Utilice el argumento `--webadmin-store-settings` para guardar esta configuración si es necesario. No disponible con [tool4d](#tool4d). | -| `--utility` | | Sólo disponible con 4D Server. Sólo disponible con 4D Server. | -| `--skip-onstartup` | | Lanza el proyecto sin ejecutar ningún método "automático", incluyendo los métodos base `On Startup` y `On Exit` | -| `--startup-method` | Nombre del método proyecto (cadena) | Método de proyecto a ejecutar inmediatamente después del método base `On Startup` (si no se omite con `--skip-onstartup`). | +| Argumento | Valor | Descripción | +| :-------------------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `applicationPath` | Ruta de 4D, 4D Server, aplicación fusionada o tool4d | Lanza la aplicación.
    If not headless: identical to double-clicking the application; when called without structure file argument, the application is executed and the 'select database' dialog box appears. | +| `--version` | | Muestra la versión de la aplicación y sale | +| `--help` | | Muestra el mensaje de ayuda y sale. Argumentos alternativos: -?, -h | +| `--project` | projectPath | packagePath | 4dlinkPath | Archivo de proyecto a abrir con el archivo de datos actual. No aparece ninguna caja de diálogo. | +| `--data` | dataPath | Archivo de datos a abrir con el archivo de proyecto designado. Si no se especifica, se utiliza el último archivo de datos abierto. | +| `--opening-mode` | interpreted | compiled | Base de datos de peticiones a abrir en modo interpretado o compilado. No se lanza ningún error si el modo solicitado no está disponible. | +| `--create-data` | | Crea automáticamente un nuevo archivo de datos si no se encuentra un archivo de datos válido. No aparece ninguna caja de diálogo. 4D utiliza el nombre del archivo pasado en el argumento "--data" si lo hay (genera un error si ya existe un archivo con el mismo nombre). | +| `--user-param` | Cadena usuario personalizada | Una cadena que estará disponible en la aplicación a través del comando [`Get database parameter`](../commands-legacy/get-database-parameter.md) (la cadena no debe comenzar por un carácter "-", que está reservado). | +| `--headless` | | Lanza 4D, 4D Server o la aplicación fusionada sin interfaz (modo headless). En este modo:
  • El modo Diseño no está disponible, la base de datos se inicia en modo Aplicación
  • No se muestra la barra de herramientas, la barra de menú, la ventana MDI ni la pantalla de presentación
  • No se muestra ningún icono en el dock o la barra de tareas
  • La base de datos abierta no se registra en el menú "Bases de datos recientes"
  • Se inicia automáticamente el registro de diagnóstico (ver [SET DATABASE PARAMETER](../commands-legacy/set-database-parameter.md), selector 79)
  • Se intercepta cada llamada a una caja de diálogo y se suministra una respuesta automática (por ejemplo, OK para el comando [ALERT](../commands-legacy/alert.md), Abort para un diálogo de error...). Todos los comandos interceptados(\*) se registran en el registro de diagnóstico.

  • For maintenance needs, you can send any text to standard output streams using the [LOG EVENT](../commands-legacy/log-event.md) command. Tenga en cuenta que las aplicaciones 4D sin interfaz sólo pueden cerrarse mediante una llamada a [QUIT 4D](../commands-legacy/quit-4d.md) o utilizando el administrador de tareas del sistema operativo. | +| `--dataless` | | Lanza 4D, 4D Server, la aplicación fusionada o tool4d en modo sin datos. El modo sin datos es útil cuando 4D ejecuta tareas sin necesidad de datos (compilación de proyectos, por ejemplo). In this mode:
  • No file containing data is opened, even if specified in the command line or the `.4DLink` file, or when using the `CREATE DATA FILE` and `OPEN DATA FILE` commands.
  • Los comandos que manipulan datos arrojarán un error. Por ejemplo, `CREATE RECORD` lanza "no hay tabla a la que aplicar el comando".

  • **Nota**:
  • si se pasa en la línea de comando, el modo dataless se aplica a todas las bases de datos abiertas en 4D, mientras no se cierre la aplicación.
  • Si se pasa utilizando el archivo `.4DLink`, el modo dataless sólo se aplica a la base de datos especificada en el archivo `.4DLink`. Para más información sobre los archivos `.4DLink`, ver [Atajos para abrir proyectos](../GettingStarted/creating.md#project-opening-shortcuts).
  • | +| `--webadmin-settings-file` | Ruta del archivo | Ruta del archivo `.4DSettings` personalizado para el [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | +| `--webadmin-access-key` | Text | Llave de acceso para el [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | +| `--webadmin-auto-start` | Boolean | Estado del lanzamiento automático del [servidor web WebAdmin](webAdmin.md). No disponible con [tool4d](#tool4d). | +| `--webadmin-store-settings` | | Almacena la llave de acceso y los parámetros de inicio automático en el archivo de parámetros actualmente utilizado (es decir, el archivo [`WebAdmin.4DSettings`](webAdmin.md#webadmin-settings) por defecto o un archivo personalizado designado con el parámetro `--webadmin-settings-path`). Utilice el argumento `--webadmin-store-settings` para guardar esta configuración si es necesario. No disponible con [tool4d](#tool4d). | +| `--utility` | | Sólo disponible con 4D Server. Sólo disponible con 4D Server. | +| `--skip-onstartup` | | Lanza el proyecto sin ejecutar ningún método "automático", incluyendo los métodos base `On Startup` y `On Exit` | +| `--startup-method` | Nombre del método proyecto (cadena) | Método de proyecto a ejecutar inmediatamente después del método base `On Startup` (si no se omite con `--skip-onstartup`). | (\*) Algunos diálogos se muestran antes de abrir la base de datos, por lo que es imposible escribir en el [archivo de registro de diagnóstico](Debugging/debugLogFiles.md#4ddiagnosticlogtxt) (alerta de licencia, diálogo de conversión, selección de bases de datos, selección de archivos de datos). En este caso, se lanza un mensaje de error tanto en el flujo stderr como en el registro de eventos sistema, From d0a5a5db0db6a23de7755469f38d068af85a3c43 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:00:12 +0100 Subject: [PATCH 093/264] New translations debuglogfiles.md (Spanish) --- .../version-21/Debugging/debugLogFiles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md index d6b32a4f015be7..8aef52b1a0dbcc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md @@ -73,7 +73,7 @@ Para cada petición, se registran los siguientes campos: | server\_duration | exec\_duration | Depende del lugar donde se genere el registro:
  • _server\*duration* cuando se genera en el cliente --Time tomado en microsegundos para que el servidor procese la solicitud y devuelva una respuesta. B a F en la imagen de abajo, O
  • _exec\*duration* cuando se genera en el servidor --Tiempo empleado en microsegundos para que el servidor procese la petición. B a E en la imagen de abajo.
  • | | write\_duration | Tiempo tomado en microsegundos para enviar la:
  • Petición (cuando se ejecuta en el cliente). A a B en la imagen inferior.
  • Respuesta (cuando se ejecuta en el servidor). E a F en la imagen de abajo.
  • | | task_kind | Apropiativo o cooperativo (respectivamente "p" o "c") | -| rtt | Tiempo estimado en microsegundos para que el cliente envíe la solicitud y el servidor la acuse de recibo. A a D y E a H en la imagen inferior.
  • Only measured when using the ServerNet network layer, returns 0 when used with the legacy network layer.
  • For Windows versions prior to Windows 10 or Windows Server 2016, the call will return 0.
  • | +| rtt | Tiempo estimado en microsegundos para que el cliente envíe la solicitud y el servidor la acuse de recibo. A a D y E a H en la imagen inferior.
  • Only measured when using the ServerNet network layer, returns 0 when used with the legacy network layer.
  • Para las versiones de Windows anteriores a Windows 10 o Windows Server 2016, la llamada devolverá 0.
  • | | extra | Información adicional relacionada con el contexto, por ejemplo el nombre de la clase de datos y/o el nombre del atributo en caso de petición ORDA | Flujo de solicitudes: From 4d26bec65178a64f21666dbddb96aee1b9cebf14 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:00:21 +0100 Subject: [PATCH 094/264] New translations clientserver.md (Spanish) --- .../version-21/Desktop/clientServer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/clientServer.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/clientServer.md index 3f471cae307fa5..fa5d056395d3c4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/clientServer.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/clientServer.md @@ -126,7 +126,7 @@ Para gestionar esta configuración, necesita utilizar sesiones cliente remotas. Note that [privileges](../ORDA/privileges.md) should be set in the session before executing a web request from a Web area, so that the user automatically gets their privileges for web access (see example). Keep in mind that privileges only apply to requests coming from the web, not to the 4D code executed in a standard remote session. -Shared sessions are handled through [OTP tokens](../WebServer/sessions.md#session-token-otp). After you created an OTP token on the server for the user session, you add the token (through the `$4DSID` parameter value) to web requests sent from web areas containing Qodly pages so that the user session on the server is identified and shared. On the web server side, if a web request contains an *OTP id* in the $4DSID parameter, the session corresponding to this OTP token is used. +Las sesiones compartidas se gestionan a través de [tokens OTP](../WebServer/sessions.md#session-token-otp). After you created an OTP token on the server for the user session, you add the token (through the `$4DSID` parameter value) to web requests sent from web areas containing Qodly pages so that the user session on the server is identified and shared. On the web server side, if a web request contains an *OTP id* in the $4DSID parameter, the session corresponding to this OTP token is used. :::tip Entrada de blog relacionada From fc22f6013280f43153c7ef67e5bca899557be81a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:00:23 +0100 Subject: [PATCH 095/264] New translations labels.md (Spanish) --- .../version-21/Desktop/labels.md | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/labels.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/labels.md index e1a5817b9f5bc7..aa663b94431609 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/labels.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Desktop/labels.md @@ -127,22 +127,22 @@ El lado derecho de la barra de herramientas contiene comandos utilizados para mo ## Página Diseño -The Layout page contains controls for printing labels based on the requirements of your current print settings. +Esta página contiene los controles para imprimir etiquetas en función de los requisitos de sus parámetros de impresión actuales. ![](../assets/en/Desktop/label-layout.png) -- **Labels Order**: Specifies whether labels should be printed in the direction of the rows or the columns. -- **Rows** and **Columns**: Set the number of labels to be printed by "row" and by "column" on each sheet. These settings determine the label size when the "Automatic resizing" option is enabled. -- **Labels per record**: Sets the number of copies to print for each label (copies are printed consecutively). -- **Print Setup...**: Sets the format of the page on which the sheet of labels will be printed. When you click this button, the setup dialog box for the printer selected in your system appears. By default, the sheet of labels is generated based on an A4 page in portrait mode. - **Note:** The sheet created by the editor is based on the logical page of the printer, i.e. the physical page (for instance, an A4 page) less the margins that cannot be used on each side of the sheet. The physical margins of the page are shown by blue lines in the preview area. -- **Unit**: Changes the units in which you specify your label and label page measurements. Puede utilizar puntos, milímetros, centímetros o pulgadas. -- **Automatic resizing**: Means that 4D automatically calculates the size of the labels (i.e. the Width and Height parameters) according to the values set in all the other parameters. When this option is checked, the label size is adjusted each time you modify a page parameter. Los parámetros Ancho y Alto ya no pueden ajustarse manualmente. -- **Ancho** y **Alto**: define la altura y el ancho de cada etiqueta manualmente. They cannot be edited when the **Automatic resizing** option is checked. -- **Márgenes** (Superior, Derecho, Izquierdo, Inferior): define los márgenes de su hoja. Estos márgenes son simbolizados por líneas azules en el área de vista previa. Clicking on **Use printer margins** replicates, in the preview area, the margin information provided by the selected printer (these values can be modified). -- **Gaps**: Set the amount of vertical and/or horizontal space between label rows and columns. -- **Method**: Lets you trigger a specific method that will be run at print time. For example, you can execute a method that posts the date and time that each label was printed. This feature is also useful when you print labels using a dedicated table form, in which case you can fill variables from a method. - To be eligible for label processing, a project method must comply with the following settings: +- **Orden de etiquetas**: indica si las etiquetas deben imprimirse en la dirección de las líneas o de las columnas. +- **Líneas** y **Columnas**: defina el número de etiquetas a imprimir por "línea" y "columna" en cada hoja. Estos parámetros determinan las dimensiones de las etiquetas cuando la opción "Dimensiones automáticas" está activada. +- **Etiquetas por registro**: define el número de copias a imprimir para cada etiqueta (las copias se imprimen consecutivamente). +- **Formato de impresión...**: formato de la página en la que se imprimirá la hoja de etiquetas. Cuando hace clic en este botón, aparece el cuadro de diálogo de configuración de la impresora seleccionada en su sistema. Por defecto, la hoja de etiquetas se genera basándose en una página A4 en modo retrato. + **Nota:** la hoja creada por el editor se basa en la página lógica de la impresora, es decir, la página física (por ejemplo, una hoja A4) menos los márgenes que no se pueden utilizar a cada lado de la hoja. Los márgenes de la página física se representan por las líneas azules en el área de vista previa. +- **Unidad**: modifica las unidades en las que especifica las medidas de la etiqueta y de la página de etiqueta. Puede utilizar puntos, milímetros, centímetros o pulgadas. +- **Dimensiones automáticas**: indica que 4D calcula automáticamente el tamaño de las etiquetas (es decir, los parámetros Ancho y Alto) según los valores definidos en todos los demás parámetros. Cuando esta opción está marcada, el tamaño de las etiquetas se recalcula cada vez que se modifica un parámetro en la página. Los parámetros Ancho y Alto ya no pueden ajustarse manualmente. +- **Ancho** y **Alto**: define la altura y el ancho de cada etiqueta manualmente. No se pueden editar cuando la opción **Dimensionamiento automático** está marcada. +- **Márgenes** (Superior, Derecho, Izquierdo, Inferior): define los márgenes de su hoja. Estos márgenes son simbolizados por líneas azules en el área de vista previa. Al hacer clic en **Aplicar los márgenes de la impresora** con el fin de replicar, en el área de vista previa, la información de margen proporcionada por la impresora seleccionada (estos valores pueden ser modificados). +- **Intervalos**: defina el espacio vertical y/o horizontal entre las líneas y columnas de las etiquetas. +- **Método**: permite activar un método específico que se ejecutará al momento de la impresión. Por ejemplo, puede ejecutar un método que publique la fecha y la hora en que se imprimió cada etiqueta. Esta funcionalidad también es útil cuando se imprimen etiquetas usando un formulario tabla dedicado, en cuyo caso se pueden llenar variables a partir de un método. + Para ser elegible para el procesamiento de etiquetas, un método proyecto debe cumplir con las siguientes condiciones: - debe ser "permitido" para la base de datos (los métodos permitidos dependen de los [parámetros del proyecto](../settings/security.md#options) y el comando [`SET ALLOWED METHODS`](../commands/set-allowed-methods.md), de lo contrario no se mostrará en el menú **Aplicación**. - debe tener la opción [Compartido por componentes y base de datos local](../Project/code-overview.md#shared-by-components-and-host-database). Ver también [este ejemplo](#printing-labels-using-forms-and-methods-example) a continuación. @@ -150,20 +150,20 @@ The Layout page contains controls for printing labels based on the requirements :::note Para necesidades avanzadas, puede restringir la lista de métodos disponibles utilizando un [archivo json específico](#controlling-available-forms-and-methods). -The **For each: Record or Label** options are used to specify whether to run the method once per label or once per record. This control has meaning only if you are printing more than one copy of each label and you are also executing a method at print time. +Las opciones **Para cada: Registro o Etiqueta** permiten especificar si ejecutar el método una vez por etiqueta o una vez por registro. Este control sólo tiene sentido si está imprimiendo más de una copia de cada etiqueta y también está ejecutando un método al momento de la impresión. ::: -- **Layout preview**: Provides a reduced view of how an entire page of labels will look, based on the dimensions you enter in the Label editor. The page preview also reflects the paper size selected in the Print Setup dialog box. También puede utilizar esta zona para designar la primera etiqueta de la página que se va a imprimir (esta opción sólo afecta a la primera hoja en caso de impresión multipágina). This can be useful, for example, when you want to print on a sheet of adhesive labels, part of which has already been used. También puede seleccionar la primera etiqueta en la página a imprimir haciendo clic en ella: +- **Vista previa del diseño**: permite visualizar en tiempo real las modificaciones que ingrese en el editor de etiquetas. La vista previa de la página también refleja el tamaño de papel seleccionado en el cuadro de diálogo Configuración de la impresión. También puede utilizar esta área para designar la primera etiqueta de la página a imprimir (esta opción solo afecta a la primera hoja en el caso de la impresión multipágina). Esto puede ser útil, por ejemplo, cuando se desea imprimir en una hoja de etiquetas adhesivas, parte de las cuales ya se ha utilizado. También puede seleccionar la primera etiqueta en la página a imprimir haciendo clic en ella: ![](../assets/en/Desktop/label-start.png) ## Impresión de etiquetas mediante formularios y métodos (ejemplo) -You can use dedicated table forms and project methods to print labels with calculated variables. This simple example shows how to configure the different elements. +Puede utilizar formularios de tabla dedicados y métodos proyecto para imprimir etiquetas con variables calculadas. Este ejemplo explica como configurar los diferentes elementos. 1. En un formulario tabla dedicado, añada su(s) campo(s) de etiqueta y su(s) variable(s). - Here, in a table form named "label", we added the *myVar* variable: + Aquí, en una tabla llamada "etiqueta", sumamos la variable *myVar*: ![](../assets/en/Desktop/label-example1.png) 2. Crea un método proyecto llamado `setMyVar` con el siguiente código: @@ -174,7 +174,7 @@ You can use dedicated table forms and project methods to print labels with calcu 3. Defina el método proyecto como ["Compartido por los componentes y la base de datos local"](../Project/code-overview.md#shared-by-components-and-host-database). -4. Before displaying the Label editor, make sure the project method is allowed by executing this code: +4. Antes de mostrar el editor de etiquetas, asegúrese de que el método proyecto está autorizado ejecutando este código: ```4d ARRAY TEXT($methods;1) @@ -182,18 +182,18 @@ You can use dedicated table forms and project methods to print labels with calcu SET ALLOWED METHODS($methods) ``` -5. Open the Label editor and use your form: +5. Abre el editor de etiquetas y use su formulario: ![](../assets/en/Desktop/label-example2.png) -6. In the Layout page, select the method: +6. En la página Diseño, seleccione el método: ![](../assets/en/Desktop/label-example3.png) Luego puede imprimir sus etiquetas: ![](../assets/en/Desktop/label-example4.png) -## Control de los formularios y métodos disponibles +## Definición de los formularios y métodos disponibles -The Label editor includes an advanced feature allowing you to restrict which project forms and methods (within "allowed" methods) can be selected in the dialog box: +El editor de etiquetas incluye una función avanzada que le permite limitar los formularios y los métodos proyecto (dentro de los métodos "permitidos") pueden seleccionarse en el cuadro de diálogo: - en el menú **Formulario a utilizar** de la página "Etiqueta" y/o - en el menú **Aplicar (método)** de la página "Diseño". From 96459a6c09976d23cbcebe1ca21107c7cb81714e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:00:26 +0100 Subject: [PATCH 096/264] New translations field-properties.md (Spanish) --- .../version-21/Develop/field-properties.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md index e58d6470b5e614..2ab9d95557dbdf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md @@ -17,7 +17,7 @@ Puede introducir cualquier nombre de clase válido en esta propiedad, incluyendo - Clases 4D integradas (por ejemplo, `4D.File`, `4D.Folder`) - [Exposed](../Extensions/develop-components.md#sharing-of-classes) component-defined classes (e.g. `cs.MyComponent.MyClass`) -If you enter an invalid class name, a warning is triggered and the input is rejected. +Si introduce un nombre de clase inválido, se activa una advertencia y se rechaza la entrada. :::note From 8bb8a05800de02f7a493a8582fecef6f395e564e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:01:47 +0100 Subject: [PATCH 097/264] New translations overview.md (Spanish) --- .../version-21/Extensions/overview.md | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/overview.md index 681ada54c0c77e..b54c7ae0c57a3b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Extensions/overview.md @@ -16,21 +16,21 @@ La [arquitectura del proyecto] 4D (../Project/architecture.md) es abierta y pued ## Componentes desarrollados por 4D -4D proposes various components to the 4D community, covering many development needs. All 4D components can be found on the [**4D github repository**](https://github.com/4d). +4D propone varios componentes a la comunidad 4D, cubriendo muchas necesidades de desarrollo. Todos los componentes 4D se pueden encontrar en el [**repositorio github de 4D**](https://github.com/4d). A subset of these components is listed by default in the [Dependency Manager](../Project/components.md), including: -| Componente | Repositorio Github | Descripción | Principales funcionalidades | -| -------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | -| 4D AIKit | https://github.com/4d/4D-AIKit | Conjunto de clases a conectar con las APIs OpenAI de terceros | `OpenAIChat`, `OpenAIImage`... | -| 4D NetKit | https://github.com/4d/4D-NetKit | Conjunto de herramientas de servicios web para conectarse a APIs de terceros | `OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` | -| 4D Progress | https://github.com/4d/4D-Progress | Abrir una o varias barras de progreso en la misma ventana | `Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... | -| 4D QPDF | https://github.com/4d/4D-QPDF | Extraer archivos adjuntos de archivos PDF/A-3 | `PDF Get attachments` | -| 4D SVG | https://github.com/4d/4D-SVG | Crear y manipular objetos gráficos svg comunes | `SVGTool_Display_viewer`, métodos múltiples `SVG_` | -| 4D ViewPro | https://github.com/4d/4d-view-pro | Funciones de hoja de cálculo en sus formularios | Ver la [documentación 4D View Pro](ViewPro/getting-started.md) | -| 4D Widgets | https://github.com/4d/4D-Widgets | Gestione los widgets DatePicker, TimePicker, SearchPicker 4D | `DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ... | -| Interfaz 4D WritePro | https://github.com/4d/4D-WritePro-Interface | Manage 4D Write Pro palettes and [table wizard](../WritePro/writeprointerface.md) | `WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget` | -| Build4D | https://github.com/4d-depot/Build4D | Compilar, construir y firmar proyectos | CI/CD | +| Componente | Repositorio Github | Descripción | Principales funcionalidades | +| -------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------- | +| 4D AIKit | https://github.com/4d/4D-AIKit | Conjunto de clases a conectar con las APIs OpenAI de terceros | `OpenAIChat`, `OpenAIImage`... | +| 4D NetKit | https://github.com/4d/4D-NetKit | Conjunto de herramientas de servicios web para conectarse a APIs de terceros | `OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` | +| 4D Progress | https://github.com/4d/4D-Progress | Abrir una o varias barras de progreso en la misma ventana | `Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... | +| 4D QPDF | https://github.com/4d/4D-QPDF | Extraer archivos adjuntos de archivos PDF/A-3 | `PDF Get attachments` | +| 4D SVG | https://github.com/4d/4D-SVG | Crear y manipular objetos gráficos svg comunes | `SVGTool_Display_viewer`, métodos múltiples `SVG_` | +| 4D ViewPro | https://github.com/4d/4d-view-pro | Funciones de hoja de cálculo en sus formularios | Ver la [documentación 4D View Pro](ViewPro/getting-started.md) | +| 4D Widgets | https://github.com/4d/4D-Widgets | Gestione los widgets DatePicker, TimePicker, SearchPicker 4D | `DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ... | +| Interfaz 4D WritePro | https://github.com/4d/4D-WritePro-Interface | Gestión de paletas y del [asistente de tablas](../WritePro/writeprointerface.md) en 4D Write Pro | `WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget` | +| Build4D | https://github.com/4d-depot/Build4D | Compilar, construir y firmar proyectos | CI/CD | From 23dca91c2c65a5ba3cc538fae39d28eafb858aeb Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:01:52 +0100 Subject: [PATCH 098/264] New translations formeditor.md (Spanish) --- .../version-21/FormEditor/formEditor.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md index 4aea53b4daeb2e..202739cb7305f6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md @@ -148,7 +148,7 @@ Para seleccionar un objeto utilizando la barra de herramientas: 1. Haga clic en la herramienta Flecha de la barra de herramientas.
    ![](../assets/en/FormEditor/selection.png) -
    When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. +
    Cuando mueve el puntero en el área del formulario, se convierte en un puntero estándar con forma de flecha. 2. Haga clic en el objeto que desea seleccionar. Las manillas de redimensionamiento identifican el objeto seleccionado.
    ![](../assets/en/FormEditor/selectResize.png) @@ -325,7 +325,7 @@ Para distribuir objetos utilizando la caja de diálogo Alinear y Distribuir: 3. En las áreas Alineación izquierda/derecha y/o Alineación superior/inferior, haga clic en el icono de distribución estándar: ![](../assets/en/FormEditor/horizontalDistribution.png)
    (Icono de distribución horizontal estándar)
    El área de ejemplo muestra los resultados de su selección. -4. To perform a distribution that uses the standard scheme, click **Preview** or *Apply*.
    In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
    OR:
    To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:
    +4. Para efectuar una repartición estándar que utilice el esquema estándar, haga clic en **Previsualización** o *Aplicar*.
    In this case 4D will perform a standard distribution, so that the objects are set out with an equal amount of space between them.
    OR:
    To execute a specific distribution, select the **Distribute** option (for example if you want to distribute the objects based on the distance to their right side). Esta opción actúa como un interruptor. Si la casilla de selección Distribuir está seleccionada, los iconos situados debajo de ella realizan una función diferente:
    - Horizontalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los lados izquierdos, centros (hor.) y los lados derechos de los objetos seleccionados. - Verticalmente, los iconos corresponden a las siguientes distribuciones: uniformemente con respecto a los bordes superiores, centros (vert.) y los bordes inferiores de los objetos seleccionados. @@ -352,7 +352,7 @@ Cuando se superponen varios objetos, se puede utilizar el atajo **Ctrl+Mayús+cl :::note -In binary databases, use **Ctrl+Click / Command+Click** to perform the same action. +En bases de datos binarias, utilice **Ctrl+Clic / Comando+Clic** para efectuar la misma acción. ::: @@ -390,7 +390,7 @@ Para ver o cambiar el orden de entrada: El puntero se convierte en un puntero de orden de entrada y 4D dibuja una línea en el formulario mostrando el orden en que selecciona los objetos durante la entrada de datos. Ver y cambiar el orden de entrada de datos son las únicas acciones que puede realizar hasta que haga clic en cualquier herramienta de la paleta Herramientas. -2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
    ![](../assets/en/FormEditor/entryOrder3.png)
    4D will adjust the entry order accordingly. +2. To change the data entry order, position the pointer on an object in the form and, while holding down the mouse button, drag the pointer to the object you want next in the data entry order.
    ![](../assets/en/FormEditor/entryOrder3.png)
    4D ajustará el orden de entrada en consecuencia. 3. Repita el paso 2 tantas veces como sea necesario para establecer el orden de entrada de datos que desee. From d3bfded11342af32b286502e1995978dcee7ccc0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:02:04 +0100 Subject: [PATCH 099/264] New translations properties_markers.md (Spanish) --- .../version-21/FormEditor/properties_Markers.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_Markers.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_Markers.md index cecc6b6b4e022d..b80b59a9bca1cc 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_Markers.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/properties_Markers.md @@ -21,9 +21,9 @@ Puede hacer que las áreas Ruptura sean más pequeñas o más grandes. Puede uti #### Gramática JSON -| Nombre | Tipos de datos | Valores posibles | -| ----------- | ----------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| markerBreak | integer | integer collection | Break marker position or collection of break marker positions in pixels.
    Valor mínimo: 0 | +| Nombre | Tipos de datos | Valores posibles | +| ----------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| markerBreak | integer | integer collection | Posición del marcador de ruptura o colección de posiciones del marcador de ruptura en píxeles.
    Valor mínimo: 0 | --- From 12919b67e15df989c7a34b89c4a6e86ca4833f69 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:02:10 +0100 Subject: [PATCH 100/264] New translations button_overview.md (Spanish) --- .../version-21/FormObjects/button_overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md index bc28dd10b260a0..f47035dbbd758a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/button_overview.md @@ -328,7 +328,7 @@ Todos los botones comparten el mismo conjunto de propiedades básicas: [Negrita](properties_Text.md#bold) - [Estilo de línea de borde](properties_BackgroundAndBorder.md#border-line-style) - [Fondo](properties_CoordinatesAndSizing.md#bottom) - [Estilo de botón](properties_TextAndPicture.md#button-style) - [Clase](properties_Object.md#css-class) - [Soltable](properties_Action.md#droppable) - [Enfocable](properties_Entry.md#focusable) - [Fuente](properties_Text.md#font) - [Color de fuente](properties_Text.md#font-color) - [Tamaño de fuente](properties_Text.md#font-size) - [Altura](properties_CoordinatesAndSizing.md#height) - [Consejo de ayuda](properties_Help.md#help-tip) - [Alineación horizontal](properties_Text.md#horizontal-alignment) - [Tamaño horizontal](properties_ResizingOptions.md#horizontal-sizing) - [Cursiva](properties_Text.md#italic) - [Título de abrazos de imagen](properties_TextAndPicture.md#image-hugs-title)(1) - [Izquierda](properties_CoordinatesAndSizing.md#left) - [No renderizado](properties_Display.md#not-rendered) - [Número de estados](properties_TextAndPicture.md#number-of-states)(1) - [Nombre del objeto](properties_Object.md#object-name) - [Nombre de la ruta de la imagen](properties_TextAndPicture.md#picture-pathname)(1) - [Derecha](properties_CoordinatesAndSizing.md#right) - [Acceso directo](properties_Entry.md#shortcut) - [Acción estándar](properties_Action.md#standard-action) - [Título](properties_Object.md#title) - [Posición del título/imagen](properties_TextAndPicture.md#titlepicture-position)(1) - [Superior](properties_CoordinatesAndSizing.md#top) - [Tipo](properties_Object.md#tipo) - [Subrayado](properties_Text.md#underline) - [Variable o expresión](properties_Object.md#variable-or-expression) - [Tamaño vertical](properties_ResizingOptions.md#vertical-sizing) - [Visibilidad](properties_Display.md#visibility) - [Ancho](properties_CoordinatesAndSizing.md#width) - [Con menú emergente](properties_TextAndPicture.md#with-pop-up-menu)(2) > (1) No soportado por el estilo [Ayuda](#help).
    -> (2) Not supported by the [Help](#help), [Flat](#flat) and [Regular](#regular) styles. +> (2) No soportado por los estilos [Help](#help), [Flat](#flat) y [Regular](#regular). Existen propiedades específicas adicionales, dependiendo del [estilo-de-botón](#button-styles): From ff31b4c195715721e4b856bc6a6a00b6fb4e519d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:02:23 +0100 Subject: [PATCH 101/264] New translations listbox_overview.md (Spanish) --- .../version-21/FormObjects/listbox_overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md index 978af992f51d90..3f61236a812366 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/listbox_overview.md @@ -523,7 +523,7 @@ El soporte de ordenación estándar depende del tipo de list box: | Tipo de list box | Soporte de ordenación estándar | Comentarios | | ------------------------------ | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Colección de objetos | Sí |
    • "This.a" or "This.a.b" columns are sortable.
    • The [list box source property](properties_Object.md#variable-or-expression) must be an [assignable expression](../Concepts/quick-tour.md#assignable-vs-non-assignable-expressions).
    | +| Colección de objetos | Sí |
    • Las columnas "This.a" o "This.a.b" son ordenables.
    • The [list box source property](properties_Object.md#variable-or-expression) must be an [assignable expression](../Concepts/quick-tour.md#assignable-vs-non-assignable-expressions).
    | | Colección de valores escalares | No | Utilice la ordenación personalizada con la función [`orderBy()`](../API/CollectionClass.md#orderby) | | Entity selection | Sí |
  • The [list box source property](properties_Object.md#variable-or-expression) must be an [assignable expression](../Concepts/quick-tour.md#assignable-vs-non-assignable-expressions).
  • Supported: sorts on object attribute properties (e.g. "This.data.city" when "data" is an object attribute)
  • Supported: sorts on related attributes (e.g. "This.company.name")
  • Not supported: sorts on object attribute properties through related attributes (e.g. "This.company.data.city"). Para ello, debe utilizar la ordenación personalizada con la función [`orderByFormula()`](../API/EntitySelectionClass.md#orderbyformula) (ver el siguiente ejemplo)
  • | | Selección actual | Sí | Sólo se pueden ordenar las expresiones simples (por ejemplo, `[Table_1]Campo_2`) | @@ -812,7 +812,7 @@ If the user selects a break row, [`LISTBOX GET CELL POSITION`](../commands/listb ![](../assets/en/FormObjects/hierarch11.png) -... [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) returns (2;4). To select a break row by programming, you will need to use the [`LISTBOX SELECT BREAK`](../commands/listbox-select-break) command. +... [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) devuelve (2;4). To select a break row by programming, you will need to use the [`LISTBOX SELECT BREAK`](../commands/listbox-select-break) command. Las líneas de rotura no se tienen en cuenta en los arrays internos utilizados para gestionar el aspecto gráfico de los list box (estilos y colores). No obstante, es posible modificar estas características para las líneas de ruptura mediante los comandos de gestión gráfica de los objetos. Basta con ejecutar los comandos adecuados en los arrays que constituyen la jerarquía. From 8f6d21078c95e2327221db31e456edec774c68f9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:02:34 +0100 Subject: [PATCH 102/264] New translations properties_backgroundandborder.md (Spanish) --- .../version-21/FormObjects/properties_BackgroundAndBorder.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_BackgroundAndBorder.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_BackgroundAndBorder.md index 84e2079f5e71ac..0eb71aceb033b9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_BackgroundAndBorder.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_BackgroundAndBorder.md @@ -186,7 +186,7 @@ Designa el grosor de una línea. --- -## Row Background Color Array {#row-background-color-array} +## Array colores de fondo {#row-background-color-array} `List boxes de tipo array` From f25397a1f9e43e460397c8eb8f60b4fc122233a3 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:02:52 +0100 Subject: [PATCH 103/264] New translations properties_object.md (Spanish) --- .../version-21/FormObjects/properties_Object.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Object.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Object.md index faf778d6fa7852..ecd495239f8435 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Object.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Object.md @@ -90,9 +90,9 @@ Las variables o expresiones se pueden introducir o no y pueden recibir datos de #### Gramática JSON -| Nombre | Tipos de datos | Valores posibles | -| ---------- | ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| dataSource | cadena o array de cadenas |
  • Variable, nombre de campo o cualquier expresión 4D.
  • Empty string for [dynamic variables](#dynamic-variables).
  • String array (collection of array names) for a [hierarchical listbox](listbox_overview.md#hierarchical-list-boxes) column]
  • | +| Nombre | Tipos de datos | Valores posibles | +| ---------- | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| dataSource | cadena o array de cadenas |
  • Variable, nombre de campo o cualquier expresión 4D.
  • Cadena vacía para las [variables dinámicas](#dynamic-variables).
  • String array (collection of array names) for a [hierarchical listbox](listbox_overview.md#hierarchical-list-boxes) column]
  • | ### Expresiones From 1aa62caab8247247fa151b9194b6041bc7aa2b3e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:12:37 +0100 Subject: [PATCH 104/264] New translations call-chain.md (Spanish) --- .../version-21/commands/call-chain.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/call-chain.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/call-chain.md index 71416c9f2cbcc3..096864393492ed 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/call-chain.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/call-chain.md @@ -32,7 +32,7 @@ The command facilitates debugging by enabling the identification of the method o | **Propiedad** | **Tipo** | **Description** | **Ejemplo** | | ------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------- | | database | Text | Name of the database calling the method (to distinguish host methods and component methods) | "database":"contactInfo" | -| formula | Text (si lo hay) | Contents of the current line of code at the current level of the call chain (raw text). Corresponde al contenido de la línea referenciada por la propiedad `line` en el archivo fuente indicado por el método. Si el código fuente no está disponible, la propiedad `formula` se omite (Undefined). | "var $stack:=Call chain" | +| formula | Text (si lo hay) | Contenido de la línea actual de código en el nivel actual de la cadena de llamadas (texto bruto). Corresponde al contenido de la línea referenciada por la propiedad `line` en el archivo fuente indicado por el método. Si el código fuente no está disponible, la propiedad `formula` se omite (Undefined). | "var $stack:=Call chain" | | línea | Integer | Número de línea de llamada al método | "line":6 | | name | Text | Nombre del método llamado | "name":"On Load" | | type | Text | Type of the method:
  • "projectMethod"
  • "formObjectMethod"
  • "formmethod"
  • "databaseMethod"
  • "triggerMethod"
  • "executeOnServer" (when calling a project method with the *Execute on Server attribute*)
  • "executeFormula" (when executing a formula via [PROCESS 4D TAGS](../commands-legacy/process-4d-tags.md) or the evaluation of a formula in a 4D Write Pro document)
  • "classFunction"
  • "formMethod"
  • | "type":"formMethod" | From 005fb4f1a0568e1614d2c531328f11d0cdd04bcb Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:12:42 +0100 Subject: [PATCH 105/264] New translations command-name.md (Spanish) --- .../version-21/commands/command-name.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/command-name.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/command-name.md index f48fc456753f3c..9e13979de67e89 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/command-name.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/command-name.md @@ -36,7 +36,7 @@ Hay dos parámetros opcionales: - *info*: propiedades del comando. The returned value is a *bit field*, where the following bits are meaningful: - Primer bit (bit 0): definido en 1 si el comando es [**hilo-seguro**](../Develop/preemptive.md#thread-safe-vs-thread-unsafe-code) (es decir, compatible con la ejecución en un proceso apropiativo) y 0 si es **hilo-inseguro**. Only thread-safe commands can be used in [preemptive processes](../Develop/preemptive.md). - - Second bit (bit 1): set to 1 if the command is **deprecated**, and 0 if it is not. A deprecated command will continue to work normally as long as it is supported, but should be replaced whenever possible and must no longer be used in new code. Los comandos obsoletos en su código generan advertencias en el [Live Checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). + - Segundo bit (bit 1): se define en 1 si el comando es **obsoleto**, y en 0 si no lo es. A deprecated command will continue to work normally as long as it is supported, but should be replaced whenever possible and must no longer be used in new code. Los comandos obsoletos en su código generan advertencias en el [Live Checker y el compilador](../code-editor/write-class-method.md#warnings-and-errors). *theme*: nombre del tema del lenguaje 4D para el comando. @@ -80,7 +80,7 @@ En un formulario, quiere una lista desplegable con los comandos básicos de info  End case ``` -In the English version of 4D, the drop-down list will read: Sum, Average, Min, and Max. In the French version\*, the drop-down list will read: Somme, Moyenne, Min, and Max. +En la versión inglesa de 4D, la lista desplegable leerá: Sum, Average, Min y Max. In the French version\*, the drop-down list will read: Somme, Moyenne, Min, and Max. \*with a 4D application configured to use the French programming language (see compatibility note) @@ -110,7 +110,7 @@ Luego, para el comando "SAVE RECORD" (53) por ejemplo, puede escribir: ## Ejemplo 4 -You want to return a collection of all deprecated commands in your version of 4D. +Quiere devolver una colección de todos los comandos obsoletos en su versión de 4D. ```4d var $info; $Lon_id : Integer From 9dee2d575d364f4caf98dc700c096daf34cb29d7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:12:59 +0100 Subject: [PATCH 106/264] New translations form.md (Spanish) --- .../docusaurus-plugin-content-docs/version-21/commands/form.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md index 355633c3e4ffb9..79fa8e19d3a3a9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/form.md @@ -24,7 +24,7 @@ displayed_sidebar: docs ## Descripción -El comando **Form** devuelve el objeto asociado al formulario actual (instanciado a partir del parámetro *formData* o de la clase de usuario asignada en el editor de formularios). 4D automatically associates an object to the current form in the following cases: +El comando **Form** devuelve el objeto asociado al formulario actual (instanciado a partir del parámetro *formData* o de la clase de usuario asignada en el editor de formularios). 4D asocia automáticamente un objeto al formulario actual en los siguientes casos: - el formulario actual ha sido cargado por uno de los comandos [`DIALOG`](dialog.md), [`Print form`](print-form.md), o [`FORM LOAD`](form-load.md), - el formulario actual es un subformulario, From df8661617949d08a0bd7f216ed511d62a2864909 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:13:09 +0100 Subject: [PATCH 107/264] New translations listbox-get-property.md (Spanish) --- .../version-21/commands/listbox-get-property.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-get-property.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-get-property.md index 1950ec74b81673..e0fe65323178a0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-get-property.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-get-property.md @@ -85,7 +85,7 @@ Dado un list box "MyListbox", si ejecuta la siguiente instrucción: $Value:=LISTBOX Get property(*; "MyListbox";lk selection mode) // el valor devuelto indica el modo de selección ``` -In this case, the result returned indicates whether multiple rows can be selected. +En este caso, el resultado devuelto indica si varios registros pueden ser seleccionados. ## Ejemplo 2 From 78b27c6af47769f2cfa7f3d6cba6f62b1f290933 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:13:11 +0100 Subject: [PATCH 108/264] New translations listbox-set-property.md (Spanish) --- .../version-21/commands/listbox-set-property.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-set-property.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-set-property.md index bad06c1b5092c0..8b269bcc21784a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-set-property.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-set-property.md @@ -69,7 +69,7 @@ In the *property* and *value* parameters, you indicate, respectively, the proper ## Ejemplo 1 -You want to make all columns of the "MyListbox" list box resizable: +Quiere que todas las columnas del list box "MyListbox" sean redimensionables: ```4d LISTBOX SET PROPERTY(*;"MyListbox";lk column resizable;lk yes) //Todas las columnas del list box "MyListbox" se establecen como redimensionables From 43c72466f8a7850bf4e816e6992061dae8a7d167 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:13:18 +0100 Subject: [PATCH 109/264] New translations new-log-file.md (Spanish) --- .../version-21/commands/new-log-file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-log-file.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-log-file.md index dc7638f769dbd6..3c630602133e46 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-log-file.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-log-file.md @@ -20,7 +20,7 @@ displayed_sidebar: docs The **New log file** command closes the current log file, renames it and creates a new one with the same name in the same location as the previous one. This command is meant to be used for setting up a backup system using a logical mirror (see the section *Setting up a logical mirror* in the [4D Server Reference Manual](https://doc/4d.com)). -The command returns the full pathname (access path + name) of the log file being closed (called the “segment”). Este archivo se almacena en la misma ubicación que el archivo de registro actual (especificado en la [página de configuración](../Backup/settings.md#configuration) en el tema de copia de seguridad de la configuración). The command does not carry out any processing (compression, segmentation) on the saved file. No aparece ninguna +The command returns the full pathname (access path + name) of the log file being closed (called the “segment”). Este archivo se almacena en la misma ubicación que el archivo de registro actual (especificado en la [página de configuración](../Backup/settings.md#configuration) en el tema de copia de seguridad de la configuración). El comando no realiza ningún procesamiento (compresión, segmentación) en el archivo guardado. No aparece ninguna caja de diálogo. The file is renamed with the current backup numbers of the database and of the log file, as shown in the following example: DatabaseName\[BackupNum-LogBackupNum\].journal. Por ejemplo: From 3b9ec7f1272c09da20a2d36baf8f0b5258880a45 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:13:32 +0100 Subject: [PATCH 110/264] New translations select-log-file.md (Spanish) --- .../version-21/commands/select-log-file.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/select-log-file.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/select-log-file.md index 4645679308f3d1..93dedb8e715150 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/select-log-file.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/select-log-file.md @@ -19,9 +19,9 @@ displayed_sidebar: docs The **SELECT LOG FILE** command creates, or closes the log file according to the value you pass in parameter. -In *logFile*, pass the name or the full pathname of the log file to be created. If you only pass a name, the file will be created in the "Logs" folder of the database located next to the database structure file. +En *logFile*, pase el nombre o la ruta completa del archivo de registro a ser creado. If you only pass a name, the file will be created in the "Logs" folder of the database located next to the database structure file. -If you pass an empty string in *logFile*, **SELECT LOG FILE** presents an Save File dialog box, allowing the user to choose the name and location of the log file to be created. Si el archivo se crea correctamente, la variable OK toma el valor 1. Otherwise, if the user clicks Cancel or if the log file could not be created, OK is set to 0. +If you pass an empty string in *logFile*, **SELECT LOG FILE** presents an Save File dialog box, allowing the user to choose the name and location of the log file to be created. Si el archivo se crea correctamente, la variable OK toma el valor 1. De lo contrario, si el usuario hace clic en Cancelar o si el archivo de registro no pudo ser creado, OK toma el valor 0. **Note:** The new log file is not generated immediately after execution of the command, but after the next backup (the parameter is kept in the data file and will be taken into account even if the database is closed in the meantime) or a call to the [New log file](new-log-file.md) command. Puede llamar al comando [BACKUP](../commands-legacy/backup.md) para activar la creación del archivo de registro. From 008a62b9ca97b35b059168e0eca3bb2046402a07 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:15:12 +0100 Subject: [PATCH 111/264] New translations wa-get-context.md (Spanish) --- .../version-21/commands/wa-get-context.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/wa-get-context.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/wa-get-context.md index 98329331b077f7..366311d7124bd5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/wa-get-context.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/wa-get-context.md @@ -18,7 +18,7 @@ displayed_sidebar: docs ### Descripción -El comando `WA Get context` recupera el objeto de contexto definido para `$4d` en el área Web designada por los parámetros \* y *object* utilizando [`WA SET CONTEXT`](./wa-set-context.md). If `WA SET CONTEXT` was not called for the web area the command returns `null`. +El comando `WA Get context` recupera el objeto de contexto definido para `$4d` en el área Web designada por los parámetros \* y *object* utilizando [`WA SET CONTEXT`](./wa-set-context.md). Si `WA SET CONTEXT` no fue llamado para el área web, el comando devuelve `null`. :::note From aaf86aeeed4b839919d9315008b34403ece834e3 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:15:21 +0100 Subject: [PATCH 112/264] New translations client-server.md (Spanish) --- .../version-21/settings/client-server.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md index b03e5465634991..a2115ea9a211c6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/client-server.md @@ -92,7 +92,7 @@ En caso de modificación, deberá reiniciar la aplicación para que se tenga en :::note -This option is not available when the [QUIC](#network-layer) network layer is selected. +Esta opción no está disponible cuando se selecciona la capa de red [QUIC](#network-layer). ::: @@ -110,7 +110,7 @@ Cuando esta opción está marcada, todas las máquinas remotas 4D que se conecta :::note -This option is not available when the [QUIC](#network-layer) network layer option is selected. +Esta opción no está disponible cuando se selecciona la opción capa de red [QUIC](#network-layer). ::: From 5307377c106a4765732975b8d2be6e8d0716e4a3 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:15:33 +0100 Subject: [PATCH 113/264] New translations web.md (Spanish) --- .../docusaurus-plugin-content-docs/version-21/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/web.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/web.md index 052d2beaf51c2c..d827ba37fa6121 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/web.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/web.md @@ -124,7 +124,7 @@ Define el sistema de autenticación que desea aplicar a su servidor web. Se prop - Contraseñas con protocolo BASIC - Contraseñas con protocolo DIGEST -Se recomienda utilizar la autenticación **personalizada**. See [**Authentication**](../WebServer/authentication.md) section. +Se recomienda utilizar la autenticación **personalizada**. Ver la sección[**autenticación**](../WebServer/authentication.md). #### Generic Web User From ef3aa21b8e19d332a7d2997a632ee743ff313eff Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:16:09 +0100 Subject: [PATCH 114/264] New translations updates.md (Spanish) --- .../docusaurus-plugin-content-docs/version-21/Notes/updates.md | 1 + 1 file changed, 1 insertion(+) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Notes/updates.md index ca4a2a53300ae3..b5ccc8c652538b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Notes/updates.md @@ -16,6 +16,7 @@ Lea [**Novedades en 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/), la ent - posibilidad para definir los [gestores de peticiones HTTP](../WebServer/http-request-handler.md) utilizando una propiedad `handlers` en el parámetro *settings* de la función [`start()`](../API/WebServerClass.md#start) del servidor Web, - el objeto servidor Web contiene nuevas propiedades [`rules`](../API/WebServerClass.md#rules) y [`handlers`](../API/WebServerClass.md#handlers). - Nuevos [eventos ORDA sobre los datos](../ORDA/orda-events.md): validateSave, saving, afterSave, validateDrop, dropping, afterDrop. +- Support of the new [`restrictedByDefault` property](../ORDA/privileges.md#restriction-modes) in the `roles.json` file to block access by default to all resources without explicit permission. - Nueva opción que permite utilizar certificados de Windows Certificate Store en lugar de una carpeta local de certificados en las clases [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) y [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew). - Cliente/servidor: - Puede mostrar las páginas Qodly en las áreas Web y [compartir la sesión del cliente remoto](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). From fb5eb547b73a30c36dd78e9946bf98e23cc04b9e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:16:14 +0100 Subject: [PATCH 115/264] New translations entities.md (Spanish) --- .../docusaurus-plugin-content-docs/version-21/ORDA/entities.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/entities.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/entities.md index 1d3ac2bbf5320c..ceb0d989f2296a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/entities.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/entities.md @@ -566,7 +566,7 @@ El siguiente diagrama ilustra el bloqueo optimista: 1. Dos procesos cargan la misma entidad.

    ![](../assets/en/ORDA/optimisticLock1.png) -2. El primer proceso modifica la entidad y valida el cambio. Se llama al método `entity.save( )`. El motor 4D compara automáticamente el valor del marcador interno de la entidad modificada con el de la entidad almacenada en los datos. Since they match, the entity is saved and its stamp value is incremented.

    ![](../assets/en/ORDA/optimisticLock2.png) +2. El primer proceso modifica la entidad y valida el cambio. Se llama al método `entity.save( )`. El motor 4D compara automáticamente el valor del marcador interno de la entidad modificada con el de la entidad almacenada en los datos. Como corresponden, la entidad se guarda y el valor de su marcador se incrementa.

    ![](../assets/en/ORDA/optimisticLock2.png) 3. El segundo proceso también modifica la entidad cargada y valida sus cambios. Se llama al método `entity.save( )`. Since the stamp value of the modified entity does not match the one of the entity stored in the data, the save is not performed and an error is returned.

    ![](../assets/en/ORDA/optimisticLock3.png) From 156d755ed06b353395c299f31b9ee24d26b928e1 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:16:19 +0100 Subject: [PATCH 116/264] New translations orda-events.md (Spanish) --- .../version-21/ORDA/orda-events.md | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index 586a2822234bef..020fc5dbff9a6e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -327,11 +327,11 @@ Function event validateSave ($event : Object) Este evento se activa cada vez que una entidad está a punto de ser guardada. - si define la función a nivel de entidad (primera sintaxis), se llama para cualquier atributo de la entidad. -- si definió la función en el nivel de atributo (segunda sintaxis), sólo se llama para este atributo. This function is **not** executed if the attribute has not been touched in the entity. +- si definió la función en el nivel de atributo (segunda sintaxis), sólo se llama para este atributo. Esta función **no** se ejecuta si el atributo no ha sido tocado en la entidad. La función recibe un [objeto *event*](#event-parameter) como parámetro. -This event is triggered by the following functions: +Este evento es activado por las siguientes funciones: - [`entity.save()`](../API/EntityClass.md#save) - [`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) @@ -348,7 +348,7 @@ No se recomienda actualizar la entidad dentro de esta función (utilizando `This #### Ejemplo -In this example, it is not allowed to save a product with a margin lower than 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. +En este ejemplo, no se permite guardar un producto con un margen inferior al 50%. In case of an invalid price attribute, you return an error object and thus, stop the save action. ```4d // ProductsEntity class @@ -380,16 +380,16 @@ Function event saving ($event : Object) Este evento se activa cada vez que se guarda una entidad. - If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. The function is executed even if no attribute has been touched in the entity (e.g. in case of sending data to an external app each time a save is done). -- If you defined the function at the attribute level (second syntax), it is called only for this attribute. The function is **not** executed if the attribute has not been touched in the entity. +- If you defined the function at the attribute level (second syntax), it is called only for this attribute. La función **no** se ejecuta si el atributo no ha sido tocado en la entidad. La función recibe un [objeto *event*](#event-parameter) como parámetro. -This event is triggered by the following functions: +Este evento es activado por las siguientes funciones: - [`entity.save()`](../API/EntityClass.md#save) - [`dataClass.fromCollection()`](../API/DataClassClass.md#fromcollection) -Este evento se activa **mientras** la entidad se guarda. If a [`validateSave()`](#function-event-validatesave) event function was defined, the `saving()` event function is called if no error was triggered by `validateSave()`. For example, you can use this event to create a document on a Google Drive account. +Este evento se activa **mientras** la entidad se guarda. If a [`validateSave()`](#function-event-validatesave) event function was defined, the `saving()` event function is called if no error was triggered by `validateSave()`. Por ejemplo, puede utilizar este evento para crear un documento en una cuenta de Google Drive. :::note @@ -403,7 +403,7 @@ To stop the action, the code of the function must return an [error object](#erro #### Ejemplo -When a file is saved on disk, catch errors related to disk space for example. +Cuando se guarda un archivo en el disco, por ejemplo, se capturan errores relacionados con el espacio de disco. ```4d // ProductsEntity class @@ -443,14 +443,14 @@ Función evento afterSave($event : Object) // código ``` -This event is triggered just after an entity is saved in the data file, when at least one attribute was modified. It is not executed if no attribute has been touched in the entity. +This event is triggered just after an entity is saved in the data file, when at least one attribute was modified. No se ejecuta si no se ha tocado ningún atributo en la entidad. -This event is useful after saving data to propagate the save action outside the application or to execute administration tasks. For example, it can be used to send a confirmation email after data have been saved. Or, in case of error while saving data, it can make a rollback to restore a consistent state of data. +This event is useful after saving data to propagate the save action outside the application or to execute administration tasks. Por ejemplo, se puede utilizar para enviar un correo electrónico de confirmación después de guardar los datos. Or, in case of error while saving data, it can make a rollback to restore a consistent state of data. La función recibe un [objeto *event*](#event-parameter) como parámetro. - To avoid infinite loops, calling a [`save()`](../API/EntityClass.md#save) on the current entity (through `This`) in this function is **not allowed**. Se producirá un error. -- Throwing an [error object](#error-object) is **not supported** by this function. +- Arrojar un [objeto error](#error-object) **no es soportado** por esta función. #### Ejemplo @@ -483,7 +483,7 @@ Function event validateDrop ($event : Object) // código ``` -This event is triggered each time an entity is about to be dropped. +Este evento se activa cada vez que una entidad está a punto de ser soltada. - If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. - If you defined the function at the attribute level (second syntax), it is called only for this attribute. @@ -555,7 +555,7 @@ To stop the action, the code of the function must return an [error object](#erro #### Ejemplo -Here is an example of `dropping` event at entity level: +Estes es un ejemplo del evento `dropping` a nivel de entidad: ```4d // ProductsEntity class @@ -589,18 +589,18 @@ Function event afterDrop($event : Object) // código ``` -This event is triggered just after an entity is dropped. +Este evento se activa justo después de que una entidad es soltada. -This event is useful after dropping data to propagate the drop action outside the application or to execute administration tasks. For example, it can be used to send a cancellation email after data have been dropped. Or, in case of error while dropping data, it can log an information for the administrator to check data consistency. +This event is useful after dropping data to propagate the drop action outside the application or to execute administration tasks. Por ejemplo, se puede utilizar para enviar un correo electrónico de cancelación después de soltar los datos. Or, in case of error while dropping data, it can log an information for the administrator to check data consistency. La función recibe un [objeto *event*](#event-parameter) como parámetro. - To avoid infinite loops, calling a [`drop()`](../API/EntityClass.md#drop) on the current entity (through `This`) in this function is **not allowed**. Se producirá un error. -- Throwing an [error object](#error-object) is **not supported** by this function. +- Arrojar un [objeto error](#error-object) **no es soportado** por esta función. :::note -The dropped entity is referenced by `This` and still exists in memory. +La entidad eliminada es referenciada por `This` y aún existe en memoria. ::: From 85d52838002f8559424e83367d5b80a92f77cd54 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:16:24 +0100 Subject: [PATCH 117/264] New translations privileges.md (Spanish) --- .../version-21/ORDA/privileges.md | 352 ++++++++---------- 1 file changed, 152 insertions(+), 200 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md index 5bb31631d97539..5961498af51828 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md @@ -27,27 +27,21 @@ Si un usuario intenta ejecutar una acción y no tiene los derechos de acceso ade Puede asignar acciones de permiso específicas a los siguientes recursos en su proyecto: -- el almacén de datos -- una clase de datos -- un atributo (incluidos los calculados y los alias) -- una función de clase de modelo de datos -- una función [singleton](../REST/$singleton.md) +- the [datastore](../ORDA/dsMapping.md#datastore) +- the [dataclasses](../ORDA/dsMapping.md#dataclass) +- [attributes](../ORDA/dsMapping.md#attribute) (including [computed](./ordaClasses.md#computed-attributes-1) and [alias](./ordaClasses.md#alias-attributes-1)) +- functions of the [data model classes](../ORDA/ordaClasses.md) +- [singleton](../REST/$singleton.md) functions Cada vez que se accede a un recurso dentro de una sesión (sin importar la forma en que se acceda), 4D verifica que la sesión tenga los permisos apropiados y rechaza el acceso si no está autorizado. -Una acción de permiso definida en un nivel determinado se hereda por defecto en los niveles inferiores, pero se pueden establecer varios permisos: - -- Una acción de permiso definida a nivel de almacén de datos se asigna automáticamente a todas las clases de datos. La acción de permiso *execute* definida en el nivel del datastore se aplica a todas las funciones del proyecto, incluyendo todas las funciones [singleton](../REST/$singleton.md). -- Una acción de permiso definida a nivel de clase de datos anula la configuración del almacén de datos (si existe). Por defecto, todos los atributos de la clase de datos heredan de los permisos de la clase de datos. -- A diferencia de los permisos de clase de datos, una acción de permiso definida a nivel de atributo no anula los permisos de clase de datos padre, sino que se añade a ellos. Por ejemplo, si asignó el privilegio "general" a una clase de datos y el privilegio "detail" a un atributo de la clase de datos, tanto el privilegio "general" como el privilegio "detail" deben definirse en la sesión para acceder al atributo. - -:::info +## Permissions -Los permisos controlan el acceso a los objetos o funciones del almacén de datos. Si desea filtrar los datos leídos según algún criterio, puede considerar [restringir las selecciones de entidades](entities.md#restricting-entity-selections) que puede ser más apropiado en este caso. +A permission is the ability to do an action on a resource. For example, *execute the ds.myTable.myFunction()* represents a **permission**. Permissions are defined for the project in the [`roles.json`](#rolesjson-file) file. Cada permiso se puede dar a uno o más [privilegios](#privileges-and-roles). -::: +When **no specific permission** has been defined for a resource, access to the resource may be automatically **unrestricted** or **restricted** depending on the [default mode defined for the project](#restriction-modes). -## Acciones de autorización +### Acciones de autorización Las acciones disponibles están relacionadas con el recurso de destino. @@ -73,6 +67,65 @@ Las acciones disponibles están relacionadas con el recurso de destino. Los parámetros de permisos requieren ser consistentes, en particular los permisos **update** y **drop** también necesitan el permiso **read** (pero **create** no lo necesita). +### Permisos heredados + +Una acción de permiso definida en un nivel determinado se hereda por defecto en los niveles inferiores, pero se pueden establecer varios permisos: + +- Una acción de permiso definida a nivel de almacén de datos se asigna automáticamente a todas las clases de datos. La acción de permiso *execute* definida en el nivel del datastore se aplica a todas las funciones del proyecto, incluyendo todas las funciones [singleton](../REST/$singleton.md). +- Una acción de permiso definida a nivel de clase de datos anula la configuración del almacén de datos (si existe). Por defecto, todos los atributos de la clase de datos heredan de los permisos de la clase de datos. +- A diferencia de los permisos de clase de datos, una acción de permiso definida a nivel de atributo no anula los permisos de clase de datos padre, sino que se añade a ellos. Por ejemplo, si asignó el privilegio "general" a una clase de datos y el privilegio "detail" a un atributo de la clase de datos, tanto el privilegio "general" como el privilegio "detail" deben definirse en la sesión para acceder al atributo. + +:::info + +Los permisos controlan el acceso a los objetos o funciones del almacén de datos. Si desea filtrar los datos leídos según algún criterio, puede considerar [restringir las selecciones de entidades](entities.md#restricting-entity-selections) que puede ser más apropiado en este caso. + +::: + +### Asignación de permisos a las funciones de la clase ORDA + +Al configurar los permisos, las funciones de clase ORDA se declaran en el elemento `applyTo` usando la siguiente sintaxis: + +```json +. +``` + +Por ejemplo, si desea aplicar un permiso a la siguiente función: + +```4d +// cs.CityEntity class +Class extends Entity + Function getPopulation() : Integer + ... +``` + +... tiene que escribir: + +```json +"applyTo":"City.getPopulation" +``` + +Significa que no puede utilizar los mismos nombres de función en las distintas clases ORDA (entidad, selección de entidad, dataclass) si desea que se les asignen privilegios. En este caso, debe utilizar nombres de función distintos. Por ejemplo, si has creado una función "drop" en ambas clases `cs.CityEntity` y `cs.CitySelection`, necesita darles nombres diferentes como `dropEntity()` y `dropSelection()`. A continuación, puede escribir en el archivo "roles.json": + +```json + "permissions": { + "allowed": [ + { + "applyTo": "City.dropEntity", + "type": "method", + "promote": [ + "name" + ] + }, + { + "applyTo": "City.dropSelection", + "type": "method", + "promote": [ + "name" + ] + } + ] +``` + ## Privilegios y roles Un \*\*privilegio \*\* es la capacidad técnica de ejecutar \*\*acciones \*\* en \*\*recursos \*\*, mientras que un **rol** es un privilegio publicado para ser utilizado por un administrador. Básicamente, un rol reúne varios privilegios para definir un perfil de usuario empresarial. Por ejemplo, "manageInvoices" podría ser un privilegio mientras que "secretary" podría ser un rol (que incluye "manageInvoices" y otros privilegios). @@ -111,70 +164,7 @@ exposed Function authenticate($identifier : Text; $password : Text)->$result : T ## archivo `roles.json` -El archivo `roles.json` describe todos los parámetros de seguridad del proyecto. - -### Archivo por defecto - -Al crear un proyecto, se crea un archivo `roles.json` por defecto en la siguiente ubicación: `/Project/Sources/` (ver la sección [Architecture](../Project/architecture.md#sources)). - -El archivo por defecto tiene el siguiente contenido: - -```json title="/Project/Sources/roles.json" - -{ - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - - "roles": [], - - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": ["all"], - "create": ["all"], - "update": ["all"], - "drop": ["all"], - "execute": ["all"], - "promote": ["all"] - } - ] - }, - - "forceLogin": true - -} - -``` - -For a highest level of security, the "all" privilege is assigned to all permissions in the datastore, thus data access on the whole `ds` object is disabled by default. The principle is as follows: assigning a permission is like putting a lock on a door. Only sessions with privilege having the corresponding key (i.e., a permission) will be able to open the lock. -Se recomienda no modificar ni utilizar este privilegio de bloqueo, sino agregar permisos específicos a cada recurso que desee poner a disposición desde solicitudes web o REST ([ver ejemplo a continuación](#example-of-privilege-configuration)). - -:::caution - -Cuando no se definen parámetros específicos en el archivo `roles.json`, los accesos no son limitados. Esta configuración le permite desarrollar la aplicación sin tener que preocuparse por los accesos, pero no se recomienda en entornos de producción. - -::: - -:::note Compatibilidad - -En versiones anteriores, el archivo `roles.json` no fue creado por defecto. A partir de 4D 20 R6, al abrir un proyecto existente que no contiene un archivo `roles.json` o los parámetros `"forceLogin": true`, el botón **Activar la autenticación REST mediante la función ds.authentify()** está disponible en la página [**Funcionalidades web** de la caja de diálogo Parámetros](../settings/web.md#access). Este botón actualiza automáticamente su configuración de seguridad (es posible que tenga que modificar su código, [ver esta publicación del blog](https://blog.4d.com/force-login-becomes-default-for-all-rest-auth/)). -::: - -:::note Qodly Studio - -En Qodly Studio for 4D, el modo se puede definir utilizando la opción [**Forzar inicio de sesión**](../WebServer/qodly-studio.md#force-login) en el panel de Privilegios. - -::: - -### Sintaxis - -La sintaxis del archivo `roles.json` es la siguiente: +El archivo `roles.json` describe todos los parámetros de seguridad web del proyecto. La sintaxis del archivo `roles.json` es la siguiente: | Nombre de propiedad | | | Tipo | Obligatorio | Descripción | | ------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------ | @@ -194,60 +184,87 @@ La sintaxis del archivo `roles.json` es la siguiente: | | | \[].drop | Colección de cadenas | | Lista de privilegios | | | | \[].execute | Colección de cadenas | | Lista de privilegios | | | | \[].promote | Colección de cadenas | | Lista de privilegios | -| forceLogin | | | Boolean | | True para habilitar el [modo "forceLogin"](../REST/authUsers.md#force-login-mode) | +| restrictedByDefault | | | Boolean | | Si es true, se niega el acceso a recursos sin permisos explícitos | +| forceLogin | | | Boolean | | If true, enables ["forceLogin" mode](../REST/authUsers.md#force-login-mode) | :::caution Recordatorio - El nombre de privilegio "WebAdmin" está reservado a la aplicación. No se recomienda utilizar este nombre para los privilegios personalizados. -- los nombres de `privileges` y `roles` son insensibles a mayúsculas y minúsculas. +- `privileges` and `roles` names are case-insensitive. ::: -#### Asignación de permisos a las funciones de la clase ORDA +### Default File Location and Content -Al configurar los permisos, las funciones de clase ORDA se declaran en el elemento `applyTo` usando la siguiente sintaxis: +When a new project is created, a default `roles.json` file is generated at: -```json -. ``` - -Por ejemplo, si desea aplicar un permiso a la siguiente función: - -```4d -// cs.CityEntity class -Class extends Entity - Function getPopulation() : Integer - ... +/Project/Sources/ ``` -... tiene que escribir: +Ver la sección [Arquitectura](../Project/architecture.md#sources). -```json -"applyTo":"City.getPopulation" -``` +Contenido predeterminado: -Significa que no puede utilizar los mismos nombres de función en las distintas clases ORDA (entidad, selección de entidad, dataclass) si desea que se les asignen privilegios. En este caso, debe utilizar nombres de función distintos. Por ejemplo, si has creado una función "drop" en ambas clases `cs.CityEntity` y `cs.CitySelection`, necesita darles nombres diferentes como `dropEntity()` y `dropSelection()`. A continuación, puede escribir en el archivo "roles.json": +```json title="/Project/Sources/roles.json" -```json - "permissions": { - "allowed": [ - { - "applyTo": "City.dropEntity", - "type": "method", - "promote": [ - "name" - ] - }, - { - "applyTo": "City.dropSelection", - "type": "method", - "promote": [ - "name" - ] - } +{ + "privileges": [ + ], + "roles": [ + ], + "permissions": { + "allowed": [ + { + "applyTo": "ds", + "type": "datastore", + "read": [], + "create": [], + "update": [], + "drop": [], + "execute": [], + "promote": [] + } ] + }, + "restrictedByDefault": false, + "forceLogin": false +} ``` +:::note Compatibilidad + +En versiones anteriores, el archivo `roles.json` no fue creado por defecto. A partir de 4D 20 R6, al abrir un proyecto existente que no contiene un archivo `roles.json` o los parámetros `"forceLogin": true`, el botón **Activar la autenticación REST mediante la función ds.authentify()** está disponible en la página [**Funcionalidades web** de la caja de diálogo Parámetros](../settings/web.md#access). Este botón actualiza automáticamente su configuración de seguridad (es posible que tenga que modificar su código, [ver esta publicación del blog](https://blog.4d.com/force-login-becomes-default-for-all-rest-auth/)). + +::: + +:::note Qodly Studio + +In Qodly Studio for 4D, the login mode can be set using the [**Force login** option](https://developer.4d.com/qodly/4DQodlyPro/force-login) in the Roles and Privileges panel. + +::: + +## Restriction Modes + +The `restrictedByDefault` property configures how every [resource](#resources) are accessed when [no specific permission is defined for it](#permission): + +- **Unrestricted mode** (`restrictedByDefault`: **false**): Resources without defined permissions are accessible to all requests. Este modo es adecuado para entornos de desarrollo donde el acceso se puede restringir gradualmente. +- **Restricted mode** (`restrictedByDefault`: **true**): Resources without defined permissions are blocked by default. Este modo se recomienda para entornos de producción donde el acceso debe ser otorgado explícitamente. + +:::note Compatibilidad + +- When **creating a new project**, the `restrictedByDefault` property is set to **false** in the *roles.json* file (see below). Tenga en cuenta que esta configuración está hecha a medida para un inicio rápido y un desarrollo fluido. In production environment, [it is recommended to set the `restrictedByDefault` and `forceLogin` properties to **true**](#configuring-restrictedbydefault-and-forcelogin-properties). +- In **projects converted from previous releases**; when enabling access to Qodly Studio using the [One-click configuration dialog](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#one-click-configuration), the `restrictedByDefault` property is added with value **true** in the *roles.json* file. + +::: + +### Configuración recomendada + +Depending on your environment, the recommended settings are: + +- **Production**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **true**. This ensures maximum security by requiring user authentication and explicitly defined permissions for resource access. +- **Development**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **false**. This allows easier access during development and debugging, with the possibility to gradually apply restrictions. + ### Archivo `Roles_Errors.json` El archivo `roles.json` es analizado por 4D al inicio. Debe reiniciar la aplicación si desea que se tengan en cuenta las modificaciones en este archivo. @@ -267,93 +284,28 @@ End if ## Ejemplo de configuración de privilegios -The good practice is to keep all data access locked by default thanks to the "all" privilege and to configure the `roles.json` file to only open controlled parts to authorized sessions. For example, to allow some accesses to "guest" sessions: - ```json title="/Project/Sources/roles.json" { - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - "roles": [], - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": [ - "all" - ], - "create": [ - "all" - ], - "update": [ - "all" - ], - "drop": [ - "all" - ], - "execute": [ - "all" - ], - "promote": [ - "all" - ] - }, - { - "applyTo": "ds.loginAs", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.hasPrivilege", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.clearPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.isGuest", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.getPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.setAllPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "mySingletonClass.createID", - "type": "singletonMethod", - "execute": [ - "guest" - ] - } - ] - }, - "forceLogin": true + "forceLogin": true, + "restrictedByDefault": true, + "permissions": { + "allowed": [ + { + "applyTo": "People", + "type": "dataclass", + "read": [ + "viewPeople" + ] + } + ] + }, + "privileges": [ + { + "privilege": "viewPeople", + "includes": [] + } + ], + "roles": [] } ``` From 7f9dbf980cdc5f450a5919f4f62198d0da54c4dc Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:16:55 +0100 Subject: [PATCH 118/264] New translations $filter.md (Spanish) --- .../version-21/REST/$filter.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$filter.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$filter.md index 39c7beb92cfae9..daaa27e8603038 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$filter.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$filter.md @@ -90,13 +90,13 @@ Use the `params` property to provide the filter with the vector comparison param El parámetro *vectorComparison* es una colección de los siguientes elementos: -| Propiedad | Tipo | Descripción | -| -------------------------------------------------------------------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [].vector | Colección de números | Obligatorio. Una colección que representa el vector a comparar | -| [].metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. Supported values:
  • "cosine" (default if omitted): calculates the cosine similarity between vectors.
  • "dot": calculates the dot similarity of vectors.
  • "euclídea": calcula la distancia euclidiana entre vectores. | -| [].threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | +| Propiedad | Tipo | Descripción | +| -------------------------------------------------------------------------------- | -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [].vector | Colección de números | Obligatorio. Una colección que representa el vector a comparar | +| [].metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. Supported values:
  • "cosine" (default if omitted): calculates the cosine similarity between vectors.
  • "dot": calcula la similitud de puntos de los vectores.
  • "euclídea": calcula la distancia euclidiana entre vectores. | +| [].threshold | Real | Opcional (por defecto: 0,5). Un valor umbral utilizado para filtrar las comparaciones de vectores en función de su puntuación de similitud coseno, punto o euclídea según la "métrica" seleccionada. Es altamente recomendable elegir una similitud que se adapte mejor a su caso de uso específico para obtener resultados óptimos. | -Only a subset of **comparator** symbols are supported with vector comparisons. Tenga en cuenta que comparan los resultados con el valor umbral: +Solo un subconjunto de símbolos **comparadores** son soportados con comparaciones vectoriales. Tenga en cuenta que comparan los resultados con el valor umbral: | Comparador | Símbolo(s) | Comentario | | ----------------- | ----------------------------- | --------------------------- | @@ -126,7 +126,7 @@ En este ejemplo, buscamos en la clase de datos Person todas las personas cuya pr GET /rest/Person/?filter="anotherobj.mynum > 50" ``` -In this example, we do a vector search with basic values: +En este ejemplo, hacemos una búsqueda vectorial con los valores de base: ``` GET /rest/Person/?filter="VectorAtt>=:1"&$params='[{vector:[1,2,3],threshold:1}]' From 95350a84b6cdef941a1c38cf74e8ac2ecba34dba Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:18:03 +0100 Subject: [PATCH 119/264] New translations vp-export-document.md (Spanish) --- .../version-21/ViewPro/commands/vp-export-document.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index 8dfcf9c5401f37..7617707ba0cfbb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -77,11 +77,11 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para | | includeStyles | boolean | Si se incluye el estilo al exportar, por defecto true. | | | includeFormulas | boolean | Si se incluye la fórmula al exportar, por defecto true. | | | saveAsView | boolean | Si aplicar la cadena de formato al valor de exportación al exportar, por defecto false. | -| | rowHeadersAsFrozenColumns | boolean | Whether to treat the row headers as frozen columns when exporting, default false. | +| | rowHeadersAsFrozenColumns | boolean | Si tratar los encabezados de línea como columnas congeladas al exportar, por defecto false. | | | columnHeadersAsFrozenRows | boolean | Si tratar los encabezados de columna como líneas congeladas al exportar, por defecto false. | | | includeAutoMergedCells | boolean | Si se incluyen las celdas combinadas automáticamente al exportar, false por defecto. | -| | includeCalcModelCache | boolean | Si desea incluir los datos adicionales de cálculo. Can be faster when open the file with those data, default false. | -| | includeUnusedNames | boolean | Whether to include the unused custom name when exporting, default true. | +| | includeCalcModelCache | boolean | Si desea incluir los datos adicionales de cálculo. Puede ser más rápido al abrir el archivo con esos datos, false por defecto. | +| | includeUnusedNames | boolean | Si se incluye el nombre personalizado no utilizado al exportar, true por defecto. | | | includeEmptyRegionCells | boolean | Si se incluyen celdas vacías (celdas sin datos o solo con estilo) fuera del rango de datos utilizado, por defecto true. | | | contraseña | text | Contraseña a definir para abrir el libro de trabajo. | | `\` | | any | Toda propiedad personalizada que estará disponible a través del parámetro $3 en el método de retrollamada. | From dfe9901a3cf457e9fa31df7dc8acc02710cd44b1 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:18:09 +0100 Subject: [PATCH 120/264] New translations vp-find.md (Spanish) --- .../version-21/ViewPro/commands/vp-find.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md index 4ccd334c12e81f..cdf07a14ec6e8f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-find.md @@ -33,7 +33,7 @@ Puede pasar el parámetro opcional *searchCondition* para especificar el funcion | afterRow | Integer | El número de la línea justo antes de la línea inicial de la búsqueda. Si *rangeObj* es un rango combinado, el número de línea indicado debe ser del primer rango. Valor por defecto: -1 (inicio de *rangeObj*) | | all | Boolean |
  • True - Se devuelven todas las celdas en *rangeObj* correspondientes a *searchValue*
  • False - (valor por defecto) Sólo se devuelve la primera celda de *rangeObj* correspondiente a *searchValue*
  • | | flags | Integer |
    `vk find flag exact match`El contenido completo de la celda debe coincidir completamente con el valor de búsqueda
    `vk find flag ignore case`Las mayúsculas y minúsculas se consideran iguales. Ej: "a" es lo mismo que "A".
    `vk find flag none`no search flags are considered (default)
    `vk find flag use wild cards`Wildcard characters (\*,?) puede utilizarse en la cadena de búsqueda. Los caracteres comodín se pueden utilizar en cualquier comparación de cadenas para coincidir con cualquier número de caracteres:
  • \* para cero o varios caracteres (por ejemplo, al buscar "bl*" se puede encontrar "bl", "black" o "blob")
  • ? para un solo carácter (por ejemplo, la búsqueda de "h?t" puede encontrar "hot", o "hit"
  • Estos indicadores pueden combinarse. Por ejemplo: $search.flags:=vk find flag use wild cards+vk find flag ignore case | -| order | Integer |
    `vk find order by columns`La búsqueda se realiza por columnas. Each row of a column is searched before the search continues to the next column.
    `vk find order by rows`The search is performed by rows. Se busca en cada columna de una linea antes de continuar con la siguiente linea (por defecto)
    | +| order | Integer |
    `vk find order by columns`La búsqueda se realiza por columnas. Se busca en cada línea de una columna antes de continuar con la siguiente.
    `vk find order by rows`La búsqueda es realizada por líneas. Se busca en cada columna de una linea antes de continuar con la siguiente linea (por defecto)
    | | target | Integer |
    `vk find target formula`La búsqueda se realiza en la fórmula de la celda
    `vk find target tag`La búsqueda se realiza en la etiqueta de la celda
    `vk find target text`La búsqueda se realiza en el texto de la celda (predeterminado)

    Estas banderas pueden combinarse. Por ejemplo:$search.target:=vk find target formula+vk find target text

    | En el parámetro opcional *replaceValue*, puede pasar un texto para que ocupe el lugar de toda instancia del texto en el *searchValue* encontrado en *rangeObj*. From b86db4366f84ca22a04f4de803478d45f261a302 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:18:53 +0100 Subject: [PATCH 121/264] New translations vp-import-document.md (Spanish) --- .../ViewPro/commands/vp-import-document.md | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md index e8bed742d07c39..229ed41326b42a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-import-document.md @@ -43,33 +43,33 @@ Se devuelve un error si el parámetro `filePath` no es válido, o si el archivo El parámetro opcional *paramObj* permite definir las propiedades del documento importado: -| Parámetros | | Tipo | Descripción | -| ------------ | ------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| formula | | 4D.Function | Un método de retollamada que se lanzará cuando la importación haya terminado. Debe utilizar una fórmula devuelta por el comando [`Formula`](../../commands/formula.md). Ver [Pasar un método de retrollamada (fórmula)](vp-export-document.md#passing-a-callback-method-formula). | -| contraseña | | text | Sólo Microsoft Excel (opcional) - La contraseña utilizada para proteger un documento MS Excel. | -| csvOptions | | object | opciones de importación csv | -| | range | object | Rango de celdas que contiene la primera celda donde se escribirán los datos. Si el rango especificado no es un rango de celdas, sólo se utiliza la primera celda del rango. | -| | rowDelimiter | text | Delimitador de línea. Si no está presente, el delimitador es determinado automáticamente por 4D. | -| | columnDelimiter | text | Delimitador de columna. Por defecto: "," | -| sjsOptions | | object | opciones para la importación de sjs | -| | calcOnDemand | boolean | Si se calculan las fórmulas sólo cuando se solicitan, por defecto es false. | -| | dynamicReferences | boolean | Si calcular funciones con referencias dinámicas, por defecto es true. | -| | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | -| | includeFormulas | boolean | Si se incluyen las fórmulas al cargar, por defecto es true. | -| | includeStyles | boolean | Si se incluyen los estilos al cargar, por defecto es true. | -| | includeUnusedStyles | boolean | Si se incluyen los estilos de nombre no utilizados al convertir excel xml a json, por defecto es true. | -| | openMode | integer |
  • 0 (normal): modo abierto normal, sin perezoso (lazy) e incremental. When opening file, UI and UI event could be refreshed and responsive at specific time points.
  • 1 (lazy): modo de apertura lazy. Al abrir el archivo, sólo se cargará directamente la hoja activa. Las demás hojas sólo se cargarán cuando se vayan a utilizar.
  • 2 (incremental): modo abierto incremental. Al abrir un archivo, la interfaz de usuario y el evento de interfaz de usuario podrían actualizarse y responder directamente.
  • | -| excelOptions | | object | Sólo Excel (opcional) - Opciones para exportar Excel | -| | includeStyles | boolean | Si se incluye el estilo al importar, por defecto true. | -| | includeFormulas | boolean | Si se incluye la fórmula al importar, por defecto true. | -| | frozenColumnsAsRowHeaders | boolean | Bien sea tratar las columnas congeladas como encabezados de línea al importar, por defecto false. | -| | frozenRowsAsColumnHeaders | boolean | Whether to treat the frozen rows as column headers when importing, default false. | -| | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | -| | dynamicReferences | boolean | Si calcular funciones con referencia dinámica, por defecto true. | -| | calcOnDemand | boolean | Whether to calculate formulas only when they are demanded, default false. | -| | includeUnusedStyles | boolean | Si incluir el estilo de nombre no utilizado al convertir excel xml al json, default true. | -| | contraseña | text | La contraseña para abrir el workbook. | -| | openMode | text | The open mode of normal, lazy and incremental. Por defecto es normal. | +| Parámetros | | Tipo | Descripción | +| ------------ | ------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| formula | | 4D.Function | Un método de retollamada que se lanzará cuando la importación haya terminado. Debe utilizar una fórmula devuelta por el comando [`Formula`](../../commands/formula.md). Ver [Pasar un método de retrollamada (fórmula)](vp-export-document.md#passing-a-callback-method-formula). | +| contraseña | | text | Sólo Microsoft Excel (opcional) - La contraseña utilizada para proteger un documento MS Excel. | +| csvOptions | | object | opciones de importación csv | +| | range | object | Rango de celdas que contiene la primera celda donde se escribirán los datos. Si el rango especificado no es un rango de celdas, sólo se utiliza la primera celda del rango. | +| | rowDelimiter | text | Delimitador de línea. Si no está presente, el delimitador es determinado automáticamente por 4D. | +| | columnDelimiter | text | Delimitador de columna. Por defecto: "," | +| sjsOptions | | object | opciones para la importación de sjs | +| | calcOnDemand | boolean | Si se calculan las fórmulas sólo cuando se solicitan, por defecto es false. | +| | dynamicReferences | boolean | Si calcular funciones con referencias dinámicas, por defecto es true. | +| | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | +| | includeFormulas | boolean | Si se incluyen las fórmulas al cargar, por defecto es true. | +| | includeStyles | boolean | Si se incluyen los estilos al cargar, por defecto es true. | +| | includeUnusedStyles | boolean | Si se incluyen los estilos de nombre no utilizados al convertir excel xml a json, por defecto es true. | +| | openMode | integer |
  • 0 (normal): modo abierto normal, sin perezoso (lazy) e incremental. Al abrir un archivo, la interfaz de usuario y el evento de interfaz de usuario podrían actualizarse y responder en momentos específicos.
  • 1 (lazy): modo de apertura lazy. Al abrir el archivo, sólo se cargará directamente la hoja activa. Las demás hojas sólo se cargarán cuando se vayan a utilizar.
  • 2 (incremental): modo abierto incremental. Al abrir un archivo, la interfaz de usuario y el evento de interfaz de usuario podrían actualizarse y responder directamente.
  • | +| excelOptions | | object | Sólo Excel (opcional) - Opciones para exportar Excel | +| | includeStyles | boolean | Si se incluye el estilo al importar, por defecto true. | +| | includeFormulas | boolean | Si se incluye la fórmula al importar, por defecto true. | +| | frozenColumnsAsRowHeaders | boolean | Bien sea tratar las columnas congeladas como encabezados de línea al importar, por defecto false. | +| | frozenRowsAsColumnHeaders | boolean | Bien sea tratar las líneas congeladas como encabezados de columna al importar, por defecto false. | +| | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | +| | dynamicReferences | boolean | Si calcular funciones con referencia dinámica, por defecto true. | +| | calcOnDemand | boolean | Whether to calculate formulas only when they are demanded, default false. | +| | includeUnusedStyles | boolean | Si incluir el estilo de nombre no utilizado al convertir excel xml al json, default true. | +| | contraseña | text | La contraseña para abrir el workbook. | +| | openMode | text | The open mode of normal, lazy and incremental. Por defecto es normal. | :::note Notas From 042549d376a9d42daec26b04ea62f1efe0ee4698 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:19:59 +0100 Subject: [PATCH 122/264] New translations vp-set-workbook-options.md (Spanish) --- .../version-21/ViewPro/commands/vp-set-workbook-options.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md index bdc02342a44e14..1b299444582e1b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md @@ -48,7 +48,7 @@ En la siguiente tabla se listan las opciones de libros de trabajo disponibles: | autoFitType | number | El contenido se formatea para que se ajuste en las celdas, o en las celdas y los encabezados. Valores disponibles:
    ConstanteValorDescripción
    vk auto fit type cell 0 El contenido se ajusta automáticamente a las celdas
    vk auto fit type cell with header 1 El contenido se ajusta automáticamente a las celdas y encabezados
    | | backColor | string | Una cadena de color utilizada para representar el color de fondo del área, como "red", "#FFFF00", "rgb(255,0,0)", "Acento 5". El color de fondo inicial se oculta cuando se define una backgroundImage. | | backgroundImage | string / picture / file | Imagen de fondo para el área. | -| backgroundImageLayout | number | Cómo se muestra la imagen de fondo. Available values:
    ConstantValueDescription
    vk image layout center 1 In the center of the area.
    vk image layout none 3 In the upper left corner of the area with its original size.
    vk image layout stretch 0 Fills the area.
    vk image layout zoom 2 Displayed with its original aspect ratio.
    | +| backgroundImageLayout | number | Cómo se muestra la imagen de fondo. Available values:
    ConstantValueDescription
    vk image layout center 1 In the center of the area.
    vk image layout none 3 In the upper left corner of the area with its original size.
    vk image layout stretch 0 Llena el área.
    vk image layout zoom 2 Displayed with its original aspect ratio.
    | | calcOnDemand | boolean | Las fórmulas se calculan sólo cuando se piden. | | columnResizeMode | number | Redimensiona modo para columnas. Valores disponibles:
    ConstanteValorDescripción
    vk resize mode normal 0 Utiliza el modo de redimensionamiento normal (es decir, las columnas restantes se ven afectadas)
    vk resize mode split 1 Utiliza el modo dividido (es decir, las columnas restantes no se ven afectadas)
    | | copyPasteHeaderOptions | number | Encabezados para incluir cuando se copian o pegan datos. Available values:
    ConstantValueDescription
    vk copy paste header options all headers3 Includes selected headers when data is copied; overwrites selected headers when data is pasted.
    vk copy paste header options column headers 2 Includes selected column headers when data is copied; overwrites selected column headers when data is pasted.
    vk copy paste header options no headers0 Column and row headers are not included when data is copied; does not overwrite selected column or row headers when data is pasted.
    vk copy paste header options row headers1 Includes selected row headers when data is copied; overwrites selected row headers when data is pasted.
    | From 350e39cc86f261e5eba1312ea87f614238d53871 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:20:07 +0100 Subject: [PATCH 123/264] New translations getting-started.md (Spanish) --- .../version-21/ViewPro/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index 8577eb589df53b..d029b397bfa9c0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -15,7 +15,7 @@ La integración de áreas de 4D View Pro en sus formularios le permite importar 4D View Pro debe estar instalado en sus proyectos. The 4D View Pro component is available from the [**4D-ViewPro github repository**](https://github.com/4d/4D-ViewPro). -The easiest way to install 4D View Pro in an opened project is to use the Dependency Manager: +La forma más fácil de instalar 4D View Pro en un proyecto abierto es utilizar el Administrador de dependencias: 1. Abra la ventana [Dependency Manager](../Project/components.md). 2. Haga clic en el botón **+** para añadir un componente. From 4a453ecd059ffb4a109db09e51f740d4c7daff89 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:20:17 +0100 Subject: [PATCH 124/264] New translations http-rules.md (Spanish) --- .../version-21/WebServer/http-rules.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md index 16c9f337b0de37..14f5b56fa2f051 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md @@ -58,7 +58,7 @@ Se soportan las siguientes palabras clave de acción: | `removeHeaders` | Texto o colección de textos | Encabezado(s) para eliminar de las respuestas HTTP. Si un encabezado a eliminar no existe en el encabezado de respuesta, se ignora. | | `addHeaders` | Object | Name (text) and value (text) of header(s) to add to the HTTP responses. | | `setHeaders` | Object | Name (text) and value (text) of header(s) to modify in the HTTP responses. Si un encabezado a modificar no existe en el encabezado de respuesta, se añade. | -| `denyAccess` | Boolean | true para negar el acceso al recurso, false para permitir el acceso. When the access to a resource is denied, the web server returns a 403 status by default | +| `denyAccess` | Boolean | true para negar el acceso al recurso, false para permitir el acceso. Cuando el acceso a un recurso es denegado, el servidor web devuelve un estado 403 por defecto | | `redirect` | Text | Redirigir URL. Cuando se activa una redirección, el servidor web devuelve un estado 302 por defecto | | `status` | Number | Estado HTTP | From 4991e9e591b265c9d91f92e9061cc0daad26d0eb Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:20:21 +0100 Subject: [PATCH 125/264] New translations qodly-studio.md (Spanish) --- .../version-21/WebServer/qodly-studio.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md index 615a144ad69146..105b658372a4fe 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/qodly-studio.md @@ -80,7 +80,7 @@ La autenticación en el servidor web WebAdmin se realiza utilizando una llave de De acuerdo con la gestión de proyectos 4D, sólo se admiten los siguientes usos: - el desarrollo con Qodly Studio debe realizarse a través de **4D** (monousuario). -- deployment of 4D applications powered with Qodly pages must be done using **4D Server**. +- el despliegue de aplicaciones 4D alimentadas por páginas Qodly debe hacerse utilizando **4D Server**. :::warning From c77f4f3f130e88db156816bda5950a3bdea09c23 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:20:25 +0100 Subject: [PATCH 126/264] New translations webserver.md (Spanish) --- .../version-21/WebServer/webServer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServer.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServer.md index 1a85350e7e6a34..3563c5462c2ac4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServer.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/webServer.md @@ -8,7 +8,7 @@ title: Servidor Web :::warning Funcionalidad obsoleta -Using the web server on a remote 4D is **deprecated** as of 4D 21. Ya no se recomienda utilizar esta funcionalidad. +El uso del servidor web en un 4D remoto es **obsoleto** a partir de 4D 21. Ya no se recomienda utilizar esta funcionalidad. ::: From 7ee4f6ec4706a5277e8157994ba3a974a25748aa Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:20:36 +0100 Subject: [PATCH 127/264] New translations wp-export-document.md (Spanish) --- .../version-21/WritePro/commands/wp-export-document.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md index 948cf5cf8afce8..e32bca5acba067 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-document.md @@ -55,10 +55,10 @@ Pase un [objeto](# "Datos estructurados como un objeto nativo 4D") en *option* c | Constante | Valor | Comentario | | ------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | wk CID host domain name | cidHostDomain | Nombre de dominio de host CID: dominio de host que se añadirá a las URL CID generadas incluyendo una "@" como separador. Disponible sólo cuando se utiliza el formato `wk mime html`. | -| wk embedded pictures | embeddedPictures | Sólo para exportación SVG. Establece si las imágenes se incrustan en el archivo .svg exportado cuando se llama a [WP EXPORT DOCUMENT](wp-export-document.md). Valores disponibles:
  • true (por defecto): las imágenes están incrustadas en el archivo .svg exportado
  • false: las imágenes se exportan en una carpeta llamada "filename\_images" en el nivel del archivo .svg exportado, "filename" siendo el nombre pasado al comando para el archivo, sin la extensión. Las imágenes no están integradas, sino referenciadas en el archivo .svg.
  • Note: If the folder already exists, it is emptied before the file is exported. Si no hay ninguna imagen en la página exportada, se elimina la carpeta | +| wk embedded pictures | embeddedPictures | Sólo para exportación SVG. Establece si las imágenes se incrustan en el archivo .svg exportado cuando se llama a [WP EXPORT DOCUMENT](wp-export-document.md). Valores disponibles:
  • true (por defecto): las imágenes están incrustadas en el archivo .svg exportado
  • false: las imágenes se exportan en una carpeta llamada "filename\_images" en el nivel del archivo .svg exportado, "filename" siendo el nombre pasado al comando para el archivo, sin la extensión. Las imágenes no están integradas, sino referenciadas en el archivo .svg.
  • Nota: si la carpeta ya existe, se vaciará antes de exportar el archivo. Si no hay ninguna imagen en la página exportada, se elimina la carpeta | | wk factur x | facturX | Sólo para exportación en PDF. Valor: objeto que configura una exportación PDF "Factur-X (ZUGFeRD)" (ver [wk factur x object](#wk-factur-x-object)). | | wk files | Histórico | Sólo para exportación en PDF. Valor: colección de objetos, cada uno de los cuales describe un archivo que se integrará en el documento final (ver [wk files collection](#wk-files-collection)). Esta funcionalidad sólo se admite en documentos PDF/A-3: cuando se utiliza el atributo `wk files`, se establece automáticamente la versión "PDF/A-3" (se ignora el atributo `wk pdfa version`). En caso de una exportación de Factur-X PDF (ver abajo), el primer objeto de la colección debe contener el archivo Factur-X xml. | -| wk google fonts tag | googleFontsTag | Sólo para exportación SVG. Define la regla de importación para fuentes google en el SVG exportado. Valores posibles:
  • false (por defecto): no se añade ninguna regla de importación de fuentes de Google.
  • true: añade la regla @import al archivo exportado. Useful if you want to use fonts that are not available by default on Windows or macOS.
  • **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | +| wk google fonts tag | googleFontsTag | Sólo para exportación SVG. Define la regla de importación para fuentes google en el SVG exportado. Valores posibles:
  • false (por defecto): no se añade ninguna regla de importación de fuentes de Google.
  • true: añade la regla @import al archivo exportado. Útil si desea utilizar fuentes que no están disponibles por defecto en Windows o macOS.
  • **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | | wk HTML pretty print | htmlPrettyPrint | El código HTML está formateado para facilitar su lectura. | | wk max picture DPI | maxPictureDPI | Se utiliza para reducir imágenes a la resolución preferida. Para imágenes SVG en Windows, utilizado para la rasterización. Valores por defecto: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Valor máximo posible: 1440 | | wk optimized for | optimizedFor | Define cómo se optimiza un documento exportado en función de su soporte. Valores posibles:
  • `wk print` (valor por defecto para `wk pdf` y `wk svg`) Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 300 (valor por defecto) y pueden convertirse a PNG si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 300 (sólo Windows). Si una imagen contiene más de un formato, se utiliza el mejor formato para la impresión (*por ejemplo*, .tiff en lugar de .jpg)
  • `wk screen` (valor por defecto para `wk web page complete` y `wk mime html`). Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 192 (valor por defecto) y pueden convertirse a JPEG (imágenes opacas) o PNG (imágenes transparentes) si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 192 (sólo Windows). If a picture contains more than one format, the format for screen rendering is used.
  • **Nota:** los documentos exportados en formato `wk docx` siempre se optimizan para la impresión wk (la opción wk optimized for se ignora). | From a63936516a4a644c7b9b429e7dc6f632e4909363 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:20:38 +0100 Subject: [PATCH 128/264] New translations wp-export-variable.md (Spanish) --- .../version-21/WritePro/commands/wp-export-variable.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md index 0975d8aeb5e67b..606d4bcc42bcd7 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-export-variable.md @@ -55,10 +55,10 @@ Pase un [objeto](# "Datos estructurados como un objeto nativo 4D") en *option* c | Constante | Valor | Comentario | | ------------------------------------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | wk CID host domain name | cidHostDomain | Nombre de dominio de host CID: dominio de host que se añadirá a las URL CID generadas incluyendo una "@" como separador. Disponible sólo cuando se utiliza el formato `wk mime html`. | -| wk embedded pictures | embeddedPictures | Sólo para exportación SVG. Establece si las imágenes se incrustan en el archivo .svg exportado cuando se llama a [WP EXPORT DOCUMENT](wp-export-document.md). Valores disponibles:
  • true (por defecto): las imágenes están incrustadas en el archivo .svg exportado
  • false: las imágenes se exportan en una carpeta llamada "filename\_images" en el nivel del archivo .svg exportado, "filename" siendo el nombre pasado al comando para el archivo, sin la extensión. Las imágenes no están integradas, sino referenciadas en el archivo .svg.
  • Note: If the folder already exists, it is emptied before the file is exported. Si no hay ninguna imagen en la página exportada, se elimina la carpeta | +| wk embedded pictures | embeddedPictures | Sólo para exportación SVG. Establece si las imágenes se incrustan en el archivo .svg exportado cuando se llama a [WP EXPORT DOCUMENT](wp-export-document.md). Valores disponibles:
  • true (por defecto): las imágenes están incrustadas en el archivo .svg exportado
  • false: las imágenes se exportan en una carpeta llamada "filename\_images" en el nivel del archivo .svg exportado, "filename" siendo el nombre pasado al comando para el archivo, sin la extensión. Las imágenes no están integradas, sino referenciadas en el archivo .svg.
  • Nota: si la carpeta ya existe, se vaciará antes de exportar el archivo. Si no hay ninguna imagen en la página exportada, se elimina la carpeta | | wk factur x | facturX | Sólo para exportación en PDF. Valor: objeto que configura una exportación PDF "Factur-X (ZUGFeRD)" (ver [wk factur x object](./wp-export-document.md#wk-factur-x-object)). | | wk files | Histórico | Sólo para exportación en PDF. Valor: colección de objetos, cada uno de los cuales describe un archivo que se integrará en el documento final (ver [wk files collection](./wp-export-document.md#wk-files-collection)). Esta funcionalidad sólo se admite en documentos PDF/A-3: cuando se utiliza el atributo `wk files`, se establece automáticamente la versión "PDF/A-3" (se ignora el atributo `wk pdfa version`). En caso de una exportación de Factur-X PDF (ver abajo), el primer objeto de la colección debe contener el archivo Factur-X xml. | -| wk google fonts tag | googleFontsTag | Sólo para exportación SVG. Define la regla de importación para fuentes google en el SVG exportado. Valores posibles:
  • false (por defecto): no se añade ninguna regla de importación de fuentes de Google.
  • true: añade la regla @import al archivo exportado. Useful if you want to use fonts that are not available by default on Windows or macOS.
  • **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | +| wk google fonts tag | googleFontsTag | Sólo para exportación SVG. Define la regla de importación para fuentes google en el SVG exportado. Valores posibles:
  • false (por defecto): no se añade ninguna regla de importación de fuentes de Google.
  • true: añade la regla @import al archivo exportado. Útil si desea utilizar fuentes que no están disponibles por defecto en Windows o macOS.
  • **Note:** This property is set to false by default because when enabled, Google fonts override native fonts, and native fonts are generally better rendered in the browser. | | wk HTML pretty print | htmlPrettyPrint | El código HTML está formateado para facilitar su lectura. | | wk max picture DPI | maxPictureDPI | Se utiliza para reducir imágenes a la resolución preferida. Para imágenes SVG en Windows, utilizado para la rasterización. Valores por defecto: 300 (for wk optimized for \= wk print) 192 (for wk optimized for \= wk screen) Valor máximo posible: 1440 | | wk optimized for | optimizedFor | Define cómo se optimiza un documento exportado en función de su soporte. Valores posibles:
  • `wk print` (valor por defecto para `wk pdf` y `wk svg`) Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 300 (valor por defecto) y pueden convertirse a PNG si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 300 (sólo Windows). Si una imagen contiene más de un formato, se utiliza el mejor formato para la impresión (*por ejemplo*, .tiff en lugar de .jpg)
  • `wk screen` (valor por defecto para `wk web page complete` y `wk mime html`). Las imágenes de mapa de bits pueden reducirse utilizando los PPP definidos por `wk max picture DPI` o 192 (valor por defecto) y pueden convertirse a JPEG (imágenes opacas) o PNG (imágenes transparentes) si el códec no es compatible con el tipo de exportación. Las imágenes vectoriales se convierten a PNG utilizando los PPP definidos por `wk max picture DPI` o 192 (sólo Windows). If a picture contains more than one format, the format for screen rendering is used.
  • **Nota:** los documentos exportados en formato `wk docx` siempre se optimizan para la impresión wk (la opción wk optimized for se ignora). | From 0570fe04c36a5909e1977637d4c020dd614fc86a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:20:41 +0100 Subject: [PATCH 129/264] New translations wp-import-document.md (Spanish) --- .../WritePro/commands/wp-import-document.md | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-import-document.md index 57405625d969f7..8c26746f935d90 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-import-document.md @@ -51,20 +51,20 @@ Por defecto, las expresiones HTML insertadas en documentos heredados de 4D Write Puede pasar un objeto para definir cómo se gestionan los siguientes atributos durante la operación de importación: -| **Atributo** | **Tipo** | **Description** | -| ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| anchoredTextAreas | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las áreas de texto ancladas en Word. Valores disponibles:

    **anchored** (por defecto) - Las áreas de texto ancladas se tratan como cuadros de texto. **inline** - Las áreas de texto ancladas se tratan como texto en línea en la posición del ancla. **ignore** \- Las áreas de texto ancladas son ignoradas. **Nota**: el diseño y el número de páginas en el documento pueden cambiar. Ver también *Cómo importar formato .docx* | -| anchoredImages | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las imágenes ancladas. Available values:

    **all** (default) - All anchored images are imported as anchored images with their text wrapping properties (exception: the .docx wrapping option "tight" is imported as wrap square). **ignoreWrap** \- Anchored images are imported, but any text wrapping around the image is ignored. **ignore** \- Las imágenes ancladas no son importadas. | -| secciones | Text | Sólo para documentos MS Word (.docx). Especifica cómo se maneja la sección. Valores disponibles:

    **all** (por defecto) - Se importan todas las secciones. Continuous, even, or odd sections are converted to standard sections. **ignore** \- Sections are converted to default 4D Write Pro sections (A4 portrait layout without header or footer). **Note**: Section breaks of any type but continuous are converted to section breaks with page break. Continuous section breaks are imported as continuous section breaks. | -| fields | Text | Sólo para documentos MS Word (.docx). Specifies how .docx fields that can't be converted to 4D Write Pro formulas are handled. Valores disponibles:

    **ignore** \- Los campos .docx son ignorados. **label** \- .docx field references are imported as labels within double curly braces ("{{ }}"). Ej: el campo "ClientName" se importará como {{ClientName}}. **value** (default) - The last computed value for the .docx field (if available) is imported. **Note**: If a .docx field corresponds to a 4D Write Pro variable, the field is imported as a formula and this option is ignored. | -| borderRules | Text | Sólo para documentos MS Word (.docx). Especifica cómo se gestionan los bordes de los párrafos. Available values:

    **collapse** \- Paragraph formatting is modified to mimic automatically collapsed borders. Tenga en cuenta que la propiedad contraída sólo se aplica durante la operación de importación. If a stylesheet with a automatic border collapse setting is reapplied after the import operation, the setting will be ignored. **noCollapse** (por defecto) - No se modifica el formato de los párrafos. | -| preferredFontScriptType | Text | Sólo para documentos MS Word (.docx). Specifies the preferred typeface to use when different typefaces are defined for a single font property in OOXML. Available values:

    **latin** (default) - Latin script **bidi** \- Bidrectional script. Suitable if document is mainly bidirectional left-to-right (LTR) or right-to-left (RTL) text (e.g., Arabic or Hebrew). **eastAsia** \- East Asian script. Adecuado si el documento es principalmente texto asiático. | -| htmlExpressions | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se manejan las expresiones HTML. Available values:

    **rawText** \- HTML expressions are imported as raw text within ##htmlBegin## and ##htmlEnd## tags **ignore** (default) - HTML expressions are ignored. | -| importDisplayMode | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se gestiona la visualización de imágenes. Available values:

    **legacy -** 4W7 image display mode is converted using a background image if different than scaled to fit. **noLegacy** (default) - 4W7 image display mode is converted to the *imageDisplayMode* attribute if different than scaled to fit. | +| **Atributo** | **Tipo** | **Description** | +| ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| anchoredTextAreas | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las áreas de texto ancladas en Word. Valores disponibles:

    **anchored** (por defecto) - Las áreas de texto ancladas se tratan como cuadros de texto. **inline** - Las áreas de texto ancladas se tratan como texto en línea en la posición del ancla. **ignore** \- Las áreas de texto ancladas son ignoradas. **Nota**: el diseño y el número de páginas en el documento pueden cambiar. Ver también *Cómo importar formato .docx* | +| anchoredImages | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las imágenes ancladas. Available values:

    **all** (default) - All anchored images are imported as anchored images with their text wrapping properties (exception: the .docx wrapping option "tight" is imported as wrap square). **ignoreWrap** \- Las imágenes ancladas son importadas, pero todo texto que se envuelve alrededor de la imagen es ignorado. **ignore** \- Las imágenes ancladas no son importadas. | +| secciones | Text | Sólo para documentos MS Word (.docx). Especifica cómo se maneja la sección. Valores disponibles:

    **all** (por defecto) - Se importan todas las secciones. Secciones continuas, incluso impares se convierten en secciones estándar. **ignore** \- Sections are converted to default 4D Write Pro sections (A4 portrait layout without header or footer). **Note**: Section breaks of any type but continuous are converted to section breaks with page break. Continuous section breaks are imported as continuous section breaks. | +| fields | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan los campos .docx que no pueden ser convertidos a fórmulas 4D Write Pro. Valores disponibles:

    **ignore** \- Los campos .docx son ignorados. **label** \- .docx field references are imported as labels within double curly braces ("{{ }}"). Ej: el campo "ClientName" se importará como {{ClientName}}. **value** (default) - El último valor calculado para el campo .docx (si está disponible) es importado. **Note**: If a .docx field corresponds to a 4D Write Pro variable, the field is imported as a formula and this option is ignored. | +| borderRules | Text | Sólo para documentos MS Word (.docx). Especifica cómo se gestionan los bordes de los párrafos. Available values:

    **collapse** \- Paragraph formatting is modified to mimic automatically collapsed borders. Tenga en cuenta que la propiedad contraída sólo se aplica durante la operación de importación. If a stylesheet with a automatic border collapse setting is reapplied after the import operation, the setting will be ignored. **noCollapse** (por defecto) - No se modifica el formato de los párrafos. | +| preferredFontScriptType | Text | Sólo para documentos MS Word (.docx). Specifies the preferred typeface to use when different typefaces are defined for a single font property in OOXML. Valores disponibles:

    **latin** (por defecto) - script latino **bidi** \- script bidreccional. Suitable if document is mainly bidirectional left-to-right (LTR) or right-to-left (RTL) text (e.g., Arabic or Hebrew). **eastAsia** \- East Asian script. Adecuado si el documento es principalmente texto asiático. | +| htmlExpressions | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se manejan las expresiones HTML. Available values:

    **rawText** \- HTML expressions are imported as raw text within ##htmlBegin## and ##htmlEnd## tags **ignore** (default) - HTML expressions are ignored. | +| importDisplayMode | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se gestiona la visualización de imágenes. Available values:

    **legacy -** 4W7 image display mode is converted using a background image if different than scaled to fit. **noLegacy** (default) - 4W7 image display mode is converted to the *imageDisplayMode* attribute if different than scaled to fit. | **Notas de compatibilidad** -- *Character style sheets in legacy 4D Write documents use a proprietary mechanism, which is not supported by 4D Write Pro. To get the best result for imported text, style sheet attributes are converted to "hard coded" style attributes. Legacy character style sheets are not imported and are no longer referenced in the document.* +- *Character style sheets in legacy 4D Write documents use a proprietary mechanism, which is not supported by 4D Write Pro. To get the best result for imported text, style sheet attributes are converted to "hard coded" style attributes. Las hojas de estilo de caracteres antiguos no son importadas y ya no están referenciadas en el documento.* - *Support for importing in .docx format is only certified for Microsoft Word 2010 and newer. Versiones antiguas, especialmente Microsoft Word 2007, pueden no importar correctamente.* ## Ejemplo 1 From cd41fb2276a2d3b7c8d19cd51b604157b8387e47 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:20:51 +0100 Subject: [PATCH 130/264] New translations managing-formulas.md (Spanish) --- .../version-21/WritePro/managing-formulas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md index 4b19b4951ce87d..8e2a7cc0c500ce 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md @@ -104,7 +104,7 @@ When used in a formula within the table, the **This** keyword gives access to di | | [This](../commands/this.md).tableData | Collection o Entity selection (por lo general) | table.dataSource evaluada | | In each data row when a table datasource returns a collection or an entity selection | [This](../commands/this.md).item.xxx | Cualquiera | Mapped to each item of the table datasource collection or entity selection, for example **This.item.firstName** if the associated entity has the *firstName* attribute | | | [This](../commands/this.md).itemIndex | Number | Índice del elemento actual en la colección o selección de entidades, a partir de 0 | -| In any row (except header rows) when a table datasource returns a collection or an entity selection | [This](../commands/this.md).previousItems | Collection o entity selection | Items displayed on the pages before the bottom carry over row (if any) or before the row of the expression, including the page where is displayed the row containing the expression.
    This expression returns the same type of value as the **This.tableData** expression. | +| In any row (except header rows) when a table datasource returns a collection or an entity selection | [This](../commands/this.md).previousItems | Collection o entity selection | Items displayed on the pages before the bottom carry over row (if any) or before the row of the expression, including the page where is displayed the row containing the expression.
    Esta expresión devuelve el mismo tipo de valor que la expresión **This.tableData**. | | In a break row | [This](../commands/this.md).breakItems | Collection o entity selection | Items of the collection or entity selection displayed in the rows between:
    • the current break row and the previous break row of the same level (or the start of the table) if the break row(s) are displayed after the data row.
    • the current break and the next break row of the same level (or the end of the table) if the break row(s) are displayed before the data row.
    | En cualquier otro contexto, estas expresiones devolverán *undefined*. From b2238f20455d80c889f5a29711acbc611e8b006e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:20:56 +0100 Subject: [PATCH 131/264] New translations openaichatapi.md (Spanish) --- .../version-21/aikit/Classes/OpenAIChatAPI.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatAPI.md index 8b794fda25d429..acf7c8b80ee550 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatAPI.md @@ -9,10 +9,10 @@ The `OpenAIChatAPI` class provides an interface to interact with OpenAI's chat b ## Propiedades -| Propiedad | Tipo | Descripción | -| ------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | Una instancia que maneja las solicitudes de finalización del chat. | -| `vision` | [OpenAIVision](OpenAIVision.md) | A helper instance that handles vision-related requests. | +| Propiedad | Tipo | Descripción | +| ------------- | ------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `completions` | [OpenAIChatCompletionsAPI](OpenAIChatCompletionsAPI.md) | Una instancia que maneja las solicitudes de finalización del chat. | +| `vision` | [OpenAIVision](OpenAIVision.md) | Una instancia de ayuda que gestiona las peticiones relacionadas con la visión. | ## Function From fefa066cd72c07c77b9b419c0286a8e601564840 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:20:58 +0100 Subject: [PATCH 132/264] New translations openaichatcompletionsapi.md (Spanish) --- .../version-21/aikit/Classes/OpenAIChatCompletionsAPI.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsAPI.md index f5d15116434873..4ce850b3b4ecd9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsAPI.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsAPI # OpenAIChatCompletionsAPI -La clase `OpenAIChatCompletionsAPI` está diseñada para gestionar las finalizaciones de chat con la API OpenAI. It provides methods to create, retrieve, update, delete, and list chat completions. +La clase `OpenAIChatCompletionsAPI` está diseñada para gestionar las finalizaciones de chat con la API OpenAI. Ofrece métodos para crear, recuperar, actualizar, eliminar y listar respuestas de chat. https://platform.openai.com/docs/api-reference/chat @@ -21,7 +21,7 @@ https://platform.openai.com/docs/api-reference/chat | *parámetros* | [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) | Los parámetros para la solicitud de finalización del chat. | | Resultado | Object | El resultado de la solicitud de finalización del chat. | -Creates a model response for the given chat conversation. +Crea un modelo de respuesta para la conversación dada. https://platform.openai.com/docs/api-reference/chat/create From 38bd3a29665b055d32263687c2600aa1666afdc0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:21:00 +0100 Subject: [PATCH 133/264] New translations openaichatcompletionsmessagesapi.md (Spanish) --- .../aikit/Classes/OpenAIChatCompletionsMessagesAPI.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md index 2502d80c2c15ea..c9624656bfe290 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md @@ -13,11 +13,11 @@ The `OpenAIChatCompletionsMessagesAPI` class is designed to interact with the Op **list**(*completionID* : Text; *parameters* : OpenAIChatCompletionsMessagesParameters) : Variant -| Parámetros | Tipo | Descripción | -| -------------- | ----------------------------------------- | -------------------------------------------------------------------------------- | -| *completionID* | Text | The ID of the chat completion to retrieve messages for. | -| *parámetros* | `OpenAIChatCompletionsMessagesParameters` | Parámetros para filtrar y personalizar la respuesta. | -| Resultado | Variant | Los mensajes recuperados asociados con la finalización del chat. | +| Parámetros | Tipo | Descripción | +| -------------- | ----------------------------------------- | ------------------------------------------------------------------------------------- | +| *completionID* | Text | El ID de la finalización de chat para la cual recuperar los mensajes. | +| *parámetros* | `OpenAIChatCompletionsMessagesParameters` | Parámetros para filtrar y personalizar la respuesta. | +| Resultado | Variant | Los mensajes recuperados asociados con la finalización del chat. | La función `list()` recupera los mensajes asociados a un ID de finalización de chat específico. Lanza un error si `completionID` está vacío. If the *parameters* argument is not an instance of `OpenAIChatCompletionsMessagesParameters`, it will create a new instance using the provided parameters. From 085d701c2c079bda20b320019af4e096db96b954 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:21:10 +0100 Subject: [PATCH 134/264] New translations openaiembeddingsapi.md (Spanish) --- .../aikit/Classes/OpenAIEmbeddingsAPI.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIEmbeddingsAPI.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIEmbeddingsAPI.md index dabbcc1cee4797..7d99ad8f1204a6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIEmbeddingsAPI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIEmbeddingsAPI.md @@ -15,14 +15,14 @@ https://platform.openai.com/docs/api-reference/embeddings **create**(*input* : Text; *model*: Text; *parameters* : OpenAIEmbeddingsParameters) : OpenAIEmbeddingsResult -Creates an embeddings for the provided input, model and parameters. - -| Argumento | Tipo | Descripción | -| ------------ | ----------------------------------------------------------- | --------------------------------------------------------------------------------------------- | -| *entrada* | Texto o colección de texto | La entrada a vectorizar. | -| *model* | Text | The [model to use](https://platform.openai.com/docs/guides/embeddings#embedding-models) | -| *parámetros* | [OpenAIEmbeddingsParameters](OpenAIEmbeddingsParameters.md) | Los parámetros para personalizar la petición de representaciones vectoriales. | -| Resultado | [OpenAIEmbeddingsResult](OpenAIEmbeddingsResult.md) | Las integraciones. | +Crea una representación vectorial para la entrada, el modelo y los parámetros ofrecidos. + +| Argumento | Tipo | Descripción | +| ------------ | ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| *entrada* | Texto o colección de texto | La entrada a vectorizar. | +| *model* | Text | El [modelo a utilizar] (https://platform.openai.com/docs/guides/embeddings#embedding-models) | +| *parámetros* | [OpenAIEmbeddingsParameters](OpenAIEmbeddingsParameters.md) | Los parámetros para personalizar la petición de representaciones vectoriales. | +| Resultado | [OpenAIEmbeddingsResult](OpenAIEmbeddingsResult.md) | Las integraciones. | #### Ejemplos de uso From 13ec65a08d2b0546d2f9b0c30d78b97b171eeab5 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:21:14 +0100 Subject: [PATCH 135/264] New translations openaierror.md (Spanish) --- .../version-21/aikit/Classes/OpenAIError.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIError.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIError.md index a1b407b5774618..50c983790a5e75 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIError.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIError.md @@ -41,7 +41,7 @@ La clase `OpenAIError` está diseñada para manejar errores devueltos por la API | ---------------------------- | ------- | ------------------------------------------------------------------------------------------------- | | `isBadRequestError` | Boolean | Indica si se trata de un error 400 Bad Request. | | `isAuthenticationError` | Boolean | Indica si se trata de un error de autenticación 401. | -| `isPermissionDeniedError` | Boolean | Indicates ∏if the error is a 403 Permission Denied error. | +| `isPermissionDeniedError` | Boolean | Indica si el error es un error 403 Permiso denegado. | | `isNotFoundError` | Boolean | Indica si el error es un error 404 Not Found. | | `isUnprocessableEntityError` | Boolean | Indica si el error es un error de entidad no procesable (422). | | `isRateLimitError` | Boolean | Indica si el error es un error de límite de velocidad 429. | From 203197cbd76a7324c9a3623c675465943d49a851 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:21:15 +0100 Subject: [PATCH 136/264] New translations openaiimage.md (Spanish) --- .../version-21/aikit/Classes/OpenAIImage.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImage.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImage.md index 04c86973e749d1..2917ecf2bf83db 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImage.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIImage.md @@ -11,11 +11,11 @@ https://platform.openai.com/docs/api-reference/images/object ## Propiedades -| Propiedad | Tipo | Descripción | -| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------- | -| `url` | Text | La URL de la imagen generada, si `response_format` es `url` (por defecto). | -| `b64_json` | Text | The base64-encoded JSON of the generated image, if `response_format` is `b64_json`. | -| `revised_prompt` | Variant | The prompt that was used to generate the image, if there was any revision to the prompt. | +| Propiedad | Tipo | Descripción | +| ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------- | +| `url` | Text | La URL de la imagen generada, si `response_format` es `url` (por defecto). | +| `b64_json` | Text | El JSON codificado en base64 de la imagen generada, si `response_format` es `b64_json`. | +| `revised_prompt` | Variant | La instrucción que se utilizó para generar la imagen, si hubo alguna revisión de la instrucción. | ## Funciones @@ -23,9 +23,9 @@ https://platform.openai.com/docs/api-reference/images/object **asBlob**() : 4D.Blob -| Parámetros | Tipo | Descripción | -| ---------- | ----------------------- | ------------------------------------------------------------------------------------------------------ | -| Resultado | 4D.Blob | Converts the generated image to a blob format based on its URL or base64-encoded JSON. | +| Parámetros | Tipo | Descripción | +| ---------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------ | +| Resultado | 4D.Blob | Convierte la imagen generada a un formato blob basado en su URL o en un JSON codificado en base64. | #### Ejemplo de Uso From 66266c7196e584b3da9eab7bab50d4b3a5cece24 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:21:20 +0100 Subject: [PATCH 137/264] New translations openaimessage.md (Spanish) --- .../version-21/aikit/Classes/OpenAIMessage.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md index fe0fd70f8dbc2e..701a9fd8d4f043 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md @@ -9,13 +9,13 @@ The `OpenAIMessage` class represents a structured message containing a role, con ## Propiedades -| Propiedad | Tipo | Descripción | -| -------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `rol` | Text | The role of the message (e.g., "user", "assistant", "system", "tool"). | -| `contenido` | Variant | El contenido del mensaje, que puede ser un texto o una colección de objetos. | -| `user` | Text | An optional property representing the user associated with the message. | -| `tool_calls` | Collection | A collection of tool calls requested by the assistant. Cada llamada a una herramienta contiene un objeto `id`, `type` y `function`. | -| `tool_call_id` | Text | El ID de la llamada a la herramienta a la que responde este mensaje (se utiliza cuando `role` es "tool"). | +| Propiedad | Tipo | Descripción | +| -------------- | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `rol` | Text | El rol del mensaje (por ejemplo, "user", "assistant", "system", "tool"). | +| `contenido` | Variant | El contenido del mensaje, que puede ser un texto o una colección de objetos. | +| `user` | Text | Una propiedad opcional que representa al usuario asociado al mensaje. | +| `tool_calls` | Collection | Una colección de llamadas de herramientas solicitadas por el asistente. Cada llamada a una herramienta contiene un objeto `id`, `type` y `function`. | +| `tool_call_id` | Text | El ID de la llamada a la herramienta a la que responde este mensaje (se utiliza cuando `role` es "tool"). | ## Propiedades calculadas From 12eb5d752e818b05d20e28ad129bbf25bd968e4a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:21:30 +0100 Subject: [PATCH 138/264] New translations openaiparameters.md (Spanish) --- .../version-21/aikit/Classes/OpenAIParameters.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md index 9f01e306d19db4..9b33b972486a0f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIParameters.md @@ -19,14 +19,14 @@ Utilice esta propiedad de retrollamada para recibir el resultado independienteme Use these callback properties for more granular control over success and error handling: -| Propiedad | Tipo | Descripción | -| ------------ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `onResponse` | 4D.Function | A function to be called asynchronously when the request finishes **successfully**. Asegúrese de que el proceso actual no termina. | -| `onError` | 4D.Function | A function to be called asynchronously when the request finishes **with errors**. Asegúrese de que el proceso actual no termina. | +| Propiedad | Tipo | Descripción | +| ------------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `onResponse` | 4D.Function | Una función a llamar de forma asíncrona cuando la petición finalice **con éxito**. Asegúrese de que el proceso actual no termina. | +| `onError` | 4D.Function | Una función que se llamará de forma asíncrona cuando la petición finalice **con errores**. Asegúrese de que el proceso actual no termina. | > The callback function will receive the same result object type (one of [OpenAIResult](./OpenAIResult.md) child classes) that would be returned by the function in synchronous code. -See [documentation about asynchronous code for examples](../asynchronous-call.md) +Ver la [documentación sobre código asíncrono para ejemplos](../asynchronous-call.md) ### Propiedades de la red From 3c9e050deee08a3d4c86a3bfbd0207e645029a70 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:21:32 +0100 Subject: [PATCH 139/264] New translations openairesult.md (Spanish) --- .../version-21/aikit/Classes/OpenAIResult.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md index a56ffcdcd8d803..be533ccb4d72d6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md @@ -21,7 +21,7 @@ The `OpenAIResult` class is designed to handle the response from HTTP requests a | `errors` | Collection | Devuelve una colección de errores. Estos podrían ser errores de red o errores devueltos por OpenAI. | | `terminated` | Boolean | Un booleano que indica si la petición HTTP fue terminada. | | `headers` | Object | Devuelve los encabezados de respuesta como un objeto. | -| `rateLimit` | Object | Returns rate limit information from the response headers. | +| `rateLimit` | Object | Devuelve la información relativa al límite de tasa de los encabezados de la respuesta. | | `utilización` | Object | Devuelve la información de uso del cuerpo de la respuesta, si existe. | ### rateLimit From d3468f47af97141a5156347384d131aac8629715 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:21:38 +0100 Subject: [PATCH 140/264] New translations compatible-openai.md (Spanish) --- .../version-21/aikit/compatible-openai.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md index 5b5e136edec480..ca4d836251504a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/compatible-openai.md @@ -5,7 +5,7 @@ title: Proveedores # Proveedores -Many AI providers propose an OpenAI-like API, so you can use this project to connect to them. +Muchos proveedores de IA proponen una API similar a la de OpenAI, así que puede utilizar este proyecto para conectarse a ellos. Para ello sólo tiene que definir la `baseURL` a la del proveedor y utilizar su clave api si es necesario. From 51e42dfb8f953a3b672d7e025578d476ab6de4d6 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 22:45:33 +0100 Subject: [PATCH 141/264] New translations updates.md (Japanese) --- .../version-20/Notes/updates.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20/Notes/updates.md b/i18n/ja/docusaurus-plugin-content-docs/version-20/Notes/updates.md index 3b62e29954c52f..b218f9699528f3 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20/Notes/updates.md @@ -11,6 +11,14 @@ title: リリースノート ::: +## 4D 20.8 LTS + +#### ハイライト + +- [**修正リスト**](https://bugs.4d.com/fixes?version=20.8): 4D 20.8 LTS で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/276/release-note-version-20/))。 + + + ## 4D 20.7 LTS #### ハイライト From c4e4ece4a06a6e67967e63cb666274ff6e40709e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 23:04:53 +0100 Subject: [PATCH 142/264] New translations systemworkerclass.md (Japanese) --- .../current/API/SystemWorkerClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/SystemWorkerClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/SystemWorkerClass.md index 89c889f5096c76..ae195a59ea79d4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SystemWorkerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SystemWorkerClass.md @@ -161,7 +161,7 @@ var $sw : 4D.SystemWorker $sw:=4D.SystemWorker.new($mydoc) ``` -4. カレントディレクトリでコマンドを実行し、メッセージそ送信します: +4. カレントディレクトリでコマンドを実行し、メッセージを送信します: ```4d var $param : Object From 0c2dc32303097d5e7f80f963420736c7a413c6e5 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 23:09:23 +0100 Subject: [PATCH 143/264] New translations privileges.md (Japanese) --- .../current/ORDA/privileges.md | 364 ++++++++---------- 1 file changed, 158 insertions(+), 206 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/privileges.md b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/privileges.md index 7c132e1778a823..cd4fbfc0254764 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/privileges.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/ORDA/privileges.md @@ -27,27 +27,21 @@ Webユーザーまたは RESTユーザーがログインすると、そのセッ プロジェクト内の以下のリソースに対して、許諾アクションと権限名を割り当てることができます (この設定をパーミッションと呼びます): -- データストア -- データクラス -- 属性 (計算属性およびエイリアス属性を含む) -- データモデルクラス関数 -- [シングルトン](../REST/$singleton.md)関数 +- the [datastore](../ORDA/dsMapping.md#datastore) +- the [dataclasses](../ORDA/dsMapping.md#dataclass) +- [attributes](../ORDA/dsMapping.md#attribute) (including [computed](./ordaClasses.md#computed-attributes-1) and [alias](./ordaClasses.md#alias-attributes-1)) +- functions of the [data model classes](../ORDA/ordaClasses.md) +- [singleton](../REST/$singleton.md) functions セッションがリソースにアクセスするたびに (アクセス形式に関係なく)、4D はセッションの権限を確認し、許可されていない場合にはアクセスを拒否します。 -あるレベルにおいて定義されたパーミッションは基本的に下位レベルに継承されますが、パーミッションは複数のレベルで設定することもできます: - -- データストアレベルで定義されたパーミッションは、自動的にすべてのデータクラスに割り当てられます。 データストアレベルで定義されたパーミッションは、自動的にすべてのデータクラスに割り当てられます。 データストアレベルで定義された*execute* 権限アクションは、[シングルトン](../REST/$singleton.md) 関数を含めてプロジェクトの全ての関数に対して適用されます。 -- データクラスレベルで定義されたパーミッションは、データストアの設定をオーバーライドします (あれば)。 デフォルトでは、データクラスのすべての属性が、データクラスのパーミッションを継承します。 -- データクラスとは異なり、属性レベルで定義されたパーミッションは、親のデータクラスの設定をオーバーライドするのではなく、それに追加されます。 たとえば、同じ許諾アクションに対し、データクラスのレベルでは "general" という権限名を、データクラスの属性のレベルでは "detail" という権限名を割り当てた場合、その属性にアクセスするには、セッションに "general" と "detail" の両方の権限が設定されている必要があります。 +## 権限 -:::info +A permission is the ability to do an action on a resource. For example, *execute the ds.myTable.myFunction()* represents a **permission**. Permissions are defined for the project in the [`roles.json`](#rolesjson-file) file. Each permission can be given to one or more [privileges](#privileges-and-roles). -パーミッションは、データストアオブジェクトや関数へのアクセスを制御します。 特定の条件に基づいて読み取りデータをフィルタリングしたい場合は、[制限付エンティティセレクション](entities.md#制限付エンティティセレクション) の利用がより適切かもしれません。 +When **no specific permission** has been defined for a resource, access to the resource may be automatically **unrestricted** or **restricted** depending on the [default mode defined for the project](#restriction-modes). -::: - -## 許諾アクション +### 許諾アクション 利用可能なアクションは対象となるリソースによります。 @@ -73,6 +67,65 @@ Webユーザーまたは RESTユーザーがログインすると、そのセッ 権限の設定には一貫性が必要です。特に、**update** および **drop** 権限は**read** 権限も必要とします(ただし**create** はそれを必要としません)。 +### Inherited permissions + +あるレベルにおいて定義されたパーミッションは基本的に下位レベルに継承されますが、パーミッションは複数のレベルで設定することもできます: + +- データストアレベルで定義されたパーミッションは、自動的にすべてのデータクラスに割り当てられます。 データストアレベルで定義されたパーミッションは、自動的にすべてのデータクラスに割り当てられます。 データストアレベルで定義された*execute* 権限アクションは、[シングルトン](../REST/$singleton.md) 関数を含めてプロジェクトの全ての関数に対して適用されます。 +- データクラスレベルで定義されたパーミッションは、データストアの設定をオーバーライドします (あれば)。 デフォルトでは、データクラスのすべての属性が、データクラスのパーミッションを継承します。 +- データクラスとは異なり、属性レベルで定義されたパーミッションは、親のデータクラスの設定をオーバーライドするのではなく、それに追加されます。 たとえば、同じ許諾アクションに対し、データクラスのレベルでは "general" という権限名を、データクラスの属性のレベルでは "detail" という権限名を割り当てた場合、その属性にアクセスするには、セッションに "general" と "detail" の両方の権限が設定されている必要があります。 + +:::info + +パーミッションは、データストアオブジェクトや関数へのアクセスを制御します。 特定の条件に基づいて読み取りデータをフィルタリングしたい場合は、[制限付エンティティセレクション](entities.md#制限付エンティティセレクション) の利用がより適切かもしれません。 + +::: + +### ORDA クラス関数の権限の設定 + +When configuring permissions, ORDA class functions are declared in the `applyTo` element using the following syntax: + +```json +. +``` + +For example, if you want to apply a permission to the following function: + +```4d +// cs.CityEntity class +Class extends Entity + Function getPopulation() : Integer + ... +``` + +... 以下のように記述します: + +```json +"applyTo":"City.getPopulation" +``` + +It means that you cannot use the same function names in the various ORDA classes (entity, entity selection, dataclass) if you want them to be assigned privileges. In this case, you need to use distinct function names. For example, if you have created a "drop" function in both `cs.CityEntity` and `cs.CitySelection` classes, you need to give them different names such as `dropEntity()` and `dropSelection()`. You can then write in the "roles.json" file: + +```json + "permissions": { + "allowed": [ + { + "applyTo": "City.dropEntity", + "type": "method", + "promote": [ + "name" + ] + }, + { + "applyTo": "City.dropSelection", + "type": "method", + "promote": [ + "name" + ] + } + ] +``` + ## 権限とロール **権限** とは、**リソース** に対して **アクション** を実行する技術的な能力であり、**ロール** は、管理者が使用するために公開された権限のことです。 基本的にロールとは、ビジネスユーザーのプロフィールを定義するためにいくつかの権限を集めたものです。 たとえば、"manageInvoices" (請求書管理) は権限の例で、"secretary" (秘書) は ("manageInvoices" および他の権限を持つ) ロールの例です。 基本的にロールとは、ビジネスユーザーのプロフィールを定義するためにいくつかの権限を集めたものです。 たとえば、"manageInvoices" (請求書管理) は権限の例で、"secretary" (秘書) は ("manageInvoices" および他の権限を持つ) ロールの例です。 @@ -112,142 +165,106 @@ exposed Function authenticate($identifier : Text; $password : Text)->$result : T ## `roles.json` ファイル -`roles.json` ファイルは、プロジェクトのセキュリティ設定の全体を記述します。 - -### デフォルトファイル +The `roles.json` file describes the whole web security settings for the project. `roles.json` ファイルの構文は次のとおりです: + +| プロパティ名 | | | 型 | 必須 | 説明 | +| ------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------- | -- | ------------------------------------------------------------------------------------------------------------------ | +| privileges | | | `privilege` オブジェクトの Collection | X | 定義された権限のリスト | +| | \[].privilege | | Text | | アクセス権の名称 | +| | \[].includes | | String の Collection | | 内包する権限名のリスト | +| roles | | | `role` オブジェクトの Collection | | 定義されたロールのリスト | +| | \[].role | | Text | | ロール名 | +| | \[].privileges | | String の Collection | | 内包する権限名のリスト | +| permissions | | | Object | X | 設定されたパーミッションのリスト | +| | allowed | | `permission` オブジェクトの Collection | | 許可されたパーミッションのリスト | +| | | \[].applyTo | Text | X | 対象の [リソース](#リソース) 名 | +| | | \[].type | Text | X | [リソース](#リソース) タイプ: "datastore", "dataclass", "attribute", "method", "singletonMethod", "singleton" | +| | | \[].read | String の Collection | | 権限名のリスト | +| | | \[].create | String の Collection | | 権限名のリスト | +| | | \[].update | String の Collection | | 権限名のリスト | +| | | \[].drop | String の Collection | | 権限名のリスト | +| | | \[].execute | String の Collection | | 権限名のリスト | +| | | \[].promote | String の Collection | | 権限名のリスト | +| restrictedByDefault | | | Boolean | | If true, access to resources without explicit permissions is denied | +| forceLogin | | | Boolean | | If true, enables ["forceLogin" mode](../REST/authUsers.md#force-login-mode) | -プロジェクトを作成すると、デフォルトの `roles.json` ファイルが次の場所に作成されます: `/Project/Sources/` ([アーキテクチャー](../Project/architecture.md#sources) 参照)。 +:::caution 注記 -デフォルトのファイルには次の内容が含まれています: +- "WebAdmin" 権限名は、アプリケーションによって予約されています。 この名前をカスタムの権限名に使用することは推奨されません。 +- `privileges` and `roles` names are case-insensitive. -```json title="/Project/Sources/roles.json" +::: -{ - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - - "roles": [], - - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": ["all"], - "create": ["all"], - "update": ["all"], - "drop": ["all"], - "execute": ["all"], - "promote": ["all"] - } - ] - }, - - "forceLogin": true +### Default File Location and Content -} +When a new project is created, a default `roles.json` file is generated at: +``` +/Project/Sources/ ``` -For a highest level of security, the "all" privilege is assigned to all permissions in the datastore, thus data access on the whole `ds` object is disabled by default. The principle is as follows: assigning a permission is like putting a lock on a door. Only sessions with privilege having the corresponding key (i.e., a permission) will be able to open the lock. -この "none" 権限はセキュリティのため、使用も変更もしないことが推奨されています。Web や RESTリクエストから利用可能にしたい各リソースには、それ専用の権限を新たに追加することが推奨されています ([以下の例を参照](#権限設定の例))。 +[アーキテクチャー](../Project/architecture.md#sources) を参照ください。 -:::caution +Default content: -`roles.json` ファイルに特定のパラメーターが定義されていない場合、アクセスは制限されません。 これにより、アクセスを気にすることなくアプリケーションを開発することができますが、本番環境では推奨されていません。 +```json title="/Project/Sources/roles.json" -::: +{ + "privileges": [ + ], + "roles": [ + ], + "permissions": { + "allowed": [ + { + "applyTo": "ds", + "type": "datastore", + "read": [], + "create": [], + "update": [], + "drop": [], + "execute": [], + "promote": [] + } + ] + }, + "restrictedByDefault": false, + "forceLogin": false +} +``` :::note 互換性 以前のリリースでは、`roles.json` ファイルはデフォルトで作成されませんでした。 4D 20 R6 以降、`roles.json`ファイルを含まない、または `"forceLogin": true` の設定が含まれていない既存のプロジェクトを開く場合、[設定ダイアログボックスの **Web機能** ページ](../settings/web.md#アクセス権) で **ds.authentify() 関数を通しての REST認証を有効化** ボタンが利用可能になります。 このボタンはセキュリティ設定を自動的にアップグレードします (コードを修正する必要があるかもしれません。[このブログ記事を参照ください](https://blog.4d.com/ja/force-login-becomes-default-for-all-rest-auth))。 + ::: :::note Qodly Studio -Qodly Studio for 4D では、権限パネルの [**強制ログイン**オプション](../WebServer/qodly-studio.md#force-login) を使用してログインモードを設定することができます。 +In Qodly Studio for 4D, the login mode can be set using the [**Force login** option](https://developer.4d.com/qodly/4DQodlyPro/force-login) in the Roles and Privileges panel. ::: -### シンタックス - -`roles.json` ファイルの構文は次のとおりです: - -| プロパティ名 | | | 型 | 必須 | 説明 | -| ----------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------- | -- | ------------------------------------------------------------------------------------------------------------------ | -| privileges | | | `privilege` オブジェクトの Collection | X | 定義された権限のリスト | -| | \[].privilege | | Text | | アクセス権の名称 | -| | \[].includes | | String の Collection | | 内包する権限名のリスト | -| roles | | | `role` オブジェクトの Collection | | 定義されたロールのリスト | -| | \[].role | | Text | | ロール名 | -| | \[].privileges | | String の Collection | | 内包する権限名のリスト | -| permissions | | | Object | X | 設定されたパーミッションのリスト | -| | allowed | | `permission` オブジェクトの Collection | | 許可されたパーミッションのリスト | -| | | \[].applyTo | Text | X | 対象の [リソース](#リソース) 名 | -| | | \[].type | Text | X | [リソース](#リソース) タイプ: "datastore", "dataclass", "attribute", "method", "singletonMethod", "singleton" | -| | | \[].read | String の Collection | | 権限名のリスト | -| | | \[].create | String の Collection | | 権限名のリスト | -| | | \[].update | String の Collection | | 権限名のリスト | -| | | \[].drop | String の Collection | | 権限名のリスト | -| | | \[].execute | String の Collection | | 権限名のリスト | -| | | \[].promote | String の Collection | | 権限名のリスト | -| forceLogin | | | Boolean | | ["forceLogin" モード](../REST/authUsers.md#force-login-mode) を有効にする場合は true | - -:::caution 注記 - -- "WebAdmin" 権限名は、アプリケーションによって予約されています。 この名前をカスタムの権限名に使用することは推奨されません。 -- `privileges` および `roles` の名称においては文字の大小が区別されます。 +## Restriction Modes -::: +The `restrictedByDefault` property configures how every [resource](#resources) are accessed when [no specific permission is defined for it](#permission): -#### Assigning permissions to ORDA class functions +- **Unrestricted mode** (`restrictedByDefault`: **false**): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. +- **Restricted mode** (`restrictedByDefault`: **true**): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. -When configuring permissions, ORDA class functions are declared in the `applyTo` element using the following syntax: - -```json -. -``` +:::note 互換性 -For example, if you want to apply a permission to the following function: +- When **creating a new project**, the `restrictedByDefault` property is set to **false** in the *roles.json* file (see below). Keep in mind that this configuration is tailored for quick start and smooth development. In production environment, [it is recommended to set the `restrictedByDefault` and `forceLogin` properties to **true**](#configuring-restrictedbydefault-and-forcelogin-properties). +- In **projects converted from previous releases**; when enabling access to Qodly Studio using the [One-click configuration dialog](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#one-click-configuration), the `restrictedByDefault` property is added with value **true** in the *roles.json* file. -```4d -// cs.CityEntity class -Class extends Entity - Function getPopulation() : Integer - ... -``` +::: -... you have to write: +### Recommended Configuration -```json -"applyTo":"City.getPopulation" -``` +Depending on your environment, the recommended settings are: -It means that you cannot use the same function names in the various ORDA classes (entity, entity selection, dataclass) if you want them to be assigned privileges. In this case, you need to use distinct function names. For example, if you have created a "drop" function in both `cs.CityEntity` and `cs.CitySelection` classes, you need to give them different names such as `dropEntity()` and `dropSelection()`. You can then write in the "roles.json" file: - -```json - "permissions": { - "allowed": [ - { - "applyTo": "City.dropEntity", - "type": "method", - "promote": [ - "name" - ] - }, - { - "applyTo": "City.dropSelection", - "type": "method", - "promote": [ - "name" - ] - } - ] -``` +- **Production**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **true**. This ensures maximum security by requiring user authentication and explicitly defined permissions for resource access. +- **Development**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **false**. This allows easier access during development and debugging, with the possibility to gradually apply restrictions. ### `Roles_Errors.json` ファイル @@ -269,93 +286,28 @@ End if ## 権限設定の例 -The good practice is to keep all data access locked by default thanks to the "all" privilege and to configure the `roles.json` file to only open controlled parts to authorized sessions. For example, to allow some accesses to "guest" sessions: - ```json title="/Project/Sources/roles.json" { - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - "roles": [], - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": [ - "all" - ], - "create": [ - "all" - ], - "update": [ - "all" - ], - "drop": [ - "all" - ], - "execute": [ - "all" - ], - "promote": [ - "all" - ] - }, - { - "applyTo": "ds.loginAs", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.hasPrivilege", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.clearPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.isGuest", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.getPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.setAllPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "mySingletonClass.createID", - "type": "singletonMethod", - "execute": [ - "guest" - ] - } - ] - }, - "forceLogin": true + "forceLogin": true, + "restrictedByDefault": true, + "permissions": { + "allowed": [ + { + "applyTo": "People", + "type": "dataclass", + "read": [ + "viewPeople" + ] + } + ] + }, + "privileges": [ + { + "privilege": "viewPeople", + "includes": [] + } + ], + "roles": [] } ``` From fc29249d71cdff7c5cd509c48ee5133e021c76eb Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 23:10:17 +0100 Subject: [PATCH 144/264] New translations configuration.md (Japanese) --- .../current/REST/configuration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/REST/configuration.md b/i18n/ja/docusaurus-plugin-content-docs/current/REST/configuration.md index 94a70d353e9499..f1ee2368682fda 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/REST/configuration.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/REST/configuration.md @@ -70,8 +70,8 @@ REST 経由でアクセス可能なデータストアオブジェクトを制限 1. ストラクチャーエディターにて対象となるフィールドを選択し、右クリックでコンテキストメニューを開いてフィールドプロパティを選択します。 -2. フィールドの **RESTリソースとして公開** オプションの選択を解除します: - ![alt-text](../assets/en/REST/field.png) +2. Uncheck the **Expose as REST resource** for the field.
    + ![alt-text](../assets/en/REST/field.png)
    Repeat this for each field whose exposure needs to be modified. > あるフィールドが REST を通してアクセス可能であるためには、その親テーブルも公開されている必要があります。 親テーブルが公開されていない場合、各フィールドの公開設定に関わらず、すべてのフィールドがアクセス不可になります。 From 4bbfa0310edd936e98dd3eee220f97f8e8b47e54 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 23:35:21 +0100 Subject: [PATCH 145/264] New translations systemworkerclass.md (Japanese) --- .../version-20-R10/API/SystemWorkerClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SystemWorkerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SystemWorkerClass.md index 89c889f5096c76..ae195a59ea79d4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SystemWorkerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/API/SystemWorkerClass.md @@ -161,7 +161,7 @@ var $sw : 4D.SystemWorker $sw:=4D.SystemWorker.new($mydoc) ``` -4. カレントディレクトリでコマンドを実行し、メッセージそ送信します: +4. カレントディレクトリでコマンドを実行し、メッセージを送信します: ```4d var $param : Object From 068e1dac045697c1d542e86c06eaaa62f5a4638e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 12 Nov 2025 23:39:52 +0100 Subject: [PATCH 146/264] New translations privileges.md (Japanese) --- .../version-20-R10/ORDA/privileges.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/privileges.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/privileges.md index 4a1dcab564b42c..8e1688c5125199 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/privileges.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/ORDA/privileges.md @@ -201,7 +201,7 @@ Qodly Studio for 4D では、権限パネルの [**強制ログイン**オプシ ::: -#### Assigning permissions to ORDA class functions +#### ORDA クラス関数の権限の設定 When configuring permissions, ORDA class functions are declared in the `applyTo` element using the following syntax: @@ -218,7 +218,7 @@ Class extends Entity ... ``` -... you have to write: +... 以下のように記述します: ```json "applyTo":"City.getPopulation" From ba4dce59393f5e27f6653cfbb9c896d87320a6d7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 00:06:57 +0100 Subject: [PATCH 147/264] New translations systemworkerclass.md (Japanese) --- .../version-21/API/SystemWorkerClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md index 89c889f5096c76..ae195a59ea79d4 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SystemWorkerClass.md @@ -161,7 +161,7 @@ var $sw : 4D.SystemWorker $sw:=4D.SystemWorker.new($mydoc) ``` -4. カレントディレクトリでコマンドを実行し、メッセージそ送信します: +4. カレントディレクトリでコマンドを実行し、メッセージを送信します: ```4d var $param : Object From 2e7306ad93ee156d2827c93ed57dc57d06e677d7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 00:22:49 +0100 Subject: [PATCH 148/264] New translations updates.md (Japanese) --- .../docusaurus-plugin-content-docs/version-21/Notes/updates.md | 1 + 1 file changed, 1 insertion(+) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Notes/updates.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Notes/updates.md index e0b65d5524830a..7bdb8b1d9fa45c 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Notes/updates.md @@ -16,6 +16,7 @@ title: リリースノート - Web サーバーの[`start()`](../API/WebServerClass.md#start) 関数の*settings* 引数内の`handlers` プロパティを使用することで、[HTTP リクエストハンドラー](../WebServer/http-request-handler.md) を設定することができます。 - Web サーバーオブジェクトには新しい[`rules`](../API/WebServerClass.md#rules) and [`handlers`](../API/WebServerClass.md#handlers) プロパティが含まれます。 - 新しい[データに対するORDA イベント](../ORDA/orda-events.md): validateSave、saving、afterSave、validateDrop、dropping、afterDrop +- Support of the new [`restrictedByDefault` property](../ORDA/privileges.md#restriction-modes) in the `roles.json` file to block access by default to all resources without explicit permission. - [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) および [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew) クラスにおいて、ローカルの証明書フォルダの代わりにWindows 証明書ストアからの証明書を使用することを許可する新しいオプション。 - クライアント/サーバー: - Web エリア内でQodly ページを表示し、[リモートクライアントセッションを共有](../Desktop/clientServer.md#web-エリア内のqodly-ページでセッションを共有する)することができるようになりました。 From 0e91b96384ce077e8346a51d1cfe5cc2c00c703d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 00:23:02 +0100 Subject: [PATCH 149/264] New translations privileges.md (Japanese) --- .../version-21/ORDA/privileges.md | 364 ++++++++---------- 1 file changed, 158 insertions(+), 206 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md index 7c132e1778a823..cd4fbfc0254764 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md @@ -27,27 +27,21 @@ Webユーザーまたは RESTユーザーがログインすると、そのセッ プロジェクト内の以下のリソースに対して、許諾アクションと権限名を割り当てることができます (この設定をパーミッションと呼びます): -- データストア -- データクラス -- 属性 (計算属性およびエイリアス属性を含む) -- データモデルクラス関数 -- [シングルトン](../REST/$singleton.md)関数 +- the [datastore](../ORDA/dsMapping.md#datastore) +- the [dataclasses](../ORDA/dsMapping.md#dataclass) +- [attributes](../ORDA/dsMapping.md#attribute) (including [computed](./ordaClasses.md#computed-attributes-1) and [alias](./ordaClasses.md#alias-attributes-1)) +- functions of the [data model classes](../ORDA/ordaClasses.md) +- [singleton](../REST/$singleton.md) functions セッションがリソースにアクセスするたびに (アクセス形式に関係なく)、4D はセッションの権限を確認し、許可されていない場合にはアクセスを拒否します。 -あるレベルにおいて定義されたパーミッションは基本的に下位レベルに継承されますが、パーミッションは複数のレベルで設定することもできます: - -- データストアレベルで定義されたパーミッションは、自動的にすべてのデータクラスに割り当てられます。 データストアレベルで定義されたパーミッションは、自動的にすべてのデータクラスに割り当てられます。 データストアレベルで定義された*execute* 権限アクションは、[シングルトン](../REST/$singleton.md) 関数を含めてプロジェクトの全ての関数に対して適用されます。 -- データクラスレベルで定義されたパーミッションは、データストアの設定をオーバーライドします (あれば)。 デフォルトでは、データクラスのすべての属性が、データクラスのパーミッションを継承します。 -- データクラスとは異なり、属性レベルで定義されたパーミッションは、親のデータクラスの設定をオーバーライドするのではなく、それに追加されます。 たとえば、同じ許諾アクションに対し、データクラスのレベルでは "general" という権限名を、データクラスの属性のレベルでは "detail" という権限名を割り当てた場合、その属性にアクセスするには、セッションに "general" と "detail" の両方の権限が設定されている必要があります。 +## 権限 -:::info +A permission is the ability to do an action on a resource. For example, *execute the ds.myTable.myFunction()* represents a **permission**. Permissions are defined for the project in the [`roles.json`](#rolesjson-file) file. Each permission can be given to one or more [privileges](#privileges-and-roles). -パーミッションは、データストアオブジェクトや関数へのアクセスを制御します。 特定の条件に基づいて読み取りデータをフィルタリングしたい場合は、[制限付エンティティセレクション](entities.md#制限付エンティティセレクション) の利用がより適切かもしれません。 +When **no specific permission** has been defined for a resource, access to the resource may be automatically **unrestricted** or **restricted** depending on the [default mode defined for the project](#restriction-modes). -::: - -## 許諾アクション +### 許諾アクション 利用可能なアクションは対象となるリソースによります。 @@ -73,6 +67,65 @@ Webユーザーまたは RESTユーザーがログインすると、そのセッ 権限の設定には一貫性が必要です。特に、**update** および **drop** 権限は**read** 権限も必要とします(ただし**create** はそれを必要としません)。 +### Inherited permissions + +あるレベルにおいて定義されたパーミッションは基本的に下位レベルに継承されますが、パーミッションは複数のレベルで設定することもできます: + +- データストアレベルで定義されたパーミッションは、自動的にすべてのデータクラスに割り当てられます。 データストアレベルで定義されたパーミッションは、自動的にすべてのデータクラスに割り当てられます。 データストアレベルで定義された*execute* 権限アクションは、[シングルトン](../REST/$singleton.md) 関数を含めてプロジェクトの全ての関数に対して適用されます。 +- データクラスレベルで定義されたパーミッションは、データストアの設定をオーバーライドします (あれば)。 デフォルトでは、データクラスのすべての属性が、データクラスのパーミッションを継承します。 +- データクラスとは異なり、属性レベルで定義されたパーミッションは、親のデータクラスの設定をオーバーライドするのではなく、それに追加されます。 たとえば、同じ許諾アクションに対し、データクラスのレベルでは "general" という権限名を、データクラスの属性のレベルでは "detail" という権限名を割り当てた場合、その属性にアクセスするには、セッションに "general" と "detail" の両方の権限が設定されている必要があります。 + +:::info + +パーミッションは、データストアオブジェクトや関数へのアクセスを制御します。 特定の条件に基づいて読み取りデータをフィルタリングしたい場合は、[制限付エンティティセレクション](entities.md#制限付エンティティセレクション) の利用がより適切かもしれません。 + +::: + +### ORDA クラス関数の権限の設定 + +When configuring permissions, ORDA class functions are declared in the `applyTo` element using the following syntax: + +```json +. +``` + +For example, if you want to apply a permission to the following function: + +```4d +// cs.CityEntity class +Class extends Entity + Function getPopulation() : Integer + ... +``` + +... 以下のように記述します: + +```json +"applyTo":"City.getPopulation" +``` + +It means that you cannot use the same function names in the various ORDA classes (entity, entity selection, dataclass) if you want them to be assigned privileges. In this case, you need to use distinct function names. For example, if you have created a "drop" function in both `cs.CityEntity` and `cs.CitySelection` classes, you need to give them different names such as `dropEntity()` and `dropSelection()`. You can then write in the "roles.json" file: + +```json + "permissions": { + "allowed": [ + { + "applyTo": "City.dropEntity", + "type": "method", + "promote": [ + "name" + ] + }, + { + "applyTo": "City.dropSelection", + "type": "method", + "promote": [ + "name" + ] + } + ] +``` + ## 権限とロール **権限** とは、**リソース** に対して **アクション** を実行する技術的な能力であり、**ロール** は、管理者が使用するために公開された権限のことです。 基本的にロールとは、ビジネスユーザーのプロフィールを定義するためにいくつかの権限を集めたものです。 たとえば、"manageInvoices" (請求書管理) は権限の例で、"secretary" (秘書) は ("manageInvoices" および他の権限を持つ) ロールの例です。 基本的にロールとは、ビジネスユーザーのプロフィールを定義するためにいくつかの権限を集めたものです。 たとえば、"manageInvoices" (請求書管理) は権限の例で、"secretary" (秘書) は ("manageInvoices" および他の権限を持つ) ロールの例です。 @@ -112,142 +165,106 @@ exposed Function authenticate($identifier : Text; $password : Text)->$result : T ## `roles.json` ファイル -`roles.json` ファイルは、プロジェクトのセキュリティ設定の全体を記述します。 - -### デフォルトファイル +The `roles.json` file describes the whole web security settings for the project. `roles.json` ファイルの構文は次のとおりです: + +| プロパティ名 | | | 型 | 必須 | 説明 | +| ------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------- | -- | ------------------------------------------------------------------------------------------------------------------ | +| privileges | | | `privilege` オブジェクトの Collection | X | 定義された権限のリスト | +| | \[].privilege | | Text | | アクセス権の名称 | +| | \[].includes | | String の Collection | | 内包する権限名のリスト | +| roles | | | `role` オブジェクトの Collection | | 定義されたロールのリスト | +| | \[].role | | Text | | ロール名 | +| | \[].privileges | | String の Collection | | 内包する権限名のリスト | +| permissions | | | Object | X | 設定されたパーミッションのリスト | +| | allowed | | `permission` オブジェクトの Collection | | 許可されたパーミッションのリスト | +| | | \[].applyTo | Text | X | 対象の [リソース](#リソース) 名 | +| | | \[].type | Text | X | [リソース](#リソース) タイプ: "datastore", "dataclass", "attribute", "method", "singletonMethod", "singleton" | +| | | \[].read | String の Collection | | 権限名のリスト | +| | | \[].create | String の Collection | | 権限名のリスト | +| | | \[].update | String の Collection | | 権限名のリスト | +| | | \[].drop | String の Collection | | 権限名のリスト | +| | | \[].execute | String の Collection | | 権限名のリスト | +| | | \[].promote | String の Collection | | 権限名のリスト | +| restrictedByDefault | | | Boolean | | If true, access to resources without explicit permissions is denied | +| forceLogin | | | Boolean | | If true, enables ["forceLogin" mode](../REST/authUsers.md#force-login-mode) | -プロジェクトを作成すると、デフォルトの `roles.json` ファイルが次の場所に作成されます: `/Project/Sources/` ([アーキテクチャー](../Project/architecture.md#sources) 参照)。 +:::caution 注記 -デフォルトのファイルには次の内容が含まれています: +- "WebAdmin" 権限名は、アプリケーションによって予約されています。 この名前をカスタムの権限名に使用することは推奨されません。 +- `privileges` and `roles` names are case-insensitive. -```json title="/Project/Sources/roles.json" +::: -{ - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - - "roles": [], - - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": ["all"], - "create": ["all"], - "update": ["all"], - "drop": ["all"], - "execute": ["all"], - "promote": ["all"] - } - ] - }, - - "forceLogin": true +### Default File Location and Content -} +When a new project is created, a default `roles.json` file is generated at: +``` +/Project/Sources/ ``` -For a highest level of security, the "all" privilege is assigned to all permissions in the datastore, thus data access on the whole `ds` object is disabled by default. The principle is as follows: assigning a permission is like putting a lock on a door. Only sessions with privilege having the corresponding key (i.e., a permission) will be able to open the lock. -この "none" 権限はセキュリティのため、使用も変更もしないことが推奨されています。Web や RESTリクエストから利用可能にしたい各リソースには、それ専用の権限を新たに追加することが推奨されています ([以下の例を参照](#権限設定の例))。 +[アーキテクチャー](../Project/architecture.md#sources) を参照ください。 -:::caution +Default content: -`roles.json` ファイルに特定のパラメーターが定義されていない場合、アクセスは制限されません。 これにより、アクセスを気にすることなくアプリケーションを開発することができますが、本番環境では推奨されていません。 +```json title="/Project/Sources/roles.json" -::: +{ + "privileges": [ + ], + "roles": [ + ], + "permissions": { + "allowed": [ + { + "applyTo": "ds", + "type": "datastore", + "read": [], + "create": [], + "update": [], + "drop": [], + "execute": [], + "promote": [] + } + ] + }, + "restrictedByDefault": false, + "forceLogin": false +} +``` :::note 互換性 以前のリリースでは、`roles.json` ファイルはデフォルトで作成されませんでした。 4D 20 R6 以降、`roles.json`ファイルを含まない、または `"forceLogin": true` の設定が含まれていない既存のプロジェクトを開く場合、[設定ダイアログボックスの **Web機能** ページ](../settings/web.md#アクセス権) で **ds.authentify() 関数を通しての REST認証を有効化** ボタンが利用可能になります。 このボタンはセキュリティ設定を自動的にアップグレードします (コードを修正する必要があるかもしれません。[このブログ記事を参照ください](https://blog.4d.com/ja/force-login-becomes-default-for-all-rest-auth))。 + ::: :::note Qodly Studio -Qodly Studio for 4D では、権限パネルの [**強制ログイン**オプション](../WebServer/qodly-studio.md#force-login) を使用してログインモードを設定することができます。 +In Qodly Studio for 4D, the login mode can be set using the [**Force login** option](https://developer.4d.com/qodly/4DQodlyPro/force-login) in the Roles and Privileges panel. ::: -### シンタックス - -`roles.json` ファイルの構文は次のとおりです: - -| プロパティ名 | | | 型 | 必須 | 説明 | -| ----------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ------------------------------- | -- | ------------------------------------------------------------------------------------------------------------------ | -| privileges | | | `privilege` オブジェクトの Collection | X | 定義された権限のリスト | -| | \[].privilege | | Text | | アクセス権の名称 | -| | \[].includes | | String の Collection | | 内包する権限名のリスト | -| roles | | | `role` オブジェクトの Collection | | 定義されたロールのリスト | -| | \[].role | | Text | | ロール名 | -| | \[].privileges | | String の Collection | | 内包する権限名のリスト | -| permissions | | | Object | X | 設定されたパーミッションのリスト | -| | allowed | | `permission` オブジェクトの Collection | | 許可されたパーミッションのリスト | -| | | \[].applyTo | Text | X | 対象の [リソース](#リソース) 名 | -| | | \[].type | Text | X | [リソース](#リソース) タイプ: "datastore", "dataclass", "attribute", "method", "singletonMethod", "singleton" | -| | | \[].read | String の Collection | | 権限名のリスト | -| | | \[].create | String の Collection | | 権限名のリスト | -| | | \[].update | String の Collection | | 権限名のリスト | -| | | \[].drop | String の Collection | | 権限名のリスト | -| | | \[].execute | String の Collection | | 権限名のリスト | -| | | \[].promote | String の Collection | | 権限名のリスト | -| forceLogin | | | Boolean | | ["forceLogin" モード](../REST/authUsers.md#force-login-mode) を有効にする場合は true | - -:::caution 注記 - -- "WebAdmin" 権限名は、アプリケーションによって予約されています。 この名前をカスタムの権限名に使用することは推奨されません。 -- `privileges` および `roles` の名称においては文字の大小が区別されます。 +## Restriction Modes -::: +The `restrictedByDefault` property configures how every [resource](#resources) are accessed when [no specific permission is defined for it](#permission): -#### Assigning permissions to ORDA class functions +- **Unrestricted mode** (`restrictedByDefault`: **false**): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. +- **Restricted mode** (`restrictedByDefault`: **true**): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. -When configuring permissions, ORDA class functions are declared in the `applyTo` element using the following syntax: - -```json -. -``` +:::note 互換性 -For example, if you want to apply a permission to the following function: +- When **creating a new project**, the `restrictedByDefault` property is set to **false** in the *roles.json* file (see below). Keep in mind that this configuration is tailored for quick start and smooth development. In production environment, [it is recommended to set the `restrictedByDefault` and `forceLogin` properties to **true**](#configuring-restrictedbydefault-and-forcelogin-properties). +- In **projects converted from previous releases**; when enabling access to Qodly Studio using the [One-click configuration dialog](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#one-click-configuration), the `restrictedByDefault` property is added with value **true** in the *roles.json* file. -```4d -// cs.CityEntity class -Class extends Entity - Function getPopulation() : Integer - ... -``` +::: -... you have to write: +### Recommended Configuration -```json -"applyTo":"City.getPopulation" -``` +Depending on your environment, the recommended settings are: -It means that you cannot use the same function names in the various ORDA classes (entity, entity selection, dataclass) if you want them to be assigned privileges. In this case, you need to use distinct function names. For example, if you have created a "drop" function in both `cs.CityEntity` and `cs.CitySelection` classes, you need to give them different names such as `dropEntity()` and `dropSelection()`. You can then write in the "roles.json" file: - -```json - "permissions": { - "allowed": [ - { - "applyTo": "City.dropEntity", - "type": "method", - "promote": [ - "name" - ] - }, - { - "applyTo": "City.dropSelection", - "type": "method", - "promote": [ - "name" - ] - } - ] -``` +- **Production**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **true**. This ensures maximum security by requiring user authentication and explicitly defined permissions for resource access. +- **Development**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **false**. This allows easier access during development and debugging, with the possibility to gradually apply restrictions. ### `Roles_Errors.json` ファイル @@ -269,93 +286,28 @@ End if ## 権限設定の例 -The good practice is to keep all data access locked by default thanks to the "all" privilege and to configure the `roles.json` file to only open controlled parts to authorized sessions. For example, to allow some accesses to "guest" sessions: - ```json title="/Project/Sources/roles.json" { - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - "roles": [], - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": [ - "all" - ], - "create": [ - "all" - ], - "update": [ - "all" - ], - "drop": [ - "all" - ], - "execute": [ - "all" - ], - "promote": [ - "all" - ] - }, - { - "applyTo": "ds.loginAs", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.hasPrivilege", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.clearPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.isGuest", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.getPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.setAllPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "mySingletonClass.createID", - "type": "singletonMethod", - "execute": [ - "guest" - ] - } - ] - }, - "forceLogin": true + "forceLogin": true, + "restrictedByDefault": true, + "permissions": { + "allowed": [ + { + "applyTo": "People", + "type": "dataclass", + "read": [ + "viewPeople" + ] + } + ] + }, + "privileges": [ + { + "privilege": "viewPeople", + "includes": [] + } + ], + "roles": [] } ``` From ed992c319956356c80a85292ca40fa7274f49a2a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 00:50:40 +0100 Subject: [PATCH 150/264] New translations updates.md (Portuguese, Brazilian) --- .../version-20/Notes/updates.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20/Notes/updates.md b/i18n/pt/docusaurus-plugin-content-docs/version-20/Notes/updates.md index 9c041416784e6d..9f8a14853cafd3 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20/Notes/updates.md @@ -11,6 +11,14 @@ Leia [**O que há de novo no 4D 20**](https://blog.4d.com/en-whats-new-in-4d-v20 ::: +## 4D 20.8 LTS + +#### Destaques + +- [**Lista de bugs corrigidos**](https://bugs.4d.com/fixes?version=20.8): lista de todos os erros corrigidos no 4D 20.8 LTS. + + + ## 4D 20.7 LTS #### Destaques From 98b765f49a5f816e547d86824203c6194383780f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 01:13:50 +0100 Subject: [PATCH 151/264] New translations privileges.md (Portuguese, Brazilian) --- .../current/ORDA/privileges.md | 352 ++++++++---------- 1 file changed, 152 insertions(+), 200 deletions(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/privileges.md b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/privileges.md index 73c0eff02fec15..d77f22431e141f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/privileges.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/ORDA/privileges.md @@ -27,27 +27,21 @@ Se um usuário tentar executar uma ação e não tiver os direitos de acesso ade You can assign specific permission actions to the following resources in your project: -- o datastore -- uma classe de dados -- um atributo (inclusive calculado e aliases) -- uma função de classe de modelo de dados -- uma função [singleton](../REST/$singleton.md) +- the [datastore](../ORDA/dsMapping.md#datastore) +- the [dataclasses](../ORDA/dsMapping.md#dataclass) +- [attributes](../ORDA/dsMapping.md#attribute) (including [computed](./ordaClasses.md#computed-attributes-1) and [alias](./ordaClasses.md#alias-attributes-1)) +- functions of the [data model classes](../ORDA/ordaClasses.md) +- [singleton](../REST/$singleton.md) functions Each time a resource is accessed within a session (whatever the way it is accessed), 4D checks that the session has the appropriate permissions, and rejects the access if it is not authorized. -Uma ação de permissão definida em um determinado nível é herdada por padrão em níveis inferiores, mas várias permissões podem ser configuradas: - -- Uma ação de permissão definida no nível do datastore é automaticamente atribuída a todas as dataclasses. A ação de permissão *execute* definida no nível de datastore aplica-se a todas as funções do projeto, incluindo todas as funções [singleton](../REST/$singleton.md). -- Uma ação de permissão definida ao nível da classe de dados substitui a definição do armazenamento de dados (se existir). Por padrão, todos os atributos do dataclass herdam das permissões de banco de dados. -- Ao contrário das permissões da classe de dados, uma ação de permissão definida no nível do atributo não substitui a(s) permissão(ões) pai da classe de dados, mas é adicionada a ela. Por exemplo, se você atribuiu o privilégio "geral" a uma classe de dados e o privilégio "detalhe" a um atributo da classe de dados, ambos os privilégios "geral" e "detalhe" devem ser definidos na sessão para acessar o atributo. - -:::info +## Permissions -Permissões controlam o acesso a objetos ou funções de armazenamento de dados. Se você deseja filtrar os dados lidos de acordo com alguns critérios, você pode considerar [restringir as seleções de entidades](entities.md#restricting-entity-selections) que pode ser mais apropriado neste caso. +A permission is the ability to do an action on a resource. For example, *execute the ds.myTable.myFunction()* represents a **permission**. Permissions are defined for the project in the [`roles.json`](#rolesjson-file) file. Each permission can be given to one or more [privileges](#privileges-and-roles). -::: +When **no specific permission** has been defined for a resource, access to the resource may be automatically **unrestricted** or **restricted** depending on the [default mode defined for the project](#restriction-modes). -## Ações de permissão +### Ações de permissão As ações disponíveis estão relacionadas com o recurso alvo. @@ -73,6 +67,65 @@ As ações disponíveis estão relacionadas com o recurso alvo. Setting permissions requires to be consistent, in particular **update** and **drop** permissions also need **read** permission (but **create** does not need it). +### Inherited permissions + +Uma ação de permissão definida em um determinado nível é herdada por padrão em níveis inferiores, mas várias permissões podem ser configuradas: + +- Uma ação de permissão definida no nível do datastore é automaticamente atribuída a todas as dataclasses. A ação de permissão *execute* definida no nível de datastore aplica-se a todas as funções do projeto, incluindo todas as funções [singleton](../REST/$singleton.md). +- Uma ação de permissão definida ao nível da classe de dados substitui a definição do armazenamento de dados (se existir). Por padrão, todos os atributos do dataclass herdam das permissões de banco de dados. +- Ao contrário das permissões da classe de dados, uma ação de permissão definida no nível do atributo não substitui a(s) permissão(ões) pai da classe de dados, mas é adicionada a ela. Por exemplo, se você atribuiu o privilégio "geral" a uma classe de dados e o privilégio "detalhe" a um atributo da classe de dados, ambos os privilégios "geral" e "detalhe" devem ser definidos na sessão para acessar o atributo. + +:::info + +Permissões controlam o acesso a objetos ou funções de armazenamento de dados. Se você deseja filtrar os dados lidos de acordo com alguns critérios, você pode considerar [restringir as seleções de entidades](entities.md#restricting-entity-selections) que pode ser mais apropriado neste caso. + +::: + +### Atribuição de permissões a funções da classe ORDA + +When configuring permissions, ORDA class functions are declared in the `applyTo` element using the following syntax: + +```json +. +``` + +For example, if you want to apply a permission to the following function: + +```4d +// cs.CityEntity class +Class extends Entity + Function getPopulation() : Integer + ... +``` + +... você precisa escrever: + +```json +"applyTo":"City.getPopulation" +``` + +It means that you cannot use the same function names in the various ORDA classes (entity, entity selection, dataclass) if you want them to be assigned privileges. In this case, you need to use distinct function names. For example, if you have created a "drop" function in both `cs.CityEntity` and `cs.CitySelection` classes, you need to give them different names such as `dropEntity()` and `dropSelection()`. Em seguida, você pode escrever no arquivo "roles.json": + +```json + "permissions": { + "allowed": [ + { + "applyTo": "City.dropEntity", + "type": "method", + "promote": [ + "name" + ] + }, + { + "applyTo": "City.dropSelection", + "type": "method", + "promote": [ + "name" + ] + } + ] +``` + ## Privilégios e funções Um **privilégio** é a habilidade técnica de executar **ações** em **recursos**, enquanto um **cargo** é um privilégio posto de uso por um administrador. Basicamente, uma função reúne vários privilégios para definir um perfil de usuário corporativo. Por exemplo, "manageInvoices" poderia ser um privilégio enquanto "secretary" poderia ser uma função (que inclui "manageInvoices" e outros privilégios). @@ -111,70 +164,7 @@ exposed Function authenticate($identifier : Text; $password : Text)->$result : T ## arquivo `roles.json` -O arquivo `roles.json` descreve todas as configurações de segurança do projeto. - -### Arquivo padrão - -When you create a project, a default `roles.json` file is created at the following location: `/Project/Sources/` (see [Architecture](../Project/architecture.md#sources) section). - -O arquivo padrão tem o seguinte conteúdo: - -```json title="/Project/Sources/roles.json" - -{ - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - - "roles": [], - - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": ["all"], - "create": ["all"], - "update": ["all"], - "drop": ["all"], - "execute": ["all"], - "promote": ["all"] - } - ] - }, - - "forceLogin": true - -} - -``` - -For a highest level of security, the "all" privilege is assigned to all permissions in the datastore, thus data access on the whole `ds` object is disabled by default. The principle is as follows: assigning a permission is like putting a lock on a door. Only sessions with privilege having the corresponding key (i.e., a permission) will be able to open the lock. -É recomendado não modificar ou usar esse privilégio de bloqueio, mas adicionar permissões específicas a cada recurso que você deseja disponibilizar para solicitações da web ou REST (veja o exemplo abaixo). - -:::caution - -Quando nenhum parâmetro específico é definido no arquivo `roles.json`, os acessos não são limitados. Esta configuração permite que você desenvolva a aplicação sem se preocupar com acessos, mas não é recomendada em ambiente de produção. - -::: - -:::note Compatibidade - -Em versões anteriores, o arquivo `roles.json` não foi criado por padrão. A partir de 4D 20 R6, ao abrir um projeto existente que não contém um `cargos. arquivo son` ou as configurações `"forceLogin": true`, a **Ativar autenticação REST através de d. Função uthentify()** está disponível na página [**Recursos Web** da caixa de diálogo Configurações](../settings/web.md#access). Este botão atualiza automaticamente suas configurações de segurança (você pode ter que modificar seu código, [veja este post de blog](https://blog.4d.com/force-login-becomes-default-for-all-rest-auth/)). -::: - -:::note Qodly Studio - -No Qodly Studio para 4D, o modo pode ser definido usando a opção [**Forçar login**](../WebServer/qodly-studio.md#force-login) no painel de Privilégios. - -::: - -### Sintaxe - -A sintaxe do arquivo `roles.json` é a seguinte: +The `roles.json` file describes the whole web security settings for the project. A sintaxe do arquivo `roles.json` é a seguinte: | Nome da propriedade | | | Tipo | Obrigatório | Descrição | | ------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ---------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------ | @@ -194,60 +184,87 @@ A sintaxe do arquivo `roles.json` é a seguinte: | | | \[].drop | Coleção de strings | | Lista de privilégios | | | | \[].execute | Coleção de strings | | Lista de privilégios | | | | \[].promote | Coleção de strings | | Lista de privilégios | -| forceLogin | | | Parâmetros | | True para habilitar el [modo "forceLogin"](../REST/authUsers.md#force-login-mode) | +| restrictedByDefault | | | Parâmetros | | If true, access to resources without explicit permissions is denied | +| forceLogin | | | Parâmetros | | If true, enables ["forceLogin" mode](../REST/authUsers.md#force-login-mode) | :::caution Lembrete - O nome do privilégio "WebAdmin" está reservado à aplicação. Não se recomenda a utilização deste nome para privilégios personalizados. -- Os nomes de `privilégios` e `cargos` são insensíveis a maiúsculas e minúsculas. +- `privileges` and `roles` names are case-insensitive. ::: -#### Atribuição de permissões a funções da classe ORDA +### Default File Location and Content -When configuring permissions, ORDA class functions are declared in the `applyTo` element using the following syntax: +When a new project is created, a default `roles.json` file is generated at: -```json -. ``` - -For example, if you want to apply a permission to the following function: - -```4d -// cs.CityEntity class -Class extends Entity - Function getPopulation() : Integer - ... +/Project/Sources/ ``` -... você precisa escrever: +Ver la sección [Arquitectura](../Project/architecture.md#sources). -```json -"applyTo":"City.getPopulation" -``` +Default content: -It means that you cannot use the same function names in the various ORDA classes (entity, entity selection, dataclass) if you want them to be assigned privileges. In this case, you need to use distinct function names. For example, if you have created a "drop" function in both `cs.CityEntity` and `cs.CitySelection` classes, you need to give them different names such as `dropEntity()` and `dropSelection()`. Em seguida, você pode escrever no arquivo "roles.json": +```json title="/Project/Sources/roles.json" -```json - "permissions": { - "allowed": [ - { - "applyTo": "City.dropEntity", - "type": "method", - "promote": [ - "name" - ] - }, - { - "applyTo": "City.dropSelection", - "type": "method", - "promote": [ - "name" - ] - } +{ + "privileges": [ + ], + "roles": [ + ], + "permissions": { + "allowed": [ + { + "applyTo": "ds", + "type": "datastore", + "read": [], + "create": [], + "update": [], + "drop": [], + "execute": [], + "promote": [] + } ] + }, + "restrictedByDefault": false, + "forceLogin": false +} ``` +:::note Compatibidade + +Em versões anteriores, o arquivo `roles.json` não foi criado por padrão. A partir de 4D 20 R6, ao abrir um projeto existente que não contém um `cargos. arquivo son` ou as configurações `"forceLogin": true`, a **Ativar autenticação REST através de d. Função uthentify()** está disponível na página [**Recursos Web** da caixa de diálogo Configurações](../settings/web.md#access). Este botão atualiza automaticamente suas configurações de segurança (você pode ter que modificar seu código, [veja este post de blog](https://blog.4d.com/force-login-becomes-default-for-all-rest-auth/)). + +::: + +:::note Qodly Studio + +In Qodly Studio for 4D, the login mode can be set using the [**Force login** option](https://developer.4d.com/qodly/4DQodlyPro/force-login) in the Roles and Privileges panel. + +::: + +## Restriction Modes + +The `restrictedByDefault` property configures how every [resource](#resources) are accessed when [no specific permission is defined for it](#permission): + +- **Unrestricted mode** (`restrictedByDefault`: **false**): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. +- **Restricted mode** (`restrictedByDefault`: **true**): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. + +:::note Compatibidade + +- When **creating a new project**, the `restrictedByDefault` property is set to **false** in the *roles.json* file (see below). Keep in mind that this configuration is tailored for quick start and smooth development. In production environment, [it is recommended to set the `restrictedByDefault` and `forceLogin` properties to **true**](#configuring-restrictedbydefault-and-forcelogin-properties). +- In **projects converted from previous releases**; when enabling access to Qodly Studio using the [One-click configuration dialog](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#one-click-configuration), the `restrictedByDefault` property is added with value **true** in the *roles.json* file. + +::: + +### Recommended Configuration + +Depending on your environment, the recommended settings are: + +- **Production**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **true**. This ensures maximum security by requiring user authentication and explicitly defined permissions for resource access. +- **Development**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **false**. This allows easier access during development and debugging, with the possibility to gradually apply restrictions. + ### Arquivo `Roles_Errors.json` O arquivo `roles.json` é analisado pelo 4D na inicialização. Você precisa reiniciar o aplicativo se quiser que as modificações neste arquivo sejam consideradas. @@ -267,93 +284,28 @@ Finalizado, se ## Exemplo de configuração de privilégios -The good practice is to keep all data access locked by default thanks to the "all" privilege and to configure the `roles.json` file to only open controlled parts to authorized sessions. For example, to allow some accesses to "guest" sessions: - ```json title="/Project/Sources/roles.json" { - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - "roles": [], - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": [ - "all" - ], - "create": [ - "all" - ], - "update": [ - "all" - ], - "drop": [ - "all" - ], - "execute": [ - "all" - ], - "promote": [ - "all" - ] - }, - { - "applyTo": "ds.loginAs", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.hasPrivilege", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.clearPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.isGuest", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.getPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.setAllPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "mySingletonClass.createID", - "type": "singletonMethod", - "execute": [ - "guest" - ] - } - ] - }, - "forceLogin": true + "forceLogin": true, + "restrictedByDefault": true, + "permissions": { + "allowed": [ + { + "applyTo": "People", + "type": "dataclass", + "read": [ + "viewPeople" + ] + } + ] + }, + "privileges": [ + { + "privilege": "viewPeople", + "includes": [] + } + ], + "roles": [] } ``` From 04b40154bd78398eb428a4bfcf5fde445a46657f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 01:14:43 +0100 Subject: [PATCH 152/264] New translations configuration.md (Portuguese, Brazilian) --- .../current/REST/configuration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/REST/configuration.md b/i18n/pt/docusaurus-plugin-content-docs/current/REST/configuration.md index 3f4634994d1de1..c661a5b35d2ee0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/REST/configuration.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/REST/configuration.md @@ -70,8 +70,8 @@ Para eliminar a exposição REST de um campo: 1. Exibar o inspetor de Campo no editor de Estruturas e selecione o campo a modificar. -2. Desmarque la opción **Exponer como recurso REST** para el campo. - ![alt-text](../assets/en/REST/field.png) +2. Uncheck the **Expose as REST resource** for the field.
    + ![alt-text](../assets/en/REST/field.png)
    Repeat this for each field whose exposure needs to be modified. > Para que um campo seja accessível a través de REST, a tabela pai também deve ser. Se a tabela pai não estiver exposta, nenhum dos campos estará, independente de seu estado. From 744c10c35ab023bc7e3e00d3bd64d240432bae0f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 02:28:45 +0100 Subject: [PATCH 153/264] New translations updates.md (Portuguese, Brazilian) --- .../docusaurus-plugin-content-docs/version-21/Notes/updates.md | 1 + 1 file changed, 1 insertion(+) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Notes/updates.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Notes/updates.md index 52e8e6a51fb89e..aaa5ca6daaf843 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Notes/updates.md @@ -16,6 +16,7 @@ Leia [**O que há de novo no 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/ - ability to set [HTTP request handlers](../WebServer/http-request-handler.md) using a `handlers` property in the *settings* parameter of the Web server [`start()`](../API/WebServerClass.md#start) function, - the Web server object contains new [`rules`](../API/WebServerClass.md#rules) and [`handlers`](../API/WebServerClass.md#handlers) properties. - New [ORDA events on data](../ORDA/orda-events.md): validateSave, saving, afterSave, validateDrop, dropping, afterDrop. +- Support of the new [`restrictedByDefault` property](../ORDA/privileges.md#restriction-modes) in the `roles.json` file to block access by default to all resources without explicit permission. - New option allowing to use certificates from Windows Certificate Store instead of a local certificates folder in [`HTTPRequest`](../API/HTTPRequestClass.md#4dhttprequestnew) and [`HTTPAgent`](../API/HTTPAgentClass.md#4dhttpagentnew) classes. - Client/server: - You can display Qodly pages in Web areas and [share the remote client session](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). From e2251d0b13b36cce0f00dacb0b2866ee2ea7fb26 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 02:29:00 +0100 Subject: [PATCH 154/264] New translations privileges.md (Portuguese, Brazilian) --- .../version-21/ORDA/privileges.md | 352 ++++++++---------- 1 file changed, 152 insertions(+), 200 deletions(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md index 73c0eff02fec15..d77f22431e141f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md @@ -27,27 +27,21 @@ Se um usuário tentar executar uma ação e não tiver os direitos de acesso ade You can assign specific permission actions to the following resources in your project: -- o datastore -- uma classe de dados -- um atributo (inclusive calculado e aliases) -- uma função de classe de modelo de dados -- uma função [singleton](../REST/$singleton.md) +- the [datastore](../ORDA/dsMapping.md#datastore) +- the [dataclasses](../ORDA/dsMapping.md#dataclass) +- [attributes](../ORDA/dsMapping.md#attribute) (including [computed](./ordaClasses.md#computed-attributes-1) and [alias](./ordaClasses.md#alias-attributes-1)) +- functions of the [data model classes](../ORDA/ordaClasses.md) +- [singleton](../REST/$singleton.md) functions Each time a resource is accessed within a session (whatever the way it is accessed), 4D checks that the session has the appropriate permissions, and rejects the access if it is not authorized. -Uma ação de permissão definida em um determinado nível é herdada por padrão em níveis inferiores, mas várias permissões podem ser configuradas: - -- Uma ação de permissão definida no nível do datastore é automaticamente atribuída a todas as dataclasses. A ação de permissão *execute* definida no nível de datastore aplica-se a todas as funções do projeto, incluindo todas as funções [singleton](../REST/$singleton.md). -- Uma ação de permissão definida ao nível da classe de dados substitui a definição do armazenamento de dados (se existir). Por padrão, todos os atributos do dataclass herdam das permissões de banco de dados. -- Ao contrário das permissões da classe de dados, uma ação de permissão definida no nível do atributo não substitui a(s) permissão(ões) pai da classe de dados, mas é adicionada a ela. Por exemplo, se você atribuiu o privilégio "geral" a uma classe de dados e o privilégio "detalhe" a um atributo da classe de dados, ambos os privilégios "geral" e "detalhe" devem ser definidos na sessão para acessar o atributo. - -:::info +## Permissions -Permissões controlam o acesso a objetos ou funções de armazenamento de dados. Se você deseja filtrar os dados lidos de acordo com alguns critérios, você pode considerar [restringir as seleções de entidades](entities.md#restricting-entity-selections) que pode ser mais apropriado neste caso. +A permission is the ability to do an action on a resource. For example, *execute the ds.myTable.myFunction()* represents a **permission**. Permissions are defined for the project in the [`roles.json`](#rolesjson-file) file. Each permission can be given to one or more [privileges](#privileges-and-roles). -::: +When **no specific permission** has been defined for a resource, access to the resource may be automatically **unrestricted** or **restricted** depending on the [default mode defined for the project](#restriction-modes). -## Ações de permissão +### Ações de permissão As ações disponíveis estão relacionadas com o recurso alvo. @@ -73,6 +67,65 @@ As ações disponíveis estão relacionadas com o recurso alvo. Setting permissions requires to be consistent, in particular **update** and **drop** permissions also need **read** permission (but **create** does not need it). +### Inherited permissions + +Uma ação de permissão definida em um determinado nível é herdada por padrão em níveis inferiores, mas várias permissões podem ser configuradas: + +- Uma ação de permissão definida no nível do datastore é automaticamente atribuída a todas as dataclasses. A ação de permissão *execute* definida no nível de datastore aplica-se a todas as funções do projeto, incluindo todas as funções [singleton](../REST/$singleton.md). +- Uma ação de permissão definida ao nível da classe de dados substitui a definição do armazenamento de dados (se existir). Por padrão, todos os atributos do dataclass herdam das permissões de banco de dados. +- Ao contrário das permissões da classe de dados, uma ação de permissão definida no nível do atributo não substitui a(s) permissão(ões) pai da classe de dados, mas é adicionada a ela. Por exemplo, se você atribuiu o privilégio "geral" a uma classe de dados e o privilégio "detalhe" a um atributo da classe de dados, ambos os privilégios "geral" e "detalhe" devem ser definidos na sessão para acessar o atributo. + +:::info + +Permissões controlam o acesso a objetos ou funções de armazenamento de dados. Se você deseja filtrar os dados lidos de acordo com alguns critérios, você pode considerar [restringir as seleções de entidades](entities.md#restricting-entity-selections) que pode ser mais apropriado neste caso. + +::: + +### Atribuição de permissões a funções da classe ORDA + +When configuring permissions, ORDA class functions are declared in the `applyTo` element using the following syntax: + +```json +. +``` + +For example, if you want to apply a permission to the following function: + +```4d +// cs.CityEntity class +Class extends Entity + Function getPopulation() : Integer + ... +``` + +... você precisa escrever: + +```json +"applyTo":"City.getPopulation" +``` + +It means that you cannot use the same function names in the various ORDA classes (entity, entity selection, dataclass) if you want them to be assigned privileges. In this case, you need to use distinct function names. For example, if you have created a "drop" function in both `cs.CityEntity` and `cs.CitySelection` classes, you need to give them different names such as `dropEntity()` and `dropSelection()`. Em seguida, você pode escrever no arquivo "roles.json": + +```json + "permissions": { + "allowed": [ + { + "applyTo": "City.dropEntity", + "type": "method", + "promote": [ + "name" + ] + }, + { + "applyTo": "City.dropSelection", + "type": "method", + "promote": [ + "name" + ] + } + ] +``` + ## Privilégios e funções Um **privilégio** é a habilidade técnica de executar **ações** em **recursos**, enquanto um **cargo** é um privilégio posto de uso por um administrador. Basicamente, uma função reúne vários privilégios para definir um perfil de usuário corporativo. Por exemplo, "manageInvoices" poderia ser um privilégio enquanto "secretary" poderia ser uma função (que inclui "manageInvoices" e outros privilégios). @@ -111,70 +164,7 @@ exposed Function authenticate($identifier : Text; $password : Text)->$result : T ## arquivo `roles.json` -O arquivo `roles.json` descreve todas as configurações de segurança do projeto. - -### Arquivo padrão - -When you create a project, a default `roles.json` file is created at the following location: `/Project/Sources/` (see [Architecture](../Project/architecture.md#sources) section). - -O arquivo padrão tem o seguinte conteúdo: - -```json title="/Project/Sources/roles.json" - -{ - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - - "roles": [], - - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": ["all"], - "create": ["all"], - "update": ["all"], - "drop": ["all"], - "execute": ["all"], - "promote": ["all"] - } - ] - }, - - "forceLogin": true - -} - -``` - -For a highest level of security, the "all" privilege is assigned to all permissions in the datastore, thus data access on the whole `ds` object is disabled by default. The principle is as follows: assigning a permission is like putting a lock on a door. Only sessions with privilege having the corresponding key (i.e., a permission) will be able to open the lock. -É recomendado não modificar ou usar esse privilégio de bloqueio, mas adicionar permissões específicas a cada recurso que você deseja disponibilizar para solicitações da web ou REST (veja o exemplo abaixo). - -:::caution - -Quando nenhum parâmetro específico é definido no arquivo `roles.json`, os acessos não são limitados. Esta configuração permite que você desenvolva a aplicação sem se preocupar com acessos, mas não é recomendada em ambiente de produção. - -::: - -:::note Compatibidade - -Em versões anteriores, o arquivo `roles.json` não foi criado por padrão. A partir de 4D 20 R6, ao abrir um projeto existente que não contém um `cargos. arquivo son` ou as configurações `"forceLogin": true`, a **Ativar autenticação REST através de d. Função uthentify()** está disponível na página [**Recursos Web** da caixa de diálogo Configurações](../settings/web.md#access). Este botão atualiza automaticamente suas configurações de segurança (você pode ter que modificar seu código, [veja este post de blog](https://blog.4d.com/force-login-becomes-default-for-all-rest-auth/)). -::: - -:::note Qodly Studio - -No Qodly Studio para 4D, o modo pode ser definido usando a opção [**Forçar login**](../WebServer/qodly-studio.md#force-login) no painel de Privilégios. - -::: - -### Sintaxe - -A sintaxe do arquivo `roles.json` é a seguinte: +The `roles.json` file describes the whole web security settings for the project. A sintaxe do arquivo `roles.json` é a seguinte: | Nome da propriedade | | | Tipo | Obrigatório | Descrição | | ------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ---------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------ | @@ -194,60 +184,87 @@ A sintaxe do arquivo `roles.json` é a seguinte: | | | \[].drop | Coleção de strings | | Lista de privilégios | | | | \[].execute | Coleção de strings | | Lista de privilégios | | | | \[].promote | Coleção de strings | | Lista de privilégios | -| forceLogin | | | Parâmetros | | True para habilitar el [modo "forceLogin"](../REST/authUsers.md#force-login-mode) | +| restrictedByDefault | | | Parâmetros | | If true, access to resources without explicit permissions is denied | +| forceLogin | | | Parâmetros | | If true, enables ["forceLogin" mode](../REST/authUsers.md#force-login-mode) | :::caution Lembrete - O nome do privilégio "WebAdmin" está reservado à aplicação. Não se recomenda a utilização deste nome para privilégios personalizados. -- Os nomes de `privilégios` e `cargos` são insensíveis a maiúsculas e minúsculas. +- `privileges` and `roles` names are case-insensitive. ::: -#### Atribuição de permissões a funções da classe ORDA +### Default File Location and Content -When configuring permissions, ORDA class functions are declared in the `applyTo` element using the following syntax: +When a new project is created, a default `roles.json` file is generated at: -```json -. ``` - -For example, if you want to apply a permission to the following function: - -```4d -// cs.CityEntity class -Class extends Entity - Function getPopulation() : Integer - ... +/Project/Sources/ ``` -... você precisa escrever: +Ver la sección [Arquitectura](../Project/architecture.md#sources). -```json -"applyTo":"City.getPopulation" -``` +Default content: -It means that you cannot use the same function names in the various ORDA classes (entity, entity selection, dataclass) if you want them to be assigned privileges. In this case, you need to use distinct function names. For example, if you have created a "drop" function in both `cs.CityEntity` and `cs.CitySelection` classes, you need to give them different names such as `dropEntity()` and `dropSelection()`. Em seguida, você pode escrever no arquivo "roles.json": +```json title="/Project/Sources/roles.json" -```json - "permissions": { - "allowed": [ - { - "applyTo": "City.dropEntity", - "type": "method", - "promote": [ - "name" - ] - }, - { - "applyTo": "City.dropSelection", - "type": "method", - "promote": [ - "name" - ] - } +{ + "privileges": [ + ], + "roles": [ + ], + "permissions": { + "allowed": [ + { + "applyTo": "ds", + "type": "datastore", + "read": [], + "create": [], + "update": [], + "drop": [], + "execute": [], + "promote": [] + } ] + }, + "restrictedByDefault": false, + "forceLogin": false +} ``` +:::note Compatibidade + +Em versões anteriores, o arquivo `roles.json` não foi criado por padrão. A partir de 4D 20 R6, ao abrir um projeto existente que não contém um `cargos. arquivo son` ou as configurações `"forceLogin": true`, a **Ativar autenticação REST através de d. Função uthentify()** está disponível na página [**Recursos Web** da caixa de diálogo Configurações](../settings/web.md#access). Este botão atualiza automaticamente suas configurações de segurança (você pode ter que modificar seu código, [veja este post de blog](https://blog.4d.com/force-login-becomes-default-for-all-rest-auth/)). + +::: + +:::note Qodly Studio + +In Qodly Studio for 4D, the login mode can be set using the [**Force login** option](https://developer.4d.com/qodly/4DQodlyPro/force-login) in the Roles and Privileges panel. + +::: + +## Restriction Modes + +The `restrictedByDefault` property configures how every [resource](#resources) are accessed when [no specific permission is defined for it](#permission): + +- **Unrestricted mode** (`restrictedByDefault`: **false**): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. +- **Restricted mode** (`restrictedByDefault`: **true**): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. + +:::note Compatibidade + +- When **creating a new project**, the `restrictedByDefault` property is set to **false** in the *roles.json* file (see below). Keep in mind that this configuration is tailored for quick start and smooth development. In production environment, [it is recommended to set the `restrictedByDefault` and `forceLogin` properties to **true**](#configuring-restrictedbydefault-and-forcelogin-properties). +- In **projects converted from previous releases**; when enabling access to Qodly Studio using the [One-click configuration dialog](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#one-click-configuration), the `restrictedByDefault` property is added with value **true** in the *roles.json* file. + +::: + +### Recommended Configuration + +Depending on your environment, the recommended settings are: + +- **Production**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **true**. This ensures maximum security by requiring user authentication and explicitly defined permissions for resource access. +- **Development**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **false**. This allows easier access during development and debugging, with the possibility to gradually apply restrictions. + ### Arquivo `Roles_Errors.json` O arquivo `roles.json` é analisado pelo 4D na inicialização. Você precisa reiniciar o aplicativo se quiser que as modificações neste arquivo sejam consideradas. @@ -267,93 +284,28 @@ Finalizado, se ## Exemplo de configuração de privilégios -The good practice is to keep all data access locked by default thanks to the "all" privilege and to configure the `roles.json` file to only open controlled parts to authorized sessions. For example, to allow some accesses to "guest" sessions: - ```json title="/Project/Sources/roles.json" { - "privileges": [ - { - "privilege": "all", - "includes": [] - } - ], - "roles": [], - "permissions": { - "allowed": [ - { - "applyTo": "ds", - "type": "datastore", - "read": [ - "all" - ], - "create": [ - "all" - ], - "update": [ - "all" - ], - "drop": [ - "all" - ], - "execute": [ - "all" - ], - "promote": [ - "all" - ] - }, - { - "applyTo": "ds.loginAs", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.hasPrivilege", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.clearPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.isGuest", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.getPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "ds.setAllPrivileges", - "type": "method", - "execute": [ - "guest" - ] - }, - { - "applyTo": "mySingletonClass.createID", - "type": "singletonMethod", - "execute": [ - "guest" - ] - } - ] - }, - "forceLogin": true + "forceLogin": true, + "restrictedByDefault": true, + "permissions": { + "allowed": [ + { + "applyTo": "People", + "type": "dataclass", + "read": [ + "viewPeople" + ] + } + ] + }, + "privileges": [ + { + "privilege": "viewPeople", + "includes": [] + } + ], + "roles": [] } ``` From fd29db87e0ef0880d0dfa217d9d483af249162db Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:56:25 +0100 Subject: [PATCH 155/264] New translations collectionclass.md (Spanish) --- .../version-19/API/CollectionClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-19/API/CollectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-19/API/CollectionClass.md index 06e3a6417575d3..b15f5e0bde777c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-19/API/CollectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-19/API/CollectionClass.md @@ -2519,7 +2519,7 @@ Con el siguiente método *NumberGreaterThan0*: La función `.orderBy()` ordena los elementos de la colección original y también devuelve la colección ordenada. > Esta función modifica la colección original. -Si se llama a `.sort()` sin parámetros, sólo se ordenan los valores escalares (número, texto, fecha, booleanos). Los elementos se ordenan por defecto de forma ascendente, según su tipo. You can also pass one of the following constants in the *ascOrDesc* parameter: +Si se llama a `.sort()` sin parámetros, sólo se ordenan los valores escalares (número, texto, fecha, booleanos). Los elementos se ordenan por defecto de forma ascendente, según su tipo. También puede pasar una de las siguientes constantes en el parámetro *ascOrDesc*: |Constant| Type|Value|Comment| |---|---|---|---| From 5a0de3e53868a924a610be8d764cdb2c991759bd Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:56:29 +0100 Subject: [PATCH 156/264] New translations collectionclass.md (Spanish) --- .../version-20/API/CollectionClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20/API/CollectionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20/API/CollectionClass.md index 589ce2c5986e0a..7539499b2ac346 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20/API/CollectionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20/API/CollectionClass.md @@ -3268,7 +3268,7 @@ Quiere saber si al menos un valor de la colección es >0. La función `.orderBy()` ordena los elementos de la colección original y también devuelve la colección ordenada . > Esta función modifica la colección original. -Si se llama a `.sort()` sin parámetros, sólo se ordenan los valores escalares (número, texto, fecha, booleanos). Los elementos se ordenan por defecto de forma ascendente, según su tipo. You can also pass one of the following constants in the *ascOrDesc* parameter: +Si se llama a `.sort()` sin parámetros, sólo se ordenan los valores escalares (número, texto, fecha, booleanos). Los elementos se ordenan por defecto de forma ascendente, según su tipo. También puede pasar una de las siguientes constantes en el parámetro *ascOrDesc*: |Constant| Type|Value|Comment| |---|---|---|---| From a553cc574fa910ced9d1c4695c51602c13878c5b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:56:33 +0100 Subject: [PATCH 157/264] New translations entityclass.md (Spanish) --- .../current/API/EntityClass.md | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md index f0d3001988b748..0e843360644b5d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md @@ -393,15 +393,15 @@ El objeto devuelto por `.drop()` contiene las siguientes propiedades: (\*) Los siguientes valores pueden ser devueltos en las propiedades *status* y *statusText* del objeto *Result* en caso de error: -| Constante | Valor | Comentario | -| ----------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using entity.drop(), this error can be returned when dk force drop if stamp changed option is used. When using entity.lock(), this error can be returned when dk reload if stamp changed option is used.
  • **Associated statusText**: "Entity does not exist anymore" | -| `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista.
    **statusText asociado**: "Already locked" | -| `dk status validation failed` | 7 | Error no crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | -| `dk status serious error` | 4 | Un error grave es un error de base de datos de bajo nivel (por ejemplo, una llave duplicada), un error de hardware, etc.
    **statusText asociado**: "Other error" | -| `dk status serious validation error` | 8 | Error crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used
  • **Associated statusText**: "Stamp has changed"
  • | -| `dk status wrong permission` | 1 | Los privilegios actuales no permiten suprimir la entidad. **Associated statusText**: "Permission Error" | +| Constante | Valor | Comentario | +| ----------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). Cuando se utiliza entity.drop(), este error puede ser devuelto cuando se utiliza la opción dk force drop if stamp changed. When using entity.lock(), this error can be returned when dk reload if stamp changed option is used.
  • **Associated statusText**: "Entity does not exist anymore" | +| `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista.
    **statusText asociado**: "Already locked" | +| `dk status validation failed` | 7 | Error no crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | +| `dk status serious error` | 4 | Un error grave es un error de base de datos de bajo nivel (por ejemplo, una llave duplicada), un error de hardware, etc.
    **statusText asociado**: "Other error" | +| `dk status serious validation error` | 8 | Error crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | +| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used
  • **Associated statusText**: "Stamp has changed"
  • | +| `dk status wrong permission` | 1 | Los privilegios actuales no permiten suprimir la entidad. **Associated statusText**: "Permission Error" | #### Ejemplo 1 @@ -1182,10 +1182,10 @@ El objeto devuelto por `.reload( )` contiene las siguientes propiedades: (\*) Los siguientes valores pueden ser devueltos en las propiedades *status* y *statusText* del objeto *Result* en caso de error: -| Constante | Valor | Comentario | -| ----------------------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | -| `dk status serious error` | 4 | Un error grave es un error de base de datos de bajo nivel (por ejemplo, una llave duplicada), un error de hardware, etc.
    ***statusText asociado***: "Other error" | +| Constante | Valor | Comentario | +| ----------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). Cuando se utiliza `.drop()`, este error puede devolverse cuando se utiliza la opción `dk force drop if stamp changed`. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | +| `dk status serious error` | 4 | Un error grave es un error de base de datos de bajo nivel (por ejemplo, una llave duplicada), un error de hardware, etc.
    ***statusText asociado***: "Other error" | #### Ejemplo @@ -1277,16 +1277,16 @@ El objeto devuelto por `.save()` contiene las siguientes propiedades: Los siguientes valores pueden ser devueltos en las propiedades `status`y `statusText` del objeto Result en caso de error: -| Constante | Valor | Comentario | -| ----------------------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status automerge failed` | 6 | (Only if the `dk auto merge` option is used) The automatic merge option failed when saving the entity. **statusText asociado**: "Fallo de la fusión automática" | -| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | -| `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista. **statusText asociado**: "Already locked" | -| `dk status validation failed` | 7 | Error no crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | -| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc. **Associated statusText**: "Other error" | -| `dk status serious validation error` | 8 | Error crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used

  • **Associated statusText**: "Stamp has changed" | -| `dk status wrong permission` | 1 | Los privilegios actuales no permiten guardar la entidad. **Associated statusText**: "Permission Error" | +| Constante | Valor | Comentario | +| ----------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `dk status automerge failed` | 6 | (Solo si se utiliza la opción `dk auto merge`) La opción de fusión automática falló al guardar la entidad. **statusText asociado**: "Fallo de la fusión automática" | +| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). Cuando se utiliza `.drop()`, este error puede devolverse cuando se utiliza la opción `dk force drop if stamp changed`. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | +| `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista. **statusText asociado**: "Already locked" | +| `dk status validation failed` | 7 | Error no crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | +| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc. **Associated statusText**: "Other error" | +| `dk status serious validation error` | 8 | Error crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | +| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used

  • **Associated statusText**: "Stamp has changed" | +| `dk status wrong permission` | 1 | Los privilegios actuales no permiten guardar la entidad. **Associated statusText**: "Permission Error" | #### Ejemplo 1 From aba8c37e71535f3490e7eae43836a32f1e828672 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:56:36 +0100 Subject: [PATCH 158/264] New translations sessionclass.md (Spanish) --- .../docusaurus-plugin-content-docs/current/API/SessionClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md index 91f8d8279ab497..62d92bb7204c90 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -390,7 +390,7 @@ Esta función devuelve True para el *privilegio* si se llama desde una función Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). -With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. +Con las sesiones de procedimiento almacenadas y las sesiones independientes, esta función siempre devuelve True, sea cual sea el *privilegio*. #### Ejemplo From f43b4b31b49a2ecd6aadd797b1a497423def7eb0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:56:38 +0100 Subject: [PATCH 159/264] New translations webserverclass.md (Spanish) --- .../current/API/WebServerClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebServerClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebServerClass.md index 3f311fe35dba48..9b27f3d5414da9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebServerClass.md @@ -187,7 +187,7 @@ El nombre de la página de i *Propiedad de sólo lectura* -A collection of custom HTTP handler objects. An HTTP handler object contains a listened URL pattern, a handled verb, and the code to be called. HTTP handlers can be defined through a HTTPHandlers.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Request handler](../WebServer/http-request-handler.md) page. +A collection of custom HTTP handler objects. An HTTP handler object contains a listened URL pattern, a handled verb, and the code to be called. HTTP handlers can be defined through a HTTPHandlers.json file or the *settings* parameter of the [`.start()`](#start) function. Para más información, consulte la página [HTTP Request handler](../WebServer/http-request-handler.md). From 55a361c541f63c163bb19836aef13199d0910a65 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:56:40 +0100 Subject: [PATCH 160/264] New translations clientserver.md (Spanish) --- .../current/Desktop/clientServer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md index 3f471cae307fa5..fa5d056395d3c4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md @@ -126,7 +126,7 @@ Para gestionar esta configuración, necesita utilizar sesiones cliente remotas. Note that [privileges](../ORDA/privileges.md) should be set in the session before executing a web request from a Web area, so that the user automatically gets their privileges for web access (see example). Keep in mind that privileges only apply to requests coming from the web, not to the 4D code executed in a standard remote session. -Shared sessions are handled through [OTP tokens](../WebServer/sessions.md#session-token-otp). After you created an OTP token on the server for the user session, you add the token (through the `$4DSID` parameter value) to web requests sent from web areas containing Qodly pages so that the user session on the server is identified and shared. On the web server side, if a web request contains an *OTP id* in the $4DSID parameter, the session corresponding to this OTP token is used. +Las sesiones compartidas se gestionan a través de [tokens OTP](../WebServer/sessions.md#session-token-otp). After you created an OTP token on the server for the user session, you add the token (through the `$4DSID` parameter value) to web requests sent from web areas containing Qodly pages so that the user session on the server is identified and shared. On the web server side, if a web request contains an *OTP id* in the $4DSID parameter, the session corresponding to this OTP token is used. :::tip Entrada de blog relacionada From b27b979ef9b0ac6f2f8b825c61cad00388f2c69c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:56:43 +0100 Subject: [PATCH 161/264] New translations formeditor.md (Spanish) --- .../current/FormEditor/formEditor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md index fb295146f24425..97382d62de2ca5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/formEditor.md @@ -148,7 +148,7 @@ Para seleccionar un objeto utilizando la barra de herramientas: 1. Haz clic en la herramienta Flecha en la barra de herramientas.
    ![](../assets/en/FormEditor/selection.png) -
    When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. +
    Cuando mueve el puntero en el área del formulario, se convierte en un puntero estándar con forma de flecha. 2. Haga clic en el objeto que desea seleccionar. Las asas de redimensionamiento identifican el objeto seleccionado.
    ![](../assets/en/FormEditor/selectResize.png) From 7c0d191fcb0488cdc839362a39d017e8492d512b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:56:50 +0100 Subject: [PATCH 162/264] New translations properties_display.md (Spanish) --- .../current/FormObjects/properties_Display.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Display.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Display.md index 70acd1ce6ab087..64fc8e1bd49d2a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Display.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Display.md @@ -104,7 +104,7 @@ Se pueden crear formatos de fecha personalizados utilizando varios patrones desc :::note blankIfNull -- By default, a [null date](../Concepts/dt_date.md#date-literals) is displayed with zeros, e.g. 00/00/00. Con la opción "blankIfNull", una fecha null se muestra como un área vacía. La cadena "blankIfNull" (distingue mayúsculas de minúsculas) debe combinarse con el valor de formato seleccionado. La cadena "blankIfNull" (distingue mayúsculas de minúsculas) debe combinarse con el valor de formato seleccionado. +- Por defecto, una [fecha nula](../Concepts/dt_date.md#date-literals) se muestra con ceros, por ejemplo, 00/00/00. Con la opción "blankIfNull", una fecha null se muestra como un área vacía. La cadena "blankIfNull" (distingue mayúsculas de minúsculas) debe combinarse con el valor de formato seleccionado. La cadena "blankIfNull" (distingue mayúsculas de minúsculas) debe combinarse con el valor de formato seleccionado. - Las [columnas list box](listbox_overview.md#list-box-columns) y los [pies List box](listbox_overview.md#list-box-footers) de tipo fecha utilizan siempre el comportamiento "blank if null" (no se puede desactivar). ::: From e4bb9734f6c566a9775c2d1b5339707cffe9ba6e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:56:52 +0100 Subject: [PATCH 163/264] New translations privileges.md (Spanish) --- .../current/ORDA/privileges.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/privileges.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/privileges.md index c1f9354eff3f69..72cf097a8cd4f4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/privileges.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/privileges.md @@ -248,8 +248,8 @@ In Qodly Studio for 4D, the login mode can be set using the [**Force login** opt The `restrictedByDefault` property configures how every [resource](#resources) are accessed when [no specific permission is defined for it](#permission): -- **Unrestricted mode** (`restrictedByDefault`: **false**): Resources without defined permissions are accessible to all requests. This mode is suitable for development environments where access can be gradually restricted. -- **Restricted mode** (`restrictedByDefault`: **true**): Resources without defined permissions are blocked by default. This mode is recommended for production environments where access must be explicitly granted. +- **Unrestricted mode** (`restrictedByDefault`: **false**): Resources without defined permissions are accessible to all requests. Este modo es adecuado para entornos de desarrollo donde el acceso se puede restringir gradualmente. +- **Restricted mode** (`restrictedByDefault`: **true**): Resources without defined permissions are blocked by default. Este modo se recomienda para entornos de producción donde el acceso debe ser otorgado explícitamente. :::note Compatibilidad @@ -262,7 +262,7 @@ The `restrictedByDefault` property configures how every [resource](#resources) a Depending on your environment, the recommended settings are: -- **Production**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **true**. This ensures maximum security by requiring user authentication and explicitly defined permissions for resource access. +- **Production**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **true**. Esto garantiza la máxima seguridad al requerir autenticación de usuario y permisos explícitamente definidos para el acceso a recursos. - **Development**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **false**. This allows easier access during development and debugging, with the possibility to gradually apply restrictions. ### Archivo `Roles_Errors.json` From b6515b16c0a26f92cbcd6cccd307f16782df992d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:56:54 +0100 Subject: [PATCH 164/264] New translations compiler.md (Spanish) --- .../docusaurus-plugin-content-docs/current/Project/compiler.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md index 1158b612ee42c7..77cb73581775e8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -148,7 +148,7 @@ El modo de escritura directa es opcional sólo en proyectos convertidos. Se util Select **All variables are typed (Direct typing)** option in the **Compilation Path** menu to enable the direct typing mode. Cuando se selecciona esta opción, las demás opciones de compatibilidad pierden su utilidad y dejan de mostrarse. -Se recomienda utilizar esta opción, ya que proporciona flexibilidad y eficiencia. The direct typing concept assumes that all elements are directly declared where they are defined in your code. Solo tiene que asegurarse de que todas sus variables son declaradas utilizando la [sintaxis 'var'](../Concepts/variables.md#declaring-variables) y que sus parámetros de método y función son declarados [en sus prototipos](../Concepts/parameters.md) (la función [Verificar sintaxis](#check-syntax) puede ayudarle a detectar declaraciones faltantes o no válidas). +Se recomienda utilizar esta opción, ya que proporciona flexibilidad y eficiencia. El concepto de escritura directa asume que todos los elementos se declaran directamente donde están definidos en su código. Solo tiene que asegurarse de que todas sus variables son declaradas utilizando la [sintaxis 'var'](../Concepts/variables.md#declaring-variables) y que sus parámetros de método y función son declarados [en sus prototipos](../Concepts/parameters.md) (la función [Verificar sintaxis](#check-syntax) puede ayudarle a detectar declaraciones faltantes o no válidas). ## Advertencias From 69458beee5d9e37c3c9a744e578c576d59338a01 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:56:56 +0100 Subject: [PATCH 165/264] New translations vp-export-document.md (Spanish) --- .../current/ViewPro/commands/vp-export-document.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md index 7617707ba0cfbb..94eefcc2eb31d0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/commands/vp-export-document.md @@ -90,7 +90,7 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. -- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. +- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Asegúrese de no mezclar este objeto con propiedades heredadas de primer nivel (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: From b347c788da72546a7541f37fe02f95a52381d459 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:56:57 +0100 Subject: [PATCH 166/264] New translations getting-started.md (Spanish) --- .../current/ViewPro/getting-started.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md index 8577eb589df53b..97732b237a5018 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ViewPro/getting-started.md @@ -13,9 +13,9 @@ La integración de áreas de 4D View Pro en sus formularios le permite importar ## Instalación y activación -4D View Pro debe estar instalado en sus proyectos. The 4D View Pro component is available from the [**4D-ViewPro github repository**](https://github.com/4d/4D-ViewPro). +4D View Pro debe estar instalado en sus proyectos. El componente 4D View Pro está disponible en el [\*\*repositorio github 4D-ViewPro \*\*](https://github.com/4d/4D-ViewPro). -The easiest way to install 4D View Pro in an opened project is to use the Dependency Manager: +La forma más fácil de instalar 4D View Pro en un proyecto abierto es utilizar el Administrador de dependencias: 1. Abra la ventana [Dependency Manager](../Project/components.md). 2. Haga clic en el botón **+** para añadir un componente. From f10353da079886ef57e7bbd277951e56013117a9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:56:59 +0100 Subject: [PATCH 167/264] New translations authentication.md (Spanish) --- .../current/WebServer/authentication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/authentication.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/authentication.md index ee0943ee56293f..509461ed5e00bf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/authentication.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/authentication.md @@ -119,7 +119,7 @@ Debe declarar estos parámetros de la siguiente manera: :::note -Todos los parámetros del método base `On Web Authentication` no están necesariamente rellenados. The information received by the database method depends on the selected [authentication mode](#authentication-modes). +Todos los parámetros del método base `On Web Authentication` no están necesariamente rellenados. La información recibida por el método base depende del [modo de autenticación](#authentication-modes) seleccionado. ::: From ee309c8e3e04006a0789a8a9b0ffbc458ec68fc3 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:01 +0100 Subject: [PATCH 168/264] New translations preemptiveweb.md (Spanish) --- .../current/WebServer/preemptiveWeb.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md index 6a5929785ac538..c270d197d2e68a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/preemptiveWeb.md @@ -27,7 +27,7 @@ La siguiente tabla indica si el modo apropiativo se utiliza o está disponible, - Servidor web: maneja las [plantillas web](templates.md), [4DACTION y los métodos base](httpRequests.md) - Servidor de servicios web: gestiona las peticiones SOAP - ***web setting*** means that the preemptive mode depends on the [**scalable sessions**](sessions.md#enabling-web-sessions) status: - - if scalable sessions are enabled, the preemptive mode is automatically used for web and web service processes. + - si las sesiones escalables están activadas, el modo apropiativo se utiliza automáticamente para los procesos web y servicios web. - si las sesiones escalables no están activadas: - for web processes, the [**Use preemptive processes**](webServerConfig.md#use-preemptive-processes) option is taken into account. - for web service processes (server or client), preemptive mode is supported at method level. From d2acdc534cc5bc8a2acedf3bc1dca84174d3d315 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:03 +0100 Subject: [PATCH 169/264] New translations sessions.md (Spanish) --- .../current/WebServer/sessions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md index 8602f8f2fab3ec..daeaf088d5b5d0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/sessions.md @@ -211,7 +211,7 @@ End if El servidor web 4D le permite generar, compartir y utilizar tokens de sesión OTP (One-Time Passcode). Los tokens de sesión OTP se utilizan para asegurar comunicaciones con aplicaciones de terceros o sitios web. For information on OTP, please refer to the [One-time password page](https://en.wikipedia.org/wiki/One-time_password) on Wikipedia. -In 4D, OTP session tokens are useful when calling external URLs and being called back in another browser or device (mobile/computer). Typically, a third-party application sends a confirmation email containing a callback link on which the user has to click. The callback link includes the OTP token, so that the session which triggered the callback is loaded along with its data and privileges. This principle allows you to share the same session on multiple devices. Gracias a esta arquitectura, la [cookie de sesión](#session-implementation) no está expuesta en la red, lo que elimina el riesgo de un ataque de hombre en el medio. +In 4D, OTP session tokens are useful when calling external URLs and being called back in another browser or device (mobile/computer). Typically, a third-party application sends a confirmation email containing a callback link on which the user has to click. El enlace de retrollamada incluye el token OTP, para que la sesión que activó la retrollamada se cargue junto con sus datos y privilegios. This principle allows you to share the same session on multiple devices. Gracias a esta arquitectura, la [cookie de sesión](#session-implementation) no está expuesta en la red, lo que elimina el riesgo de un ataque de hombre en el medio. :::tips Entradas de blog relacionadas @@ -251,7 +251,7 @@ Una url [`4DACCIÓN`](./httpRequests.md#4daction) también puede ser usada en el #### Utilizar un parámetro personalizado -The OTP token can also be provided as a custom parameter that you need to process specifically to restore the session. Debe utilizar esta solución si: +El token OTP también se puede suministrar como un parámetro personalizado que necesita procesar específicamente para restaurar la sesión. Debe utilizar esta solución si: - la aplicación de terceros no permite insertar parámetros como un `$4DSID` directamente en la Uri de redirección, y proporciona una API dedicada (la implementación depende de la aplicación de terceros), - o, quiere llamar a una función ORDA a través de REST para procesar la retrollamada, en cuyo caso es necesario pasar el OTP con la [sintaxis de parámetro REST](../REST/ClassFunctions.md#parameters) (por ejemplo, `?$params='["XXX123"]'`). From c0be51bcc7f89121145652df40cf5481179a34ce Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:06 +0100 Subject: [PATCH 170/264] New translations write-class-method.md (Spanish) --- .../current/code-editor/write-class-method.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md b/i18n/es/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md index 1fe91c02d0a301..15db7ba0a2435f 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/code-editor/write-class-method.md @@ -803,7 +803,7 @@ La etiqueta `` permite generar y utilizar macrocomandos que ejecutan mé El código de un método llamado se ejecuta en un nuevo proceso. Este proceso se cierra una vez se ejecuta el método. -> Note: The structure process remains frozen until the called method execution is completed. Debe asegurarse de que la ejecución es rápida y de que no hay riesgo de que bloquee la aplicación. If this occurs, use the **Ctrl+F8** (Windows) or **Command+F8** (macOS) command to "kill" the process. +> Note: The structure process remains frozen until the called method execution is completed. Debe asegurarse de que la ejecución es rápida y de que no hay riesgo de que bloquee la aplicación. Si esto ocurre, utilice el comando **Ctrl+F8** (Windows) o **Comando+F8** (macOS) para "matar" el proceso. ### Llamando macros From b7db6a5d742caf10772d95bc3000e45d1d07a060 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:08 +0100 Subject: [PATCH 171/264] New translations client-server.md (Spanish) --- .../current/settings/client-server.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md index 1b184fc5a8f83b..a2115ea9a211c6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/client-server.md @@ -110,7 +110,7 @@ Cuando esta opción está marcada, todas las máquinas remotas 4D que se conecta :::note -This option is not available when the [QUIC](#network-layer) network layer option is selected. +Esta opción no está disponible cuando se selecciona la opción capa de red [QUIC](#network-layer). ::: From 3eb5d2844958a0f6c678d12a507d8296c14605d6 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:10 +0100 Subject: [PATCH 172/264] New translations $singleton.md (Spanish) --- .../docusaurus-plugin-content-docs/current/REST/$singleton.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/REST/$singleton.md b/i18n/es/docusaurus-plugin-content-docs/current/REST/$singleton.md index dd6441c98e068f..f2526bf683cf39 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/REST/$singleton.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/REST/$singleton.md @@ -5,7 +5,7 @@ title: $singleton Puede llamar directamente a [funciones de sus singletons compartidos](../Concepts/classes.md#singleton-classes) a través de REST. -Singleton functions are called in POST or GET requests with the `$singleton` command and without `()`. Por ejemplo, si ha definido una función `buildVehicle()` en la clase compartida singleton `VehicleFactory`, podría llamarla utilizando la siguiente petición: +Las funciones Singleton se llaman en peticiones POST o GET con el comando `$singleton` y sin `()`. Por ejemplo, si ha definido una función `buildVehicle()` en la clase compartida singleton `VehicleFactory`, podría llamarla utilizando la siguiente petición: ```json /rest/$singleton/VehicleFactory/buildVehicle From 724b55cfa6a2e416c867a97bc1e142c29cf06c63 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:11 +0100 Subject: [PATCH 173/264] New translations webarea_overview.md (Spanish) --- .../current/FormObjects/webArea_overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md index 2605754775fea7..9563e559ec2d24 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md @@ -11,7 +11,7 @@ Varias [acciones estándar](#standard-actions) dedicadas, numerosos [comandos de :::info Mostrar páginas Qodly -In 4D client/server applications, Web areas can be used to display Qodly pages and [share the remote user session](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). This feature allows you to design web-based interfaces for your client/server desktop applications. +In 4D client/server applications, Web areas can be used to display Qodly pages and [share the remote user session](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). Esta funcionalidad le permite diseñar interfaces web para sus aplicaciones de escritorio cliente/servidor. ::: From 35224cb31af2a18a8956f47a3c4e7610526a05a6 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:13 +0100 Subject: [PATCH 174/264] New translations managing-formulas.md (Spanish) --- .../current/WritePro/managing-formulas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md index d5e753802bc137..9b3b514f1617ea 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/managing-formulas.md @@ -93,7 +93,7 @@ Por ejemplo, para insertar el número de página en el pie de página: ## Table formula context object -When used in a formula within the table, the **This** keyword gives access to different data according to the context: +Cuando se utiliza en una fórmula dentro de la tabla, la palabra clave **This** da acceso a diferentes datos según el contexto: | **Contexto** | **Expression** | **Tipo** | **Devuelve** | | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | From 683c1fe1705b0a9c6e3d48c3e92e6699387ad99b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:15 +0100 Subject: [PATCH 175/264] New translations wp-import-document.md (Spanish) --- .../current/WritePro/commands/wp-import-document.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-import-document.md index 9c7318f72c70ba..625a6d5df492ed 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-import-document.md @@ -54,17 +54,17 @@ Puede pasar un objeto para definir cómo se gestionan los siguientes atributos d | **Atributo** | **Tipo** | **Description** | | ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | anchoredTextAreas | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las áreas de texto ancladas en Word. Valores disponibles:

    **anchored** (por defecto) - Las áreas de texto ancladas se tratan como cuadros de texto. **inline** - Las áreas de texto ancladas se tratan como texto en línea en la posición del ancla. **ignore** \- Las áreas de texto ancladas son ignoradas. **Nota**: el diseño y el número de páginas en el documento pueden cambiar. Ver también *Cómo importar formato .docx* | -| anchoredImages | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las imágenes ancladas. Available values:

    **all** (default) - All anchored images are imported as anchored images with their text wrapping properties (exception: the .docx wrapping option "tight" is imported as wrap square). **ignoreWrap** \- Anchored images are imported, but any text wrapping around the image is ignored. **ignore** \- Las imágenes ancladas no son importadas. | -| secciones | Text | Sólo para documentos MS Word (.docx). Especifica cómo se maneja la sección. Valores disponibles:

    **all** (por defecto) - Se importan todas las secciones. Secciones continuas, incluso impares se convierten en secciones estándar. **ignore** \- Sections are converted to default 4D Write Pro sections (A4 portrait layout without header or footer). **Note**: Section breaks of any type but continuous are converted to section breaks with page break. Continuous section breaks are imported as continuous section breaks. | +| anchoredImages | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las imágenes ancladas. Available values:

    **all** (default) - All anchored images are imported as anchored images with their text wrapping properties (exception: the .docx wrapping option "tight" is imported as wrap square). **ignoreWrap** \- Las imágenes ancladas son importadas, pero todo texto que se envuelve alrededor de la imagen es ignorado. **ignore** \- Las imágenes ancladas no son importadas. | +| secciones | Text | Sólo para documentos MS Word (.docx). Especifica cómo se maneja la sección. Valores disponibles:

    **all** (por defecto) - Se importan todas las secciones. Secciones continuas, incluso impares se convierten en secciones estándar. **ignore** \- Sections are converted to default 4D Write Pro sections (A4 portrait layout without header or footer). **Nota**: las rupturas de secciones de cualquier tipo pero continuas se convierten en rupturas de sección con rupturas de página. Continuous section breaks are imported as continuous section breaks. | | fields | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan los campos .docx que no pueden ser convertidos a fórmulas 4D Write Pro. Valores disponibles:

    **ignore** \- Los campos .docx son ignorados. **label** \- .docx field references are imported as labels within double curly braces ("{{ }}"). Ej: el campo "ClientName" se importará como {{ClientName}}. **value** (default) - El último valor calculado para el campo .docx (si está disponible) es importado. **Note**: If a .docx field corresponds to a 4D Write Pro variable, the field is imported as a formula and this option is ignored. | -| borderRules | Text | Sólo para documentos MS Word (.docx). Especifica cómo se gestionan los bordes de los párrafos. Available values:

    **collapse** \- Paragraph formatting is modified to mimic automatically collapsed borders. Tenga en cuenta que la propiedad contraída sólo se aplica durante la operación de importación. If a stylesheet with a automatic border collapse setting is reapplied after the import operation, the setting will be ignored. **noCollapse** (por defecto) - No se modifica el formato de los párrafos. | -| preferredFontScriptType | Text | Sólo para documentos MS Word (.docx). Specifies the preferred typeface to use when different typefaces are defined for a single font property in OOXML. Valores disponibles:

    **latin** (por defecto) - script latino **bidi** \- script bidreccional. Suitable if document is mainly bidirectional left-to-right (LTR) or right-to-left (RTL) text (e.g., Arabic or Hebrew). **eastAsia** \- East Asian script. Adecuado si el documento es principalmente texto asiático. | +| borderRules | Text | Sólo para documentos MS Word (.docx). Especifica cómo se gestionan los bordes de los párrafos. Valores disponibles:

    **collapse** \- El formato del párrafo se modifica para imitar los bordes colapsados automáticamente. Tenga en cuenta que la propiedad contraída sólo se aplica durante la operación de importación. If a stylesheet with a automatic border collapse setting is reapplied after the import operation, the setting will be ignored. **noCollapse** (por defecto) - No se modifica el formato de los párrafos. | +| preferredFontScriptType | Text | Sólo para documentos MS Word (.docx). Specifies the preferred typeface to use when different typefaces are defined for a single font property in OOXML. Valores disponibles:

    **latin** (por defecto) - script latino **bidi** \- script bidreccional. Adecuado si el documento es principalmente bidireccional de izquierda a derecha (LTR) o de derecha a izquierda (RTL) texto (por ejemplo, árabe o hebreo). **eastAsia** \- East Asian script. Adecuado si el documento es principalmente texto asiático. | | htmlExpressions | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se manejan las expresiones HTML. Available values:

    **rawText** \- HTML expressions are imported as raw text within ##htmlBegin## and ##htmlEnd## tags **ignore** (default) - HTML expressions are ignored. | | importDisplayMode | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se gestiona la visualización de imágenes. Available values:

    **legacy -** 4W7 image display mode is converted using a background image if different than scaled to fit. **noLegacy** (default) - 4W7 image display mode is converted to the *imageDisplayMode* attribute if different than scaled to fit. | **Notas de compatibilidad** -- *Character style sheets in legacy 4D Write documents use a proprietary mechanism, which is not supported by 4D Write Pro. To get the best result for imported text, style sheet attributes are converted to "hard coded" style attributes. Legacy character style sheets are not imported and are no longer referenced in the document.* +- *Character style sheets in legacy 4D Write documents use a proprietary mechanism, which is not supported by 4D Write Pro. To get the best result for imported text, style sheet attributes are converted to "hard coded" style attributes. Las hojas de estilo de caracteres antiguos no son importadas y ya no están referenciadas en el documento.* - *Support for importing in .docx format is only certified for Microsoft Word 2010 and newer. Versiones antiguas, especialmente Microsoft Word 2007, pueden no importar correctamente.* ## Ejemplo 1 From 45bc15ce22ed703153281974f9d0585071efb5d8 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:18 +0100 Subject: [PATCH 176/264] New translations select-log-file.md (Spanish) --- .../current/commands/select-log-file.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/select-log-file.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/select-log-file.md index 68e30387c2c4cb..05b28a5eb1d550 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/select-log-file.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/select-log-file.md @@ -17,11 +17,11 @@ displayed_sidebar: docs ## Descripción -The **SELECT LOG FILE** command creates, or closes the log file according to the value you pass in parameter. +El comando **SELECT LOG FILE** crea o cierra el archivo de historial de acuerdo al valor que pase en el parámetro. En *logFile*, pase el nombre o la ruta completa del archivo de registro a ser creado. If you only pass a name, the file will be created in the "Logs" folder of the database located next to the database structure file. -If you pass an empty string in *logFile*, **SELECT LOG FILE** presents an Save File dialog box, allowing the user to choose the name and location of the log file to be created. Si el archivo se crea correctamente, la variable OK toma el valor 1. Otherwise, if the user clicks Cancel or if the log file could not be created, OK is set to 0. +If you pass an empty string in *logFile*, **SELECT LOG FILE** presents an Save File dialog box, allowing the user to choose the name and location of the log file to be created. Si el archivo se crea correctamente, la variable OK toma el valor 1. De lo contrario, si el usuario hace clic en Cancelar o si el archivo de registro no pudo ser creado, OK toma el valor 0. **Note:** The new log file is not generated immediately after execution of the command, but after the next backup (the parameter is kept in the data file and will be taken into account even if the database is closed in the meantime) or a call to the [New log file](new-log-file.md) command. Puede llamar al comando [BACKUP](../commands-legacy/backup.md) para activar la creación del archivo de registro. From d451fc43aeb883284f9a582a3359afe13b057164 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:19 +0100 Subject: [PATCH 177/264] New translations new-log-file.md (Spanish) --- .../current/commands/new-log-file.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/new-log-file.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/new-log-file.md index dc7638f769dbd6..a3a706e3623201 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/new-log-file.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/new-log-file.md @@ -20,12 +20,12 @@ displayed_sidebar: docs The **New log file** command closes the current log file, renames it and creates a new one with the same name in the same location as the previous one. This command is meant to be used for setting up a backup system using a logical mirror (see the section *Setting up a logical mirror* in the [4D Server Reference Manual](https://doc/4d.com)). -The command returns the full pathname (access path + name) of the log file being closed (called the “segment”). Este archivo se almacena en la misma ubicación que el archivo de registro actual (especificado en la [página de configuración](../Backup/settings.md#configuration) en el tema de copia de seguridad de la configuración). The command does not carry out any processing (compression, segmentation) on the saved file. No aparece ninguna +El comando devuelve el nombre completo de la ruta (ruta de acceso + nombre) del archivo de registro que se está cerrando (llamado “segment”). Este archivo se almacena en la misma ubicación que el archivo de registro actual (especificado en la [página de configuración](../Backup/settings.md#configuration) en el tema de copia de seguridad de la configuración). El comando no realiza ningún procesamiento (compresión, segmentación) en el archivo guardado. No aparece ninguna caja de diálogo. The file is renamed with the current backup numbers of the database and of the log file, as shown in the following example: DatabaseName\[BackupNum-LogBackupNum\].journal. Por ejemplo: -- If the MyDatabase.4DD database has been saved 4 times, the last backup file will be named MyDatabase\[0004\].4BK. The name of the first “segment” of the log file will therefore be MyDatabase\[0004-0001\].journal. +- If the MyDatabase.4DD database has been saved 4 times, the last backup file will be named MyDatabase\[0004\].4BK. El nombre del primer “segment” del archivo de registro será, por lo tanto, MyDatabase\[0004-0001\].journal. - If the MyDatabase.4DD database has been saved 3 times and the log file has been saved 5 times since, the name of the 6th backup of the log file will be MyDatabase\[0003-0006\].journal. :::warning From fb9e71727d8a70d228238ffed05f579ef933ad54 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:23 +0100 Subject: [PATCH 178/264] New translations openai.md (Spanish) --- .../current/aikit/Classes/OpenAI.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md index 798bbbc6c8e8f8..96e57899400ed5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAI.md @@ -5,7 +5,7 @@ title: OpenAI # OpenAI -La clase `OpenAI` proporciona un cliente para acceder a varios recursos de la API OpenAI. It includes properties for managing API configurations and methods for performing HTTP requests to the OpenAI endpoints. +La clase `OpenAI` proporciona un cliente para acceder a varios recursos de la API OpenAI. Incluye propiedades de gestión de las configuraciones API y de los métodos para efectuar las peticiones HTTP a los puntos de terminación de OpenAI. ## Propiedades de configuración @@ -58,7 +58,7 @@ $client.baseURL:="https://server.ai" ## Recursos API -The API provides access to multiple resources that allow seamless interaction with OpenAI's services. Each resource is encapsulated within a dedicated API class, offering a structured and intuitive way to interact with different functionalities. +La API ofrece acceso a múltiples recursos que permiten una interacción perfecta con los servicios de OpenAI. Each resource is encapsulated within a dedicated API class, offering a structured and intuitive way to interact with different functionalities. | Nombre de la propiedad | Tipo | Descripción | | ---------------------- | ----------------------------------------------- | ------------------------------------------------ | From 2f6f96f6818c43d12265cae7960750af9d26c410 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:24 +0100 Subject: [PATCH 179/264] New translations openaichatcompletionslistparameters.md (Spanish) --- .../aikit/Classes/OpenAIChatCompletionsListParameters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsListParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsListParameters.md index 93b8c3e4bee066..7f1a363b63e090 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsListParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIChatCompletionsListParameters.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsListParameters # OpenAIChatCompletionsListParameters -This class is used to define parameters for retrieving a list of chat completions from the OpenAI API. Permite personalizar la paginación, ordenar y filtrar los mensajes de chat. +Esta clase se utiliza para definir los parámetros de recuperación de una lista de terminaciones de chat de la API OpenAI. Permite personalizar la paginación, ordenar y filtrar los mensajes de chat. ## Hereda From f21201445dd9ec4ba710f19e207773c6267c1eab Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:26 +0100 Subject: [PATCH 180/264] New translations openaimessage.md (Spanish) --- .../current/aikit/Classes/OpenAIMessage.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md index 701a9fd8d4f043..217e62d372ad77 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIMessage.md @@ -76,7 +76,7 @@ Cuando reciba un mensaje de llamada de herramienta, debe: 1. **Extraer la información relativa a la función:** - `function.name`: The name of the function to call (must match a function defined in your [OpenAITool](OpenAITool.md) - you can select code to execute according to this name) - - `function.arguments`: A JSON string containing the function parameters that must be parsed with `JSON Parse` + - `function.arguments`: una cadena JSON que contiene los parámetros de la función que deben analizarse con `JSON Parse` - `id`: el identificador único para esta llamada específica a la herramienta 2. **Execute the function:** @@ -103,7 +103,7 @@ var $toolResponse:=cs.AIKit.OpenAIMessage.new({ \ // Add it to the conversation and continue ``` -**Important:** The `tool_call_id` in your response must exactly match the `id` from the original tool call. This allows the AI model to correctly associate your response with the specific function call that was made. +**Important:** The `tool_call_id` in your response must exactly match the `id` from the original tool call. Esto permite que el modelo de IA asocie correctamente su respuesta con la llamada de función específica que se realizó. ## Ver también From 423879c448b61cc84282b81c2b455f201ce65271 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:27 +0100 Subject: [PATCH 181/264] New translations openaimoderation.md (Spanish) --- .../current/aikit/Classes/OpenAIModeration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModeration.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModeration.md index 3c92f30cc3c7c7..1b7928f32cb10a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModeration.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModeration.md @@ -5,7 +5,7 @@ title: OpenAIModeration # OpenAIModeration -La clase `OpenAIModeration` está diseñada para manejar los resultados de moderación de la API OpenAI. It contains properties for storing the moderation ID, model used, and the results of the moderation. +La clase `OpenAIModeration` está diseñada para manejar los resultados de moderación de la API OpenAI. Contiene propiedades para almacenar el ID de moderación, el modelo utilizado y los resultados de la moderación. https://platform.openai.com/docs/api-reference/moderations/object From 265f911859ffc4f432aa61ea0e1e9d62bffc6319 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:29 +0100 Subject: [PATCH 182/264] New translations openaimoderationresult.md (Spanish) --- .../current/aikit/Classes/OpenAIModerationResult.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModerationResult.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModerationResult.md index b486c693fb10f3..6ae6717533fd23 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModerationResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIModerationResult.md @@ -5,7 +5,7 @@ title: OpenAIModerationResult # OpenAIModerationResult -The `OpenAIModerationResult` provides functionality to handle moderation results from the OpenAI API. +`OpenAIModerationResult` ofrece funcionalidades para manejar los resultados de moderación de la API OpenAI. ## Hereda From 123173ae91f13f9399da1c359f7a460dbc7655a3 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:31 +0100 Subject: [PATCH 183/264] New translations openairesult.md (Spanish) --- .../current/aikit/Classes/OpenAIResult.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md index be533ccb4d72d6..ef3e9ad3508ea9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIResult.md @@ -26,8 +26,8 @@ The `OpenAIResult` class is designed to handle the response from HTTP requests a ### rateLimit -The `rateLimit` property returns an object containing rate limit information from the response headers. -This information includes the limits, remaining requests, and reset times for both requests and tokens. +La propiedad `rateLimit` devuelve un objeto que contiene información sobre el límite de velocidad de los encabezados de respuesta. +Esta información incluye los límites, las peticiones restantes y los tiempos de reinicialización tanto para peticiones como para tokens. For more details on rate limits and the specific headers used, refer to [the OpenAI Rate Limits Documentation](https://platform.openai.com/docs/guides/rate-limits#rate-limits-in-headers). From 51ae2cef140100ed828e536d4c2097dc877956bc Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:32 +0100 Subject: [PATCH 184/264] New translations compatible-openai.md (Spanish) --- .../current/aikit/compatible-openai.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md index 5b5e136edec480..ca4d836251504a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/compatible-openai.md @@ -5,7 +5,7 @@ title: Proveedores # Proveedores -Many AI providers propose an OpenAI-like API, so you can use this project to connect to them. +Muchos proveedores de IA proponen una API similar a la de OpenAI, así que puede utilizar este proyecto para conectarse a ellos. Para ello sólo tiene que definir la `baseURL` a la del proveedor y utilizar su clave api si es necesario. From c490f77398963d24df295afcc2858fda095799c1 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:34 +0100 Subject: [PATCH 185/264] New translations call-chain.md (Spanish) --- .../current/commands/call-chain.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/call-chain.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/call-chain.md index 096864393492ed..fdbd960b6e8acd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/call-chain.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/call-chain.md @@ -25,7 +25,7 @@ displayed_sidebar: docs ## Descripción -The **Call chain** command returns a collection of objects describing each step of the method call chain within the current process. Ofrece la misma información que la ventana Depurador. It has the added benefit of being able to be executed from any 4D environment, including compiled mode. +The **Call chain** command returns a collection of objects describing each step of the method call chain within the current process. Ofrece la misma información que la ventana Depurador. Tiene la ventaja adicional de poder ser ejecutado desde cualquier entorno 4D, incluyendo el modo compilado. The command facilitates debugging by enabling the identification of the method or formula called, the component that called it, and the line number where the call was made. Cada objeto de la colección devuelta contiene las siguientes propiedades: @@ -45,7 +45,7 @@ Para que este comando pueda operar en modo compilado, la [verificación de rango ## Ejemplo -The following code returns a collection of objects containing information about the method call chain: +El siguiente código devuelve una colección de objetos que contienen información acerca de la cadena de llamadas de métodos: ```4d var $currentCallChain : Collection From e746920f3d39b218344673007719ce63d55d9ac6 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:36 +0100 Subject: [PATCH 186/264] New translations command-name.md (Spanish) --- .../current/commands/command-name.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/command-name.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/command-name.md index b5a26f7990e234..67339d42612c4b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/command-name.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/command-name.md @@ -82,7 +82,7 @@ En un formulario, quiere una lista desplegable con los comandos básicos de info En la versión inglesa de 4D, la lista desplegable leerá: Sum, Average, Min y Max. In the French version\*, the drop-down list will read: Somme, Moyenne, Min, and Max. -\*with a 4D application configured to use the French programming language (see compatibility note) +\*con una aplicación 4D configurada para usar el lenguaje de programación en francés (ver nota de compatibilidad) ## Ejemplo 3 From a72730c8fece178bf3e5a8c797056cf9136f9c0d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:37 +0100 Subject: [PATCH 187/264] New translations listbox-set-property.md (Spanish) --- .../current/commands/listbox-set-property.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/listbox-set-property.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/listbox-set-property.md index 8b269bcc21784a..d6641157210542 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/listbox-set-property.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/listbox-set-property.md @@ -25,7 +25,7 @@ Si pasa el parámetro opcional *\**, indica que el parámetro *object* es un nom **Note:** If the list box or list box column specified using the *object* and *\** parameters does not exist, the command does nothing and no error is triggered. -In the *property* and *value* parameters, you indicate, respectively, the property to set and its new value. Puede utilizar las siguientes constantes encontradas en el tema “*List Box*: +En los parámetros *property* y *value*, usted indica, respectivamente, la propiedad a definir y su nuevo valor. Puede utilizar las siguientes constantes encontradas en el tema “*List Box*: | Constante | Valor | Comentario | | ------------------------------ | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | From a651fcfdaabb67f42d47e4de163e0dba12605b90 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:40 +0100 Subject: [PATCH 188/264] New translations orda-events.md (Spanish) --- .../current/ORDA/orda-events.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md index 076256023e0f40..e0a193b6847649 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/orda-events.md @@ -374,12 +374,12 @@ return $result ```4d Function event saving($event : Object) Function event saving ($event : Object) -// code +// código ``` Este evento se activa cada vez que se guarda una entidad. -- If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. The function is executed even if no attribute has been touched in the entity (e.g. in case of sending data to an external app each time a save is done). +- Si define la función a nivel de entidad (primera Sintaxis), se llama para cualquier atributo de la entidad. The function is executed even if no attribute has been touched in the entity (e.g. in case of sending data to an external app each time a save is done). - If you defined the function at the attribute level (second syntax), it is called only for this attribute. La función **no** se ejecuta si el atributo no ha sido tocado en la entidad. La función recibe un [objeto *event*](#event-parameter) como parámetro. @@ -397,7 +397,7 @@ The business logic should raise errors which can't be detected during the `valid ::: -During the save action, 4D engine errors can be raised (index, stamp has changed, not enough space on disk). +Durante la acción de guardar, se pueden producir errores en el motor 4D (índice, sello ha cambiado, no hay suficiente espacio en el disco). To stop the action, the code of the function must return an [error object](#error-object). @@ -445,7 +445,7 @@ Función evento afterSave($event : Object) This event is triggered just after an entity is saved in the data file, when at least one attribute was modified. No se ejecuta si no se ha tocado ningún atributo en la entidad. -This event is useful after saving data to propagate the save action outside the application or to execute administration tasks. Por ejemplo, se puede utilizar para enviar un correo electrónico de confirmación después de guardar los datos. Or, in case of error while saving data, it can make a rollback to restore a consistent state of data. +This event is useful after saving data to propagate the save action outside the application or to execute administration tasks. Por ejemplo, se puede utilizar para enviar un correo electrónico de confirmación después de guardar los datos. O, en caso de error al guardar los datos, puede hacer una cancelación para restaurar un estado consistente de los datos. La función recibe un [objeto *event*](#event-parameter) como parámetro. @@ -485,7 +485,7 @@ Function event validateDrop ($event : Object) Este evento se activa cada vez que una entidad está a punto de ser soltada. -- If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. +- Si define la función a nivel de entidad (primera Sintaxis), se llama para cualquier atributo de la entidad. - If you defined the function at the attribute level (second syntax), it is called only for this attribute. La función recibe un [objeto *event*](#event-parameter) como parámetro. @@ -532,7 +532,7 @@ Function event dropping ($event : Object) Este evento se activa cada vez que se elimina una entidad. -- If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. +- Si define la función a nivel de entidad (primera Sintaxis), se llama para cualquier atributo de la entidad. - If you defined the function at the attribute level (second syntax), it is called only for this attribute. La función recibe un [objeto *event*](#event-parameter) como parámetro. From 4c7edaa8c20f605c434c972b3b2ae49735dcd3d0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:43 +0100 Subject: [PATCH 189/264] New translations create-deployment-license.md (Spanish) --- .../current/commands/create-deployment-license.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/create-deployment-license.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/create-deployment-license.md index 57ffea72a3cfe9..a943e2ddaadfc1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/create-deployment-license.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/create-deployment-license.md @@ -112,7 +112,7 @@ Designar una licencia de uso: ## Ver también -[Blog post - Build an application with 4D commands](https://blog.4d.com/build-an-application-with-4d-commands) +[Post de blog - Crear una aplicación con los comandos 4D](https://blog.4d.com/build-an-application-with-4d-commands) ## Propiedades From 0c6390b6ef000fc4deda67cf578d0ba85f1ab7f8 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:45 +0100 Subject: [PATCH 190/264] New translations field-properties.md (Spanish) --- .../current/Develop/field-properties.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Develop/field-properties.md b/i18n/es/docusaurus-plugin-content-docs/current/Develop/field-properties.md index 2ab9d95557dbdf..26c51c0f4661d3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Develop/field-properties.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Develop/field-properties.md @@ -25,7 +25,7 @@ Si introduce un nombre de clase inválido, se activa una advertencia y se rechaz ::: -In your code, when assigning a value to a class-typed object field, 4D verifies that it belongs to the declared class. Si no es así o si el objeto no tiene clase, se produce un error. El acceso a atributos desconocidos también provocará errores de sintaxis. +En su código, al asignar un valor a un campo de tipo clase de objeto, 4D verifica que pertenece a la clase declarada. Si no es así o si el objeto no tiene clase, se produce un error. El acceso a atributos desconocidos también provocará errores de sintaxis. To retrieve the associated class name at runtime, use the [`classID`](../API/DataClassClass.md#attributename) property, for example `ds.MyTable.MyField.classID`. From f56fdc29d8f31dc3685e85db3480fbebb3f293fd Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:50 +0100 Subject: [PATCH 191/264] New translations cryptokeyclass.md (Spanish) --- .../version-20-R10/API/CryptoKeyClass.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/CryptoKeyClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/CryptoKeyClass.md index e6539b08c0c614..0dcbda2559aa1c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/CryptoKeyClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/CryptoKeyClass.md @@ -54,12 +54,12 @@ La función `4D.CryptoKey.new()` crea un #### *settings* -| Propiedad | Tipo | Descripción | -| --------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [type](#type) | text | Defines the type of the key to create:
  • "RSA": generates a RSA key pair, using [.size](#size) as size.
  • "ECDSA": generates an Elliptic Curve Digital Signature Algorithm key pair, using [.curve](#curve) as curve. Tenga en cuenta que las llaves ECDSA no pueden utilizarse para el cifrado, sino solo para la firma.
  • "PEM": carga una definición de par de llaves en formato PEM, utilizando [.pem](#pem).
  • | -| [curve](#curve) | text | Nombre de la curva ECDSA | -| [pem](#pem) | text | Definición PEM de una llave de cifrado a cargar | -| [size](#size) | integer | Tamaño de la llave RSA en bits | +| Propiedad | Tipo | Descripción | +| --------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [type](#type) | text | Define el tipo de llave a crear:
  • "RSA": genera un par de llaves RSA, utilizando [.size](#size) como tamaño.
  • "ECDSA": genera un par de llaves Elliptic Curve Digital Signature Algorithm, utilizando [.curve](#curve) como curva. Tenga en cuenta que las llaves ECDSA no pueden utilizarse para el cifrado, sino solo para la firma.
  • "PEM": carga una definición de par de llaves en formato PEM, utilizando [.pem](#pem).
  • | +| [curve](#curve) | text | Nombre de la curva ECDSA | +| [pem](#pem) | text | Definición PEM de una llave de cifrado a cargar | +| [size](#size) | integer | Tamaño de la llave RSA en bits | #### *CryptoKey* From 11d9e619344aca9ce9832b3cc21587a4c2ec48dc Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:57:54 +0100 Subject: [PATCH 192/264] New translations entityclass.md (Spanish) --- .../version-20-R10/API/EntityClass.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md index 36b6aaf3f75cb6..91d6bb80d4d4f3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/API/EntityClass.md @@ -397,7 +397,7 @@ El objeto devuelto por `.drop()` contiene las siguientes propiedades: | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). Cuando se utiliza entity.drop( ), este error puede ser devuelto cuando se utiliza la opción dk force drop if stamp changed. Cuando se utiliza entity.lock(), se puede devolver este error cuando la opción dk reload if stamp changed es utilizada
  • **statusText asociado**: "Entity does not exist anymore" | | `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista.
    **statusText asociado**: "Already locked" | | `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
    **statusText asociado**\*: "Other error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save( )`: error only if the `dk auto merge` option is not used
  • with `.drop( )`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used
  • **Associated statusText**: "Stamp has changed"
  • | +| `dk status stamp has changed` | 2 | El valor del marcador interno (stamp) de la entidad no coincide con el de la entidad almacenada en los datos (bloqueo optimista).
  • with `.save( )`: error only if the `dk auto merge` option is not used
  • with `.drop( )`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used
  • **Associated statusText**: "Stamp has changed"
  • | | `dk status wrong permission` | 1 | Los privilegios actuales no permiten suprimir la entidad. **Associated statusText**: "Permission Error" | #### Ejemplo 1 @@ -1017,7 +1017,7 @@ El objeto devuelto por `.lock()` contiene las siguientes propiedades: | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). Cuando se utiliza `.drop( )`, este error puede devolverse cuando se utiliza la opción `dk force drop if stamp changed`. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | | `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista. **statusText asociado**: "Already locked" | | `dk status serious error` | 4 | Un error grave es un error de base de datos de bajo nivel (por ejemplo, una llave duplicada), un error de hardware, etc.
    **statusText asociado**: "Other error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save( )`: error only if the `dk auto merge` option is not used
  • with `.drop( )`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used

  • **Associated statusText**: "Stamp has changed" | +| `dk status stamp has changed` | 2 | El valor del sello interno de la entidad no coincide con el de la entidad almacenada en los datos (bloqueo optimista).
  • with `.save( )`: error only if the `dk auto merge` option is not used
  • with `.drop( )`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used

  • **Associated statusText**: "Stamp has changed" | #### Ejemplo 1 @@ -1279,7 +1279,7 @@ Los siguientes valores pueden ser devueltos en las propiedades `status`y `status | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). the entity has been dropped and replaced by another one with another primary key (the stamp has changed and a new entity now uses the memory space). Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | | `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista. **statusText asociado**: "Already locked" | | `dk status serious error` | 4 | Un error grave es un error de base de datos de bajo nivel (por ejemplo, una llave duplicada), un error de hardware, etc.
    **statusText asociado**: "Other error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save( )`: error only if the `dk auto merge` option is not used
  • with `.drop( )`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used

  • **Associated statusText**: "Stamp has changed" | +| `dk status stamp has changed` | 2 | El valor del marcador interno (stamp) de la entidad no coincide con el de la entidad almacenada en los datos (bloqueo optimista).
  • with `.save( )`: error only if the `dk auto merge` option is not used
  • with `.drop( )`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used

  • **Associated statusText**: "Stamp has changed" | | `dk status wrong permission` | 1 | Los privilegios actuales no permiten guardar la entidad. **Associated statusText**: "Permission Error" | #### Ejemplo 1 From 5bf4f76704cc6dbcd84457b5af3c0c1d201aeb9b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:01 +0100 Subject: [PATCH 193/264] New translations debuglogfiles.md (Spanish) --- .../version-20-R10/Debugging/debugLogFiles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugLogFiles.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugLogFiles.md index d6b32a4f015be7..6d1c175bec05b2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugLogFiles.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugLogFiles.md @@ -73,7 +73,7 @@ Para cada petición, se registran los siguientes campos: | server\_duration | exec\_duration | Depende del lugar donde se genere el registro:
  • _server\*duration* cuando se genera en el cliente --Time tomado en microsegundos para que el servidor procese la solicitud y devuelva una respuesta. B a F en la imagen de abajo, O
  • _exec\*duration* cuando se genera en el servidor --Tiempo empleado en microsegundos para que el servidor procese la petición. B a E en la imagen de abajo.
  • | | write\_duration | Tiempo tomado en microsegundos para enviar la:
  • Petición (cuando se ejecuta en el cliente). A a B en la imagen inferior.
  • Respuesta (cuando se ejecuta en el servidor). E a F en la imagen de abajo.
  • | | task_kind | Apropiativo o cooperativo (respectivamente "p" o "c") | -| rtt | Tiempo estimado en microsegundos para que el cliente envíe la solicitud y el servidor la acuse de recibo. A a D y E a H en la imagen inferior.
  • Only measured when using the ServerNet network layer, returns 0 when used with the legacy network layer.
  • For Windows versions prior to Windows 10 or Windows Server 2016, the call will return 0.
  • | +| rtt | Tiempo estimado en microsegundos para que el cliente envíe la solicitud y el servidor la acuse de recibo. A a D y E a H en la imagen inferior.
  • Sólo se mide cuando se utiliza la capa de red ServerNet, devuelve 0 cuando se utiliza con la capa de red heredada.
  • Para las versiones de Windows anteriores a Windows 10 o Windows Server 2016, la llamada devolverá 0.
  • | | extra | Información adicional relacionada con el contexto, por ejemplo el nombre de la clase de datos y/o el nombre del atributo en caso de petición ORDA | Flujo de solicitudes: From b4392fbacd83ea2c39edacd88174f8cc13c29f96 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:03 +0100 Subject: [PATCH 194/264] New translations field-properties.md (Spanish) --- .../version-20-R10/Develop/field-properties.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md index 2ab9d95557dbdf..26c51c0f4661d3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Develop/field-properties.md @@ -25,7 +25,7 @@ Si introduce un nombre de clase inválido, se activa una advertencia y se rechaz ::: -In your code, when assigning a value to a class-typed object field, 4D verifies that it belongs to the declared class. Si no es así o si el objeto no tiene clase, se produce un error. El acceso a atributos desconocidos también provocará errores de sintaxis. +En su código, al asignar un valor a un campo de tipo clase de objeto, 4D verifica que pertenece a la clase declarada. Si no es así o si el objeto no tiene clase, se produce un error. El acceso a atributos desconocidos también provocará errores de sintaxis. To retrieve the associated class name at runtime, use the [`classID`](../API/DataClassClass.md#attributename) property, for example `ds.MyTable.MyField.classID`. From 4ec82072927c5af4b758ce91ea78844e9f30ab69 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:04 +0100 Subject: [PATCH 195/264] New translations overview.md (Spanish) --- .../version-20-R10/Extensions/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/overview.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/overview.md index 41a091f767c275..a4154b589f1f30 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/overview.md @@ -9,5 +9,5 @@ La arquitectura 4D está abierta y puede ampliarse de diferentes maneras. Si nec - Los [**comandos SQL**](../commands/theme/SQL) permiten conectar y utilizar diversas fuentes de datos SQL. - El [**cliente HTTP integrado**](../API/HTTPRequestClass.md) puede solicitar cualquier servidor HTTP y procesar datos. - Las [**Áreas Web**](../FormObjects/webArea_overview.md) pueden dar acceso a páginas web o a diversos contenidos HTML dentro de sus formularios. -- [**Componentes**](Concepts/components.md). Los componentes están hechos de código 4D. 4D includes by default [a set of built-in 4D components](../Project/components.md#preinstalled-4d-components). También puedes [desarrollar sus propios componentes 4D](develop-components.md), o utilizar componentes de terceros. Muchos desarrolladores de la comunidad 4D han compartido componentes 4D (navegue por Github para tener una lista de componentes 4D públicos reunidos con el tema [`4d-component`](https://github.com/topics/4d-component)). +- [**Componentes**](Concepts/components.md). Los componentes están hechos de código 4D. 4D incluye por defecto [un conjunto de componentes 4D integrados](../Project/components.md#preinstalled-4d-components). También puedes [desarrollar sus propios componentes 4D](develop-components.md), o utilizar componentes de terceros. Muchos desarrolladores de la comunidad 4D han compartido componentes 4D (navegue por Github para tener una lista de componentes 4D públicos reunidos con el tema [`4d-component`](https://github.com/topics/4d-component)). - [**Plug-ins**](../Concepts/plug-ins.md). Los plug-ins pueden construirse utilizando cualquier lenguaje. Los plugins hacen cosas que 4D no hace de forma nativa (por ejemplo, una tecnología de plataforma específica), o que serían muy difíciles de escribir sólo con 4D. Como se describe en [esta página](develop-plug-ins.md), puede desarrollar sus propios plug-ins. Muchas funcionalidades están cubiertas por los plug-ins 4D existentes. Navegue por Github para tener una lista de plugins 4D públicos reunidos con el tema [`4d-plugin`](https://github.com/topics/4d-plugin). From 46a9d6072ad1b3c4b4934239ea8ce264e5164f79 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:07 +0100 Subject: [PATCH 196/264] New translations formeditor.md (Spanish) --- .../version-20-R10/FormEditor/formEditor.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md index 694ff9a97fc7fb..55169d4e3065a5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormEditor/formEditor.md @@ -148,7 +148,7 @@ Para seleccionar un objeto utilizando la barra de herramientas: 1. Haga clic en la herramienta Flecha de la barra de herramientas.
    ![](../assets/en/FormEditor/selection.png) -
    When you move the pointer into the form area, it becomes a standard arrow-shaped pointer. +
    Cuando mueve el puntero en el área del formulario, se convierte en un puntero estándar con forma de flecha. 2. Haga clic en el objeto que desea seleccionar. Las manillas de redimensionamiento identifican el objeto seleccionado.
    ![](../assets/en/FormEditor/selectResize.png) @@ -247,7 +247,7 @@ Para agrupar los objetos: Para desagrupar un grupo de objetos: 1. Seleccione el grupo de objetos que desea desagrupar. -2. Seleccione **Ungroup** en el menú **Object**.
    OR
    Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
    Si **Desagrupar** está atenuado, significa que el objeto seleccionado ya está separado en su forma más simple. 4D marca los bordes de los objetos individuales con marcas. +2. Seleccione **Ungroup** en el menú **Object**.
    OR
    Haga clic en el botón **Ungroup** (variante del botón **Group**) en la barra de herramientas del editor de formularios.
    Si **Desagrupar** está atenuado, significa que el objeto seleccionado ya está separado en su forma más simple. 4D marca los bordes de los objetos individuales con marcas. ### Alinear objetos From ad4038cf63025680f57afc80cde69d06387ad310 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:10 +0100 Subject: [PATCH 197/264] New translations properties_display.md (Spanish) --- .../version-20-R10/FormObjects/properties_Display.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Display.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Display.md index 3a07c0739f87c1..d61bf5a88a19b5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Display.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/FormObjects/properties_Display.md @@ -100,7 +100,7 @@ Se pueden crear formatos de fecha personalizados utilizando varios patrones desc :::note blankIfNull -- By default, a [null date](../Concepts/dt_date.md#date-literals) is displayed with zeros, e.g. 00/00/00. Con la opción "blankIfNull", una fecha null se muestra como un área vacía. La cadena "blankIfNull" (distingue mayúsculas de minúsculas) debe combinarse con el valor de formato seleccionado. La cadena "blankIfNull" (distingue mayúsculas de minúsculas) debe combinarse con el valor de formato seleccionado. +- Por defecto, una [fecha nula](../Concepts/dt_date.md#date-literals) se muestra con ceros, por ejemplo, 00/00/00. Con la opción "blankIfNull", una fecha null se muestra como un área vacía. La cadena "blankIfNull" (distingue mayúsculas de minúsculas) debe combinarse con el valor de formato seleccionado. La cadena "blankIfNull" (distingue mayúsculas de minúsculas) debe combinarse con el valor de formato seleccionado. - Las [columnas list box](listbox_overview.md#list-box-columns) y los [pies List box](listbox_overview.md#list-box-footers) de tipo fecha utilizan siempre el comportamiento "blank if null" (no se puede desactivar). ::: From 14da6810270f6d5d051c6da6e0d425fccd811fc2 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:12 +0100 Subject: [PATCH 198/264] New translations orda-events.md (Spanish) --- .../version-20-R10/ORDA/orda-events.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md index ed3bd7aa40db92..ada6076fe08286 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ORDA/orda-events.md @@ -25,7 +25,7 @@ Los eventos de entidad ORDA en el almacen de datos equivalen a triggers en la ba ### Nivel del evento -A entity event function is always defined in the [Entity class](../ORDA/ordaClasses.md#entity-class). +Una función de evento de entidad se define siempre en la [clase Entity](../ORDA/ordaClasses.md#entity-class). Un evento puede definirse al nivel de la **entidad** y/o a nivel del **atributo** (incluye los [**atributos calculados**](../ORDA/ordaClasses.md#computed-attributes)). En el primer caso, se activará para cualquier atributo de la entidad; en el otro caso, sólo se activará para el atributo objetivo. @@ -101,7 +101,7 @@ Este evento se activa tan pronto como el motor de 4D Server / 4D detecta una mod La función recibe un [objeto *event*](#event-parameter) como parámetro. -If this event [throws](../commands-legacy/throw.md) an error, it will not stop the undergoing action. +Si este evento [genera un error](../commands-legacy/throw.md), no detendrá la acción en curso. :::note From 59b2d779437520538330eda83f61c513e3620a4f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:14 +0100 Subject: [PATCH 199/264] New translations compiler.md (Spanish) --- .../version-20-R10/Project/compiler.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/compiler.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/compiler.md index 1158b612ee42c7..77cb73581775e8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/compiler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Project/compiler.md @@ -148,7 +148,7 @@ El modo de escritura directa es opcional sólo en proyectos convertidos. Se util Select **All variables are typed (Direct typing)** option in the **Compilation Path** menu to enable the direct typing mode. Cuando se selecciona esta opción, las demás opciones de compatibilidad pierden su utilidad y dejan de mostrarse. -Se recomienda utilizar esta opción, ya que proporciona flexibilidad y eficiencia. The direct typing concept assumes that all elements are directly declared where they are defined in your code. Solo tiene que asegurarse de que todas sus variables son declaradas utilizando la [sintaxis 'var'](../Concepts/variables.md#declaring-variables) y que sus parámetros de método y función son declarados [en sus prototipos](../Concepts/parameters.md) (la función [Verificar sintaxis](#check-syntax) puede ayudarle a detectar declaraciones faltantes o no válidas). +Se recomienda utilizar esta opción, ya que proporciona flexibilidad y eficiencia. El concepto de escritura directa asume que todos los elementos se declaran directamente donde están definidos en su código. Solo tiene que asegurarse de que todas sus variables son declaradas utilizando la [sintaxis 'var'](../Concepts/variables.md#declaring-variables) y que sus parámetros de método y función son declarados [en sus prototipos](../Concepts/parameters.md) (la función [Verificar sintaxis](#check-syntax) puede ayudarle a detectar declaraciones faltantes o no válidas). ## Advertencias From c6447412282aa33075e203ac77d52efde9ca42cf Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:16 +0100 Subject: [PATCH 200/264] New translations $singleton.md (Spanish) --- .../version-20-R10/REST/$singleton.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$singleton.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$singleton.md index dd6441c98e068f..f2526bf683cf39 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$singleton.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/$singleton.md @@ -5,7 +5,7 @@ title: $singleton Puede llamar directamente a [funciones de sus singletons compartidos](../Concepts/classes.md#singleton-classes) a través de REST. -Singleton functions are called in POST or GET requests with the `$singleton` command and without `()`. Por ejemplo, si ha definido una función `buildVehicle()` en la clase compartida singleton `VehicleFactory`, podría llamarla utilizando la siguiente petición: +Las funciones Singleton se llaman en peticiones POST o GET con el comando `$singleton` y sin `()`. Por ejemplo, si ha definido una función `buildVehicle()` en la clase compartida singleton `VehicleFactory`, podría llamarla utilizando la siguiente petición: ```json /rest/$singleton/VehicleFactory/buildVehicle From 9014103474f0cb73fd784a06446f963afa9b274e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:17 +0100 Subject: [PATCH 201/264] New translations vp-copy-to-object.md (Spanish) --- .../version-20-R10/ViewPro/commands/vp-copy-to-object.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-copy-to-object.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-copy-to-object.md index b8680a5547e280..704a4b63bc00d1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-copy-to-object.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-copy-to-object.md @@ -31,10 +31,10 @@ En *rangeObj*, pase el rango de celdas con los valores, formato y fórmulas a co Puede pasar un parámetro opcional *options* con las siguientes propiedades: -| Propiedad | Tipo | Descripción | -| ----------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | *True* (por defecto) para mantener los valores, el formato y las fórmulas copiados después de la ejecución del comando. *False* para eliminarlos. | -| copyOptions | Integer | Especifica lo que se copia o mueve. Possible values:

    ValueDescription
    `vk clipboard options all` (default)Copies all data objects, including values, formatting, and formulas.
    `vk clipboard options formatting`Copia solo el formato.
    `vk clipboard options formulas`Copies only the formulas.
    `vk clipboard options formulas and formatting`Copies the formulas and formatting.
    `vk clipboard options values`Copia solo los valores.
    `vk clipboard options value and formatting`Copies the values and formatting.

    | +| Propiedad | Tipo | Descripción | +| ----------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| copy | Boolean | *True* (por defecto) para mantener los valores, el formato y las fórmulas copiados después de la ejecución del comando. *False* para eliminarlos. | +| copyOptions | Integer | Especifica lo que se copia o mueve. Possible values:

    ValueDescription
    `vk clipboard options all` (default)Copies all data objects, including values, formatting, and formulas.
    `vk clipboard options formatting`Copia solo el formato.
    `vk clipboard options formulas`Copies only the formulas.
    `vk clipboard options formulas and formatting`Copia las fórmulas y formato.
    `vk clipboard options values`Copia solo los valores.
    `vk clipboard options value and formatting`Copia los valores y el formato.

    | Se tienen en cuenta las opciones de pegado definidas en las [opciones del libro de trabajo](vp-set-workbook-options.md). From 6f80e80086ea73ee934a946827509639f1e949be Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:19 +0100 Subject: [PATCH 202/264] New translations vp-export-document.md (Spanish) --- .../version-20-R10/ViewPro/commands/vp-export-document.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md index 7617707ba0cfbb..94eefcc2eb31d0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-export-document.md @@ -90,7 +90,7 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. -- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. +- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Asegúrese de no mezclar este objeto con propiedades heredadas de primer nivel (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: From 643e1da180aca8978c847565636b12471168410c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:21 +0100 Subject: [PATCH 203/264] New translations vp-import-document.md (Spanish) --- .../ViewPro/commands/vp-import-document.md | 54 +++++++++---------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md index 068ca2cf7addd8..9cf06809fc9a03 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-import-document.md @@ -43,33 +43,33 @@ Se devuelve un error si el parámetro `filePath` no es válido, o si el archivo El parámetro opcional *paramObj* permite definir las propiedades del documento importado: -| Parámetros | | Tipo | Descripción | -| ------------ | ------------------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| formula | | 4D.Function | Un método de retollamada que se lanzará cuando la importación haya terminado. Debe utilizar una fórmula devuelta por el comando [`Formula`](../../commands/formula.md). Ver [Pasar un método de retrollamada (fórmula)](vp-export-document.md#passing-a-callback-method-formula). | -| contraseña | | text | Sólo Microsoft Excel (opcional) - La contraseña utilizada para proteger un documento MS Excel. | -| csvOptions | | object | opciones de importación csv | -| | range | object | Rango de celdas que contiene la primera celda donde se escribirán los datos. Si el rango especificado no es un rango de celdas, sólo se utiliza la primera celda del rango. | -| | rowDelimiter | text | Delimitador de línea. Si no está presente, el delimitador es determinado automáticamente por 4D. | -| | columnDelimiter | text | Delimitador de columna. Por defecto: "," | -| sjsOptions | | object | opciones para la importación de sjs | -| | calcOnDemand | boolean | Si se calculan las fórmulas sólo cuando se solicitan, por defecto es false. | -| | dynamicReferences | boolean | Si calcular funciones con referencias dinámicas, por defecto es true. | -| | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | -| | includeFormulas | boolean | Si se incluyen las fórmulas al cargar, por defecto es true. | -| | includeStyles | boolean | Si se incluyen los estilos al cargar, por defecto es true. | -| | includeUnusedStyles | boolean | Si se incluyen los estilos de nombre no utilizados al convertir excel xml a json, por defecto es true. | -| | openMode | integer |
  • 0 (normal): modo abierto normal, sin perezoso (lazy) e incremental. When opening file, UI and UI event could be refreshed and responsive at specific time points.
  • 1 (lazy): modo de apertura lazy. Al abrir el archivo, sólo se cargará directamente la hoja activa. Las demás hojas sólo se cargarán cuando se vayan a utilizar.
  • 2 (incremental): modo abierto incremental. Al abrir un archivo, la interfaz de usuario y el evento de interfaz de usuario podrían actualizarse y responder directamente.
  • | -| excelOptions | | object | Sólo Excel (opcional) - Opciones para exportar Excel | -| | includeStyles | boolean | Si se incluye el estilo al importar, por defecto true. | -| | includeFormulas | boolean | Si se incluye la fórmula al importar, por defecto true. | -| | frozenColumnsAsRowHeaders | boolean | Bien sea tratar las columnas congeladas como encabezados de línea al importar, por defecto false. | -| | frozenRowsAsColumnHeaders | boolean | Bien sea tratar las líneas congeladas como encabezados de columna al importar, por defecto false. | -| | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | -| | dynamicReferences | boolean | Si calcular funciones con referencia dinámica, por defecto true. | -| | calcOnDemand | boolean | Si se calculan las fórmulas solo cuando se solicitan, por defecto false. | -| | includeUnusedStyles | boolean | Si incluir el estilo de nombre no utilizado al convertir excel xml al json, default true. | -| | contraseña | text | La contraseña para abrir el workbook. | -| | openMode | text | The open mode of normal, lazy and incremental. Por defecto es normal. | +| Parámetros | | Tipo | Descripción | +| ------------ | ------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| formula | | 4D.Function | Un método de retollamada que se lanzará cuando la importación haya terminado. Debe utilizar una fórmula devuelta por el comando [`Formula`](../../commands/formula.md). Ver [Pasar un método de retrollamada (fórmula)](vp-export-document.md#passing-a-callback-method-formula). | +| contraseña | | text | Sólo Microsoft Excel (opcional) - La contraseña utilizada para proteger un documento MS Excel. | +| csvOptions | | object | opciones de importación csv | +| | range | object | Rango de celdas que contiene la primera celda donde se escribirán los datos. Si el rango especificado no es un rango de celdas, sólo se utiliza la primera celda del rango. | +| | rowDelimiter | text | Delimitador de línea. Si no está presente, el delimitador es determinado automáticamente por 4D. | +| | columnDelimiter | text | Delimitador de columna. Por defecto: "," | +| sjsOptions | | object | opciones para la importación de sjs | +| | calcOnDemand | boolean | Si se calculan las fórmulas sólo cuando se solicitan, por defecto es false. | +| | dynamicReferences | boolean | Si calcular funciones con referencias dinámicas, por defecto es true. | +| | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | +| | includeFormulas | boolean | Si se incluyen las fórmulas al cargar, por defecto es true. | +| | includeStyles | boolean | Si se incluyen los estilos al cargar, por defecto es true. | +| | includeUnusedStyles | boolean | Si se incluyen los estilos de nombre no utilizados al convertir excel xml a json, por defecto es true. | +| | openMode | integer |
  • 0 (normal): modo abierto normal, sin perezoso (lazy) e incremental. Al abrir un archivo, la interfaz de usuario y el evento de interfaz de usuario podrían actualizarse y responder en momentos específicos.
  • 1 (lazy): modo de apertura lazy. Al abrir el archivo, sólo se cargará directamente la hoja activa. Las demás hojas sólo se cargarán cuando se vayan a utilizar.
  • 2 (incremental): modo abierto incremental. Al abrir un archivo, la interfaz de usuario y el evento de interfaz de usuario podrían actualizarse y responder directamente.
  • | +| excelOptions | | object | Sólo Excel (opcional) - Opciones para exportar Excel | +| | includeStyles | boolean | Si se incluye el estilo al importar, por defecto true. | +| | includeFormulas | boolean | Si se incluye la fórmula al importar, por defecto true. | +| | frozenColumnsAsRowHeaders | boolean | Bien sea tratar las columnas congeladas como encabezados de línea al importar, por defecto false. | +| | frozenRowsAsColumnHeaders | boolean | Bien sea tratar las líneas congeladas como encabezados de columna al importar, por defecto false. | +| | fullRecalc | boolean | Si calcular después de cargar los datos json, false por defecto. | +| | dynamicReferences | boolean | Si calcular funciones con referencia dinámica, por defecto true. | +| | calcOnDemand | boolean | Si se calculan las fórmulas solo cuando se solicitan, por defecto false. | +| | includeUnusedStyles | boolean | Si incluir el estilo de nombre no utilizado al convertir excel xml al json, default true. | +| | contraseña | text | La contraseña para abrir el workbook. | +| | openMode | text | The open mode of normal, lazy and incremental. Por defecto es normal. | :::note Notas From b26bee8acfeb76271b6026d545b99dce643c7950 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:23 +0100 Subject: [PATCH 204/264] New translations vp-move-cells.md (Spanish) --- .../version-20-R10/ViewPro/commands/vp-move-cells.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-move-cells.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-move-cells.md index 5e7750583d5ac0..f924914b108639 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-move-cells.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-move-cells.md @@ -35,10 +35,10 @@ En *targetRange*, pase el rango de celdas donde se copiarán o moverán los valo El parámetro *options* tiene varias propiedades: -| Propiedad | Tipo | Descripción | -| ------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | Determina si los valores, el formato y las fórmulas de las celdas de *originRange* se eliminan después de ejecutar el comando:
    • *False* (por defecto) para eliminarlos
    • *True* para mantenerlos
    | -| pasteOptions | Integer | Especifica lo que se pega. Possible values:

    ValueDescription
    `vk clipboard options all` (default)Pastes all data objects, including values, formatting, and formulas.
    `vk clipboard options formatting`Pega solo el formato.
    `vk clipboard options formulas`Pega sólo las fórmulas.
    `vk clipboard options formulas and formatting`Pastes the formulas and formatting.
    `vk clipboard options values`Pega solo los valores.
    `vk clipboard options value and formatting`Pastes the values and formatting.

    | +| Propiedad | Tipo | Descripción | +| ------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| copy | Boolean | Determina si los valores, el formato y las fórmulas de las celdas de *originRange* se eliminan después de ejecutar el comando:
    • *False* (por defecto) para eliminarlos
    • *True* para mantenerlos
    | +| pasteOptions | Integer | Especifica lo que se pega. Possible values:

    ValueDescription
    `vk clipboard options all` (default)Pastes all data objects, including values, formatting, and formulas.
    `vk clipboard options formatting`Pega solo el formato.
    `vk clipboard options formulas`Pega sólo las fórmulas.
    `vk clipboard options formulas and formatting`Pega las fórmulas y el formato.
    `vk clipboard options values`Pega solo los valores.
    `vk clipboard options value and formatting`Pega los valores y el formato.

    | Se tienen en cuenta las opciones de pegado definidas en las [opciones del libro de trabajo](vp-set-workbook-options.md). From 5bd098a289b0d5f2c96f96f84347365f7239ab34 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:25 +0100 Subject: [PATCH 205/264] New translations vp-set-workbook-options.md (Spanish) --- .../ViewPro/commands/vp-set-workbook-options.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-workbook-options.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-workbook-options.md index 1b299444582e1b..d059be21bf1f19 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-workbook-options.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/ViewPro/commands/vp-set-workbook-options.md @@ -48,14 +48,14 @@ En la siguiente tabla se listan las opciones de libros de trabajo disponibles: | autoFitType | number | El contenido se formatea para que se ajuste en las celdas, o en las celdas y los encabezados. Valores disponibles:
    ConstanteValorDescripción
    vk auto fit type cell 0 El contenido se ajusta automáticamente a las celdas
    vk auto fit type cell with header 1 El contenido se ajusta automáticamente a las celdas y encabezados
    | | backColor | string | Una cadena de color utilizada para representar el color de fondo del área, como "red", "#FFFF00", "rgb(255,0,0)", "Acento 5". El color de fondo inicial se oculta cuando se define una backgroundImage. | | backgroundImage | string / picture / file | Imagen de fondo para el área. | -| backgroundImageLayout | number | Cómo se muestra la imagen de fondo. Available values:
    ConstantValueDescription
    vk image layout center 1 In the center of the area.
    vk image layout none 3 In the upper left corner of the area with its original size.
    vk image layout stretch 0 Llena el área.
    vk image layout zoom 2 Displayed with its original aspect ratio.
    | +| backgroundImageLayout | number | Cómo se muestra la imagen de fondo. Available values:
    ConstantValueDescription
    vk image layout center 1 In the center of the area.
    vk image layout none 3 In the upper left corner of the area with its original size.
    vk image layout stretch 0 Llena el área.
    vk image layout zoom 2 Mostrado con su relación de aspecto original.
    | | calcOnDemand | boolean | Las fórmulas se calculan sólo cuando se piden. | | columnResizeMode | number | Redimensiona modo para columnas. Valores disponibles:
    ConstanteValorDescripción
    vk resize mode normal 0 Utiliza el modo de redimensionamiento normal (es decir, las columnas restantes se ven afectadas)
    vk resize mode split 1 Utiliza el modo dividido (es decir, las columnas restantes no se ven afectadas)
    | | copyPasteHeaderOptions | number | Encabezados para incluir cuando se copian o pegan datos. Available values:
    ConstantValueDescription
    vk copy paste header options all headers3 Includes selected headers when data is copied; overwrites selected headers when data is pasted.
    vk copy paste header options column headers 2 Includes selected column headers when data is copied; overwrites selected column headers when data is pasted.
    vk copy paste header options no headers0 Column and row headers are not included when data is copied; does not overwrite selected column or row headers when data is pasted.
    vk copy paste header options row headers1 Includes selected row headers when data is copied; overwrites selected row headers when data is pasted.
    | | customList | collection | La lista para que los usuarios personalicen el relleno de arrastre, dar prioridad a que coincida con esta lista en cada relleno. Cada elemento de colección es una colección de cadenas. Vet en [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists). | | cutCopyIndicatorBorderColor | string | Color del borde del indicador que aparece cuando el usuario corta o copia la selección. | | cutCopyIndicatorVisible | boolean | Muestra un indicador al copiar o cortar el elemento seleccionado. | -| defaultDragFillType | number | El tipo de relleno de arrastre por defecto. Valores disponibles :
    ConstanteValorDescripción
    vk auto fill type auto 5 Rellena automáticamente las celdas.
    vk auto fill type clear values 4 Clears cell values.
    vk auto fill type copycells 0 Fills cells with all data objects, including values, formatting, and formulas.
    vk auto fill type fill formatting only 2 Fills cells only with formatting.
    vk auto fill type fill series 1 Fills cells with series.
    vk auto fill type fill without formatting 3 Rellena las celdas con valores y no con formato.
    | +| defaultDragFillType | number | El tipo de relleno de arrastre por defecto. Valores disponibles :
    ConstanteValorDescripción
    vk auto fill type auto 5 Rellena automáticamente las celdas.
    vk auto fill type clear values 4 Clears cell values.
    vk auto fill type copycells 0 Fills cells with all data objects, including values, formatting, and formulas.
    vk auto fill type fill formatting only 2 Llena las celdas solo con formato.
    vk auto fill type fill series 1 Fills cells with series.
    vk auto fill type fill without formatting 3 Rellena las celdas con valores y no con formato.
    | | enableAccessibility | boolean | El soporte de accesibilidad está activado en la hoja de cálculo. | | enableFormulaTextbox | boolean | Se activa la caja de texto de la fórmula. | | grayAreaBackColor | string | Una cadena color utilizada para representar el color de fondo del área gris, como "red", "#FFFF00", "rgb(255,0,0)", "Accent 5", etc. | @@ -69,7 +69,7 @@ En la siguiente tabla se listan las opciones de libros de trabajo disponibles: | referenceStyle | number | Estilo para referencias de celdas y rangos en fórmulas de celdas. Available values:
    ConstantValueDescription
    vk reference style A1 0 Use A1 style.
    vk reference style R1C1 1 Use R1C1 style
    | | resizeZeroIndicator | number | Política de dibujo cuando las líneas o columnas se redimensionan a 0. Available values:
    ConstantValueDescription
    vk resize zero indicator default 0 Uses the current drawing policy when the row or column is resized to zero.
    vk resize zero indicator enhanced 1 Draws two short lines when the row or column is resized to zero.
    | | rowResizeMode | number | La forma en que se redimensionan las líneas. Los valores disponibles son los mismos qe columnResizeMode | -| scrollbarAppearance | number | Apariencia de la barra de desplazamiento. Available values:
    ConstantValueDescription
    vk scrollbar appearance mobile1 Mobile scrollbar appearance.
    vk scrollbar appearance skin (default)0 Excel-like classic scrollbar appearance.
    | +| scrollbarAppearance | number | Apariencia de la barra de desplazamiento. Available values:
    ConstantValueDescription
    vk scrollbar appearance mobile1 Mobile scrollbar appearance.
    vk scrollbar appearance skin (por defecto)0 Apariencia clásica de la barra de desplazamiento similar a Excel.
    | | scrollbarMaxAlign | boolean | La barra de desplazamiento se alinea con la última línea y columna de la hoja activa. | | scrollbarShowMax | boolean | Las barras de desplazamiento mostradas se basan en el número total de columnas y líneas de la hoja. | | scrollByPixel | boolean | Activar desplazamiento de precisión por píxel. | @@ -79,8 +79,8 @@ En la siguiente tabla se listan las opciones de libros de trabajo disponibles: | showDragFillSmartTag | boolean | Mostrar el diálogo de arrastrar y rellenar. | | showDragFillTip | boolean | Mostrar la punta de arrastrar y soltar. | | showHorizontalScrollbar | boolean | Mostrar la barra de desplazamiento horizontal. | -| showResizeTip | number | Cómo mostrar el tip de redimensionamiento. Available values:
    ConstantValueDescription
    vk show resize tip both 3 Horizontal and vertical resize tips are displayed.
    vk show resize tip column 1 Only the horizontal resize tip is displayed.
    vk show resize tip none 0 No resize tip is displayed.
    vk show resize tip row 2 Only the vertical resize tip is displayed.
    | -| showScrollTip | number | Cómo mostrar el tip de desplazamiento. Available values:
    ConstantValueDescription
    vk show scroll tip both 3 Horizontal and vertical scroll tips are displayed.
    vk show scroll tip horizontal 1 Only the horizontal scroll tip is displayed.
    vk show scroll tip none No se muestra ninguna propina.
    vk show scroll tip vertical 2 Only the vertical scroll tip is displayed.
    | +| showResizeTip | number | Cómo mostrar el tip de redimensionamiento. Available values:
    ConstantValueDescription
    vk show resize tip both 3 Horizontal and vertical resize tips are displayed.
    vk show resize tip column 1 Solo se muestra la punta de redimensionamiento horizontal.
    vk show resize tip none 0 No resize tip is displayed.
    vk show resize tip row 2 Only the vertical resize tip is displayed.
    | +| showScrollTip | number | Cómo mostrar el tip de desplazamiento. Available values:
    ConstantValueDescription
    vk show scroll tip both 3 Horizontal and vertical scroll tips are displayed.
    vk show scroll tip horizontal 1 Only the horizontal scroll tip is displayed.
    vk show scroll tip none No se muestra ninguna propina.
    vk show scroll tip vertical 2 Solo se muestra la punta de desplazamiento vertical.
    | | showVerticalScrollbar | boolean | Mostrar la barra de desplazamiento vertical. | | tabEditable | boolean | La pestaña de la hoja se puede editar. | | tabNavigationVisible | boolean | Mostrar la navegación por pestañas. | From 35f2fcf70380f1f5dce937a7022eba098ed331b7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:27 +0100 Subject: [PATCH 206/264] New translations authentication.md (Spanish) --- .../version-20-R10/WebServer/authentication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/authentication.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/authentication.md index 526b9eeb780278..8d182eca3eca37 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/authentication.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/authentication.md @@ -115,7 +115,7 @@ Debe declarar estos parámetros de la siguiente manera: :::note -Todos los parámetros del método base `On Web Authentication` no están necesariamente rellenados. The information received by the database method depends on the selected [authentication mode](#authentication-modes). +Todos los parámetros del método base `On Web Authentication` no están necesariamente rellenados. La información recibida por el método base depende del [modo de autenticación](#authentication-modes) seleccionado. ::: From 28d726aa2554a7e88e000bf68f828a2fc9ceea37 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:29 +0100 Subject: [PATCH 207/264] New translations sessions.md (Spanish) --- .../version-20-R10/WebServer/sessions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md index 0f33399d743853..241f091dac5e5e 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WebServer/sessions.md @@ -211,7 +211,7 @@ End if El servidor web 4D le permite generar, compartir y utilizar tokens de sesión OTP (One-Time Passcode). Los tokens de sesión OTP se utilizan para asegurar comunicaciones con aplicaciones de terceros o sitios web. For information on OTP, please refer to the [One-time password page](https://en.wikipedia.org/wiki/One-time_password) on Wikipedia. -In 4D, OTP session tokens are useful when calling external URLs and being called back in another browser or device (mobile/computer). Typically, a third-party application sends a confirmation email containing a callback link on which the user has to click. The callback link includes the OTP token, so that the session which triggered the callback is loaded along with its data and privileges. This principle allows you to share the same session on multiple devices. Gracias a esta arquitectura, la [cookie de sesión](#session-implementation) no está expuesta en la red, lo que elimina el riesgo de un ataque de hombre en el medio. +In 4D, OTP session tokens are useful when calling external URLs and being called back in another browser or device (mobile/computer). Typically, a third-party application sends a confirmation email containing a callback link on which the user has to click. El enlace de retrollamada incluye el token OTP, para que la sesión que activó la retrollamada se cargue junto con sus datos y privilegios. This principle allows you to share the same session on multiple devices. Gracias a esta arquitectura, la [cookie de sesión](#session-implementation) no está expuesta en la red, lo que elimina el riesgo de un ataque de hombre en el medio. ### Generalidades @@ -245,7 +245,7 @@ Una url [`4DACCIÓN`](./httpRequests.md#4daction) también puede ser usada en el #### Utilizar un parámetro personalizado -The OTP token can also be provided as a custom parameter that you need to process specifically to restore the session. Debe utilizar esta solución si: +El token OTP también se puede suministrar como un parámetro personalizado que necesita procesar específicamente para restaurar la sesión. Debe utilizar esta solución si: - la aplicación de terceros no permite insertar parámetros como un `$4DSID` directamente en la Uri de redirección, y proporciona una API dedicada (la implementación depende de la aplicación de terceros), - o, quiere llamar a una función ORDA a través de REST para procesar la retrollamada, en cuyo caso es necesario pasar el OTP con la [sintaxis de parámetro REST](../REST/ClassFunctions.md#parameters) (por ejemplo, `?$params='["XXX123"]'`). From 4ee36aa130cdc809d23a657f133fbc50207a64fa Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:31 +0100 Subject: [PATCH 208/264] New translations wp-import-document.md (Spanish) --- .../WritePro/commands/wp-import-document.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-import-document.md index a2d923b5a03f7c..625a6d5df492ed 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-import-document.md @@ -54,11 +54,11 @@ Puede pasar un objeto para definir cómo se gestionan los siguientes atributos d | **Atributo** | **Tipo** | **Description** | | ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | anchoredTextAreas | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las áreas de texto ancladas en Word. Valores disponibles:

    **anchored** (por defecto) - Las áreas de texto ancladas se tratan como cuadros de texto. **inline** - Las áreas de texto ancladas se tratan como texto en línea en la posición del ancla. **ignore** \- Las áreas de texto ancladas son ignoradas. **Nota**: el diseño y el número de páginas en el documento pueden cambiar. Ver también *Cómo importar formato .docx* | -| anchoredImages | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las imágenes ancladas. Available values:

    **all** (default) - All anchored images are imported as anchored images with their text wrapping properties (exception: the .docx wrapping option "tight" is imported as wrap square). **ignoreWrap** \- Anchored images are imported, but any text wrapping around the image is ignored. **ignore** \- Las imágenes ancladas no son importadas. | -| secciones | Text | Sólo para documentos MS Word (.docx). Especifica cómo se maneja la sección. Valores disponibles:

    **all** (por defecto) - Se importan todas las secciones. Secciones continuas, incluso impares se convierten en secciones estándar. **ignore** \- Sections are converted to default 4D Write Pro sections (A4 portrait layout without header or footer). **Note**: Section breaks of any type but continuous are converted to section breaks with page break. Continuous section breaks are imported as continuous section breaks. | +| anchoredImages | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las imágenes ancladas. Available values:

    **all** (default) - All anchored images are imported as anchored images with their text wrapping properties (exception: the .docx wrapping option "tight" is imported as wrap square). **ignoreWrap** \- Las imágenes ancladas son importadas, pero todo texto que se envuelve alrededor de la imagen es ignorado. **ignore** \- Las imágenes ancladas no son importadas. | +| secciones | Text | Sólo para documentos MS Word (.docx). Especifica cómo se maneja la sección. Valores disponibles:

    **all** (por defecto) - Se importan todas las secciones. Secciones continuas, incluso impares se convierten en secciones estándar. **ignore** \- Sections are converted to default 4D Write Pro sections (A4 portrait layout without header or footer). **Nota**: las rupturas de secciones de cualquier tipo pero continuas se convierten en rupturas de sección con rupturas de página. Continuous section breaks are imported as continuous section breaks. | | fields | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan los campos .docx que no pueden ser convertidos a fórmulas 4D Write Pro. Valores disponibles:

    **ignore** \- Los campos .docx son ignorados. **label** \- .docx field references are imported as labels within double curly braces ("{{ }}"). Ej: el campo "ClientName" se importará como {{ClientName}}. **value** (default) - El último valor calculado para el campo .docx (si está disponible) es importado. **Note**: If a .docx field corresponds to a 4D Write Pro variable, the field is imported as a formula and this option is ignored. | -| borderRules | Text | Sólo para documentos MS Word (.docx). Especifica cómo se gestionan los bordes de los párrafos. Available values:

    **collapse** \- Paragraph formatting is modified to mimic automatically collapsed borders. Tenga en cuenta que la propiedad contraída sólo se aplica durante la operación de importación. If a stylesheet with a automatic border collapse setting is reapplied after the import operation, the setting will be ignored. **noCollapse** (por defecto) - No se modifica el formato de los párrafos. | -| preferredFontScriptType | Text | Sólo para documentos MS Word (.docx). Specifies the preferred typeface to use when different typefaces are defined for a single font property in OOXML. Valores disponibles:

    **latin** (por defecto) - script latino **bidi** \- script bidreccional. Suitable if document is mainly bidirectional left-to-right (LTR) or right-to-left (RTL) text (e.g., Arabic or Hebrew). **eastAsia** \- East Asian script. Adecuado si el documento es principalmente texto asiático. | +| borderRules | Text | Sólo para documentos MS Word (.docx). Especifica cómo se gestionan los bordes de los párrafos. Valores disponibles:

    **collapse** \- El formato del párrafo se modifica para imitar los bordes colapsados automáticamente. Tenga en cuenta que la propiedad contraída sólo se aplica durante la operación de importación. If a stylesheet with a automatic border collapse setting is reapplied after the import operation, the setting will be ignored. **noCollapse** (por defecto) - No se modifica el formato de los párrafos. | +| preferredFontScriptType | Text | Sólo para documentos MS Word (.docx). Specifies the preferred typeface to use when different typefaces are defined for a single font property in OOXML. Valores disponibles:

    **latin** (por defecto) - script latino **bidi** \- script bidreccional. Adecuado si el documento es principalmente bidireccional de izquierda a derecha (LTR) o de derecha a izquierda (RTL) texto (por ejemplo, árabe o hebreo). **eastAsia** \- East Asian script. Adecuado si el documento es principalmente texto asiático. | | htmlExpressions | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se manejan las expresiones HTML. Available values:

    **rawText** \- HTML expressions are imported as raw text within ##htmlBegin## and ##htmlEnd## tags **ignore** (default) - HTML expressions are ignored. | | importDisplayMode | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se gestiona la visualización de imágenes. Available values:

    **legacy -** 4W7 image display mode is converted using a background image if different than scaled to fit. **noLegacy** (default) - 4W7 image display mode is converted to the *imageDisplayMode* attribute if different than scaled to fit. | From f977619f42ade3141ebd41525d320b5cbf2cbf49 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:32 +0100 Subject: [PATCH 209/264] New translations wp-reset-attributes.md (Spanish) --- .../version-20-R10/WritePro/commands/wp-reset-attributes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-reset-attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-reset-attributes.md index e3c95cabba2413..da3a00bcb36f12 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-reset-attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/WritePro/commands/wp-reset-attributes.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descripción -El comando **WP RESET ATTRIBUTES** le permite restablecer el valor de uno o más atributos en el rango, elemento o documento pasado como parámetro. This command can remove any kind of 4D Write Pro internal attribute: character, paragraph, document, table, or image. Puede pasar el nombre del atributo a restablecer en *attribName* o puede pasar una colección de atributos en *attribColl* para restablecer varios atributos a la vez. +El comando **WP RESET ATTRIBUTES** le permite restablecer el valor de uno o más atributos en el rango, elemento o documento pasado como parámetro. Este comando puede eliminar cualquier tipo de atributo interno de 4D Write Pro: carácter, párrafo, documento, tabla o imagen. Puede pasar el nombre del atributo a restablecer en *attribName* o puede pasar una colección de atributos en *attribColl* para restablecer varios atributos a la vez. > En el caso de una sección o subsección, el objeto *sectionOrSubsection* puede pasarse solo y todos los atributos se restablecen a la vez. From 96a91052b3a2e16a9fee9ece7c8deef3c3ccb849 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:34 +0100 Subject: [PATCH 210/264] New translations openai.md (Spanish) --- .../version-20-R10/aikit/Classes/OpenAI.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md index 21dc2ecf7aa074..1271a5aaaa8e21 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAI.md @@ -5,7 +5,7 @@ title: OpenAI # OpenAI -La clase `OpenAI` proporciona un cliente para acceder a varios recursos de la API OpenAI. It includes properties for managing API configurations and methods for performing HTTP requests to the OpenAI endpoints. +La clase `OpenAI` proporciona un cliente para acceder a varios recursos de la API OpenAI. Incluye propiedades de gestión de las configuraciones API y de los métodos para efectuar las peticiones HTTP a los puntos de terminación de OpenAI. ## Propiedades de configuración @@ -58,7 +58,7 @@ $client.baseURL:="https://server.ai" ## Recursos API -The API provides access to multiple resources that allow seamless interaction with OpenAI's services. Each resource is encapsulated within a dedicated API class, offering a structured and intuitive way to interact with different functionalities. +La API ofrece acceso a múltiples recursos que permiten una interacción perfecta con los servicios de OpenAI. Each resource is encapsulated within a dedicated API class, offering a structured and intuitive way to interact with different functionalities. | Nombre de la propiedad | Tipo | Descripción | | ---------------------- | ----------------------------------------------- | ------------------------------------------------ | From 1c4c3270132579fea0c94bbd22e3c85c3f0c1614 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:35 +0100 Subject: [PATCH 211/264] New translations openaichatcompletionslistparameters.md (Spanish) --- .../aikit/Classes/OpenAIChatCompletionsListParameters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsListParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsListParameters.md index 93b8c3e4bee066..7f1a363b63e090 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsListParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIChatCompletionsListParameters.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsListParameters # OpenAIChatCompletionsListParameters -This class is used to define parameters for retrieving a list of chat completions from the OpenAI API. Permite personalizar la paginación, ordenar y filtrar los mensajes de chat. +Esta clase se utiliza para definir los parámetros de recuperación de una lista de terminaciones de chat de la API OpenAI. Permite personalizar la paginación, ordenar y filtrar los mensajes de chat. ## Hereda From d3a1663782af3dde170ac32c7e454b833aeaa0d9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:38 +0100 Subject: [PATCH 212/264] New translations openaimoderation.md (Spanish) --- .../version-20-R10/aikit/Classes/OpenAIModeration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModeration.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModeration.md index 3c92f30cc3c7c7..1b7928f32cb10a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModeration.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModeration.md @@ -5,7 +5,7 @@ title: OpenAIModeration # OpenAIModeration -La clase `OpenAIModeration` está diseñada para manejar los resultados de moderación de la API OpenAI. It contains properties for storing the moderation ID, model used, and the results of the moderation. +La clase `OpenAIModeration` está diseñada para manejar los resultados de moderación de la API OpenAI. Contiene propiedades para almacenar el ID de moderación, el modelo utilizado y los resultados de la moderación. https://platform.openai.com/docs/api-reference/moderations/object From 37d241c56af3f3a279f5fad2e5a387f5e7ed6d3f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:40 +0100 Subject: [PATCH 213/264] New translations openaimoderationresult.md (Spanish) --- .../version-20-R10/aikit/Classes/OpenAIModerationResult.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModerationResult.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModerationResult.md index b486c693fb10f3..6ae6717533fd23 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModerationResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIModerationResult.md @@ -5,7 +5,7 @@ title: OpenAIModerationResult # OpenAIModerationResult -The `OpenAIModerationResult` provides functionality to handle moderation results from the OpenAI API. +`OpenAIModerationResult` ofrece funcionalidades para manejar los resultados de moderación de la API OpenAI. ## Hereda From 7272ac4e8f6d0497f394f9ee3ed3d0c9836e9718 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:41 +0100 Subject: [PATCH 214/264] New translations openairesult.md (Spanish) --- .../version-20-R10/aikit/Classes/OpenAIResult.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIResult.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIResult.md index be533ccb4d72d6..ef3e9ad3508ea9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/aikit/Classes/OpenAIResult.md @@ -26,8 +26,8 @@ The `OpenAIResult` class is designed to handle the response from HTTP requests a ### rateLimit -The `rateLimit` property returns an object containing rate limit information from the response headers. -This information includes the limits, remaining requests, and reset times for both requests and tokens. +La propiedad `rateLimit` devuelve un objeto que contiene información sobre el límite de velocidad de los encabezados de respuesta. +Esta información incluye los límites, las peticiones restantes y los tiempos de reinicialización tanto para peticiones como para tokens. For more details on rate limits and the specific headers used, refer to [the OpenAI Rate Limits Documentation](https://platform.openai.com/docs/guides/rate-limits#rate-limits-in-headers). From fe771f81b7e20874a801bc3f1b04450c49388d0e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:45 +0100 Subject: [PATCH 215/264] New translations write-class-method.md (Spanish) --- .../version-20-R10/code-editor/write-class-method.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/code-editor/write-class-method.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/code-editor/write-class-method.md index 002a2f09517834..f047f57dab287d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/code-editor/write-class-method.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/code-editor/write-class-method.md @@ -803,7 +803,7 @@ La etiqueta `` permite generar y utilizar macrocomandos que ejecutan mé El código de un método llamado se ejecuta en un nuevo proceso. Este proceso se cierra una vez se ejecuta el método. -> Note: The structure process remains frozen until the called method execution is completed. Debe asegurarse de que la ejecución es rápida y de que no hay riesgo de que bloquee la aplicación. If this occurs, use the **Ctrl+F8** (Windows) or **Command+F8** (macOS) command to "kill" the process. +> Note: The structure process remains frozen until the called method execution is completed. Debe asegurarse de que la ejecución es rápida y de que no hay riesgo de que bloquee la aplicación. Si esto ocurre, utilice el comando **Ctrl+F8** (Windows) o **Comando+F8** (macOS) para "matar" el proceso. ### Llamando macros From abf9831a59ee733cdbf1d3b76a1426efbf38ea2e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:46 +0100 Subject: [PATCH 216/264] New translations call-chain.md (Spanish) --- .../version-20-R10/commands/call-chain.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/call-chain.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/call-chain.md index 096864393492ed..fdbd960b6e8acd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/call-chain.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/call-chain.md @@ -25,7 +25,7 @@ displayed_sidebar: docs ## Descripción -The **Call chain** command returns a collection of objects describing each step of the method call chain within the current process. Ofrece la misma información que la ventana Depurador. It has the added benefit of being able to be executed from any 4D environment, including compiled mode. +The **Call chain** command returns a collection of objects describing each step of the method call chain within the current process. Ofrece la misma información que la ventana Depurador. Tiene la ventaja adicional de poder ser ejecutado desde cualquier entorno 4D, incluyendo el modo compilado. The command facilitates debugging by enabling the identification of the method or formula called, the component that called it, and the line number where the call was made. Cada objeto de la colección devuelta contiene las siguientes propiedades: @@ -45,7 +45,7 @@ Para que este comando pueda operar en modo compilado, la [verificación de rango ## Ejemplo -The following code returns a collection of objects containing information about the method call chain: +El siguiente código devuelve una colección de objetos que contienen información acerca de la cadena de llamadas de métodos: ```4d var $currentCallChain : Collection From 42e3b385338ef0c9cfe78f45baf904948fe03c93 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:48 +0100 Subject: [PATCH 217/264] New translations command-name.md (Spanish) --- .../version-20-R10/commands/command-name.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/command-name.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/command-name.md index dbbeb35148cc54..188b150d0f8a71 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/command-name.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/command-name.md @@ -82,7 +82,7 @@ En un formulario, quiere una lista desplegable con los comandos básicos de info En la versión inglesa de 4D, la lista desplegable leerá: Sum, Average, Min y Max. En la versión francésa \*, la lista desplegable dirá: Somme, Moyenne, Min, y Max. -\*with a 4D application configured to use the French programming language (see compatibility note) +\*con una aplicación 4D configurada para usar el lenguaje de programación en francés (ver nota de compatibilidad) ## Ejemplo 3 From d662421a8bc4eef6b73b8609c98b8c98d8cfc562 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:50 +0100 Subject: [PATCH 218/264] New translations create-deployment-license.md (Spanish) --- .../version-20-R10/commands/create-deployment-license.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/create-deployment-license.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/create-deployment-license.md index 57ffea72a3cfe9..a943e2ddaadfc1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/create-deployment-license.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/create-deployment-license.md @@ -112,7 +112,7 @@ Designar una licencia de uso: ## Ver también -[Blog post - Build an application with 4D commands](https://blog.4d.com/build-an-application-with-4d-commands) +[Post de blog - Crear una aplicación con los comandos 4D](https://blog.4d.com/build-an-application-with-4d-commands) ## Propiedades From 83a7ebd936a685c8ba2a4140170a5234569ad029 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:51 +0100 Subject: [PATCH 219/264] New translations listbox-set-property.md (Spanish) --- .../version-20-R10/commands/listbox-set-property.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/listbox-set-property.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/listbox-set-property.md index 8b269bcc21784a..d6641157210542 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/listbox-set-property.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/listbox-set-property.md @@ -25,7 +25,7 @@ Si pasa el parámetro opcional *\**, indica que el parámetro *object* es un nom **Note:** If the list box or list box column specified using the *object* and *\** parameters does not exist, the command does nothing and no error is triggered. -In the *property* and *value* parameters, you indicate, respectively, the property to set and its new value. Puede utilizar las siguientes constantes encontradas en el tema “*List Box*: +En los parámetros *property* y *value*, usted indica, respectivamente, la propiedad a definir y su nuevo valor. Puede utilizar las siguientes constantes encontradas en el tema “*List Box*: | Constante | Valor | Comentario | | ------------------------------ | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | From 6467ba9c5542560f5a6fd5ea41f60edd33225111 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:53 +0100 Subject: [PATCH 220/264] New translations new-log-file.md (Spanish) --- .../version-20-R10/commands/new-log-file.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-log-file.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-log-file.md index 3c630602133e46..a3a706e3623201 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-log-file.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/new-log-file.md @@ -20,12 +20,12 @@ displayed_sidebar: docs The **New log file** command closes the current log file, renames it and creates a new one with the same name in the same location as the previous one. This command is meant to be used for setting up a backup system using a logical mirror (see the section *Setting up a logical mirror* in the [4D Server Reference Manual](https://doc/4d.com)). -The command returns the full pathname (access path + name) of the log file being closed (called the “segment”). Este archivo se almacena en la misma ubicación que el archivo de registro actual (especificado en la [página de configuración](../Backup/settings.md#configuration) en el tema de copia de seguridad de la configuración). El comando no realiza ningún procesamiento (compresión, segmentación) en el archivo guardado. No aparece ninguna +El comando devuelve el nombre completo de la ruta (ruta de acceso + nombre) del archivo de registro que se está cerrando (llamado “segment”). Este archivo se almacena en la misma ubicación que el archivo de registro actual (especificado en la [página de configuración](../Backup/settings.md#configuration) en el tema de copia de seguridad de la configuración). El comando no realiza ningún procesamiento (compresión, segmentación) en el archivo guardado. No aparece ninguna caja de diálogo. The file is renamed with the current backup numbers of the database and of the log file, as shown in the following example: DatabaseName\[BackupNum-LogBackupNum\].journal. Por ejemplo: -- If the MyDatabase.4DD database has been saved 4 times, the last backup file will be named MyDatabase\[0004\].4BK. The name of the first “segment” of the log file will therefore be MyDatabase\[0004-0001\].journal. +- If the MyDatabase.4DD database has been saved 4 times, the last backup file will be named MyDatabase\[0004\].4BK. El nombre del primer “segment” del archivo de registro será, por lo tanto, MyDatabase\[0004-0001\].journal. - If the MyDatabase.4DD database has been saved 3 times and the log file has been saved 5 times since, the name of the 6th backup of the log file will be MyDatabase\[0003-0006\].journal. :::warning From 1e326923049f1a73b199ed48152ae4e734411d68 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:55 +0100 Subject: [PATCH 221/264] New translations select-log-file.md (Spanish) --- .../version-20-R10/commands/select-log-file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/select-log-file.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/select-log-file.md index 93dedb8e715150..05b28a5eb1d550 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/select-log-file.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/commands/select-log-file.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descripción -The **SELECT LOG FILE** command creates, or closes the log file according to the value you pass in parameter. +El comando **SELECT LOG FILE** crea o cierra el archivo de historial de acuerdo al valor que pase en el parámetro. En *logFile*, pase el nombre o la ruta completa del archivo de registro a ser creado. If you only pass a name, the file will be created in the "Logs" folder of the database located next to the database structure file. From 094c5f9a9b7edbe39ffecdac1c0cb726782b8062 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:57 +0100 Subject: [PATCH 222/264] New translations trim.md (Spanish) --- i18n/es/docusaurus-plugin-content-docs/current/commands/trim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/trim.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/trim.md index 5cb9ac27fad57e..44a293403f43d9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/trim.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/trim.md @@ -31,7 +31,7 @@ To return a new string with whitespace trimmed from just one end, use [`Trim sta En el parámetro *aString*, puede pasar cualquier expresión de tipo texto. Será dejado sin tocar por el comando. -El comando devuelve la versión recortada de la cadena *aString*. If there is no whitespace at any end of *aString*, the returned string is identical as the one passed in parameter. +El comando devuelve la versión recortada de la cadena *aString*. Si no hay espacios en blanco en ningún extremo de *aString*, la cadena devuelta es idéntica a la pasada como parámetro. :::note From 13ce200a95a1b7c32da97c4f5f21c7d20524709a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:58:59 +0100 Subject: [PATCH 223/264] New translations string.md (Spanish) --- .../docusaurus-plugin-content-docs/current/commands/string.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/string.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/string.md index 18740b9b6c98e9..cd80fd800c2ca9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/string.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/string.md @@ -31,7 +31,7 @@ displayed_sidebar: docs El comando **String** devuelve en forma de cadena alfanumérica la expresión numérica, fecha, hora, cadena o booleana que se pasa en *expression*. -If you do not pass any other parameter, the string is returned with the appropriate default format. Si pasa *format*, puede forzar que la cadena resultante tenga un formato específico. +Si no pasa ningún otro parámetro, la cadena se devuelve con el formato apropiado por defecto. Si pasa *format*, puede forzar que la cadena resultante tenga un formato específico. El parámetro opcional *addTime* añade una hora a una fecha en un formato combinado. Sólo puede utilizarse cuando el parámetro *expression* es una fecha (ver abajo). From 6d57517d6cc7b7d54be5d1c64c97a3f5b0189808 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:01 +0100 Subject: [PATCH 224/264] New translations http-rules.md (Spanish) --- .../current/WebServer/http-rules.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md index 14f5b56fa2f051..bc8018c82e60ac 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/WebServer/http-rules.md @@ -74,7 +74,7 @@ Algunos encabezados no pudieron ser añadidos, modificados o eliminados: | Vary | Sí | No | No | | Set-Cookie | Sí | Añadir cookie | No | -Unauthorized changes on these headers do not generate errors, however modifications will be ignored. +Los cambios no autorizados en estos encabezados no generan errores, sin embargo las modificaciones serán ignoradas. ### Reglas actuales From b43ec392291b9d3fa358dfbba52edd683d6ec180 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:03 +0100 Subject: [PATCH 225/264] New translations cryptokeyclass.md (Spanish) --- .../version-21/API/CryptoKeyClass.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md index e6539b08c0c614..0dcbda2559aa1c 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/CryptoKeyClass.md @@ -54,12 +54,12 @@ La función `4D.CryptoKey.new()` crea un #### *settings* -| Propiedad | Tipo | Descripción | -| --------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [type](#type) | text | Defines the type of the key to create:
  • "RSA": generates a RSA key pair, using [.size](#size) as size.
  • "ECDSA": generates an Elliptic Curve Digital Signature Algorithm key pair, using [.curve](#curve) as curve. Tenga en cuenta que las llaves ECDSA no pueden utilizarse para el cifrado, sino solo para la firma.
  • "PEM": carga una definición de par de llaves en formato PEM, utilizando [.pem](#pem).
  • | -| [curve](#curve) | text | Nombre de la curva ECDSA | -| [pem](#pem) | text | Definición PEM de una llave de cifrado a cargar | -| [size](#size) | integer | Tamaño de la llave RSA en bits | +| Propiedad | Tipo | Descripción | +| --------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [type](#type) | text | Define el tipo de llave a crear:
  • "RSA": genera un par de llaves RSA, utilizando [.size](#size) como tamaño.
  • "ECDSA": genera un par de llaves Elliptic Curve Digital Signature Algorithm, utilizando [.curve](#curve) como curva. Tenga en cuenta que las llaves ECDSA no pueden utilizarse para el cifrado, sino solo para la firma.
  • "PEM": carga una definición de par de llaves en formato PEM, utilizando [.pem](#pem).
  • | +| [curve](#curve) | text | Nombre de la curva ECDSA | +| [pem](#pem) | text | Definición PEM de una llave de cifrado a cargar | +| [size](#size) | integer | Tamaño de la llave RSA en bits | #### *CryptoKey* From f3f7e546fcd76a6b68e72061ef2ae33967b4a1f4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:07 +0100 Subject: [PATCH 226/264] New translations entityclass.md (Spanish) --- .../version-21/API/EntityClass.md | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md index 3ee0e5cbaf554d..43a8a2bc90666a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/EntityClass.md @@ -393,15 +393,15 @@ El objeto devuelto por `.drop()` contiene las siguientes propiedades: (\*) Los siguientes valores pueden ser devueltos en las propiedades *status* y *statusText* del objeto *Result* en caso de error: -| Constante | Valor | Comentario | -| ----------------------------------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using entity.drop(), this error can be returned when dk force drop if stamp changed option is used. When using entity.lock(), this error can be returned when dk reload if stamp changed option is used.
  • **statusText asociado**: "La entidad ya no existe" | -| `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista.
    **statusText asociado**: "Already locked" | -| `dk status validation failed` | 7 | Error no crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | -| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
    **statusText asociado**\*: "Other error" | -| `dk status serious validation error` | 8 | Error crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used
  • **Associated statusText**: "Stamp has changed"
  • | -| `dk status wrong permission` | 1 | Los privilegios actuales no permiten suprimir la entidad. **Associated statusText**: "Permission Error" | +| Constante | Valor | Comentario | +| ----------------------------------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). Cuando se utiliza entity.drop(), este error puede ser devuelto cuando se utiliza la opción dk force drop if stamp changed. When using entity.lock(), this error can be returned when dk reload if stamp changed option is used.
  • **statusText asociado**: "La entidad ya no existe" | +| `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista.
    **statusText asociado**: "Already locked" | +| `dk status validation failed` | 7 | Error no crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | +| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
    **statusText asociado**\*: "Other error" | +| `dk status serious validation error` | 8 | Error crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | +| `dk status stamp has changed` | 2 | El valor del marcador interno (stamp) de la entidad no coincide con el de la entidad almacenada en los datos (bloqueo optimista).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used
  • **Associated statusText**: "Stamp has changed"
  • | +| `dk status wrong permission` | 1 | Los privilegios actuales no permiten suprimir la entidad. **Associated statusText**: "Permission Error" | #### Ejemplo 1 @@ -1020,7 +1020,7 @@ El objeto devuelto por `.lock()` contiene las siguientes propiedades: | `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). Cuando se utiliza `.drop()`, este error puede devolverse cuando se utiliza la opción dk force drop if stamp changed. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | | `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista. **statusText asociado**: "Already locked" | | `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
    **statusText asociado**\*: "Other error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used

  • **Associated statusText**: "Stamp has changed" | +| `dk status stamp has changed` | 2 | El valor del marcador interno (stamp) de la entidad no coincide con el de la entidad almacenada en los datos (bloqueo optimista).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used

  • **Associated statusText**: "Stamp has changed" | #### Ejemplo 1 @@ -1182,10 +1182,10 @@ El objeto devuelto por `.reload( )` contiene las siguientes propiedades: (\*) Los siguientes valores pueden ser devueltos en las propiedades *status* y *statusText* del objeto *Result* en caso de error: -| Constante | Valor | Comentario | -| ----------------------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | -| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
    ***statusText asociado***: "Other error" | +| Constante | Valor | Comentario | +| ----------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). Cuando se utiliza `.drop()`, este error puede devolverse cuando se utiliza la opción `dk force drop if stamp changed`. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | +| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc.
    ***statusText asociado***: "Other error" | #### Ejemplo @@ -1277,16 +1277,16 @@ El objeto devuelto por `.save()` contiene las siguientes propiedades: Los siguientes valores pueden ser devueltos en las propiedades `status`y `statusText` del objeto Result en caso de error: -| Constante | Valor | Comentario | -| ----------------------------------------- | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `dk status automerge failed` | 6 | (Only if the `dk auto merge` option is used) The automatic merge option failed when saving the entity. **statusText asociado**: "Fallo de la fusión automática" | -| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). When using `.drop()`, this error can be returned when `dk force drop if stamp changed` option is used. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | -| `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista. **statusText asociado**: "Already locked" | -| `dk status validation failed` | 7 | Error no crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | -| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc. **Associated statusText**: "Other error" | -| `dk status serious validation error` | 8 | Error crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | -| `dk status stamp has changed` | 2 | The internal stamp value of the entity does not match the one of the entity stored in the data (optimistic lock).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used

  • **Associated statusText**: "Stamp has changed" | -| `dk status wrong permission` | 1 | Los privilegios actuales no permiten guardar la entidad. **Associated statusText**: "Permission Error" | +| Constante | Valor | Comentario | +| ----------------------------------------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `dk status automerge failed` | 6 | (Solo si se utiliza la opción `dk auto merge`) La opción de fusión automática falló al guardar la entidad. **statusText asociado**: "Fallo de la fusión automática" | +| `dk status entity does not exist anymore` | 5 | La entidad ya no existe en los datos. Este error puede ocurrir en los siguientes casos:
  • la entidad ha sido eliminada (el marcador ha cambiado y ahora el espacio de memoria está libre)
  • la entidad ha sido eliminada y reemplazada por otra con otra clave primaria (el marcador ha cambiado y una nueva entidad ahora utiliza el espacio memoria). Cuando se utiliza `.drop()`, este error puede devolverse cuando se utiliza la opción `dk force drop if stamp changed`. Cuando se utiliza `.lock()`, este error puede ser devuelto cuando se utiliza la opción `dk reload if stamp changed`

  • **statusText asociado**: "Entity does not exist anymore" | +| `dk status locked` | 3 | La entidad está bloqueada por un bloqueo pesimista. **statusText asociado**: "Already locked" | +| `dk status validation failed` | 7 | Error no crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Mild Validation Error" | +| `dk status serious error` | 4 | A serious error is a low-level database error (e.g. duplicated key), a hardware error, etc. **Associated statusText**: "Other error" | +| `dk status serious validation error` | 8 | Error crítico enviado por el desarrollador para un [evento de validación](../ORDA/orda-events.md). **statusText asociado**: "Serious Validation Error" | +| `dk status stamp has changed` | 2 | El valor del marcador interno (stamp) de la entidad no coincide con el de la entidad almacenada en los datos (bloqueo optimista).
  • with `.save()`: error only if the `dk auto merge` option is not used
  • with `.drop()`: error only if the `dk force drop if stamp changed` option is not used
  • with `.lock()`: error only if the `dk reload if stamp changed` option is not used

  • **Associated statusText**: "Stamp has changed" | +| `dk status wrong permission` | 1 | Los privilegios actuales no permiten guardar la entidad. **Associated statusText**: "Permission Error" | #### Ejemplo 1 From 930cd39b221bceb308ac99dc935a0bcda89e58fa Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:09 +0100 Subject: [PATCH 227/264] New translations sessionclass.md (Spanish) --- .../version-21/API/SessionClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SessionClass.md index 4db8accfa2c0a2..53e8a1a9ceea1b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SessionClass.md @@ -390,7 +390,7 @@ Esta función devuelve True para el *privilegio* si se llama desde una función Regarding remote client sessions, the function only concerns the code executed in the context of a [web request sent through a Web area](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). -With stored procedure sessions and standalone sessions, this function always returns True, whatever the *privilege*. +Con las sesiones de procedimiento almacenadas y las sesiones independientes, esta función siempre devuelve True, sea cual sea el *privilegio*. #### Ejemplo From edb8738d60c653cd945f095da4c8dece105bb41e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:16 +0100 Subject: [PATCH 228/264] New translations webserverclass.md (Spanish) --- .../version-21/API/WebServerClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md index 3f311fe35dba48..9b27f3d5414da9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/WebServerClass.md @@ -187,7 +187,7 @@ El nombre de la página de i *Propiedad de sólo lectura* -A collection of custom HTTP handler objects. An HTTP handler object contains a listened URL pattern, a handled verb, and the code to be called. HTTP handlers can be defined through a HTTPHandlers.json file or the *settings* parameter of the [`.start()`](#start) function. For more information, please refer to the [HTTP Request handler](../WebServer/http-request-handler.md) page. +A collection of custom HTTP handler objects. An HTTP handler object contains a listened URL pattern, a handled verb, and the code to be called. HTTP handlers can be defined through a HTTPHandlers.json file or the *settings* parameter of the [`.start()`](#start) function. Para más información, consulte la página [HTTP Request handler](../WebServer/http-request-handler.md). From 3d7048fd152e34ce5915af31f66f5cad345f82ec Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:19 +0100 Subject: [PATCH 229/264] New translations debuglogfiles.md (Spanish) --- .../version-21/Debugging/debugLogFiles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md index 8aef52b1a0dbcc..6d1c175bec05b2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugLogFiles.md @@ -73,7 +73,7 @@ Para cada petición, se registran los siguientes campos: | server\_duration | exec\_duration | Depende del lugar donde se genere el registro:
  • _server\*duration* cuando se genera en el cliente --Time tomado en microsegundos para que el servidor procese la solicitud y devuelva una respuesta. B a F en la imagen de abajo, O
  • _exec\*duration* cuando se genera en el servidor --Tiempo empleado en microsegundos para que el servidor procese la petición. B a E en la imagen de abajo.
  • | | write\_duration | Tiempo tomado en microsegundos para enviar la:
  • Petición (cuando se ejecuta en el cliente). A a B en la imagen inferior.
  • Respuesta (cuando se ejecuta en el servidor). E a F en la imagen de abajo.
  • | | task_kind | Apropiativo o cooperativo (respectivamente "p" o "c") | -| rtt | Tiempo estimado en microsegundos para que el cliente envíe la solicitud y el servidor la acuse de recibo. A a D y E a H en la imagen inferior.
  • Only measured when using the ServerNet network layer, returns 0 when used with the legacy network layer.
  • Para las versiones de Windows anteriores a Windows 10 o Windows Server 2016, la llamada devolverá 0.
  • | +| rtt | Tiempo estimado en microsegundos para que el cliente envíe la solicitud y el servidor la acuse de recibo. A a D y E a H en la imagen inferior.
  • Sólo se mide cuando se utiliza la capa de red ServerNet, devuelve 0 cuando se utiliza con la capa de red heredada.
  • Para las versiones de Windows anteriores a Windows 10 o Windows Server 2016, la llamada devolverá 0.
  • | | extra | Información adicional relacionada con el contexto, por ejemplo el nombre de la clase de datos y/o el nombre del atributo en caso de petición ORDA | Flujo de solicitudes: From dc15bca9db5abd0f4d1f66b8ca945173823e11bd Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:20 +0100 Subject: [PATCH 230/264] New translations field-properties.md (Spanish) --- .../version-21/Develop/field-properties.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md index 2ab9d95557dbdf..26c51c0f4661d3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Develop/field-properties.md @@ -25,7 +25,7 @@ Si introduce un nombre de clase inválido, se activa una advertencia y se rechaz ::: -In your code, when assigning a value to a class-typed object field, 4D verifies that it belongs to the declared class. Si no es así o si el objeto no tiene clase, se produce un error. El acceso a atributos desconocidos también provocará errores de sintaxis. +En su código, al asignar un valor a un campo de tipo clase de objeto, 4D verifica que pertenece a la clase declarada. Si no es así o si el objeto no tiene clase, se produce un error. El acceso a atributos desconocidos también provocará errores de sintaxis. To retrieve the associated class name at runtime, use the [`classID`](../API/DataClassClass.md#attributename) property, for example `ds.MyTable.MyField.classID`. From f21903d7b01d026aa8ddc74178a16c84a049ad97 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:23 +0100 Subject: [PATCH 231/264] New translations formeditor.md (Spanish) --- .../version-21/FormEditor/formEditor.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md index 202739cb7305f6..55169d4e3065a5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormEditor/formEditor.md @@ -247,7 +247,7 @@ Para agrupar los objetos: Para desagrupar un grupo de objetos: 1. Seleccione el grupo de objetos que desea desagrupar. -2. Seleccione **Ungroup** en el menú **Object**.
    OR
    Click the **Ungroup** button (variant of the **Group** button) in the toolbar of the Form editor.
    Si **Desagrupar** está atenuado, significa que el objeto seleccionado ya está separado en su forma más simple. 4D marca los bordes de los objetos individuales con marcas. +2. Seleccione **Ungroup** en el menú **Object**.
    OR
    Haga clic en el botón **Ungroup** (variante del botón **Group**) en la barra de herramientas del editor de formularios.
    Si **Desagrupar** está atenuado, significa que el objeto seleccionado ya está separado en su forma más simple. 4D marca los bordes de los objetos individuales con marcas. ### Alinear objetos From c4e3ca02f9a3ed22601622e2798abe658b9b0d13 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:26 +0100 Subject: [PATCH 232/264] New translations properties_display.md (Spanish) --- .../version-21/FormObjects/properties_Display.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Display.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Display.md index 70acd1ce6ab087..64fc8e1bd49d2a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Display.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/properties_Display.md @@ -104,7 +104,7 @@ Se pueden crear formatos de fecha personalizados utilizando varios patrones desc :::note blankIfNull -- By default, a [null date](../Concepts/dt_date.md#date-literals) is displayed with zeros, e.g. 00/00/00. Con la opción "blankIfNull", una fecha null se muestra como un área vacía. La cadena "blankIfNull" (distingue mayúsculas de minúsculas) debe combinarse con el valor de formato seleccionado. La cadena "blankIfNull" (distingue mayúsculas de minúsculas) debe combinarse con el valor de formato seleccionado. +- Por defecto, una [fecha nula](../Concepts/dt_date.md#date-literals) se muestra con ceros, por ejemplo, 00/00/00. Con la opción "blankIfNull", una fecha null se muestra como un área vacía. La cadena "blankIfNull" (distingue mayúsculas de minúsculas) debe combinarse con el valor de formato seleccionado. La cadena "blankIfNull" (distingue mayúsculas de minúsculas) debe combinarse con el valor de formato seleccionado. - Las [columnas list box](listbox_overview.md#list-box-columns) y los [pies List box](listbox_overview.md#list-box-footers) de tipo fecha utilizan siempre el comportamiento "blank if null" (no se puede desactivar). ::: From 6b5435ed37adca56f15aba6e47c78d42648eb5c8 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:29 +0100 Subject: [PATCH 233/264] New translations write-class-method.md (Spanish) --- .../version-21/code-editor/write-class-method.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/code-editor/write-class-method.md b/i18n/es/docusaurus-plugin-content-docs/version-21/code-editor/write-class-method.md index 002a2f09517834..f047f57dab287d 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/code-editor/write-class-method.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/code-editor/write-class-method.md @@ -803,7 +803,7 @@ La etiqueta `` permite generar y utilizar macrocomandos que ejecutan mé El código de un método llamado se ejecuta en un nuevo proceso. Este proceso se cierra una vez se ejecuta el método. -> Note: The structure process remains frozen until the called method execution is completed. Debe asegurarse de que la ejecución es rápida y de que no hay riesgo de que bloquee la aplicación. If this occurs, use the **Ctrl+F8** (Windows) or **Command+F8** (macOS) command to "kill" the process. +> Note: The structure process remains frozen until the called method execution is completed. Debe asegurarse de que la ejecución es rápida y de que no hay riesgo de que bloquee la aplicación. Si esto ocurre, utilice el comando **Ctrl+F8** (Windows) o **Comando+F8** (macOS) para "matar" el proceso. ### Llamando macros From 34a59848d401c790a1a9481abc07093e6b5319e0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:31 +0100 Subject: [PATCH 234/264] New translations call-chain.md (Spanish) --- .../version-21/commands/call-chain.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/call-chain.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/call-chain.md index 096864393492ed..fdbd960b6e8acd 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/call-chain.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/call-chain.md @@ -25,7 +25,7 @@ displayed_sidebar: docs ## Descripción -The **Call chain** command returns a collection of objects describing each step of the method call chain within the current process. Ofrece la misma información que la ventana Depurador. It has the added benefit of being able to be executed from any 4D environment, including compiled mode. +The **Call chain** command returns a collection of objects describing each step of the method call chain within the current process. Ofrece la misma información que la ventana Depurador. Tiene la ventaja adicional de poder ser ejecutado desde cualquier entorno 4D, incluyendo el modo compilado. The command facilitates debugging by enabling the identification of the method or formula called, the component that called it, and the line number where the call was made. Cada objeto de la colección devuelta contiene las siguientes propiedades: @@ -45,7 +45,7 @@ Para que este comando pueda operar en modo compilado, la [verificación de rango ## Ejemplo -The following code returns a collection of objects containing information about the method call chain: +El siguiente código devuelve una colección de objetos que contienen información acerca de la cadena de llamadas de métodos: ```4d var $currentCallChain : Collection From 46e732a1dacdc77365007e6a398fadc747a5b622 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:33 +0100 Subject: [PATCH 235/264] New translations command-name.md (Spanish) --- .../version-21/commands/command-name.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/command-name.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/command-name.md index 9e13979de67e89..08c1237eb694d5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/command-name.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/command-name.md @@ -82,7 +82,7 @@ En un formulario, quiere una lista desplegable con los comandos básicos de info En la versión inglesa de 4D, la lista desplegable leerá: Sum, Average, Min y Max. In the French version\*, the drop-down list will read: Somme, Moyenne, Min, and Max. -\*with a 4D application configured to use the French programming language (see compatibility note) +\*con una aplicación 4D configurada para usar el lenguaje de programación en francés (ver nota de compatibilidad) ## Ejemplo 3 From 8afcc980505cd9529869fb38a549268906f1abc2 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:34 +0100 Subject: [PATCH 236/264] New translations create-deployment-license.md (Spanish) --- .../version-21/commands/create-deployment-license.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/create-deployment-license.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/create-deployment-license.md index 57ffea72a3cfe9..a943e2ddaadfc1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/create-deployment-license.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/create-deployment-license.md @@ -112,7 +112,7 @@ Designar una licencia de uso: ## Ver también -[Blog post - Build an application with 4D commands](https://blog.4d.com/build-an-application-with-4d-commands) +[Post de blog - Crear una aplicación con los comandos 4D](https://blog.4d.com/build-an-application-with-4d-commands) ## Propiedades From 2fe9b2d5501d02e8bcca242543f399f85c72c9a8 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:36 +0100 Subject: [PATCH 237/264] New translations listbox-set-property.md (Spanish) --- .../version-21/commands/listbox-set-property.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-set-property.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-set-property.md index 8b269bcc21784a..d6641157210542 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-set-property.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/listbox-set-property.md @@ -25,7 +25,7 @@ Si pasa el parámetro opcional *\**, indica que el parámetro *object* es un nom **Note:** If the list box or list box column specified using the *object* and *\** parameters does not exist, the command does nothing and no error is triggered. -In the *property* and *value* parameters, you indicate, respectively, the property to set and its new value. Puede utilizar las siguientes constantes encontradas en el tema “*List Box*: +En los parámetros *property* y *value*, usted indica, respectivamente, la propiedad a definir y su nuevo valor. Puede utilizar las siguientes constantes encontradas en el tema “*List Box*: | Constante | Valor | Comentario | | ------------------------------ | ----- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | From 1e055fa459dfda5ca162487acc8caa58d6714f03 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:38 +0100 Subject: [PATCH 238/264] New translations new-log-file.md (Spanish) --- .../version-21/commands/new-log-file.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-log-file.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-log-file.md index 3c630602133e46..a3a706e3623201 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-log-file.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/new-log-file.md @@ -20,12 +20,12 @@ displayed_sidebar: docs The **New log file** command closes the current log file, renames it and creates a new one with the same name in the same location as the previous one. This command is meant to be used for setting up a backup system using a logical mirror (see the section *Setting up a logical mirror* in the [4D Server Reference Manual](https://doc/4d.com)). -The command returns the full pathname (access path + name) of the log file being closed (called the “segment”). Este archivo se almacena en la misma ubicación que el archivo de registro actual (especificado en la [página de configuración](../Backup/settings.md#configuration) en el tema de copia de seguridad de la configuración). El comando no realiza ningún procesamiento (compresión, segmentación) en el archivo guardado. No aparece ninguna +El comando devuelve el nombre completo de la ruta (ruta de acceso + nombre) del archivo de registro que se está cerrando (llamado “segment”). Este archivo se almacena en la misma ubicación que el archivo de registro actual (especificado en la [página de configuración](../Backup/settings.md#configuration) en el tema de copia de seguridad de la configuración). El comando no realiza ningún procesamiento (compresión, segmentación) en el archivo guardado. No aparece ninguna caja de diálogo. The file is renamed with the current backup numbers of the database and of the log file, as shown in the following example: DatabaseName\[BackupNum-LogBackupNum\].journal. Por ejemplo: -- If the MyDatabase.4DD database has been saved 4 times, the last backup file will be named MyDatabase\[0004\].4BK. The name of the first “segment” of the log file will therefore be MyDatabase\[0004-0001\].journal. +- If the MyDatabase.4DD database has been saved 4 times, the last backup file will be named MyDatabase\[0004\].4BK. El nombre del primer “segment” del archivo de registro será, por lo tanto, MyDatabase\[0004-0001\].journal. - If the MyDatabase.4DD database has been saved 3 times and the log file has been saved 5 times since, the name of the 6th backup of the log file will be MyDatabase\[0003-0006\].journal. :::warning From 100bd0ceb52391fb02a0af119b7b56900f7d2564 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:40 +0100 Subject: [PATCH 239/264] New translations select-log-file.md (Spanish) --- .../version-21/commands/select-log-file.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/select-log-file.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/select-log-file.md index 93dedb8e715150..05b28a5eb1d550 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/select-log-file.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/select-log-file.md @@ -17,7 +17,7 @@ displayed_sidebar: docs ## Descripción -The **SELECT LOG FILE** command creates, or closes the log file according to the value you pass in parameter. +El comando **SELECT LOG FILE** crea o cierra el archivo de historial de acuerdo al valor que pase en el parámetro. En *logFile*, pase el nombre o la ruta completa del archivo de registro a ser creado. If you only pass a name, the file will be created in the "Logs" folder of the database located next to the database structure file. From 8bd25449c977a2d35d01e5ec14a0c79bb56d1784 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:42 +0100 Subject: [PATCH 240/264] New translations string.md (Spanish) --- .../version-21/commands/string.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/string.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/string.md index a7928fff8b6d0d..80dd73a149d5ca 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/string.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/string.md @@ -31,7 +31,7 @@ displayed_sidebar: docs El comando **String** devuelve en forma de cadena alfanumérica la expresión numérica, fecha, hora, cadena o booleana que se pasa en *expression*. -If you do not pass any other parameter, the string is returned with the appropriate default format. Si pasa *format*, puede forzar que la cadena resultante tenga un formato específico. +Si no pasa ningún otro parámetro, la cadena se devuelve con el formato apropiado por defecto. Si pasa *format*, puede forzar que la cadena resultante tenga un formato específico. El parámetro opcional *addTime* añade una hora a una fecha en un formato combinado. Sólo puede utilizarse cuando el parámetro *expression* es una fecha (ver abajo). From 064744f2d5a8de02e0d65a198463bdd0647bd64e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:44 +0100 Subject: [PATCH 241/264] New translations trim.md (Spanish) --- .../docusaurus-plugin-content-docs/version-21/commands/trim.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/trim.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/trim.md index 5cb9ac27fad57e..44a293403f43d9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/trim.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/trim.md @@ -31,7 +31,7 @@ To return a new string with whitespace trimmed from just one end, use [`Trim sta En el parámetro *aString*, puede pasar cualquier expresión de tipo texto. Será dejado sin tocar por el comando. -El comando devuelve la versión recortada de la cadena *aString*. If there is no whitespace at any end of *aString*, the returned string is identical as the one passed in parameter. +El comando devuelve la versión recortada de la cadena *aString*. Si no hay espacios en blanco en ningún extremo de *aString*, la cadena devuelta es idéntica a la pasada como parámetro. :::note From 53431aa79b629b13c7ad570be2670d400613ae8d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:46 +0100 Subject: [PATCH 242/264] New translations webarea_overview.md (Spanish) --- .../version-21/FormObjects/webArea_overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md index 2605754775fea7..9563e559ec2d24 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md @@ -11,7 +11,7 @@ Varias [acciones estándar](#standard-actions) dedicadas, numerosos [comandos de :::info Mostrar páginas Qodly -In 4D client/server applications, Web areas can be used to display Qodly pages and [share the remote user session](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). This feature allows you to design web-based interfaces for your client/server desktop applications. +In 4D client/server applications, Web areas can be used to display Qodly pages and [share the remote user session](../Desktop/clientServer.md#sharing-the-session-with-qodly-pages-in-web-areas). Esta funcionalidad le permite diseñar interfaces web para sus aplicaciones de escritorio cliente/servidor. ::: From de8558e9356f0579bd0907fffe53588fcd2ddc82 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:49 +0100 Subject: [PATCH 243/264] New translations orda-events.md (Spanish) --- .../version-21/ORDA/orda-events.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md index 020fc5dbff9a6e..4fc5a4b70f00eb 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/orda-events.md @@ -374,12 +374,12 @@ return $result ```4d Function event saving($event : Object) Function event saving ($event : Object) -// code +// código ``` Este evento se activa cada vez que se guarda una entidad. -- If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. The function is executed even if no attribute has been touched in the entity (e.g. in case of sending data to an external app each time a save is done). +- Si define la función a nivel de entidad (primera Sintaxis), se llama para cualquier atributo de la entidad. The function is executed even if no attribute has been touched in the entity (e.g. in case of sending data to an external app each time a save is done). - If you defined the function at the attribute level (second syntax), it is called only for this attribute. La función **no** se ejecuta si el atributo no ha sido tocado en la entidad. La función recibe un [objeto *event*](#event-parameter) como parámetro. @@ -397,7 +397,7 @@ The business logic should raise errors which can't be detected during the `valid ::: -During the save action, 4D engine errors can be raised (index, stamp has changed, not enough space on disk). +Durante la acción de guardar, se pueden producir errores en el motor 4D (índice, sello ha cambiado, no hay suficiente espacio en el disco). To stop the action, the code of the function must return an [error object](#error-object). @@ -445,7 +445,7 @@ Función evento afterSave($event : Object) This event is triggered just after an entity is saved in the data file, when at least one attribute was modified. No se ejecuta si no se ha tocado ningún atributo en la entidad. -This event is useful after saving data to propagate the save action outside the application or to execute administration tasks. Por ejemplo, se puede utilizar para enviar un correo electrónico de confirmación después de guardar los datos. Or, in case of error while saving data, it can make a rollback to restore a consistent state of data. +This event is useful after saving data to propagate the save action outside the application or to execute administration tasks. Por ejemplo, se puede utilizar para enviar un correo electrónico de confirmación después de guardar los datos. O, en caso de error al guardar los datos, puede hacer una cancelación para restaurar un estado consistente de los datos. La función recibe un [objeto *event*](#event-parameter) como parámetro. @@ -485,7 +485,7 @@ Function event validateDrop ($event : Object) Este evento se activa cada vez que una entidad está a punto de ser soltada. -- If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. +- Si define la función a nivel de entidad (primera Sintaxis), se llama para cualquier atributo de la entidad. - If you defined the function at the attribute level (second syntax), it is called only for this attribute. La función recibe un [objeto *event*](#event-parameter) como parámetro. @@ -532,7 +532,7 @@ Function event dropping ($event : Object) Este evento se activa cada vez que se elimina una entidad. -- If you defined the function at the entity level (first syntax), it is called for any attribute of the entity. +- Si define la función a nivel de entidad (primera Sintaxis), se llama para cualquier atributo de la entidad. - If you defined the function at the attribute level (second syntax), it is called only for this attribute. La función recibe un [objeto *event*](#event-parameter) como parámetro. From ac33f290bc24aabf79061e993bbdd8ff0eb311c1 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:51 +0100 Subject: [PATCH 244/264] New translations privileges.md (Spanish) --- .../version-21/ORDA/privileges.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md index 5961498af51828..72cf097a8cd4f4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ORDA/privileges.md @@ -262,7 +262,7 @@ The `restrictedByDefault` property configures how every [resource](#resources) a Depending on your environment, the recommended settings are: -- **Production**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **true**. This ensures maximum security by requiring user authentication and explicitly defined permissions for resource access. +- **Production**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **true**. Esto garantiza la máxima seguridad al requerir autenticación de usuario y permisos explícitamente definidos para el acceso a recursos. - **Development**: Set both `restrictedByDefault` and [`forceLogin`](../REST/authUsers.md#force-login-mode) to **false**. This allows easier access during development and debugging, with the possibility to gradually apply restrictions. ### Archivo `Roles_Errors.json` From 56fa81aa64e60cf9271508c58a3deb8514be6eec Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:53 +0100 Subject: [PATCH 245/264] New translations compiler.md (Spanish) --- .../version-21/Project/compiler.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/compiler.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/compiler.md index 1158b612ee42c7..77cb73581775e8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Project/compiler.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Project/compiler.md @@ -148,7 +148,7 @@ El modo de escritura directa es opcional sólo en proyectos convertidos. Se util Select **All variables are typed (Direct typing)** option in the **Compilation Path** menu to enable the direct typing mode. Cuando se selecciona esta opción, las demás opciones de compatibilidad pierden su utilidad y dejan de mostrarse. -Se recomienda utilizar esta opción, ya que proporciona flexibilidad y eficiencia. The direct typing concept assumes that all elements are directly declared where they are defined in your code. Solo tiene que asegurarse de que todas sus variables son declaradas utilizando la [sintaxis 'var'](../Concepts/variables.md#declaring-variables) y que sus parámetros de método y función son declarados [en sus prototipos](../Concepts/parameters.md) (la función [Verificar sintaxis](#check-syntax) puede ayudarle a detectar declaraciones faltantes o no válidas). +Se recomienda utilizar esta opción, ya que proporciona flexibilidad y eficiencia. El concepto de escritura directa asume que todos los elementos se declaran directamente donde están definidos en su código. Solo tiene que asegurarse de que todas sus variables son declaradas utilizando la [sintaxis 'var'](../Concepts/variables.md#declaring-variables) y que sus parámetros de método y función son declarados [en sus prototipos](../Concepts/parameters.md) (la función [Verificar sintaxis](#check-syntax) puede ayudarle a detectar declaraciones faltantes o no válidas). ## Advertencias From d16bfb1ab49e93408a394d1a9cb605ff54c2c3c9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:54 +0100 Subject: [PATCH 246/264] New translations $singleton.md (Spanish) --- .../version-21/REST/$singleton.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$singleton.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$singleton.md index dd6441c98e068f..f2526bf683cf39 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$singleton.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/$singleton.md @@ -5,7 +5,7 @@ title: $singleton Puede llamar directamente a [funciones de sus singletons compartidos](../Concepts/classes.md#singleton-classes) a través de REST. -Singleton functions are called in POST or GET requests with the `$singleton` command and without `()`. Por ejemplo, si ha definido una función `buildVehicle()` en la clase compartida singleton `VehicleFactory`, podría llamarla utilizando la siguiente petición: +Las funciones Singleton se llaman en peticiones POST o GET con el comando `$singleton` y sin `()`. Por ejemplo, si ha definido una función `buildVehicle()` en la clase compartida singleton `VehicleFactory`, podría llamarla utilizando la siguiente petición: ```json /rest/$singleton/VehicleFactory/buildVehicle From aa6dec63ce9dbf31388bb0e4b24f33e6561d5865 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:56 +0100 Subject: [PATCH 247/264] New translations vp-copy-to-object.md (Spanish) --- .../version-21/ViewPro/commands/vp-copy-to-object.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md index b8680a5547e280..704a4b63bc00d1 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-copy-to-object.md @@ -31,10 +31,10 @@ En *rangeObj*, pase el rango de celdas con los valores, formato y fórmulas a co Puede pasar un parámetro opcional *options* con las siguientes propiedades: -| Propiedad | Tipo | Descripción | -| ----------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | *True* (por defecto) para mantener los valores, el formato y las fórmulas copiados después de la ejecución del comando. *False* para eliminarlos. | -| copyOptions | Integer | Especifica lo que se copia o mueve. Possible values:

    ValueDescription
    `vk clipboard options all` (default)Copies all data objects, including values, formatting, and formulas.
    `vk clipboard options formatting`Copia solo el formato.
    `vk clipboard options formulas`Copies only the formulas.
    `vk clipboard options formulas and formatting`Copies the formulas and formatting.
    `vk clipboard options values`Copia solo los valores.
    `vk clipboard options value and formatting`Copies the values and formatting.

    | +| Propiedad | Tipo | Descripción | +| ----------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| copy | Boolean | *True* (por defecto) para mantener los valores, el formato y las fórmulas copiados después de la ejecución del comando. *False* para eliminarlos. | +| copyOptions | Integer | Especifica lo que se copia o mueve. Possible values:

    ValueDescription
    `vk clipboard options all` (default)Copies all data objects, including values, formatting, and formulas.
    `vk clipboard options formatting`Copia solo el formato.
    `vk clipboard options formulas`Copies only the formulas.
    `vk clipboard options formulas and formatting`Copia las fórmulas y formato.
    `vk clipboard options values`Copia solo los valores.
    `vk clipboard options value and formatting`Copia los valores y el formato.

    | Se tienen en cuenta las opciones de pegado definidas en las [opciones del libro de trabajo](vp-set-workbook-options.md). From 8a97566dfd948e1634e5afd15e526b4f04ff5c87 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:58 +0100 Subject: [PATCH 248/264] New translations vp-export-document.md (Spanish) --- .../version-21/ViewPro/commands/vp-export-document.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md index 7617707ba0cfbb..94eefcc2eb31d0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-export-document.md @@ -90,7 +90,7 @@ El parámetro opcional *paramObj* le permite definir múltiples propiedades para - Al exportar un documento 4D View Pro a un archivo con formato Microsoft Excel, pueden perderse algunos parámetros. Por ejemplo, los métodos y fórmulas 4D no son soportados por Excel. Puede verificar otras configuraciones con [esta lista de SpreadJS](https://developer.mescius.com/spreadjs/docs/excelimpexp/excelexport). - La exportación en este formato se ejecuta de forma asíncrona, utilice la propiedad `formula` del *paramObj* para el código a ejecutar después de la exportación. -- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Make sure to not mix this object with legacy first level properties (*password*, *includeBindingSource*...) para evitar problemas potientales. +- Se recomienda utilizar el objeto *excelOptions* al exportar en formato ".xlsx". Asegúrese de no mezclar este objeto con propiedades heredadas de primer nivel (*password*, *includeBindingSource*...) para evitar problemas potientales. **Notas sobre el formato PDF**: From 83edc2ec928b847da979ef261b86e7fa52afc10b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 05:59:59 +0100 Subject: [PATCH 249/264] New translations vp-move-cells.md (Spanish) --- .../version-21/ViewPro/commands/vp-move-cells.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md index 5e7750583d5ac0..f924914b108639 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-move-cells.md @@ -35,10 +35,10 @@ En *targetRange*, pase el rango de celdas donde se copiarán o moverán los valo El parámetro *options* tiene varias propiedades: -| Propiedad | Tipo | Descripción | -| ------------ | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| copy | Boolean | Determina si los valores, el formato y las fórmulas de las celdas de *originRange* se eliminan después de ejecutar el comando:
    • *False* (por defecto) para eliminarlos
    • *True* para mantenerlos
    | -| pasteOptions | Integer | Especifica lo que se pega. Possible values:

    ValueDescription
    `vk clipboard options all` (default)Pastes all data objects, including values, formatting, and formulas.
    `vk clipboard options formatting`Pega solo el formato.
    `vk clipboard options formulas`Pega sólo las fórmulas.
    `vk clipboard options formulas and formatting`Pastes the formulas and formatting.
    `vk clipboard options values`Pega solo los valores.
    `vk clipboard options value and formatting`Pastes the values and formatting.

    | +| Propiedad | Tipo | Descripción | +| ------------ | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| copy | Boolean | Determina si los valores, el formato y las fórmulas de las celdas de *originRange* se eliminan después de ejecutar el comando:
    • *False* (por defecto) para eliminarlos
    • *True* para mantenerlos
    | +| pasteOptions | Integer | Especifica lo que se pega. Possible values:

    ValueDescription
    `vk clipboard options all` (default)Pastes all data objects, including values, formatting, and formulas.
    `vk clipboard options formatting`Pega solo el formato.
    `vk clipboard options formulas`Pega sólo las fórmulas.
    `vk clipboard options formulas and formatting`Pega las fórmulas y el formato.
    `vk clipboard options values`Pega solo los valores.
    `vk clipboard options value and formatting`Pega los valores y el formato.

    | Se tienen en cuenta las opciones de pegado definidas en las [opciones del libro de trabajo](vp-set-workbook-options.md). From 6e4c18140da851f6e3f2db670b19f6c2147d2cac Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:02 +0100 Subject: [PATCH 250/264] New translations vp-set-workbook-options.md (Spanish) --- .../ViewPro/commands/vp-set-workbook-options.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md index 1b299444582e1b..d059be21bf1f19 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/commands/vp-set-workbook-options.md @@ -48,14 +48,14 @@ En la siguiente tabla se listan las opciones de libros de trabajo disponibles: | autoFitType | number | El contenido se formatea para que se ajuste en las celdas, o en las celdas y los encabezados. Valores disponibles:
    ConstanteValorDescripción
    vk auto fit type cell 0 El contenido se ajusta automáticamente a las celdas
    vk auto fit type cell with header 1 El contenido se ajusta automáticamente a las celdas y encabezados
    | | backColor | string | Una cadena de color utilizada para representar el color de fondo del área, como "red", "#FFFF00", "rgb(255,0,0)", "Acento 5". El color de fondo inicial se oculta cuando se define una backgroundImage. | | backgroundImage | string / picture / file | Imagen de fondo para el área. | -| backgroundImageLayout | number | Cómo se muestra la imagen de fondo. Available values:
    ConstantValueDescription
    vk image layout center 1 In the center of the area.
    vk image layout none 3 In the upper left corner of the area with its original size.
    vk image layout stretch 0 Llena el área.
    vk image layout zoom 2 Displayed with its original aspect ratio.
    | +| backgroundImageLayout | number | Cómo se muestra la imagen de fondo. Available values:
    ConstantValueDescription
    vk image layout center 1 In the center of the area.
    vk image layout none 3 In the upper left corner of the area with its original size.
    vk image layout stretch 0 Llena el área.
    vk image layout zoom 2 Mostrado con su relación de aspecto original.
    | | calcOnDemand | boolean | Las fórmulas se calculan sólo cuando se piden. | | columnResizeMode | number | Redimensiona modo para columnas. Valores disponibles:
    ConstanteValorDescripción
    vk resize mode normal 0 Utiliza el modo de redimensionamiento normal (es decir, las columnas restantes se ven afectadas)
    vk resize mode split 1 Utiliza el modo dividido (es decir, las columnas restantes no se ven afectadas)
    | | copyPasteHeaderOptions | number | Encabezados para incluir cuando se copian o pegan datos. Available values:
    ConstantValueDescription
    vk copy paste header options all headers3 Includes selected headers when data is copied; overwrites selected headers when data is pasted.
    vk copy paste header options column headers 2 Includes selected column headers when data is copied; overwrites selected column headers when data is pasted.
    vk copy paste header options no headers0 Column and row headers are not included when data is copied; does not overwrite selected column or row headers when data is pasted.
    vk copy paste header options row headers1 Includes selected row headers when data is copied; overwrites selected row headers when data is pasted.
    | | customList | collection | La lista para que los usuarios personalicen el relleno de arrastre, dar prioridad a que coincida con esta lista en cada relleno. Cada elemento de colección es una colección de cadenas. Vet en [SpreadJS docs](https://developer.mescius.com/spreadjs/docs/features/cells/AutoFillData/AutoFillLists). | | cutCopyIndicatorBorderColor | string | Color del borde del indicador que aparece cuando el usuario corta o copia la selección. | | cutCopyIndicatorVisible | boolean | Muestra un indicador al copiar o cortar el elemento seleccionado. | -| defaultDragFillType | number | El tipo de relleno de arrastre por defecto. Valores disponibles :
    ConstanteValorDescripción
    vk auto fill type auto 5 Rellena automáticamente las celdas.
    vk auto fill type clear values 4 Clears cell values.
    vk auto fill type copycells 0 Fills cells with all data objects, including values, formatting, and formulas.
    vk auto fill type fill formatting only 2 Fills cells only with formatting.
    vk auto fill type fill series 1 Fills cells with series.
    vk auto fill type fill without formatting 3 Rellena las celdas con valores y no con formato.
    | +| defaultDragFillType | number | El tipo de relleno de arrastre por defecto. Valores disponibles :
    ConstanteValorDescripción
    vk auto fill type auto 5 Rellena automáticamente las celdas.
    vk auto fill type clear values 4 Clears cell values.
    vk auto fill type copycells 0 Fills cells with all data objects, including values, formatting, and formulas.
    vk auto fill type fill formatting only 2 Llena las celdas solo con formato.
    vk auto fill type fill series 1 Fills cells with series.
    vk auto fill type fill without formatting 3 Rellena las celdas con valores y no con formato.
    | | enableAccessibility | boolean | El soporte de accesibilidad está activado en la hoja de cálculo. | | enableFormulaTextbox | boolean | Se activa la caja de texto de la fórmula. | | grayAreaBackColor | string | Una cadena color utilizada para representar el color de fondo del área gris, como "red", "#FFFF00", "rgb(255,0,0)", "Accent 5", etc. | @@ -69,7 +69,7 @@ En la siguiente tabla se listan las opciones de libros de trabajo disponibles: | referenceStyle | number | Estilo para referencias de celdas y rangos en fórmulas de celdas. Available values:
    ConstantValueDescription
    vk reference style A1 0 Use A1 style.
    vk reference style R1C1 1 Use R1C1 style
    | | resizeZeroIndicator | number | Política de dibujo cuando las líneas o columnas se redimensionan a 0. Available values:
    ConstantValueDescription
    vk resize zero indicator default 0 Uses the current drawing policy when the row or column is resized to zero.
    vk resize zero indicator enhanced 1 Draws two short lines when the row or column is resized to zero.
    | | rowResizeMode | number | La forma en que se redimensionan las líneas. Los valores disponibles son los mismos qe columnResizeMode | -| scrollbarAppearance | number | Apariencia de la barra de desplazamiento. Available values:
    ConstantValueDescription
    vk scrollbar appearance mobile1 Mobile scrollbar appearance.
    vk scrollbar appearance skin (default)0 Excel-like classic scrollbar appearance.
    | +| scrollbarAppearance | number | Apariencia de la barra de desplazamiento. Available values:
    ConstantValueDescription
    vk scrollbar appearance mobile1 Mobile scrollbar appearance.
    vk scrollbar appearance skin (por defecto)0 Apariencia clásica de la barra de desplazamiento similar a Excel.
    | | scrollbarMaxAlign | boolean | La barra de desplazamiento se alinea con la última línea y columna de la hoja activa. | | scrollbarShowMax | boolean | Las barras de desplazamiento mostradas se basan en el número total de columnas y líneas de la hoja. | | scrollByPixel | boolean | Activar desplazamiento de precisión por píxel. | @@ -79,8 +79,8 @@ En la siguiente tabla se listan las opciones de libros de trabajo disponibles: | showDragFillSmartTag | boolean | Mostrar el diálogo de arrastrar y rellenar. | | showDragFillTip | boolean | Mostrar la punta de arrastrar y soltar. | | showHorizontalScrollbar | boolean | Mostrar la barra de desplazamiento horizontal. | -| showResizeTip | number | Cómo mostrar el tip de redimensionamiento. Available values:
    ConstantValueDescription
    vk show resize tip both 3 Horizontal and vertical resize tips are displayed.
    vk show resize tip column 1 Only the horizontal resize tip is displayed.
    vk show resize tip none 0 No resize tip is displayed.
    vk show resize tip row 2 Only the vertical resize tip is displayed.
    | -| showScrollTip | number | Cómo mostrar el tip de desplazamiento. Available values:
    ConstantValueDescription
    vk show scroll tip both 3 Horizontal and vertical scroll tips are displayed.
    vk show scroll tip horizontal 1 Only the horizontal scroll tip is displayed.
    vk show scroll tip none No se muestra ninguna propina.
    vk show scroll tip vertical 2 Only the vertical scroll tip is displayed.
    | +| showResizeTip | number | Cómo mostrar el tip de redimensionamiento. Available values:
    ConstantValueDescription
    vk show resize tip both 3 Horizontal and vertical resize tips are displayed.
    vk show resize tip column 1 Solo se muestra la punta de redimensionamiento horizontal.
    vk show resize tip none 0 No resize tip is displayed.
    vk show resize tip row 2 Only the vertical resize tip is displayed.
    | +| showScrollTip | number | Cómo mostrar el tip de desplazamiento. Available values:
    ConstantValueDescription
    vk show scroll tip both 3 Horizontal and vertical scroll tips are displayed.
    vk show scroll tip horizontal 1 Only the horizontal scroll tip is displayed.
    vk show scroll tip none No se muestra ninguna propina.
    vk show scroll tip vertical 2 Solo se muestra la punta de desplazamiento vertical.
    | | showVerticalScrollbar | boolean | Mostrar la barra de desplazamiento vertical. | | tabEditable | boolean | La pestaña de la hoja se puede editar. | | tabNavigationVisible | boolean | Mostrar la navegación por pestañas. | From b5bf02d0105820c9fd8a22974a70572a4f42dcf4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:05 +0100 Subject: [PATCH 251/264] New translations getting-started.md (Spanish) --- .../version-21/ViewPro/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md index d029b397bfa9c0..97732b237a5018 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/ViewPro/getting-started.md @@ -13,7 +13,7 @@ La integración de áreas de 4D View Pro en sus formularios le permite importar ## Instalación y activación -4D View Pro debe estar instalado en sus proyectos. The 4D View Pro component is available from the [**4D-ViewPro github repository**](https://github.com/4d/4D-ViewPro). +4D View Pro debe estar instalado en sus proyectos. El componente 4D View Pro está disponible en el [\*\*repositorio github 4D-ViewPro \*\*](https://github.com/4d/4D-ViewPro). La forma más fácil de instalar 4D View Pro en un proyecto abierto es utilizar el Administrador de dependencias: From 8610e271e8848f628ab5624e20c2f480a1ea57d9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:09 +0100 Subject: [PATCH 252/264] New translations authentication.md (Spanish) --- .../version-21/WebServer/authentication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/authentication.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/authentication.md index ee0943ee56293f..509461ed5e00bf 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/authentication.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/authentication.md @@ -119,7 +119,7 @@ Debe declarar estos parámetros de la siguiente manera: :::note -Todos los parámetros del método base `On Web Authentication` no están necesariamente rellenados. The information received by the database method depends on the selected [authentication mode](#authentication-modes). +Todos los parámetros del método base `On Web Authentication` no están necesariamente rellenados. La información recibida por el método base depende del [modo de autenticación](#authentication-modes) seleccionado. ::: From 839304128b8601a7e6fef8afcad2a53619309e0d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:11 +0100 Subject: [PATCH 253/264] New translations http-rules.md (Spanish) --- .../version-21/WebServer/http-rules.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md index 14f5b56fa2f051..bc8018c82e60ac 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/http-rules.md @@ -74,7 +74,7 @@ Algunos encabezados no pudieron ser añadidos, modificados o eliminados: | Vary | Sí | No | No | | Set-Cookie | Sí | Añadir cookie | No | -Unauthorized changes on these headers do not generate errors, however modifications will be ignored. +Los cambios no autorizados en estos encabezados no generan errores, sin embargo las modificaciones serán ignoradas. ### Reglas actuales From 3161f398493408e232a9add4e6db1ec6736a0cd3 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:14 +0100 Subject: [PATCH 254/264] New translations preemptiveweb.md (Spanish) --- .../version-21/WebServer/preemptiveWeb.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md index 6a5929785ac538..c270d197d2e68a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/preemptiveWeb.md @@ -27,7 +27,7 @@ La siguiente tabla indica si el modo apropiativo se utiliza o está disponible, - Servidor web: maneja las [plantillas web](templates.md), [4DACTION y los métodos base](httpRequests.md) - Servidor de servicios web: gestiona las peticiones SOAP - ***web setting*** means that the preemptive mode depends on the [**scalable sessions**](sessions.md#enabling-web-sessions) status: - - if scalable sessions are enabled, the preemptive mode is automatically used for web and web service processes. + - si las sesiones escalables están activadas, el modo apropiativo se utiliza automáticamente para los procesos web y servicios web. - si las sesiones escalables no están activadas: - for web processes, the [**Use preemptive processes**](webServerConfig.md#use-preemptive-processes) option is taken into account. - for web service processes (server or client), preemptive mode is supported at method level. From 4bacfc2d7417725d9cf527f386f0998c201c7c20 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:21 +0100 Subject: [PATCH 255/264] New translations sessions.md (Spanish) --- .../version-21/WebServer/sessions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md index 8602f8f2fab3ec..daeaf088d5b5d0 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WebServer/sessions.md @@ -211,7 +211,7 @@ End if El servidor web 4D le permite generar, compartir y utilizar tokens de sesión OTP (One-Time Passcode). Los tokens de sesión OTP se utilizan para asegurar comunicaciones con aplicaciones de terceros o sitios web. For information on OTP, please refer to the [One-time password page](https://en.wikipedia.org/wiki/One-time_password) on Wikipedia. -In 4D, OTP session tokens are useful when calling external URLs and being called back in another browser or device (mobile/computer). Typically, a third-party application sends a confirmation email containing a callback link on which the user has to click. The callback link includes the OTP token, so that the session which triggered the callback is loaded along with its data and privileges. This principle allows you to share the same session on multiple devices. Gracias a esta arquitectura, la [cookie de sesión](#session-implementation) no está expuesta en la red, lo que elimina el riesgo de un ataque de hombre en el medio. +In 4D, OTP session tokens are useful when calling external URLs and being called back in another browser or device (mobile/computer). Typically, a third-party application sends a confirmation email containing a callback link on which the user has to click. El enlace de retrollamada incluye el token OTP, para que la sesión que activó la retrollamada se cargue junto con sus datos y privilegios. This principle allows you to share the same session on multiple devices. Gracias a esta arquitectura, la [cookie de sesión](#session-implementation) no está expuesta en la red, lo que elimina el riesgo de un ataque de hombre en el medio. :::tips Entradas de blog relacionadas @@ -251,7 +251,7 @@ Una url [`4DACCIÓN`](./httpRequests.md#4daction) también puede ser usada en el #### Utilizar un parámetro personalizado -The OTP token can also be provided as a custom parameter that you need to process specifically to restore the session. Debe utilizar esta solución si: +El token OTP también se puede suministrar como un parámetro personalizado que necesita procesar específicamente para restaurar la sesión. Debe utilizar esta solución si: - la aplicación de terceros no permite insertar parámetros como un `$4DSID` directamente en la Uri de redirección, y proporciona una API dedicada (la implementación depende de la aplicación de terceros), - o, quiere llamar a una función ORDA a través de REST para procesar la retrollamada, en cuyo caso es necesario pasar el OTP con la [sintaxis de parámetro REST](../REST/ClassFunctions.md#parameters) (por ejemplo, `?$params='["XXX123"]'`). From 28e19df0c50f7b71385a1ba2417da9b1d9b8b727 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:23 +0100 Subject: [PATCH 256/264] New translations wp-import-document.md (Spanish) --- .../version-21/WritePro/commands/wp-import-document.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-import-document.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-import-document.md index 8c26746f935d90..625a6d5df492ed 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-import-document.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-import-document.md @@ -55,10 +55,10 @@ Puede pasar un objeto para definir cómo se gestionan los siguientes atributos d | ----------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | anchoredTextAreas | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las áreas de texto ancladas en Word. Valores disponibles:

    **anchored** (por defecto) - Las áreas de texto ancladas se tratan como cuadros de texto. **inline** - Las áreas de texto ancladas se tratan como texto en línea en la posición del ancla. **ignore** \- Las áreas de texto ancladas son ignoradas. **Nota**: el diseño y el número de páginas en el documento pueden cambiar. Ver también *Cómo importar formato .docx* | | anchoredImages | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan las imágenes ancladas. Available values:

    **all** (default) - All anchored images are imported as anchored images with their text wrapping properties (exception: the .docx wrapping option "tight" is imported as wrap square). **ignoreWrap** \- Las imágenes ancladas son importadas, pero todo texto que se envuelve alrededor de la imagen es ignorado. **ignore** \- Las imágenes ancladas no son importadas. | -| secciones | Text | Sólo para documentos MS Word (.docx). Especifica cómo se maneja la sección. Valores disponibles:

    **all** (por defecto) - Se importan todas las secciones. Secciones continuas, incluso impares se convierten en secciones estándar. **ignore** \- Sections are converted to default 4D Write Pro sections (A4 portrait layout without header or footer). **Note**: Section breaks of any type but continuous are converted to section breaks with page break. Continuous section breaks are imported as continuous section breaks. | +| secciones | Text | Sólo para documentos MS Word (.docx). Especifica cómo se maneja la sección. Valores disponibles:

    **all** (por defecto) - Se importan todas las secciones. Secciones continuas, incluso impares se convierten en secciones estándar. **ignore** \- Sections are converted to default 4D Write Pro sections (A4 portrait layout without header or footer). **Nota**: las rupturas de secciones de cualquier tipo pero continuas se convierten en rupturas de sección con rupturas de página. Continuous section breaks are imported as continuous section breaks. | | fields | Text | Sólo para documentos MS Word (.docx). Especifica cómo se manejan los campos .docx que no pueden ser convertidos a fórmulas 4D Write Pro. Valores disponibles:

    **ignore** \- Los campos .docx son ignorados. **label** \- .docx field references are imported as labels within double curly braces ("{{ }}"). Ej: el campo "ClientName" se importará como {{ClientName}}. **value** (default) - El último valor calculado para el campo .docx (si está disponible) es importado. **Note**: If a .docx field corresponds to a 4D Write Pro variable, the field is imported as a formula and this option is ignored. | -| borderRules | Text | Sólo para documentos MS Word (.docx). Especifica cómo se gestionan los bordes de los párrafos. Available values:

    **collapse** \- Paragraph formatting is modified to mimic automatically collapsed borders. Tenga en cuenta que la propiedad contraída sólo se aplica durante la operación de importación. If a stylesheet with a automatic border collapse setting is reapplied after the import operation, the setting will be ignored. **noCollapse** (por defecto) - No se modifica el formato de los párrafos. | -| preferredFontScriptType | Text | Sólo para documentos MS Word (.docx). Specifies the preferred typeface to use when different typefaces are defined for a single font property in OOXML. Valores disponibles:

    **latin** (por defecto) - script latino **bidi** \- script bidreccional. Suitable if document is mainly bidirectional left-to-right (LTR) or right-to-left (RTL) text (e.g., Arabic or Hebrew). **eastAsia** \- East Asian script. Adecuado si el documento es principalmente texto asiático. | +| borderRules | Text | Sólo para documentos MS Word (.docx). Especifica cómo se gestionan los bordes de los párrafos. Valores disponibles:

    **collapse** \- El formato del párrafo se modifica para imitar los bordes colapsados automáticamente. Tenga en cuenta que la propiedad contraída sólo se aplica durante la operación de importación. If a stylesheet with a automatic border collapse setting is reapplied after the import operation, the setting will be ignored. **noCollapse** (por defecto) - No se modifica el formato de los párrafos. | +| preferredFontScriptType | Text | Sólo para documentos MS Word (.docx). Specifies the preferred typeface to use when different typefaces are defined for a single font property in OOXML. Valores disponibles:

    **latin** (por defecto) - script latino **bidi** \- script bidreccional. Adecuado si el documento es principalmente bidireccional de izquierda a derecha (LTR) o de derecha a izquierda (RTL) texto (por ejemplo, árabe o hebreo). **eastAsia** \- East Asian script. Adecuado si el documento es principalmente texto asiático. | | htmlExpressions | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se manejan las expresiones HTML. Available values:

    **rawText** \- HTML expressions are imported as raw text within ##htmlBegin## and ##htmlEnd## tags **ignore** (default) - HTML expressions are ignored. | | importDisplayMode | Text | Sólo para documentos 4D Write (.4w7). Especifica cómo se gestiona la visualización de imágenes. Available values:

    **legacy -** 4W7 image display mode is converted using a background image if different than scaled to fit. **noLegacy** (default) - 4W7 image display mode is converted to the *imageDisplayMode* attribute if different than scaled to fit. | From 95fcc2bf7c03d611337d48ce8bf0cb1b4decb88c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:24 +0100 Subject: [PATCH 257/264] New translations wp-reset-attributes.md (Spanish) --- .../version-21/WritePro/commands/wp-reset-attributes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md index e3c95cabba2413..da3a00bcb36f12 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-reset-attributes.md @@ -19,7 +19,7 @@ displayed_sidebar: docs ## Descripción -El comando **WP RESET ATTRIBUTES** le permite restablecer el valor de uno o más atributos en el rango, elemento o documento pasado como parámetro. This command can remove any kind of 4D Write Pro internal attribute: character, paragraph, document, table, or image. Puede pasar el nombre del atributo a restablecer en *attribName* o puede pasar una colección de atributos en *attribColl* para restablecer varios atributos a la vez. +El comando **WP RESET ATTRIBUTES** le permite restablecer el valor de uno o más atributos en el rango, elemento o documento pasado como parámetro. Este comando puede eliminar cualquier tipo de atributo interno de 4D Write Pro: carácter, párrafo, documento, tabla o imagen. Puede pasar el nombre del atributo a restablecer en *attribName* o puede pasar una colección de atributos en *attribColl* para restablecer varios atributos a la vez. > En el caso de una sección o subsección, el objeto *sectionOrSubsection* puede pasarse solo y todos los atributos se restablecen a la vez. From 8359e61b79e9132c34b3256b71ed87dbb10c5778 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:27 +0100 Subject: [PATCH 258/264] New translations managing-formulas.md (Spanish) --- .../version-21/WritePro/managing-formulas.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md index 8e2a7cc0c500ce..128c04f6bef972 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/WritePro/managing-formulas.md @@ -93,7 +93,7 @@ Por ejemplo, para insertar el número de página en el pie de página: ## Table formula context object -When used in a formula within the table, the **This** keyword gives access to different data according to the context: +Cuando se utiliza en una fórmula dentro de la tabla, la palabra clave **This** da acceso a diferentes datos según el contexto: | **Contexto** | **Expression** | **Tipo** | **Devuelve** | | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ----------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | From 9ab5d1dc393d2aca5dedbc18e7ef06ac4294c1c1 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:29 +0100 Subject: [PATCH 259/264] New translations openai.md (Spanish) --- .../version-21/aikit/Classes/OpenAI.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md index 21dc2ecf7aa074..1271a5aaaa8e21 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAI.md @@ -5,7 +5,7 @@ title: OpenAI # OpenAI -La clase `OpenAI` proporciona un cliente para acceder a varios recursos de la API OpenAI. It includes properties for managing API configurations and methods for performing HTTP requests to the OpenAI endpoints. +La clase `OpenAI` proporciona un cliente para acceder a varios recursos de la API OpenAI. Incluye propiedades de gestión de las configuraciones API y de los métodos para efectuar las peticiones HTTP a los puntos de terminación de OpenAI. ## Propiedades de configuración @@ -58,7 +58,7 @@ $client.baseURL:="https://server.ai" ## Recursos API -The API provides access to multiple resources that allow seamless interaction with OpenAI's services. Each resource is encapsulated within a dedicated API class, offering a structured and intuitive way to interact with different functionalities. +La API ofrece acceso a múltiples recursos que permiten una interacción perfecta con los servicios de OpenAI. Each resource is encapsulated within a dedicated API class, offering a structured and intuitive way to interact with different functionalities. | Nombre de la propiedad | Tipo | Descripción | | ---------------------- | ----------------------------------------------- | ------------------------------------------------ | From a6cdce7c922037593fac159c2fa982c74915ae7d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:30 +0100 Subject: [PATCH 260/264] New translations openaichatcompletionslistparameters.md (Spanish) --- .../aikit/Classes/OpenAIChatCompletionsListParameters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsListParameters.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsListParameters.md index 93b8c3e4bee066..7f1a363b63e090 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsListParameters.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIChatCompletionsListParameters.md @@ -5,7 +5,7 @@ title: OpenAIChatCompletionsListParameters # OpenAIChatCompletionsListParameters -This class is used to define parameters for retrieving a list of chat completions from the OpenAI API. Permite personalizar la paginación, ordenar y filtrar los mensajes de chat. +Esta clase se utiliza para definir los parámetros de recuperación de una lista de terminaciones de chat de la API OpenAI. Permite personalizar la paginación, ordenar y filtrar los mensajes de chat. ## Hereda From bc80302dc4f1af0579f230ffd5c079ed46284cb7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:34 +0100 Subject: [PATCH 261/264] New translations openaimessage.md (Spanish) --- .../version-21/aikit/Classes/OpenAIMessage.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md index 701a9fd8d4f043..223b4de69615ec 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIMessage.md @@ -50,7 +50,7 @@ $message.addImageURL("http://example.com/image.jpg"; "high") ### Responder a un mensaje de llamada de herramienta -When an assistant needs to use external functions, it generates a message with `tool_calls` to request function execution. +Cuando un asistente necesita utilizar las funciones externas, genera un mensaje con `tool_calls` para solicitar la ejecución de la función. **Mensaje del asistente solicitando las llamadas de la herramienta:** @@ -76,7 +76,7 @@ Cuando reciba un mensaje de llamada de herramienta, debe: 1. **Extraer la información relativa a la función:** - `function.name`: The name of the function to call (must match a function defined in your [OpenAITool](OpenAITool.md) - you can select code to execute according to this name) - - `function.arguments`: A JSON string containing the function parameters that must be parsed with `JSON Parse` + - `function.arguments`: una cadena JSON que contiene los parámetros de la función que deben analizarse con `JSON Parse` - `id`: el identificador único para esta llamada específica a la herramienta 2. **Execute the function:** @@ -103,7 +103,7 @@ var $toolResponse:=cs.AIKit.OpenAIMessage.new({ \ // Add it to the conversation and continue ``` -**Important:** The `tool_call_id` in your response must exactly match the `id` from the original tool call. This allows the AI model to correctly associate your response with the specific function call that was made. +**Important:** The `tool_call_id` in your response must exactly match the `id` from the original tool call. Esto permite que el modelo de IA asocie correctamente su respuesta con la llamada de función específica que se realizó. ## Ver también From 6592f4eb220e6ff4f9795ba17e529c02e2c33911 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:35 +0100 Subject: [PATCH 262/264] New translations openaimoderation.md (Spanish) --- .../version-21/aikit/Classes/OpenAIModeration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModeration.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModeration.md index 3c92f30cc3c7c7..1b7928f32cb10a 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModeration.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModeration.md @@ -5,7 +5,7 @@ title: OpenAIModeration # OpenAIModeration -La clase `OpenAIModeration` está diseñada para manejar los resultados de moderación de la API OpenAI. It contains properties for storing the moderation ID, model used, and the results of the moderation. +La clase `OpenAIModeration` está diseñada para manejar los resultados de moderación de la API OpenAI. Contiene propiedades para almacenar el ID de moderación, el modelo utilizado y los resultados de la moderación. https://platform.openai.com/docs/api-reference/moderations/object From 250d7dfad0b494f6d2f5e7ebac4894381d639e7d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:37 +0100 Subject: [PATCH 263/264] New translations openaimoderationresult.md (Spanish) --- .../version-21/aikit/Classes/OpenAIModerationResult.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModerationResult.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModerationResult.md index b486c693fb10f3..6ae6717533fd23 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModerationResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIModerationResult.md @@ -5,7 +5,7 @@ title: OpenAIModerationResult # OpenAIModerationResult -The `OpenAIModerationResult` provides functionality to handle moderation results from the OpenAI API. +`OpenAIModerationResult` ofrece funcionalidades para manejar los resultados de moderación de la API OpenAI. ## Hereda From a3519ab70fc0aa78806f25f76d194bdde6f27030 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 13 Nov 2025 06:00:39 +0100 Subject: [PATCH 264/264] New translations openairesult.md (Spanish) --- .../version-21/aikit/Classes/OpenAIResult.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md index be533ccb4d72d6..ef3e9ad3508ea9 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/aikit/Classes/OpenAIResult.md @@ -26,8 +26,8 @@ The `OpenAIResult` class is designed to handle the response from HTTP requests a ### rateLimit -The `rateLimit` property returns an object containing rate limit information from the response headers. -This information includes the limits, remaining requests, and reset times for both requests and tokens. +La propiedad `rateLimit` devuelve un objeto que contiene información sobre el límite de velocidad de los encabezados de respuesta. +Esta información incluye los límites, las peticiones restantes y los tiempos de reinicialización tanto para peticiones como para tokens. For more details on rate limits and the specific headers used, refer to [the OpenAI Rate Limits Documentation](https://platform.openai.com/docs/guides/rate-limits#rate-limits-in-headers).