diff --git a/.doc_preprocessing.js b/.doc_preprocessing.js
index 94ecb9b442aaaa..d69890e91eaee2 100644
--- a/.doc_preprocessing.js
+++ b/.doc_preprocessing.js
@@ -1,9 +1,24 @@
+const fs = require("fs")
+
const PREPROCESSING_TARGET_SYNTAX = process.env.PREPROCESSING_TARGET_SYNTAX
let target_syntax = "docs"
let target_syntax_translate = "current"
if(PREPROCESSING_TARGET_SYNTAX) {
- target_syntax = "versioned_docs/" + PREPROCESSING_TARGET_SYNTAX
+ const versionDir = "versioned_docs/" + PREPROCESSING_TARGET_SYNTAX
+ if (!fs.existsSync(versionDir)) {
+ const available = fs.existsSync("versioned_docs")
+ ? fs.readdirSync("versioned_docs").filter(n => n.startsWith("version-"))
+ : []
+ console.error(
+ `\x1b[31mERROR\x1b[0m: PREPROCESSING_TARGET_SYNTAX="${PREPROCESSING_TARGET_SYNTAX}" ` +
+ `but folder "${versionDir}" does not exist.\n` +
+ `Available versions: ${available.join(", ") || "(none)"}\n` +
+ `Leave PREPROCESSING_TARGET_SYNTAX unset to build the current (docs/) version.`
+ )
+ process.exit(1)
+ }
+ target_syntax = versionDir
target_syntax_translate = PREPROCESSING_TARGET_SYNTAX
}
diff --git a/docs/API/IMAPTransporterClass.md b/docs/API/IMAPTransporterClass.md
index a46280db5a4fba..4efb0725a3642d 100644
--- a/docs/API/IMAPTransporterClass.md
+++ b/docs/API/IMAPTransporterClass.md
@@ -1442,8 +1442,14 @@ $flags["$seen"]:=True
$status:=$transporter.removeFlags(IMAP all;$flags)
```
+#### See also
+
+[`.addFlags()`](#addflags)
+
+
+
## .renameBox()
diff --git a/docs/FormObjects/properties_Text.md b/docs/FormObjects/properties_Text.md
index fe10e060cdd6fe..4d0d7726e11f01 100644
--- a/docs/FormObjects/properties_Text.md
+++ b/docs/FormObjects/properties_Text.md
@@ -427,6 +427,7 @@ This property enables the possibility of using [specific styles](https://doc.4d.
By default, this option is not enabled.
+
#### JSON Grammar
|Name|Data Type|Possible Values|
@@ -439,7 +440,86 @@ By default, this option is not enabled.
#### Commands
-[LISTBOX Get property](../commands/listbox-get-property) - [LISTBOX SET PROPERTY](../commands/listbox-set-property) - [OBJECT Is styled text](../commands/object-is-styled-text) -
+[LISTBOX Get property](../commands/listbox-get-property) - [LISTBOX SET PROPERTY](../commands/listbox-set-property) - [OBJECT Is styled text](../commands/object-is-styled-text)
+
+### Supported tags
+
+You can use the following tags in 4D multi-style text areas.
+
+#### 4D Expression
+
+```html
+
+```
+
+This tag inserts a 4D expression (expression, method, field, variable, command, etc.) in the text. The expression is tokenized and evaluated:
+
+- when the expression is inserted
+- when the object is loaded
+- when the `computeExpressions` standard action is called from an interface object or by the [`INVOKE ACTION`](../commands/invoke-action) command
+- when the [`ST COMPUTE EXPRESSIONS`](../commands/st-compute-expressions) command is executed
+- when the [`ST FREEZE EXPRESSIONS`](../commands/st-freeze-expressions) command is executed, if the second `*` parameter is passed.
+
+The evaluated value of the expression is not saved in the `` tag, only its reference is.
+
+Note: To ensure that expressions will be evaluated correctly regardless of the 4D language or version used, we recommend using the token syntax for elements whose name might vary between different versions (commands, tables, fields, constants). For example, to insert the `Current time` command, enter `Current time:C178`. For more information about this, refer to *Using tokens in formulas*.
+
+#### URL
+
+```html
+Visible label
+```
+
+This tag inserts a URL in the text. Example:
+
+```html
+4D Web Site
+```
+
+#### User link
+
+```html
+Click here
+```
+
+"User links" look the same as URLs, but when you click them, they do not automatically open the source. You can pass any string you want as reference, and it is up to the developer to program any custom actions that occur when it is clicked. This means you can create links which are not URLs but references to files, 4D methods, and so on, that you can open or execute when they are clicked. The [`ST Get content type`](../commands/st-get-content-type) command detects if a user link has been clicked.
+
+User links are defined using the [`ST SET TEXT`](../commands/st-set-text) command. For example:
+
+```4d
+ST SET TEXT(txtVar;"This is a user link: User Label";$start;$end)
+ ```
+
+#### Custom tags
+
+You can insert any tag in plain text, for example ``. It is stored in the code of the plain text without being interpreted or displayed. This is particularly useful in the context of e-mails in HTML format and including pictures for example.
+
+#### Style tags
+
+This paragraph lists the attributes of \ tags that are supported by 4D in rich text areas. You can use these tags to implement custom style handling. Only the tags listed below are supported by 4D for style variations.
+
+- Font name: ` ... `
+- Font size: ` ... `
+- Font style:
+ - Bold ` ... `
+ - Italic ` ... `
+ - Normal ` ... `
+ - Underline ` ... `
+ - Strikethrough `...`
+
+*Note: The "strikethrough" style is not supported under macOS, but this tag can still be managed by programming.*
+
+- Font colors: ` ... ` or `...`
+- Background colors: ` ... ` or `...`
+
+#### Color values
+
+For font color and background color attributes, the color value can be either the hexadecimal code for an RGB color, or the name of one of the 16 HTML colors defined for standard CSS by the W3C:
+
+
+
+
+
---
diff --git a/docs/Notes/updates.md b/docs/Notes/updates.md
index 4dc9c84d0d049b..5beafdd9d94a1a 100644
--- a/docs/Notes/updates.md
+++ b/docs/Notes/updates.md
@@ -86,7 +86,7 @@ Read [**What’s new in 4D 21 R2**](https://blog.4d.com/whats-new-in-4d-21-r2/),
|libZip|1.11.4|21|Used by zip class, 4D Write Pro, svg and serverNet components|
|LZMA|5.8.1|21||
|ngtcp2|1.22.1|**21 R4**|Used for QUIC|
-|OpenSSL|3.5.2|21||
+|OpenSSL|4.0|**21 R4**||
|PDFWriter|4.7.0|21|Used for [`WP Export document`](../WritePro/commands/wp-export-document.md) and [`WP Export variable`](../WritePro/commands/wp-export-variable.md) |
|SpreadJS|18.2.0|21 R2|See [this blog post](https://blog.4d.com/4d-view-pro-whats-new-in-4d-21-r2/) for an overview of the new features|
|webKit|WKWebView|19||
diff --git a/docs/aikit/Classes/OpenAI.md b/docs/aikit/Classes/OpenAI.md
index 07d0222e67d346..d50d8108bd3e0e 100644
--- a/docs/aikit/Classes/OpenAI.md
+++ b/docs/aikit/Classes/OpenAI.md
@@ -11,8 +11,8 @@ The `OpenAI` class provides a client for accessing various OpenAI API resources.
| Property Name | Type | Description | Optional |
|-------------------|-------|-----------------------------------|----------|
-| `apiKey` | Text | Your [OpenAI API Key](https://platform.openai.com/api-keys). | Can be required by the provider|
-| `baseURL` | Text | Base URL for OpenAI API requests. | Yes (if omitted = use OpenAI Platform)|
+| `apiKey` | Text | Your [OpenAI API Key](https://developers.openai.com/api/docs/quickstart#create-and-export-an-api-key). | Can be required by the provider |
+| `baseURL` | Text | Base URL for OpenAI API requests. | Yes (if omitted = use OpenAI Platform) |
| `organization` | Text | Your OpenAI Organization ID. | Yes |
| `project` | Text | Your OpenAI Project ID. | Yes |
@@ -69,7 +69,6 @@ The API provides access to multiple resources that allow seamless interaction wi
| `embeddings` | [OpenAIEmbeddingsAPI](OpenAIEmbeddingsAPI.md) | Access to the Embeddings API. |
| `files` | [OpenAIFilesAPI](OpenAIFilesAPI.md) | Access to the Files API. |
-
### Example Usage
```4d
@@ -82,3 +81,9 @@ $client.model.lists(...)
## Provider Model Aliases
The OpenAI client supports provider model aliases for easy multi-provider usage. See [Provider Model Aliases](../provider-model-aliases.md) for complete documentation.
+
+You can construct an OpenAI client using a pre-configured provider name. This allows you to easily switch between different AI providers (OpenAI, Anthropic, etc.) without specifying the full configuration each time.
+
+```4d
+var $client:=cs.AIKit.OpenAI.new({provider: "anthropic"})
+```
diff --git a/docs/aikit/Classes/OpenAIAPIResource.md b/docs/aikit/Classes/OpenAIAPIResource.md
index a1e5c67140da05..2f99a73c28ca87 100644
--- a/docs/aikit/Classes/OpenAIAPIResource.md
+++ b/docs/aikit/Classes/OpenAIAPIResource.md
@@ -21,3 +21,4 @@ The client allow to make HTTP Request.
- [OpenAIChatAPI](OpenAIChatAPI.md)
- [OpenAIImagesAPI](OpenAIImagesAPI.md)
- [OpenAIModerationsAPI](OpenAIModerationsAPI.md)
+- [OpenAIFilesAPI](OpenAIFilesAPI.md)
diff --git a/docs/aikit/Classes/OpenAIChatAPI.md b/docs/aikit/Classes/OpenAIChatAPI.md
index 471cd319551a63..d85485d211474b 100644
--- a/docs/aikit/Classes/OpenAIChatAPI.md
+++ b/docs/aikit/Classes/OpenAIChatAPI.md
@@ -25,7 +25,6 @@ The `OpenAIChatAPI` class provides an interface to interact with OpenAI's chat b
| *systemPrompt* | Text | The system prompt to initialize the chat. |
| Function result | [OpenAIChatHelper](OpenAIChatHelper.md) | A helper instance for managing chat interactions. |
-
#### Example Usage
```4D
diff --git a/docs/aikit/Classes/OpenAIChatCompletionsAPI.md b/docs/aikit/Classes/OpenAIChatCompletionsAPI.md
index c6f7ebef9f46a1..4e6036b638c0ba 100644
--- a/docs/aikit/Classes/OpenAIChatCompletionsAPI.md
+++ b/docs/aikit/Classes/OpenAIChatCompletionsAPI.md
@@ -7,7 +7,7 @@ title: OpenAIChatCompletionsAPI
The `OpenAIChatCompletionsAPI` class is designed for managing chat completions with OpenAI's API. It provides methods to create, retrieve, update, delete, and list chat completions.
-https://platform.openai.com/docs/api-reference/chat
+https://developers.openai.com/api/reference/resources/chat
## Functions
@@ -23,7 +23,7 @@ https://platform.openai.com/docs/api-reference/chat
Creates a model response for the given chat conversation.
-https://platform.openai.com/docs/api-reference/chat/create
+https://developers.openai.com/api/reference/resources/chat/subresources/completions/methods/create
#### Example Usage
@@ -59,7 +59,7 @@ $messages.push($result.choice.message) // {"role":"assistant"; "content": "xxx"
Get a stored chat completion.
-https://platform.openai.com/docs/api-reference/chat/get
+https://developers.openai.com/api/reference/resources/chat/subresources/completions/methods/retrieve
### update()
@@ -74,7 +74,7 @@ https://platform.openai.com/docs/api-reference/chat/get
Modify a stored chat completion.
-https://platform.openai.com/docs/api-reference/chat/update
+https://developers.openai.com/api/reference/resources/chat/subresources/completions/methods/update
### delete()
@@ -88,7 +88,7 @@ https://platform.openai.com/docs/api-reference/chat/update
Delete a stored chat compltions.
-https://platform.openai.com/docs/api-reference/chat/delete
+https://developers.openai.com/api/reference/resources/chat/subresources/completions/methods/delete
### list()
@@ -101,4 +101,4 @@ https://platform.openai.com/docs/api-reference/chat/delete
List stored chat completions.
-https://platform.openai.com/docs/api-reference/chat/list
+https://developers.openai.com/api/reference/resources/chat/subresources/completions/methods/list
diff --git a/docs/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md b/docs/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md
index e566b493d7bb28..896c3551ce99d2 100644
--- a/docs/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md
+++ b/docs/aikit/Classes/OpenAIChatCompletionsMessagesAPI.md
@@ -21,4 +21,4 @@ The `OpenAIChatCompletionsMessagesAPI` class is designed to interact with the Op
The `list()` function retrieves messages associated with a specific chat completion ID. It throws an error if the `completionID` is empty. If the *parameters* argument is not an instance of `OpenAIChatCompletionsMessagesParameters`, it will create a new instance using the provided parameters.
-https://platform.openai.com/docs/api-reference/chat/getMessages
+https://developers.openai.com/api/reference/resources/chat/subresources/completions/subresources/messages/methods/list
diff --git a/docs/aikit/Classes/OpenAIChatCompletionsParameters.md b/docs/aikit/Classes/OpenAIChatCompletionsParameters.md
index 3794e854d5bb0b..694635aadb170c 100644
--- a/docs/aikit/Classes/OpenAIChatCompletionsParameters.md
+++ b/docs/aikit/Classes/OpenAIChatCompletionsParameters.md
@@ -1,11 +1,11 @@
---
id: openaichatcompletionsparameters
-title: OpenAIChatCompletionParameters
+title: OpenAIChatCompletionsParameters
---
-# OpenAIChatCompletionParameters
+# OpenAIChatCompletionsParameters
-The `OpenAIChatCompletionParameters` class is designed to handle the parameters required for chat completions using the OpenAI API.
+The `OpenAIChatCompletionsParameters` class is designed to handle the parameters required for chat completions using the OpenAI API.
## Inherits
@@ -13,31 +13,32 @@ The `OpenAIChatCompletionParameters` class is designed to handle the parameters
## Properties
-| Property | Type | Default Value | Description |
-|---------------------------|---------|-------------------------|---------------------------------------------------------------------------------------------------|
-| `model` | Text | `"gpt-4o-mini"` | ID of the model to use. Supports [provider:model aliases](../provider-model-aliases.md) for multi-provider usage (e.g., `"openai:gpt-4o"`, `"anthropic:claude-3-opus"`). |
-| `stream` | Boolean | `False` | Whether to stream back partial progress. If set, tokens will be sent as data-only. Callback formula required. |
-| `stream_options` | Object | `Null` | Property for stream=True. For example: `{include_usage: True}` |
+| Property | Type | Default Value | Description |
+| ----------------------- | ---------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `model` | Text | `"gpt-4o-mini"` | ID of the model to use. Supports [provider:model aliases](../provider-model-aliases.md) for multi-provider usage (e.g., `"openai:gpt-4o"`, `"anthropic:claude-3-opus"`). |
+| `stream` | Boolean | `False` | Whether to stream back partial progress. If set, tokens will be sent as data-only. Callback formula required. |
+| `stream_options` | Object | `Null` | Property for stream=True. For example: `{include_usage: True}` |
| `max_completion_tokens` | Integer | `0` | The maximum number of tokens that can be generated in the completion. |
| `n` | Integer | `1` | How many completions to generate for each prompt. |
| `temperature` | Real | `-1` | What sampling temperature to use, between 0 and 2. Higher values make the output more random, while lower values make it more focused and deterministic. |
+| `top_p` | Real | `-1` | An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. Only sent when the value is greater than 0 (omitted when `<= 0`, with default `-1`). |
| `store` | Boolean | `False` | Whether or not to store the output of this chat completion request. |
-| `reasoning_effort` | Text | `Null` | Constrains effort on reasoning for reasoning models. Currently supported values are `"low"`, `"medium"`, and `"high"`. |
-| `response_format` | Object | `Null` | An object specifying the format that the model must output. Compatible with structured outputs. |
-| `tools` | Collection | `Null` | A list of tools ([OpenAITool](OpenAITool.md)) the model may call. Only "function" type is supported. |
-| `tool_choice` | Variant | `Null` | Controls which (if any) tool is called by the model. Can be `"none"`, `"auto"`, `"required"`, or specify a particular tool. |
+| `reasoning_effort` | Text | `Null` | Constrains effort on reasoning for reasoning models. Currently supported values are `"low"`, `"medium"`, and `"high"`. |
+| `response_format` | Object | `Null` | An object specifying the format that the model must output. Compatible with structured outputs. |
+| `tools` | Collection | `Null` | A list of tools ([OpenAITool](OpenAITool.md)) the model may call. Only "function" type is supported. |
+| `tool_choice` | Variant | `Null` | Controls which (if any) tool is called by the model. Can be `"none"`, `"auto"`, `"required"`, or specify a particular tool. |
| `prediction` | Object | `Null` | Static predicted output content, such as the content of a text file that is being regenerated. |
+| `service_tier` | Text | `Null` | Specifies the processing type used for serving the request. `"auto"`, `"auto"`, `"default"`, and `"priority"`. |
### Asynchronous Callback Properties
-| Property | Type | Description |
-|----------|------|-----------|
-| `onData` (or `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk. Ensure that the current process does not terminate. |
-
-`onData` will receive as argument an [OpenAIChatCompletionsStreamResult](./OpenAIChatCompletionsStreamResult.md).
+| Property | Type | Description |
+|---------------------------|---------|-------------------------|---------------------------------------------------------------------------------------------------|
+| `onData` (or `formula`) | 4D.Function | A function to be called asynchronously when receiving data chunk. *Ensure that the current process does not terminate.* |
-See [OpenAIParameters](./OpenAIParameters.md) for other callback properties.
+`onData` will receive as argument a [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md)
+See [OpenAIParameters](OpenAIParameters.md) for other callback properties.
## Response Format
@@ -50,7 +51,7 @@ The `response_format` parameter allows you to specify the format that the model
The default response format returns plain text:
```4d
-var $params := cs.OpenAIChatCompletionsParameters.new({ \
+var $params := cs.AIKit.OpenAIChatCompletionsParameters.new({ \
model: "gpt-4o-mini"; \
response_format: {type: "text"} \
})
@@ -61,13 +62,13 @@ var $params := cs.OpenAIChatCompletionsParameters.new({ \
Forces the model to respond with valid JSON:
```4d
-var $params := cs.OpenAIChatCompletionsParameters.new({ \
+var $params := cs.AIKit.OpenAIChatCompletionsParameters.new({ \
model: "gpt-4o-mini"; \
response_format: {type: "json_object"} \
})
var $messages := [ \
- cs.OpenAIMessage.new({ \
+ cs.AIKit.OpenAIMessage.new({ \
role: "system"; \
content: "You are a helpful assistant that always responds in JSON format." \
}) \
@@ -97,7 +98,7 @@ var $jsonSchema := { \
additionalProperties: False \
}
-var $params := cs.OpenAIChatCompletionsParameters.new({ \
+var $params := cs.AIKit.OpenAIChatCompletionsParameters.new({ \
model: "gpt-4o-mini"; \
response_format: { \
type: "json_schema"; \
diff --git a/docs/aikit/Classes/OpenAIChatCompletionsResult.md b/docs/aikit/Classes/OpenAIChatCompletionsResult.md
index 571eb01d9b7658..9f2843f3d164a3 100644
--- a/docs/aikit/Classes/OpenAIChatCompletionsResult.md
+++ b/docs/aikit/Classes/OpenAIChatCompletionsResult.md
@@ -15,6 +15,57 @@ title: OpenAIChatCompletionsResult
|-----------|---------------|-----------------------------------------------------------------------------|
| `choices` | Collection | Returns a collection of [OpenAIChoice](OpenAIChoice.md) from the OpenAI response. |
| `choice` | OpenAIChoice | Returns the first [OpenAIChoice](OpenAIChoice.md) from the choices collection. |
+| `usage` | Object | Returns token usage information (inherited from [OpenAIResult](OpenAIResult.md)). |
+
+### usage
+
+The `usage` property returns an object containing token usage information for chat completions.
+
+| Field | Type | Description |
+|-------|------|-------------|
+| `prompt_tokens` | Integer | Number of tokens in the prompt. |
+| `completion_tokens` | Integer | Number of tokens in the completion. |
+| `total_tokens` | Integer | Total tokens used (prompt + completion). |
+| `prompt_tokens_details` | Object | Breakdown of prompt tokens (optional). |
+| `completion_tokens_details` | Object | Breakdown of completion tokens (optional). |
+
+#### prompt_tokens_details
+
+| Field | Type | Description |
+|-------|------|-------------|
+| `cached_tokens` | Integer | Number of tokens served from cache. |
+| `audio_tokens` | Integer | Number of audio tokens (if applicable). |
+
+#### completion_tokens_details
+
+| Field | Type | Description |
+|-------|------|-------------|
+| `reasoning_tokens` | Integer | Tokens used for reasoning (e.g., o1 models). |
+| `audio_tokens` | Integer | Number of audio tokens (if applicable). |
+| `accepted_prediction_tokens` | Integer | Tokens from accepted predictions. |
+| `rejected_prediction_tokens` | Integer | Tokens from rejected predictions. |
+
+**Example response:**
+
+```json
+{
+ "prompt_tokens": 19,
+ "completion_tokens": 10,
+ "total_tokens": 29,
+ "prompt_tokens_details": {
+ "cached_tokens": 0,
+ "audio_tokens": 0
+ },
+ "completion_tokens_details": {
+ "reasoning_tokens": 0,
+ "audio_tokens": 0,
+ "accepted_prediction_tokens": 0,
+ "rejected_prediction_tokens": 0
+ }
+}
+```
+
+> **Note:** The `*_tokens_details` objects may not be present in all responses or from all providers.
## See also
diff --git a/docs/aikit/Classes/OpenAIChatCompletionsStreamResult.md b/docs/aikit/Classes/OpenAIChatCompletionsStreamResult.md
index 2bbc9dd2757f47..05fbb9cddd91d2 100644
--- a/docs/aikit/Classes/OpenAIChatCompletionsStreamResult.md
+++ b/docs/aikit/Classes/OpenAIChatCompletionsStreamResult.md
@@ -22,9 +22,26 @@ title: OpenAIChatCompletionsStreamResult
| `choice` | [OpenAIChoice](OpenAIChoice.md) | Returns a choice data, with a `delta` message. |
| `choices` | Collection | Returns a collection of [OpenAIChoice](OpenAIChoice.md) data, with `delta` messages. |
-### Overrided properties
+### Overridden properties
| Property | Type | Description |
|--------------|----------------------------------------|---------------------------------------------------------------------|
-| `success` | [OpenAIChoice](OpenAIChoice.md) | Returns `True` if the streaming data was successfully decoded as an object. |
+| `success` | Boolean | Returns `True` if the streaming data was successfully decoded as an object. |
| `terminated` | Boolean | A Boolean indicating whether the HTTP request was terminated. ie `onTerminate` called. |
+| `usage` | Object | Returns token usage information from the stream data (only available in the final chunk when `stream_options.include_usage` is set to `True`). |
+
+### usage
+
+The `usage` property returns an object containing token usage information, available only in the final streaming chunk when enabled via `stream_options.include_usage: True` in the request parameters.
+
+The structure is the same as [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md#usage):
+
+| Field | Type | Description |
+|-------|------|-------------|
+| `prompt_tokens` | Integer | Number of tokens in the prompt. |
+| `completion_tokens` | Integer | Number of tokens in the completion. |
+| `total_tokens` | Integer | Total tokens used (prompt + completion). |
+| `prompt_tokens_details` | Object | Breakdown of prompt tokens (optional). |
+| `completion_tokens_details` | Object | Breakdown of completion tokens (optional). |
+
+> **Note:** To receive usage information in streaming responses, you must set `stream_options: {include_usage: True}` in your request parameters. See [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) for details.
diff --git a/docs/aikit/Classes/OpenAIChatHelper.md b/docs/aikit/Classes/OpenAIChatHelper.md
index c55e7ab95ccf87..7fa0c919ce7269 100644
--- a/docs/aikit/Classes/OpenAIChatHelper.md
+++ b/docs/aikit/Classes/OpenAIChatHelper.md
@@ -11,15 +11,14 @@ The chat helper allow to keep a list of messages in memory and make consecutive
| Property Name | Type | Default Value | Description |
|----------------------|-----------------------------|----------------------------------|-------------------------------------------------------------------------------------|
-| `chat` | [OpenAIChatAPI](OpenAIChatAPI.md) | - | The chat API instance used for communication with OpenAI. |
-| `systemPrompt` | [OpenAIMessage](OpenAIMessage.md) | - | The system prompt message that guides the chat assistant's responses. |
-| `numberOfMessages` | Integer | 15 | The maximum number of messages to retain in the chat history.|
-| `parameters` | [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) | - | The parameters for the OpenAI chat completion request. |
-| `messages` | Collection of [OpenAIMessage](OpenAIMessage.md) | [] | The collection of messages exchanged in the chat session. |
-| `tools` | Collection of [OpenAITool](OpenAITool.md) | [] | List of registered OpenAI tools for function calling. |
-| `autoHandleToolCalls`| Boolean | True | Boolean indicating whether tool calls are handled automatically using registered tools. |
-| `lastErrors` | Collection | -| Collection containing the last errors encountered during chat operations. |
-
+| `chat` | [OpenAIChatAPI](OpenAIChatAPI.md) | - | The chat API instance used for communication with OpenAI. |
+| `systemPrompt` | [OpenAIMessage](OpenAIMessage.md) | - | The system prompt message that guides the chat assistant's responses. |
+| `numberOfMessages` | Integer | 15 | The maximum number of messages to retain in the chat history. |
+| `parameters` | [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) | - | The parameters for the OpenAI chat completion request. |
+| `messages` | Collection of [OpenAIMessage](OpenAIMessage.md) | [] | The collection of messages exchanged in the chat session. |
+| `tools` | Collection of [OpenAITool](OpenAITool.md) | [] | List of registered OpenAI tools for function calling. |
+| `autoHandleToolCalls`| Boolean | True | Boolean indicating whether tool calls are handled automatically using registered tools. |
+| `lastErrors` | Collection | - | Collection containing the last errors encountered during chat operations. |
## Constructor
@@ -31,25 +30,35 @@ var $chatHelper:=$client.chat.create("You are a helpful assistant.")
This method creates a new chat helper with the specified system prompt and initializes it with default parameters. The system prompt defines the assistant's role and behavior throughout the conversation.
-
## Functions
### prompt()
-**prompt**(*prompt* : Text) : OpenAIChatCompletionsResult
+**prompt**(*prompt* : Variant) : OpenAIChatCompletionsResult
| Parameter | Type | Description |
|------------------|-------|-------------------------------------------|
-| *prompt* | Text | The text prompt to send to OpenAI chat. |
+| *prompt* | Text or [OpenAIMessage](OpenAIMessage.md) | The text prompt to send to OpenAI chat, or an OpenAIMessage object for more complex messages (e.g., with images or files). |
| Function result| [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md) | The completion result returned by the chat. |
-Sends a user prompt to the chat and returns the corresponding completion result.
+Sends a user prompt to the chat and returns the corresponding completion result. You can pass either a simple text string or an [OpenAIMessage](OpenAIMessage.md) object for more advanced scenarios like including images or files.
#### Example Usage
```4D
+// Simple text prompt
var $result:=$chatHelper.prompt("Hello, how can I help you today?")
$result:=$chatHelper.prompt("Why 42?")
+
+// Using OpenAIMessage for advanced scenarios (e.g., with images)
+var $message:=cs.AIKit.OpenAIMessage.new({role: "user"; content: "What's in this image?"})
+$message.addImageURL("https://example.com/photo.jpg"; "high")
+$result:=$chatHelper.prompt($message)
+
+// Using OpenAIMessage with files
+var $fileMessage:=cs.AIKit.OpenAIMessage.new({role: "user"; content: "Analyze this document"})
+$fileMessage.addFileId($uploadedFile.id)
+$result:=$chatHelper.prompt($fileMessage)
```
### reset()
@@ -67,23 +76,22 @@ $chatHelper.reset() // Clear all previous messages and tools
### registerTool()
-**registerTool**(*tool* : Object; *handler* : Object)
+**registerTool**(*tool* : Object; *handler* : Variant)
| Parameter | Type | Description |
|------------------|-------------|-------------------------------------------------------|
| *tool* | Object | The tool definition object (or [OpenAITool](OpenAITool.md) instance) |
-| *handler* | Object | The function to handle tool calls ([4D.Function](../../API/FunctionClass.md) or Object), optional if defined inside *tool* as *handler* property |
+| *handler* | Object | The function to handle tool calls (4D.Function or Object), optional if defined inside *tool* as *handler* property |
Registers a tool with its handler function for automatic tool call handling.
The *handler* parameter can be:
- A **4D.Function**: Direct handler function
-- An **Object**: An object containing a `formula` property matching the tool function name
+- An **Object**: An object containing a formula property matching the tool function name
The handler function receives an object containing the parameters passed from the OpenAI tool call. This object contains key-value pairs where the keys match the parameter names defined in the tool's schema, and the values are the actual arguments provided by the AI model.
-
-#### Register Tool Example
+#### Register Tool Examples
```4D
// Example 1: Simple registration with direct handler
@@ -118,7 +126,7 @@ Registers multiple tools at once. The parameter can be:
- **Object**: Object with function names as keys mapping to tool definitions
- **Object with `tools` attribute**: Object containing a `tools` collection and formula properties matching tool names
-#### Register Multiple Tools Example
+#### Register Multiple Tools Examples
##### Example 1: Collection format with handlers in tools
@@ -160,7 +168,6 @@ $chatHelper.registerTools(cs.MyTools.new())
```
##### Example 4: Simple object format with tools as properties
-
```4D
var $tools:={}
$tools.getWeather:=$weatherTool // Tool with handler property
@@ -169,7 +176,6 @@ $tools.calculate:=$calculatorTool // Tool with handler property
$chatHelper.registerTools($tools)
```
-
### unregisterTool()
**unregisterTool**(*functionName* : Text)
@@ -198,4 +204,4 @@ Unregisters all tools at once. This clears all tool handlers, empties the tools
```4D
$chatHelper.registerTools($multipleTools)
$chatHelper.unregisterTools() // Remove all tools
-```
\ No newline at end of file
+```
diff --git a/docs/aikit/Classes/OpenAIEmbeddingsAPI.md b/docs/aikit/Classes/OpenAIEmbeddingsAPI.md
index 85aabcb1f7efbb..85b7d726cb6e01 100644
--- a/docs/aikit/Classes/OpenAIEmbeddingsAPI.md
+++ b/docs/aikit/Classes/OpenAIEmbeddingsAPI.md
@@ -7,7 +7,7 @@ title: OpenAIEmbeddingsAPI
The `OpenAIEmbeddingsAPI` provides functionalities to create embeddings using OpenAI's API.
-https://platform.openai.com/docs/api-reference/embeddings
+https://developers.openai.com/api/reference/resources/embeddings
## Functions
@@ -20,7 +20,7 @@ Creates an embeddings for the provided input, model and parameters.
| Argument | Type | Description |
|------------|---------------------------------------|--------------------------------------------------|
| *input* | Text or Collection of Text | The input to vectorize. |
-| *model* | Text | The [model to use](https://platform.openai.com/docs/guides/embeddings#embedding-models). Supports [provider:model aliases](../provider-model-aliases.md).|
+| *model* | Text | The [model to use](https://developers.openai.com/api/docs/guides/embeddings#embedding-models). Supports [provider:model aliases](../provider-model-aliases.md). |
| *parameters* | [OpenAIEmbeddingsParameters](OpenAIEmbeddingsParameters.md) | The parameters to customize the embeddings request. |
| Function result| [OpenAIEmbeddingsResult](OpenAIEmbeddingsResult.md) | The embeddings. |
diff --git a/docs/aikit/Classes/OpenAIEmbeddingsResult.md b/docs/aikit/Classes/OpenAIEmbeddingsResult.md
index 67e25e9e680863..0be192d4128319 100644
--- a/docs/aikit/Classes/OpenAIEmbeddingsResult.md
+++ b/docs/aikit/Classes/OpenAIEmbeddingsResult.md
@@ -18,6 +18,27 @@ title: OpenAIEmbeddingsResult
| `vectors` | Collection | Returns a collection of `4D.Vector`. |
| `embedding` | [OpenAIEmbedding](OpenAIEmbedding.md) | Returns the first [OpenAIEmbedding](OpenAIEmbedding.md) from the `embeddings` collection. |
| `embeddings` | Collection | Returns a collection of [OpenAIEmbedding](OpenAIEmbedding.md). |
+| `usage` | Object | Returns token usage information (inherited from [OpenAIResult](OpenAIResult.md)). |
+
+### usage
+
+The `usage` property returns an object containing token usage information for embeddings.
+
+| Field | Type | Description |
+|-------|------|-------------|
+| `prompt_tokens` | Integer | Number of tokens in the input text(s). |
+| `total_tokens` | Integer | Total tokens used (same as prompt_tokens for embeddings). |
+
+**Example response:**
+
+```json
+{
+ "prompt_tokens": 8,
+ "total_tokens": 8
+}
+```
+
+> **Note:** Embeddings only consume prompt tokens (there is no completion), so `total_tokens` equals `prompt_tokens`.
## See also
diff --git a/docs/aikit/Classes/OpenAIFilesAPI.md b/docs/aikit/Classes/OpenAIFilesAPI.md
index 577a75ca2ff57d..f1b3056f98cb51 100644
--- a/docs/aikit/Classes/OpenAIFilesAPI.md
+++ b/docs/aikit/Classes/OpenAIFilesAPI.md
@@ -3,46 +3,43 @@ id: openaifilesapi
title: OpenAIFilesAPI
---
-
# OpenAIFilesAPI
-The `OpenAIFilesAPI` class provides functionalities to manage files using OpenAI's API. Files can be uploaded and used across various endpoints including [Fine-tuning](https://platform.openai.com/docs/api-reference/fine-tuning), [Batch](https://platform.openai.com/docs/api-reference/batch) processing, and Vision.
+The `OpenAIFilesAPI` class provides functionalities to manage files using OpenAI's API. Files can be uploaded and used across various endpoints including [Fine-tuning](https://developers.openai.com/api/reference/resources/fine_tuning), [Batch](https://developers.openai.com/api/reference/resources/batches) processing, and Vision.
> **Note:** This API is only compatible with OpenAI. Other providers listed in the [compatible providers](../compatible-openai.md) documentation do not support file management operations.
-
-API Reference:
+API Reference:
## File Size Limits
- **Individual files:** up to 512 MB per file
-- **Organization total:** up to 1 TB (cumulative size of all files uploaded by your [organization](https://platform.openai.com/docs/guides/production-best-practices/setting-up-your-organization))
-
+- **Organization total:** up to 1 TB (cumulative size of all files uploaded by your [organization](https://developers.openai.com/api/docs/guides/production-best-practices))
## Functions
### create()
-**create**(*file* : 4D.File | 4D.Blob; *purpose* : Text; *parameters* : cs.OpenAIFileParameters) : cs.OpenAIFileResult
+**create**(*file* : 4D.File | 4D.Blob; *purpose* : Text; *parameters* : cs.AIKit.OpenAIFileParameters) : cs.AIKit.OpenAIFileResult
Upload a file that can be used across various endpoints.
**Endpoint:** `POST https://api.openai.com/v1/files`
-| Parameter | Type | Description |
-|---------------|--------------------------------|-----------------------------------------------------------|
-| `file` | [4D.File](https://developer.4d.com/docs/API/FileClass) or [4D.Blob](https://developer.4d.com/docs/API/BlobClass) | The File or Blob object (not file name) to be uploaded. |
-| `purpose` | Text | **Required.** The intended purpose of the uploaded file. |
-| `parameters` | [OpenAIFileParameters](OpenAIFileParameters.md) | Optional parameters including expiration policy. |
+| Parameter | Type | Description |
+|-----------------|--------------------------------|-----------------------------------------------------------|
+| `file` | [4D.File](https://developer.4d.com/docs/API/FileClass) or [4D.Blob](https://developer.4d.com/docs/API/BlobClass) | The File or Blob object (not file name) to be uploaded. |
+| `purpose` | Text | **Required.** The intended purpose of the uploaded file. |
+| `parameters` | [OpenAIFileParameters](OpenAIFileParameters.md) | Optional parameters including expiration policy. |
| Function result | [OpenAIFileResult](OpenAIFileResult.md) | The file result |
**Throws:** An error if `file` is not a 4D.File or 4D.Blob, or if `purpose` is empty.
#### Supported Purposes
-- `assistants`: Used in the Assistants API (⚠️ [deprecated by OpenAI](https://platform.openai.com/docs/assistants/whats-new))
-- `batch`: Used in the [Batch API](https://platform.openai.com/docs/api-reference/batch) (expires after 30 days by default)
-- `fine-tune`: Used for [fine-tuning](https://platform.openai.com/docs/api-reference/fine-tuning)
+- `assistants`: Used in the Assistants API (⚠️ [deprecated by OpenAI](https://developers.openai.com/api/docs/assistants/migration))
+- `batch`: Used in the [Batch API](https://developers.openai.com/api/reference/resources/batches) (expires after 30 days by default)
+- `fine-tune`: Used for [fine-tuning](https://developers.openai.com/api/reference/resources/fine_tuning)
- `vision`: Images used for vision fine-tuning
- `user_data`: Flexible file type for any purpose
- `evals`: Used for eval data sets
@@ -54,7 +51,7 @@ Upload a file that can be used across various endpoints.
- **Assistants API:** Supports specific file types (see Assistants Tools guide)
- **Chat Completions API:** PDFs are only supported
-#### Sychronous example
+#### Example
```4d
var $file:=File("/RESOURCES/training-data.jsonl")
@@ -105,22 +102,20 @@ Else
End if
```
-
### retrieve()
-**retrieve**(*fileId* : Text; *parameters* : cs.OpenAIParameters) : cs.OpenAIFileResult
+**retrieve**(*fileId* : Text; *parameters* : cs.AIKit.OpenAIParameters) : cs.AIKit.OpenAIFileResult
Returns information about a specific file.
**Endpoint:** `GET https://api.openai.com/v1/files/{file_id}`
-| Parameter | Type | Description |
-|---------------|--------------------------------|-----------------------------------------------------------|
-| `fileId` | Text | **Required.** The ID of the file to retrieve. |
-| `parameters` | [OpenAIParameters](OpenAIParameters.md) | Optional parameters for the request. |
+| Parameter | Type | Description |
+|-----------------|--------------------------------|-----------------------------------------------------------|
+| *fileId* | Text | **Required.** The ID of the file to retrieve. |
+| *parameters* | [OpenAIParameters](OpenAIParameters.md) | Optional parameters for the request. |
| Function result | [OpenAIFileResult](OpenAIFileResult.md) | The file result |
-
**Throws:** An error if `fileId` is empty.
#### Example
@@ -138,18 +133,17 @@ End if
### list()
-**list**(*parameters* : cs.OpenAIFileListParameters) : cs.OpenAIFileListResult
+**list**(*parameters* : cs.AIKit.OpenAIFileListParameters) : cs.AIKit.OpenAIFileListResult
Returns a list of files that belong to the user's organization.
**Endpoint:** `GET https://api.openai.com/v1/files`
-| Parameter | Type | Description |
-|---------------|--------------------------------|-----------------------------------------------------------|
-| `parameters` | [OpenAIFileListParameters](OpenAIFileListParameters.md) | Optional parameters for filtering and pagination. |
+| Parameter | Type | Description |
+|-----------------|--------------------------------|-----------------------------------------------------------|
+| *parameters* | [OpenAIFileListParameters](OpenAIFileListParameters.md) | Optional parameters for filtering and pagination. |
| Function result | [OpenAIFileListResult](OpenAIFileListResult.md) | The file list result |
-
#### Example
```4d
@@ -172,19 +166,18 @@ End if
### delete()
-**delete**(*fileId* : Text; *parameters* : cs.OpenAIParameters) : cs.OpenAIFileDeletedResult
+**delete**(*fileId* : Text; *parameters* : cs.AIKit.OpenAIParameters) : cs.AIKit.OpenAIFileDeletedResult
Delete a file.
**Endpoint:** `DELETE https://api.openai.com/v1/files/{file_id}`
-| Parameter | Type | Description |
-|---------------|--------------------------------|-----------------------------------------------------------|
-| `fileId` | Text | **Required.** The ID of the file to delete. |
-| `parameters` | [OpenAIParameters](OpenAIParameters.md) | Optional parameters for the request. |
+| Parameter | Type | Description |
+|-----------------|--------------------------------|-----------------------------------------------------------|
+| *fileId* | Text | **Required.** The ID of the file to delete. |
+| *parameters* | [OpenAIParameters](OpenAIParameters.md) | Optional parameters for the request. |
| Function result | [OpenAIFileDeletedResult](OpenAIFileDeletedResult.md) | The file deletion result |
-
**Throws:** An error if `fileId` is empty.
#### Example
diff --git a/docs/aikit/Classes/OpenAIImage.md b/docs/aikit/Classes/OpenAIImage.md
index ecfe46b64934db..8d7c4e89037081 100644
--- a/docs/aikit/Classes/OpenAIImage.md
+++ b/docs/aikit/Classes/OpenAIImage.md
@@ -7,7 +7,7 @@ title: OpenAIImage
The `OpenAIImage` class represents an image generated by the OpenAI API. It provides properties for accessing the generated image in different formats and methods for converting this image to different types.
-https://platform.openai.com/docs/api-reference/images/object
+https://developers.openai.com/api/reference/resources/images
## Properties
diff --git a/docs/aikit/Classes/OpenAIImageParameters.md b/docs/aikit/Classes/OpenAIImageParameters.md
index 77609ffe676114..beca90db80f5e1 100644
--- a/docs/aikit/Classes/OpenAIImageParameters.md
+++ b/docs/aikit/Classes/OpenAIImageParameters.md
@@ -15,7 +15,7 @@ The `OpenAIImageParameters` class is designed to configure and manage the parame
| Property Name | Type | Default Value | Description |
|-------------------|---------|----------------|--------------------------------------------------------------------------------------------------|
-| `model` | Text | "dall-e-2" | Specifies the model to use for image generation. Supports [provider:model aliases](../provider-model-aliases.md). |
+| `model` | Text | "dall-e-2" | Specifies the model to use for image generation. Supports [provider:model aliases](../provider-model-aliases.md). |
| `n` | Integer | 1 | The number of images to generate (must be between 1 and 10; only `n=1` is supported for `dall-e-3`). |
| `size` | Text | "1024x1024" | The size of the generated images. Must conform to model specifications. |
| `style` | Text | "" | The style of the generated images (must be either `vivid` or `natural`). |
diff --git a/docs/aikit/Classes/OpenAIImagesAPI.md b/docs/aikit/Classes/OpenAIImagesAPI.md
index 54ee6ea8a657cc..144a918c90f3c5 100644
--- a/docs/aikit/Classes/OpenAIImagesAPI.md
+++ b/docs/aikit/Classes/OpenAIImagesAPI.md
@@ -7,7 +7,7 @@ title: OpenAIImagesAPI
The `OpenAIImagesAPI` provides functionalities to generate images using OpenAI's API.
-https://platform.openai.com/docs/api-reference/images
+https://developers.openai.com/api/reference/resources/images
## Functions
@@ -23,7 +23,7 @@ https://platform.openai.com/docs/api-reference/images
Creates an image given a prompt.
-https://platform.openai.com/docs/api-reference/images/create
+https://developers.openai.com/api/reference/resources/images/methods/generate
## Example
diff --git a/docs/aikit/Classes/OpenAIImagesResult.md b/docs/aikit/Classes/OpenAIImagesResult.md
index 5bab05f1608cdd..d3fab8d400ad5e 100644
--- a/docs/aikit/Classes/OpenAIImagesResult.md
+++ b/docs/aikit/Classes/OpenAIImagesResult.md
@@ -15,6 +15,41 @@ title: OpenAIImagesResult
|----------|------|-------------|
| `images` | Collection of [OpenAIImage](OpenAIImage.md) | Returns a collection of OpenAIImage objects. |
| `image` | [OpenAIImage](OpenAIImage.md) | Returns the first OpenAIImage from the collection. |
+| `usage` | Object | Returns token usage information (inherited from [OpenAIResult](OpenAIResult.md)). |
+
+### usage
+
+The `usage` property returns an object containing token usage information for image generation (when supported by the provider).
+
+| Field | Type | Description |
+|-------|------|-------------|
+| `total_tokens` | Integer | Total tokens used. |
+| `input_tokens` | Integer | Number of tokens in the input (prompt). |
+| `output_tokens` | Integer | Number of tokens for the output (image). |
+| `input_tokens_details` | Object | Breakdown of input tokens (optional). |
+
+#### input_tokens_details
+
+| Field | Type | Description |
+|-------|------|-------------|
+| `text_tokens` | Integer | Number of text tokens in the prompt. |
+| `image_tokens` | Integer | Number of image tokens (for image editing/variations). |
+
+**Example response:**
+
+```json
+{
+ "total_tokens": 100,
+ "input_tokens": 50,
+ "output_tokens": 50,
+ "input_tokens_details": {
+ "text_tokens": 10,
+ "image_tokens": 40
+ }
+}
+```
+
+> **Note:** Image generation usage may not be available from all providers. The structure may vary depending on the specific image API endpoint used.
## Functions
diff --git a/docs/aikit/Classes/OpenAIMessage.md b/docs/aikit/Classes/OpenAIMessage.md
index 14c998b7abd232..9d9fda372a3ed7 100644
--- a/docs/aikit/Classes/OpenAIMessage.md
+++ b/docs/aikit/Classes/OpenAIMessage.md
@@ -32,10 +32,9 @@ The `OpenAIMessage` class represents a structured message containing a role, con
| Parameter | Type | Description |
|------------------|-------|--------------------------------------------|
| *imageURL* | Text | The URL of the image to add to the message.|
-| *detail* | Text | Additional details about the image. |
-
-Adds an image URL to the content of the message.
+| *detail* | Text | The detail level of the image: "auto", "low", or "high". |
+Adds an image URL to the content of the message. If the content is currently text, it will be converted to a collection format.
### addFileId()
@@ -43,13 +42,10 @@ Adds an image URL to the content of the message.
| Parameter | Type | Description |
|------------------|-------|--------------------------------------------|
-| *fileId* | Text | The file ID to add to the message.|
+| *fileId* | Text | The file ID to add to the message. |
Adds a file reference to the content of the message. If the content is currently text, it will be converted to a collection format.
-
-
-
## Example Usage
### Basic Text Message
@@ -68,7 +64,6 @@ var $message:=cs.AIKit.OpenAIMessage.new({role: "user"; content: "Please analyze
$message.addImageURL("http://example.com/image.jpg"; "high")
```
-
### Adding File
```4d
@@ -146,4 +141,6 @@ var $toolResponse:=cs.AIKit.OpenAIMessage.new({ \
## See Also
-- [OpenAITool](OpenAITool.md) - For tool definition
\ No newline at end of file
+- [OpenAITool](OpenAITool.md) - For tool definition
+- [OpenAIFile](OpenAIFile.md)
+- [OpenAIChoice](OpenAIChoice.md)
diff --git a/docs/aikit/Classes/OpenAIModel.md b/docs/aikit/Classes/OpenAIModel.md
index 85a6a67e353be8..d24743b1937f2b 100644
--- a/docs/aikit/Classes/OpenAIModel.md
+++ b/docs/aikit/Classes/OpenAIModel.md
@@ -7,7 +7,7 @@ title: OpenAIModel
A model description.
-https://platform.openai.com/docs/api-reference/models/object
+https://developers.openai.com/api/reference/resources/models
## Properties
diff --git a/docs/aikit/Classes/OpenAIModelsAPI.md b/docs/aikit/Classes/OpenAIModelsAPI.md
index e1abc87249420a..6ffb509100e56b 100644
--- a/docs/aikit/Classes/OpenAIModelsAPI.md
+++ b/docs/aikit/Classes/OpenAIModelsAPI.md
@@ -9,7 +9,7 @@ title: OpenAIModelsAPI
`OpenAIModelsAPI` is a class that allows interaction with OpenAI models through various functions, such as retrieving model information, listing available models, and (optionally) deleting fine-tuned models.
-https://platform.openai.com/docs/api-reference/models
+https://developers.openai.com/api/reference/resources/models
## Functions
@@ -25,7 +25,7 @@ https://platform.openai.com/docs/api-reference/models
Retrieves a model instance to provide basic information.
-https://platform.openai.com/docs/api-reference/models/retrieve
+https://developers.openai.com/api/reference/resources/models/methods/retrieve
#### Example usage:
@@ -45,11 +45,11 @@ var $model:=$result.model
Lists the currently available models.
-https://platform.openai.com/docs/api-reference/models/list
+https://developers.openai.com/api/reference/resources/models/methods/list
#### Example usage:
```4d
var $result:=$client.model.list($parameters)
var $models: Collection:=$result.models
-```
\ No newline at end of file
+```
diff --git a/docs/aikit/Classes/OpenAIModeration.md b/docs/aikit/Classes/OpenAIModeration.md
index 333329df890a99..495765a89e98bb 100644
--- a/docs/aikit/Classes/OpenAIModeration.md
+++ b/docs/aikit/Classes/OpenAIModeration.md
@@ -7,7 +7,7 @@ title: OpenAIModeration
The `OpenAIModeration` class is designed to handle moderation results from the OpenAI API. It contains properties for storing the moderation ID, model used, and the results of the moderation.
-https://platform.openai.com/docs/api-reference/moderations/object
+https://developers.openai.com/api/reference/resources/moderations
## Properties
diff --git a/docs/aikit/Classes/OpenAIModerationItem.md b/docs/aikit/Classes/OpenAIModerationItem.md
index 46a5ca2a73afb6..75747a27205c15 100644
--- a/docs/aikit/Classes/OpenAIModerationItem.md
+++ b/docs/aikit/Classes/OpenAIModerationItem.md
@@ -5,7 +5,7 @@ title: OpenAIModerationItem
# OpenAIModerationItem
-https://platform.openai.com/docs/api-reference/moderations/object#moderations/object-results
+https://developers.openai.com/api/reference/resources/moderations#moderations/object-results
## Properties
diff --git a/docs/aikit/Classes/OpenAIModerationsAPI.md b/docs/aikit/Classes/OpenAIModerationsAPI.md
index 7a0efb7d8ef817..099c7e20c762a5 100644
--- a/docs/aikit/Classes/OpenAIModerationsAPI.md
+++ b/docs/aikit/Classes/OpenAIModerationsAPI.md
@@ -7,7 +7,7 @@ title: OpenAIModerationsAPI
The `OpenAIModerationsAPI` is responsible for classifying if text and/or image inputs are potentially harmful.
-https://platform.openai.com/docs/api-reference/moderations
+https://developers.openai.com/api/reference/resources/moderations
## Functions
@@ -24,7 +24,7 @@ https://platform.openai.com/docs/api-reference/moderations
Classifies whether the input is potentially harmful.
-https://platform.openai.com/docs/api-reference/moderations/create
+https://developers.openai.com/api/reference/resources/moderations/methods/create
## Examples
@@ -40,4 +40,4 @@ var $result:=$client.moderation.create("Some text to classify"; "omni-moderation
var $messages:=[{type: "text"; text: "...text to classify goes here..."}; \
{type: "image_url"; image_url: {url: "https://example.com/image.png"}}]
var $result:=$client.moderation.create($messages; "omni-moderation-latest"; $parameters)
-```
\ No newline at end of file
+```
diff --git a/docs/aikit/Classes/OpenAIParameters.md b/docs/aikit/Classes/OpenAIParameters.md
index fb8f519149da6b..efeccbdaddb842 100644
--- a/docs/aikit/Classes/OpenAIParameters.md
+++ b/docs/aikit/Classes/OpenAIParameters.md
@@ -15,16 +15,16 @@ Use this callback property to receive the result regardless of success or error:
| Property | Type | Description |
|-------------------|---------|---------------------------------------------------------------------------------------------------------------------------------|
-| `onTerminate` (or `formula`) | 4D.Function| A function to be called asynchronously when finished. Ensure that the current process does not terminate. |
+| `onTerminate` (or `formula`) | 4D.Function| A function to be called asynchronously when finished. *Ensure that the current process does not terminate.* |
Use these callback properties for more granular control over success and error handling:
| Property | Type | Description |
|-------------------|---------|---------------------------------------------------------------------------------------------------------------------------------|
-| `onResponse` | 4D.Function| A function to be called asynchronously when the request finishes **successfully**. Ensure that the current process does not terminate. |
-| `onError` | 4D.Function| A function to be called asynchronously when the request finishes **with errors**. Ensure that the current process does not terminate. |
+| `onResponse` | 4D.Function| A function to be called asynchronously when the request finishes **successfully**. *Ensure that the current process does not terminate.* |
+| `onError` | 4D.Function| A function to be called asynchronously when the request finishes **with errors**. *Ensure that the current process does not terminate.* |
-> 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.
+> 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)
@@ -35,7 +35,7 @@ See [documentation about asynchronous code for examples](../asynchronous-call.md
| `timeout` | Real | Overrides the client-level default timeout for the request, in seconds. Default is 0. |
| `httpAgent` | HTTPAgent| Overrides the client-level default HTTP agent for the request. |
| `maxRetries` | Integer | The maximum number of retries for the request. (Only if code not asynchrone ie. no function provided) |
-| `extraHeaders` | Object | Extra headers to send with the request. |
+| `extraHeaders` | Object | Extra headers to send with the request. |
### OpenAPI Properties
diff --git a/docs/aikit/Classes/OpenAIProviders.md b/docs/aikit/Classes/OpenAIProviders.md
index eb44ac8ad9be5b..1e571392b8c515 100644
--- a/docs/aikit/Classes/OpenAIProviders.md
+++ b/docs/aikit/Classes/OpenAIProviders.md
@@ -3,7 +3,6 @@ id: openaiproviders
title: OpenAIProviders
---
-
# OpenAIProviders
## Summary
@@ -28,7 +27,7 @@ The `OpenAI` class automatically loads provider configurations when instantiated
var $providers := cs.AIKit.OpenAIProviders.new()
```
-Creates a new instance that loads provider configuration from the `AIProviders.json` file (see [**Configuration Files**](../provider-model-aliases.md#configuration-files) in the "Provider Model Aliases" page for details on file locations and format).
+Creates a new instance that loads provider configuration from the `AIProviders.json` file. See [Configuration Files](../provider-model-aliases.md#configuration-files) in the Provider Model Aliases documentation for details on file locations and format.
**Important:**
@@ -137,9 +136,6 @@ For each ($model; $models)
End for each
```
-
-
-
## Model Resolution
Two syntaxes are supported for model resolution:
@@ -159,21 +155,18 @@ This is resolved internally to:
3. Extract `baseURL` and `apiKey`
4. Make the API request using the resolved configuration
-
**Examples:**
- `"openai:gpt-5.1"` → Use OpenAI provider with gpt-5.1 model
- `"anthropic:claude-3-opus"` → Use Anthropic provider with claude-3-opus
- `"local:llama3"` → Use local provider with llama3 model
-
### Model alias (bare name)
-
Use a named model by its bare name from the `models` section of the configuration:
```4d
var $client := cs.AIKit.OpenAI.new()
-$client.chat.completions.create($messages; {model: ":my-gpt"})
+$client.chat.completions.create($messages; {model: "my-gpt"})
```
This is resolved internally to:
@@ -185,4 +178,3 @@ This is resolved internally to:
**Examples:**
- `"my-gpt"` → Use the model alias "my-gpt" (resolves to its configured provider and model)
- `"my-embedding"` → Use the model alias "my-embedding" for embedding operations
-
diff --git a/docs/aikit/Classes/OpenAIResult.md b/docs/aikit/Classes/OpenAIResult.md
index 6a2814d94d705c..5ea117af34360e 100644
--- a/docs/aikit/Classes/OpenAIResult.md
+++ b/docs/aikit/Classes/OpenAIResult.md
@@ -23,14 +23,26 @@ The `OpenAIResult` class is designed to handle the response from HTTP requests a
| `terminated`| Boolean | A Boolean indicating whether the HTTP request was terminated. |
| `headers` | Object | Returns the response headers as an object. |
| `rateLimit` | Object | Returns rate limit information from the response headers. |
-| `usage` | Object | Returns usage information from the response body if any. |
+| `usage` | Object | Returns usage information (token counts) from the response body if any. |
+
+### usage
+
+The `usage` property returns an object containing token usage information from the API response. The structure varies depending on the API endpoint used.
+
+> **Note:** Different OpenAI-compatible services may return different fields in the usage object. The structure documented here is based on OpenAI's API. Not all fields may be present in responses from other providers.
+
+See the specific result class documentation for endpoint-specific usage structures:
+- [OpenAIChatCompletionsResult](OpenAIChatCompletionsResult.md#usage) - Chat completions usage
+- [OpenAIChatCompletionsStreamResult](OpenAIChatCompletionsStreamResult.md#usage) - Streaming chat usage
+- [OpenAIEmbeddingsResult](OpenAIEmbeddingsResult.md#usage) - Embeddings usage
+- [OpenAIImagesResult](OpenAIImagesResult.md#usage) - Image generation usage
### 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.
-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).
+For more details on rate limits and the specific headers used, refer to [the OpenAI Rate Limits Documentation](https://developers.openai.com/api/docs/guides/rate-limits#rate-limits-in-headers).
The structure of the `rateLimit` object is as follows:
diff --git a/docs/aikit/Classes/OpenAITool.md b/docs/aikit/Classes/OpenAITool.md
index 931c8122bbdf56..6d8ba8baeadcbc 100644
--- a/docs/aikit/Classes/OpenAITool.md
+++ b/docs/aikit/Classes/OpenAITool.md
@@ -51,7 +51,7 @@ Creates a new OpenAITool instance. The constructor accepts both simplified forma
**Simplified format:**
```4d
-var $tool := cs.OpenAITool.new({ \
+var $tool := cs.AIKit.OpenAITool.new({ \
name: "get_weather"; \
description: "Get current weather for a location"; \
parameters: { \
@@ -67,7 +67,7 @@ var $tool := cs.OpenAITool.new({ \
**OpenAI API format:**
```4d
-var $tool := cs.OpenAITool.new({ \
+var $tool := cs.AIKit.OpenAITool.new({ \
type: "function"; \
strict: True; \
function: { \
@@ -101,4 +101,4 @@ var $parameters := cs.AIKit.OpenAIChatCompletionsParameters.new({ \
- [OpenAIChatCompletionsParameters](OpenAIChatCompletionsParameters.md) - For tool configuration
- [OpenAIChatHelper](OpenAIChatHelper.md) - For automatic tool call handling
-- [OpenAIMessage](OpenAIMessage.md) - For tool call responses
\ No newline at end of file
+- [OpenAIMessage](OpenAIMessage.md) - For tool call responses
diff --git a/docs/aikit/asynchronous-call.md b/docs/aikit/asynchronous-call.md
index 00da6c86817151..9006767ffcc6d5 100644
--- a/docs/aikit/asynchronous-call.md
+++ b/docs/aikit/asynchronous-call.md
@@ -7,7 +7,7 @@ title: Asynchronous Call
If you do not want to wait for the OpenAPI response when making a request to its API, you need to use asynchronous code.
-To make asynchronous calls, you must provide a callback `4D.Function`(`Formula`) in the [OpenAIParameters](Classes/OpenAIParameters.md) object parameter to receive the result.
+To make asynchronous calls, you must provide a callback `4D.Function`(`Formula`) in the [OpenAIParameters](Classes/OpenAIParameters.md) object parameter to receive the result. For streaming chat completion see [OpenAIChatCompletionsParameters](Classes/OpenAIChatCompletionsParameters.md).
The callback function will receive the same result object type (one of [OpenAIResult](Classes/OpenAIResult.md) child classes) that would be returned by the function in synchronous code. See examples below.
@@ -58,3 +58,56 @@ $client.chat.completions.create($messages; { onResponse: Formula(MyChatCompletio
ASSERT($result.success) // We use onResponse here, callback receive only if success
Form.assistantMessage:=$result.choices[0].text
```
+
+### chat completions with streaming
+
+When you want to receive the response progressively as it's being generated (streaming), you can use the `stream` parameter along with an `onData` callback:
+
+```4d
+var $messages:=[{role: "system"; content: "You are a helpful assistant."}]
+$messages.push({role: "user"; content: "Could you explain me why 42 is a special number"})
+
+// Enable streaming and provide onData callback
+$client.chat.completions.create($messages; { \
+ stream: True; \
+ onData: Formula(MyStreamDataReceiveMethod($1)); \
+ onTerminate: Formula(MyStreamTerminateMethod($1)) \
+})
+```
+
+The `onData` callback will be called multiple times as data chunks arrive. `$1` will be an instance of [OpenAIChatCompletionsStreamResult](Classes/OpenAIChatCompletionsStreamResult.md):
+
+```4d
+// MyStreamDataReceiveMethod
+#DECLARE($streamResult: cs.AIKit.OpenAIChatCompletionsStreamResult)
+
+If ($streamResult.success)
+ // Check if we have content in the delta
+ If ($streamResult.choices.length>0)
+ var $choice: Object
+ $choice:=$streamResult.choices[0]
+
+ If ($choice.delta#Null) && ($choice.delta.content#Null)
+ // Append the new content chunk to the existing message
+ Form.assistantMessage:=Form.assistantMessage+$choice.delta.content
+ End if
+ End if
+Else
+ // Handle streaming error
+ ALERT("Streaming error: "+$streamResult.error.message)
+End if
+```
+
+The `onTerminate` callback will be called once when the stream is complete:
+
+```4d
+// MyStreamTerminateMethod
+#DECLARE($result: cs.AIKit.OpenAIChatCompletionsResult)
+
+If ($result.success)
+ // Stream completed successfully
+Else
+ // Handle final error
+ ALERT("Stream terminated with error: "+$result.errors.formula(Formula(JSON Stringify($1))).join("\n"))
+End if
+```
diff --git a/docs/aikit/compatible-openai.md b/docs/aikit/compatible-openai.md
index 847aec12b412c1..b852f5284ac858 100644
--- a/docs/aikit/compatible-openai.md
+++ b/docs/aikit/compatible-openai.md
@@ -28,6 +28,9 @@ Some of them
|https://ai.azure.com/|https://YOUR_RESOURCE_NAME.openai.azure.com|
|[https://www.alibabacloud.com/](https://www.alibabacloud.com/help/en/model-studio/developer-reference/use-qwen-by-calling-api) (qwen)| https://dashscope-intl.aliyuncs.com/compatible-mode/v1|
|https://www.perplexity.ai/|https://api.perplexity.ai|
+|https://x.ai/|https://api.x.ai/v1|
+|https://z.ai/|https://api.z.ai/api/coding/paas/v4|
+|http://cohere.com/|https://api.cohere.ai/compatibility/v1|
## Local
@@ -36,3 +39,4 @@ Some of them
|https://ollama.com/ | http://127.0.0.1:11434/v1 | https://ollama.com/blog/openai-compatibility |
|https://lmstudio.ai/| http://localhost:1234/v1 | https://lmstudio.ai/docs/api/endpoints/openai |
|https://localai.io/ | http://127.0.0.1:8080 | |
+|[llama.cpp](https://github.com/ggml-org/llama.cpp) | http://localhost:8080/v1/ | [llama-server](https://github.com/ggml-org/llama.cpp#llama-server) |
diff --git a/docs/aikit/overview.md b/docs/aikit/overview.md
index 2f94754ba08eec..3b27b6ec4c0f1a 100644
--- a/docs/aikit/overview.md
+++ b/docs/aikit/overview.md
@@ -12,7 +12,7 @@ title: 4D-AIKit
## OpenAI
-The [`OpenAI`](Classes/OpenAI.md) class allows you to make requests to the [OpenAI API](https://platform.openai.com/docs/api-reference/).
+The [`OpenAI`](Classes/OpenAI.md) class allows you to make requests to the [OpenAI API](https://developers.openai.com/api/reference/overview).
### Configuration
@@ -48,11 +48,11 @@ See some examples below.
#### Chat
-https://platform.openai.com/docs/api-reference/chat
+https://developers.openai.com/api/reference/resources/chat
##### Completions
-https://platform.openai.com/docs/api-reference/chat/create
+https://developers.openai.com/api/reference/resources/chat/subresources/completions/methods/create
```4d
var $messages:=[{role: "system"; content: "You are a helpful assistant."}]
@@ -82,7 +82,7 @@ var $result:=$client.chat.vision.create($imageUrl).prompt("give me a description
#### Images
-https://platform.openai.com/docs/api-reference/images
+https://developers.openai.com/api/reference/resources/images
```4d
var $images:=$client.images.generate("A futuristic city skyline at sunset"; {size: "1024x1024"}).images
@@ -90,7 +90,7 @@ var $images:=$client.images.generate("A futuristic city skyline at sunset"; {siz
#### Models
-https://platform.openai.com/docs/api-reference/models
+https://developers.openai.com/api/reference/resources/models
Get full list of models
@@ -106,7 +106,7 @@ var $model:=$client.models.retrieve("a model id").model
#### Files
-https://platform.openai.com/docs/api-reference/files
+https://developers.openai.com/api/reference/resources/files
Upload a file for use with other endpoints
@@ -143,7 +143,7 @@ var $deleteResult:=$client.files.delete($fileId)
#### Moderations
-https://platform.openai.com/docs/api-reference/moderations
+https://developers.openai.com/api/reference/resources/moderations
```4d
var $moderation:=$client.moderations.create("This text contains inappropriate language and offensive behavior.").moderation
diff --git a/docs/aikit/provider-model-aliases.md b/docs/aikit/provider-model-aliases.md
index c3573136d526ea..26a0773e46214f 100644
--- a/docs/aikit/provider-model-aliases.md
+++ b/docs/aikit/provider-model-aliases.md
@@ -3,12 +3,10 @@ id: provider-model-aliases
title: Provider & Model Aliases
---
-
# Provider & Model Aliases
The OpenAI client supports provider and model aliases, allowing you to define provider configurations and named model aliases in JSON files and reference them using simple syntaxes.
-
## Overview
Instead of hard-coding API endpoints and credentials in your code, you can:
@@ -25,7 +23,7 @@ The client automatically loads provider configurations from the first existing f
| Priority | Location | File Path |
|----------|----------|-----------|
| 1 (highest) | userData | `/Settings/AIProviders.json` |
-| 2 | user | `/Settings/AIProviders.json` |
+| 2 | user | `/Settings/AIProviders.json` |
| 3 (lowest) | structure | `/SOURCES/AIProviders.json` |
**Important:** Only the **first existing file** is loaded. There is no merging of multiple files.
@@ -45,7 +43,7 @@ The client automatically loads provider configurations from the first existing f
"models": {
"model_alias_name": {
"provider": "provider_name",
- "model": "actual-model-id",
+ "model": "actual-model-id"
}
}
}
@@ -67,7 +65,6 @@ The client automatically loads provider configurations from the first existing f
| `provider` | Text | Yes | Name of the provider (must exist in `providers`) |
| `model` | Text | Yes | Model ID used by the provider |
-
### Example Configuration
```json
@@ -98,8 +95,7 @@ The client automatically loads provider configurations from the first existing f
},
"my-embedding": {
"provider": "openai",
- "model": "text-embedding-3-small",
- }
+ "model": "text-embedding-3-small"
}
}
}
@@ -113,12 +109,11 @@ Two syntaxes are supported:
| Syntax | Description |
|--------|-------------|
-| `provider:model_name` | Provider alias — specify provider and model directly |
-| `:model_alias` | Model alias — reference a named model from the `models` configuration by bare name |
+| `provider:model_name` | Provider alias — specify provider and model directly |
+| `model_alias` | Model alias — reference a named model from the `models` configuration by bare name |
#### Provider alias syntax
-
Use the `provider:model_name` syntax in any API call that accepts a model parameter:
```4d
@@ -145,14 +140,13 @@ Use a bare model name to reference a named model defined in the `models` section
var $client := cs.AIKit.OpenAI.new()
// Use a named model alias
-var $result := $client.chat.completions.create($messages; {model: ":my-gpt"})
-var $result := $client.chat.completions.create($messages; {model: ":my-claude"})
+var $result := $client.chat.completions.create($messages; {model: "my-gpt"})
+var $result := $client.chat.completions.create($messages; {model: "my-claude"})
// Embeddings with a named model alias
-var $result := $client.embeddings.create("text"; ":my-embedding")
+var $result := $client.embeddings.create("text"; "my-embedding")
```
-
### How It Works
#### Provider alias (`provider:model`)
@@ -168,23 +162,20 @@ When you use the `provider:model` syntax, the client automatically:
3. **Makes the API request** using the resolved configuration
- Sends request to the provider's `baseURL` with the correct `apiKey`
-
#### Model alias (bare name)
When you use a bare model name that matches a configured alias, the client automatically:
1. **Looks up** the model alias in the `models` section of the configuration
- - Example: `":my-gpt"` → finds entry with `provider: "openai"`, `model: "gpt-5.1"`
+ - Example: `"my-gpt"` → finds entry with `provider: "openai"`, `model: "gpt-5.1"`
2. **Resolves** the associated provider to get `baseURL` and `apiKey`
3. **Makes the API request** using the provider's endpoint and the stored model ID
-
### Using Plain Model Names
-If you specify a model name **without** a provider prefix or `:` prefix, the client uses the configuration from its constructor:
-
+If you specify a model name **without** a provider prefix, the client uses the configuration from its constructor:
```4d
// Use constructor configuration
@@ -195,8 +186,7 @@ var $result := $client.chat.completions.create($messages; {model: "gpt-5.1"})
var $result := $client.chat.completions.create($messages; {model: "anthropic:claude-3-opus"})
// Override with model alias (bare name)
-var $result := $client.chat.completions.create($messages; {model: ":my-gpt"})
-
+var $result := $client.chat.completions.create($messages; {model: "my-gpt"})
```
## Examples
@@ -276,7 +266,6 @@ var $client := cs.AIKit.OpenAI.new()
var $result := $client.chat.completions.create($messages; {model: "local:llama3.2"})
```
-
### Named Model Aliases
Define models once, use them everywhere by name:
@@ -304,7 +293,7 @@ Define models once, use them everywhere by name:
},
"embedding": {
"provider": "openai",
- "model": "text-embedding-3-small",
+ "model": "text-embedding-3-small"
}
}
}
@@ -314,9 +303,9 @@ Define models once, use them everywhere by name:
var $client := cs.AIKit.OpenAI.new()
// Use named model aliases — no need to remember provider or model ID
-var $result := $client.chat.completions.create($messages; {model: ":chat"})
-var $result := $client.chat.completions.create($messages; {model: ":fast"})
-var $embedding := $client.embeddings.create("text"; ":embedding")
+var $result := $client.chat.completions.create($messages; {model: "chat"})
+var $result := $client.chat.completions.create($messages; {model: "fast"})
+var $embedding := $client.embeddings.create("text"; "embedding")
```
### List All Configured Models
@@ -327,7 +316,6 @@ var $models := $providers.modelAliases()
// Returns: [{name: "chat", provider: "openai", model: "gpt-5.1"}, ...]
```
-
### Production with Multiple Cloud Providers
```json
diff --git a/docs/assets/en/FormObjects/colors1.png b/docs/assets/en/FormObjects/colors1.png
new file mode 100644
index 00000000000000..fc0759ba0abc00
Binary files /dev/null and b/docs/assets/en/FormObjects/colors1.png differ
diff --git a/docs/assets/en/FormObjects/colors2.png b/docs/assets/en/FormObjects/colors2.png
new file mode 100644
index 00000000000000..48d25eafd90071
Binary files /dev/null and b/docs/assets/en/FormObjects/colors2.png differ
diff --git a/docs/assets/en/FormObjects/multistyle-ex1.png b/docs/assets/en/FormObjects/multistyle-ex1.png
new file mode 100644
index 00000000000000..715de8bdb44813
Binary files /dev/null and b/docs/assets/en/FormObjects/multistyle-ex1.png differ
diff --git a/docs/assets/en/FormObjects/multistyle-ex2.png b/docs/assets/en/FormObjects/multistyle-ex2.png
new file mode 100644
index 00000000000000..2ea1e2de1b9d12
Binary files /dev/null and b/docs/assets/en/FormObjects/multistyle-ex2.png differ
diff --git a/docs/commands-legacy/on-web-connection-database-method.md b/docs/commands-legacy/on-web-connection-database-method.md
index 9fc4c87ddcf86f..f514efb2440d66 100644
--- a/docs/commands-legacy/on-web-connection-database-method.md
+++ b/docs/commands-legacy/on-web-connection-database-method.md
@@ -43,7 +43,7 @@ You must declare these parameters as shown below:
```4d
// On Web Connection Database Method
-#DECLARE($url : Text ; $http : Text ; $ipBrowser : Text ; $ipServer : Text ;\ $user : Text ; $pw : Text)
+#DECLARE($url : Text ; $http : Text ; $ipBrowser : Text ; $ipServer : Text ; $user : Text ; $pw : Text)
// Code for the method
```
diff --git a/docs/commands/theme/Styled_Text.md b/docs/commands/theme/Styled_Text.md
index 669252bc519127..2c9583e9ae1f9b 100644
--- a/docs/commands/theme/Styled_Text.md
+++ b/docs/commands/theme/Styled_Text.md
@@ -23,3 +23,96 @@ slug: /commands/theme/Styled-Text
|[](../../commands/st-set-options) |
|[](../../commands/st-set-plain-text) |
|[](../../commands/st-set-text) |
+
+
+## Working with text handling commands
+
+### User interface
+
+The commands that can be used to manipulate text objects by programming do not take any style tags integrated into the text into account. They act upon displayed text only. This concerns the following commands:
+
+- [User Interface](./User_Interface.md) theme commands
+- [`HIGHLIGHT TEXT`](../../commands/highlight-text)
+- [`GET HIGHLIGHT`](../../commands/get-highlight)
+
+When you use these commands with commands that manipulate character strings, it is necessary to filter the formatting characters using the [`ST Get plain text`](../../commands/st-get-plain-text) command:
+
+```4d
+ HIGHLIGHT TEXT([Products]Notes;1;Length(ST Get plain text([Products]Notes))+1)
+```
+
+### Objects (Forms)
+
+The commands that can be used to modify the style of objects (for example, [`OBJECT SET FONT`](../../commands/object-set-font)) apply to the whole object and not to the selection.
+
+If the object does not have the focus when the command is executed, the modification is applied simultaneously to the object (the text area) and to its associated variable. If the object does have the focus, the modification is carried out on the object but not on the associated variable. The modification is only applied to the variable when the object loses the focus. Keep this principle in mind when programming text areas.
+
+:::note
+
+If the [**Store with default style tags**](../../FormObjects/properties_Text.md#store-with-default-style-tags) option is checked for the object, the use of these commands will cause a modification of the tags saved with each object.
+
+:::
+
+
+Note also that only default properties are affected by these commands (as well as any properties saved by means of default tags). Custom style tags remain as they are. For example, given a multi-style area where default tags were saved:
+
+
+
+The plain text of the area is as follows:
+
+```html
+This is the word red
+```
+
+If you execute the following code:
+
+```4d
+OBJECT SET COLOR(*;"myArea";-(Blue+(256*Yellow)))
+```
+
+The red color remains:
+
+
+
+and code is:
+
+```html
+This is the word red
+```
+
+The following commands are concerned:
+
+- [`OBJECT SET RGB COLORS`](../../commands/object-set-rgb-colors)
+- [`OBJECT SET FONT`](../../commands/object-set-font)
+- [`OBJECT SET FONT STYLE`](../../commands/object-set-font-style)
+- [`OBJECT SET FONT SIZE`](../../commands/object-set-font-size)
+
+In the context of multi-style areas, such commands should be used to set default styles only. To manage styles during database execution, we recommend using the commands of the "Styled Text" theme.
+
+### Get edited text
+
+When it is used with a rich text area, the [`Get edited text`](../../commands/get-edited-text) command returns the text of the current area including any style tags.
+
+To retrieve the "plain" text (text without tags) being edited, you must use the [`ST Get plain text`](../../commands/st-get-plain-text) command:
+
+```4d
+ST Get plain text(Get edited text)
+```
+
+### Query and order by commands
+
+Queries and sorts carried out among multi-style objects take into account any style tags saved in the object. If a style modification has been made within a word, searching for the word will not be successful.
+
+To be able to carry out valid searches and sorts, you must use the [`ST Get plain text`](../../commands/st-get-plain-text) command. For example:
+
+```4d
+QUERY BY FORMULA([MyTable];ST Get plain text([MyTable]MyFieldStyle)="very well")
+```
+
+## Automatic normalization of line endings
+
+In order to ensure multi-platform compatibility of texts handled in the database, 4D automatically normalizes line endings so that they occupy a single character: `\r` (carriage return). This normalization is carried out at the level of form objects (variables or fields) hosting plain or multi-style text. Line endings that are not native, or that use a mix of several characters (for example `\r\n`), are considered as a single `\r`.
+
+Note that in compliance with the XML standard (multi-style text format), the multi-style text commands also normalize line endings for text variables that are not associated with objects.
+
+This principle makes it easier to use multi-style text commands or commands such as [`HIGHLIGHT TEXT`](../../commands/highlight-text) in a multi-platform context. However, you must take this into account in your processing when you work with texts from heterogeneous sources.
\ No newline at end of file
diff --git a/docs/commands/theme/System_Documents.md b/docs/commands/theme/System_Documents.md
index 66efd631190f9a..9bcf5380e29c9a 100644
--- a/docs/commands/theme/System_Documents.md
+++ b/docs/commands/theme/System_Documents.md
@@ -67,48 +67,66 @@ When it is called from a [preemptive process](../../Develop/preemptive.md), a *D
## The Document system variable
-`Open document`, `Create document`, `Append document` and `Select document` enable you to access a document using the standard Open or Save file dialog boxes. When you access a document through a standard dialog, 4D returns the full pathname of the document in the [`Document` system variable](../../Concepts/variables.md#system-variables). This system variable has to be distinguished from the *document* parameter that appears in the parameter list of the commands.
+[`Open document`](../../commands/open-document), [`Create document`](../../commands/create-document), [`Append document`](../../commands/append-document`) and [`Select document`](../../commands/select-document) commands enable you to access a document using the standard Open or Save file dialog boxes. When you access a document through a standard dialog, 4D returns the full pathname of the document in the [`Document` system variable](../../Concepts/variables.md#system-variables). This system variable has to be distinguished from the *document* parameter that appears in the parameter list of the commands.
## Absolute or relative pathname
-Most of the routines of this section accept document names, relative pathnames or absolute pathnames:
+Most of the routines of this section accept **document names**, **relative pathnames** or **absolute pathnames**.
+
+- **Relative pathnames** define a location with respect to a folder located on disk. Passing only a document name is considered as using a relative pathname. In 4D, a relative pathname is usually expressed with respect to the [project folder](../../Project/architecture.md#project-folder), i.e. the folder containing the .project file. Relative pathnames are especially useful when deploying applications in heterogenous environments.
+- **Absolute pathnames** define a location with respect to the root of the volume and so they do not depend on the current location of the project folder.
-Relative pathnames define a location with respect to a folder located on disk. Passing only a document name is considered as using a relative pathname. In 4D, a relative pathname is usually expressed with respect to the database folder, i.e. the folder containing the structure file. Relative pathnames are especially useful when deploying applications in heterogenous environments.
-Absolute pathnames define a location with respect to the root of the volume and so they do not depend on the current location of the database folder.
To determine whether a pathname passed to a command must be interpreted as absolute or relative, 4D applies a specific algorithm on each platform.
-Windows
-If the parameter contains only two characters and if the second one is a ':',
- or if the text contains ':' and '\' as the second and third character,
- or if the text starts with "\\",
-then the pathname is absolute.
+### Windows
+
+- If the parameter contains only two characters and if the second one is a ':'
+- or if the text contains ':' and '\' as the second and third character,
+- or if the text starts with "\\",
+- then the pathname is absolute.
In all other cases, the pathname is relative.
-Examples with the CREATE FOLDER command:
+Examples with the [`CREATE FOLDER`](../../commands/create-folder) command:
+```4d
CREATE FOLDER("lundi") // relative path
CREATE FOLDER("\Monday") // relative path
CREATE FOLDER("\Monday\Tuesday") // relative path
CREATE FOLDER("c:") // absolute path
CREATE FOLDER("d:\Monday") // absolute path
CREATE FOLDER("\\srv-Internal\temp") // absolute path
+```
+
+:::note
+
+The code editor of 4D allows the use of [escape sequences](../../Concepts/quick-tour.md#escape-sequences). An escape sequence begins with a backslash `\`, followed by a character. For example, `\t` is the escape sequence for the Tab character.
+
+The `\` character is also used as the separator in pathnames in Windows. In general, 4D will correctly interpret Windows pathnames that are entered in the method editor by replacing single backslashes `\` with double backslashes `\\`. For example, `C:\Folder` will become `C:\\Folder`.
-macOS
-If the text starts with a folder separator ':',
- or if does not contain any,
-then the path is relative.
+However, if you write `C:\MyDocuments\New`, 4D will display `C:\\MyDocuments\New`. In this case, the second `\` is incorrectly interpreted as `\N` (an existing escape sequence). You must therefore enter a double `\\` when you want to insert a backslash before a character that is used in one of the escape sequences recognized by 4D.
+
+:::
+
+### macOS
+
+- If the text starts with a folder separator ':',
+- or if does not contain any,
+- then the path is relative.
In all other cases, it is absolute.
-Examples with the CREATE FOLDER command:
+Examples with the [`CREATE FOLDER`](../../commands/create-folder) command:
+
+```4d
CREATE FOLDER("Monday") // relative path
CREATE FOLDER("macintosh hd:") // absolute path
CREATE FOLDER("Monday:Tuesday") // absolute path (a volume must be called Monday)
CREATE FOLDER(":Monday:Tuesday") // relative path
+```
:::note
@@ -118,8 +136,8 @@ See also [**Absolute and relative pathnames** in the Concepts section](../../Con
## Extracting pathname contents
-You can handle pathname contents using the Path to object and Object to path commands. In particular, using these commands, you can extract from a pathname:
+You can handle pathname contents using the [`Path to object`](../../commands/path-to-object) and [`Object to path`](../../commands/object-to-path) commands. In particular, using these commands, you can extract from a pathname:
-a file name,
-the parent folder path,
-the file or folder extension.
\ No newline at end of file
+- a file name,
+- the parent folder path,
+- the file or folder extension.
\ No newline at end of file
diff --git a/docs/commands/theme/Web_Services_Client.md b/docs/commands/theme/Web_Services_Client.md
index 683fc77569c1ca..052b6283b0839b 100644
--- a/docs/commands/theme/Web_Services_Client.md
+++ b/docs/commands/theme/Web_Services_Client.md
@@ -14,3 +14,10 @@ slug: /commands/theme/Web-Services-Client
|[](../../commands/web-service-get-result) |
|[](../../commands/web-service-set-option) |
|[](../../commands/web-service-set-parameter) |
+
+
+A Web Service is a set of functions published on a network. These functions can be called and used by any application compatible with Web Services and connected to the network. Web Services can carry out all types of tasks, such as supervising the routing of packages at a transporter’s, e-commerce, monitoring market values, etc.
+
+Subscription to Web Services with 4D is easy to carry out using the [Web Services Wizard](https://doc.4d.com/4Dv21/4D/21/Subscribing-to-a-Web-Service-in-4D.300-7676804.en.html). In most cases, this Wizard will be sufficient for you to be able to use Web Services. However, if you want to customize certain mechanisms, you must use the client SOAP commands of 4D.
+
+Note: By convention, the terms “SOAP” and “Web Service” have been used to differentiate between command (and constant) names on the server and client side, respectively. These two concepts refer to the same technology.
\ No newline at end of file
diff --git a/docs/commands/theme/Web_Services_Server.md b/docs/commands/theme/Web_Services_Server.md
index f5ae3fd7397f47..cdcf0ff83dbddb 100644
--- a/docs/commands/theme/Web_Services_Server.md
+++ b/docs/commands/theme/Web_Services_Server.md
@@ -13,3 +13,8 @@ slug: /commands/theme/Web-Services-Server
|[](../../commands/soap-reject-new-requests) |
|[](../../commands/soap-request) |
|[](../../commands/soap-send-fault) |
+
+
+Publication of Web Services with 4D is carried out easily using [options in the method properties](../../Project/project-method-properties.md#web-services). In most cases, this operation will be sufficient to enable you to publish Web Services. However, if you want to customize certain mechanisms, use data arrays, etc., you must use the server SOAP commands of 4D.
+
+Note: By convention, the terms “SOAP” and “Web Service” have been used to differentiate between command (and constant) names on the server and client side, respectively. These two concepts refer to the same technology.
\ No newline at end of file
diff --git a/docs/commands/theme/XML.md b/docs/commands/theme/XML.md
index b592bec6d156ea..2f4d31f420401e 100644
--- a/docs/commands/theme/XML.md
+++ b/docs/commands/theme/XML.md
@@ -17,7 +17,7 @@ slug: /commands/theme/XML
:::note
-For XML support, 4D uses a library named Xerces.dll developed by the Apache Foundation company.
+For XML support, 4D uses the [Xerces.dll library](../../Notes/updates.md#library-table) developed by the Apache Foundation company.
:::
diff --git a/docs/language-legacy/4D Environment/open-settings-window.md b/docs/language-legacy/4D Environment/open-settings-window.md
index a89eee42bbf127..0a12bb637e5c52 100644
--- a/docs/language-legacy/4D Environment/open-settings-window.md
+++ b/docs/language-legacy/4D Environment/open-settings-window.md
@@ -34,13 +34,13 @@ displayed_sidebar: docs
## Description
-The **OPEN SETTINGS WINDOW** command opens the Preferences dialog box of 4D or the Database Settings of the current 4D application and displays the parameters or the page corresponding to the key passed in *selector*.
+The **OPEN SETTINGS WINDOW** command opens the Preferences dialog box of 4D or the Settings of the current 4D application and displays the parameters or the page corresponding to the key passed in *selector*.
-The *selector* parameter must contain a “key” indicating the dialog box and the page to opened. This key is constructed as follows: */Dialog{/Page{/Parameters}}*. *Dialog* indicates the dialog box to be displayed: you can pass "4D" (for the Preferences) or "Database" (for Database Settings). For example, to indicate the Compiler page of the Database Settings, *selector* should contain "*/Database/Compiler*". The list of keys that can be used is provided below. If you just pass a slash ("/") in *selector*, the command displays the first page of the Database Settings dialog box.
+The *selector* parameter must contain a “key” indicating the dialog box and the page to opened. This key is constructed as follows: */Dialog{/Page{/Parameters}}*. *Dialog* indicates the dialog box to be displayed: you can pass "4D" (for the Preferences) or "Database" (for Database Settings). For example, to indicate the [Compiler page of the Settings](../../settings/compiler.md), *selector* should contain "*/Database/Compiler*". The list of keys that can be used is provided below. If you just pass a slash ("/") in *selector*, the command displays the first page of the Database Settings dialog box.
-The *access* parameter lets you control user actions in the Preferences or Database Settings dialog box by locking the other pages. Typically, you may want for the user to be able to customize certain parameters while preventing others from being modified. In this case, passing True in the *access* parameter means that only the page specified by the *selector* parameter will be active and modifiable, while access to all other pages will be locked (clicking on the buttons in the navigation bar will have no effect). If you pass False or omit the *access* parameter, all the pages of the dialog box will be accessible with no restriction.
+The *access* parameter lets you control user actions in the Preferences or Settings dialog box by locking the other pages. Typically, you may want for the user to be able to customize certain parameters while preventing others from being modified. In this case, passing True in the *access* parameter means that only the page specified by the *selector* parameter will be active and modifiable, while access to all other pages will be locked (clicking on the buttons in the navigation bar will have no effect). If you pass False or omit the *access* parameter, all the pages of the dialog box will be accessible with no restriction.
-The *settingsType* parameter is taken into account in databases configured in "User settings" mode only (in this mode, custom "User settings" or "User settings for data file" are generated in an external file and used instead of the standard settings, see the *Using user settings* section in the *Design Reference* manual). In this context, this parameter lets you indicate whether you want to access the "Structure settings", the "User settings", or the "User settings for data file" dialog box. You pass one of the following constants, found in the "*4D Environment*" theme:
+The *settingsType* parameter is taken into account in databases configured in "User settings" mode only (in this mode, custom "User settings" or "User settings for data file" are generated in an external file and used instead of the standard settings, see the [*Using user settings* section](../../settings/overview.md#user-settings)). In this context, this parameter lets you indicate whether you want to access the "Structure settings", the "User settings", or the "User settings for data file" dialog box. You pass one of the following constants, found in the "*4D Environment*" theme:
| Constant | Type | Value | Comment |
| ---------------------- | ------- | ----- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -54,6 +54,7 @@ If you pass an invalid key, the first page of the Database Settings dialog box i
Here are the keys that can be used in the *selector* parameter in standard mode, in other words with the "Structure settings":
+```
*/4D*
*/4D/General*
*/4D/Structure*
@@ -89,6 +90,7 @@ Here are the keys that can be used in the *selector* parameter in standard mode,
*/Database/SQL*
*/Database/Compatibility*
*/Database/Security*
+```
**Compatibility note:** You can still use keys defined for 4D versions 11.x or previous using this command; 4D automatically establishes the correspondence. However, we recommend that you replace the former calls with the keys listed above.
@@ -96,6 +98,7 @@ Here are the keys that can be used in the *selector* parameter in standard mode,
Here are the keys that can be used in the *selector* parameter in "User settings" and "User settings for data" modes:
+```
*/Database*
*/Database/Interface*
*/Database/Database/Memory and cpu*
@@ -110,13 +113,16 @@ Here are the keys that can be used in the *selector* parameter in "User settings
*/Database/Web/Log scheduler*
*/Database/Web/Webservices*
*/Database/SQL*
+```
Addtional keys in "User settings for data" mode:
+```
*/Database/Backup*
*/Database/Backup/Scheduler*
*/Database/Backup/Configuration*
*/Database/Backup/Backup and restore*
+```
## Example 1
diff --git a/docs/language-legacy/Objects (Forms)/object-get-pointer.md b/docs/language-legacy/Objects (Forms)/object-get-pointer.md
index 7d4ca4366b84fb..d8ecbf78db51a8 100644
--- a/docs/language-legacy/Objects (Forms)/object-get-pointer.md
+++ b/docs/language-legacy/Objects (Forms)/object-get-pointer.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-pointer
displayed_sidebar: docs
---
-**OBJECT Get pointer** ( *selector* : Integer {; *objectName* : Text {; *subformName* : Text}}) : Pointer
+**OBJECT Get pointer** ( {*selector* : Integer {; *objectName* : Text {; *subformName* : Text}}} ) : Pointer
| Parameter | Type | | Description |
| --- | --- | --- | --- |
-| data | Field | → | Numeric field or variable to return subtotal |
+| data | Field, Variable | → | Numeric field or variable to return subtotal |
| pageBreak | Integer | → | Break level for which to cause a page break |
| Function result | Real | ← | Subtotal of data |
diff --git a/docs/language-legacy/Queries/set-query-and-lock.md b/docs/language-legacy/Queries/set-query-and-lock.md
index d60bcb98927acf..c29706aad68924 100644
--- a/docs/language-legacy/Queries/set-query-and-lock.md
+++ b/docs/language-legacy/Queries/set-query-and-lock.md
@@ -31,7 +31,7 @@ displayed_sidebar: docs
By default, the records found by queries are not locked. Pass **True** in the *lock* parameter to activate locking.
-It is imperative for this command to be used within a transaction. If it is called outside of this context, an error is generated. This allows for better control of record locking. The records found will stay locked as long as the transaction has not been terminated (whether validated or cancelled). After the transaction is completed, all the records are unlocked, except the current record.
+It is imperative for this command to be used within a transaction. If it is called outside of this context, it is ignored. This allows for better control of record locking. The records found will stay locked as long as the transaction has not been terminated (whether validated or cancelled). After the transaction is completed, all the records are unlocked, except the current record.
The records are locked for all the tables in the current transaction.
diff --git a/docs/language-legacy/User Interface/redraw.md b/docs/language-legacy/User Interface/redraw.md
index 0ac3d0ec76d900..d272e47b0e65e3 100644
--- a/docs/language-legacy/User Interface/redraw.md
+++ b/docs/language-legacy/User Interface/redraw.md
@@ -5,13 +5,14 @@ slug: /commands/redraw
displayed_sidebar: docs
---
-**REDRAW** ( *object* : any )
+**REDRAW** ( *aTable* : Table ) **REDRAW** ( *object* : Field, Variable )
| Parameter | Type | | Description |
| --- | --- | --- | --- |
-| object | any | → | Table for which to redraw the subform, or Field for which to redraw the area, or Variable for which to redraw the area, or List box to be updated |
+| aTable | Table | → | Table for which to redraw the subform |
+| object | Field, Variable | → | Field or Variable for which to redraw the area, or List box to be updated |
diff --git a/docs/language-legacy/Web Server/web-validate-digest.md b/docs/language-legacy/Web Server/web-validate-digest.md
index 14e206d49b6f53..0c9f9d0974d6f3 100644
--- a/docs/language-legacy/Web Server/web-validate-digest.md
+++ b/docs/language-legacy/Web Server/web-validate-digest.md
@@ -46,7 +46,7 @@ Example using *On Web Authentication Database Method* in Digest mode:
```4d
// On Web Authentication Database Method
- #DECLARE($url : Text ; $http : Text ; $ipBrowser : Text ; $ipServer : Text ;\ $user : Text ; $pw : Text) -> $result : Boolean
+ #DECLARE($url : Text ; $http : Text ; $ipBrowser : Text ; $ipServer : Text ; $user : Text ; $pw : Text) -> $result : Boolean
$result:=False
$user:=$5
//For security reasons, refuse names containing @
diff --git a/docs/language-legacy/Windows/window-process.md b/docs/language-legacy/Windows/window-process.md
index 648cae5e398a17..41c112c3dd8474 100644
--- a/docs/language-legacy/Windows/window-process.md
+++ b/docs/language-legacy/Windows/window-process.md
@@ -5,7 +5,7 @@ slug: /commands/window-process
displayed_sidebar: docs
---
-**Window process** ( *window* : Integer ) : Integer
+**Window process** ( {*window* : Integer} ) : Integer
diff --git a/docs/language-legacy/XML DOM/dom-get-first-child-xml-element.md b/docs/language-legacy/XML DOM/dom-get-first-child-xml-element.md
index 0460a25168c6dd..79fee191bdc26f 100644
--- a/docs/language-legacy/XML DOM/dom-get-first-child-xml-element.md
+++ b/docs/language-legacy/XML DOM/dom-get-first-child-xml-element.md
@@ -5,7 +5,7 @@ slug: /commands/dom-get-first-child-xml-element
displayed_sidebar: docs
---
-**DOM Get first child XML element** ( *elementRef* : Text {; *childElemName* : Text {; *childElemValue* : Text}} ) : Text
+**DOM Get first child XML element** ( *elementRef* : Text {; *childElemName* : Text {; *childElemValue* : any}} ) : Text
@@ -13,7 +13,7 @@ displayed_sidebar: docs
| --- | --- | --- | --- |
| elementRef | Text | → | XML element reference |
| childElemName | Text | ← | Name of child XML element |
-| childElemValue | Text | ← | Value of child XML element |
+| childElemValue | any | ← | Value of child XML element |
| Function result | Text | ← | Child XML element reference |
diff --git a/docs/language-legacy/XML DOM/dom-get-last-child-xml-element.md b/docs/language-legacy/XML DOM/dom-get-last-child-xml-element.md
index ff556e341879b1..a7458136760729 100644
--- a/docs/language-legacy/XML DOM/dom-get-last-child-xml-element.md
+++ b/docs/language-legacy/XML DOM/dom-get-last-child-xml-element.md
@@ -5,7 +5,7 @@ slug: /commands/dom-get-last-child-xml-element
displayed_sidebar: docs
---
-**DOM Get last child XML element** ( *elementRef* : Text {; *childElemName* : Text {; *childElemValue* : Text}} ) : Text
+**DOM Get last child XML element** ( *elementRef* : Text {; *childElemName* : Text {; *childElemValue* : any}} ) : Text
@@ -13,7 +13,7 @@ displayed_sidebar: docs
| --- | --- | --- | --- |
| elementRef | Text | → | XML element reference |
| childElemName | Text | ← | Name of child element |
-| childElemValue | Text | ← | Value of child element |
+| childElemValue | any | ← | Value of child element |
| Function result | Text | ← | XML element reference |
diff --git a/docs/language-legacy/XML DOM/dom-get-next-sibling-xml-element.md b/docs/language-legacy/XML DOM/dom-get-next-sibling-xml-element.md
index 50c438c3905b9f..6a3f783f357e14 100644
--- a/docs/language-legacy/XML DOM/dom-get-next-sibling-xml-element.md
+++ b/docs/language-legacy/XML DOM/dom-get-next-sibling-xml-element.md
@@ -5,7 +5,7 @@ slug: /commands/dom-get-next-sibling-xml-element
displayed_sidebar: docs
---
-**DOM Get next sibling XML element** ( *elementRef* : Text {; *siblingElemName* : Text {; *siblingElemValue* : Text}} ) : Text
+**DOM Get next sibling XML element** ( *elementRef* : Text {; *siblingElemName* : Text {; *siblingElemValue* : any}} ) : Text
@@ -13,7 +13,7 @@ displayed_sidebar: docs
| --- | --- | --- | --- |
| elementRef | Text | → | XML element reference |
| siblingElemName | Text | ← | Name of sibling XML element |
-| siblingElemValue | Text | ← | Value of sibling XML element |
+| siblingElemValue | any | ← | Value of sibling XML element |
| Function result | Text | ← | Sibling XML element reference |
diff --git a/docs/language-legacy/XML DOM/dom-get-parent-xml-element.md b/docs/language-legacy/XML DOM/dom-get-parent-xml-element.md
index ee1a55721e1866..e79a212ef0b2f6 100644
--- a/docs/language-legacy/XML DOM/dom-get-parent-xml-element.md
+++ b/docs/language-legacy/XML DOM/dom-get-parent-xml-element.md
@@ -5,7 +5,7 @@ slug: /commands/dom-get-parent-xml-element
displayed_sidebar: docs
---
-**DOM Get parent XML element** ( *elementRef* : Text {; *parentElemName* : Text {; *parentElemValue* : Text}} ) : Text
+**DOM Get parent XML element** ( *elementRef* : Text {; *parentElemName* : Text {; *parentElemValue* : any}} ) : Text
@@ -13,7 +13,7 @@ displayed_sidebar: docs
| --- | --- | --- | --- |
| elementRef | Text | → | XML element reference |
| parentElemName | Text | ← | Name of parent XML element |
-| parentElemValue | Text | ← | Value of parent XML element |
+| parentElemValue | any | ← | Value of parent XML element |
| Function result | Text | ← | Parent XML element reference |
diff --git a/docs/language-legacy/XML DOM/dom-get-previous-sibling-xml-element.md b/docs/language-legacy/XML DOM/dom-get-previous-sibling-xml-element.md
index d54ab8a4ed2ed3..cd13492c9665b4 100644
--- a/docs/language-legacy/XML DOM/dom-get-previous-sibling-xml-element.md
+++ b/docs/language-legacy/XML DOM/dom-get-previous-sibling-xml-element.md
@@ -5,7 +5,7 @@ slug: /commands/dom-get-previous-sibling-xml-element
displayed_sidebar: docs
---
-**DOM Get previous sibling XML element** ( *elementRef* : Text {; *siblingElemName* : Text {; *siblingElemValue* : Text}} ) : Text
+**DOM Get previous sibling XML element** ( *elementRef* : Text {; *siblingElemName* : Text {; *siblingElemValue* : any}} ) : Text
@@ -13,7 +13,7 @@ displayed_sidebar: docs
| --- | --- | --- | --- |
| elementRef | Text | → | XML element reference |
| siblingElemName | Text | ← | Name of sibling XML element |
-| siblingElemValue | Text | ← | Value of sibling XML element |
+| siblingElemValue | any | ← | Value of sibling XML element |
| Function result | Text | ← | Sibling XML element reference |
diff --git a/i18n/en/code.json b/i18n/en/code.json
index 8d146c14602f7a..8b27eb1990857a 100644
--- a/i18n/en/code.json
+++ b/i18n/en/code.json
@@ -878,5 +878,8 @@
},
"4D Analyzer": {
"message": "4D Analyzer"
+ },
+ "theme.docs.versionDropdown.notAvailable": {
+ "message": "Page not available in this version\nOpening the default page instead"
}
}
diff --git a/i18n/es/code.json b/i18n/es/code.json
index aa53307163f14b..d7fd93b090ac10 100644
--- a/i18n/es/code.json
+++ b/i18n/es/code.json
@@ -866,7 +866,7 @@
"description": "The text after tool call"
},
"theme.SearchModal.footer.submitQuestionText": {
- "message": "Submit question",
+ "message": "Enviar consulta",
"description": "The submit question text for footer"
},
"theme.SearchModal.footer.backToSearchText": {
@@ -878,5 +878,8 @@
},
"4D Analyzer": {
"message": "4D Analyzer"
+ },
+ "theme.docs.versionDropdown.notAvailable": {
+ "message": "Page not available in this version\nOpening the default page instead"
}
}
diff --git a/i18n/es/docusaurus-plugin-content-docs/current.json b/i18n/es/docusaurus-plugin-content-docs/current.json
index d5a51748797c16..82ffe640c56dee 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current.json
+++ b/i18n/es/docusaurus-plugin-content-docs/current.json
@@ -1300,7 +1300,7 @@
"description": "The label for category 'Database Structure' in sidebar 'docs'"
},
"sidebar.docs.category.Methods & Classes": {
- "message": "Methods & Classes",
+ "message": "Métodos y clases",
"description": "The label for category 'Methods & Classes' in sidebar 'docs'"
},
"sidebar.docs.category.4D-Environment-key": {
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/BlobClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/BlobClass.md
index 5e420305ca4fb9..51aa4f3c594b87 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/BlobClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/BlobClass.md
@@ -7,7 +7,7 @@ La clase Blob permite crear y manipular [objetos blob](../Concepts/dt_blob.md#bl
:::info
-This class is [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) in binary.
+Esta clase es [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) en binario.
:::
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/ClassStoreClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/ClassStoreClass.md
index d076d213e3782b..ff4506772bee52 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/ClassStoreClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/ClassStoreClass.md
@@ -3,12 +3,12 @@ id: ClassStoreClass
title: ClassStore
---
-`4D.ClassStore` properties are available classes and class stores.
+Las propiedades de la clase `4D.ClassStore` son las clases y los almacenes de clases disponibles.
-4D exposes two [class stores](../Concepts/classes.md#class-stores):
+4D expone dos [class stores](../Concepts/classes.md#class-stores):
-- [`cs`](../commands/cs) for user classes and component class stores
-- [`4D`](../commands/4d) for built-in classes
+- [`cs`](../commands/cs) para las clases de usuario y las class stores de los componentes
+- [`4D`](../commands/4d) para las clases integradas
### Resumen
@@ -23,29 +23,29 @@ title: ClassStore
#### Descripción
-Each exposed [`4D.Class`](./ClassClass.md) class in the class store is available as a property of the class store.
+Cada clase expuesta en [`4D.Class`](./ClassClass.md) en el class store está disponible como una propiedad del class store.
#### Ejemplo
```4d
var $myclass:=cs.EmployeeEntity
- //$myclass is a class from the cs class store
+ //$myclass es una clase del class store cs
```
## *.classStoreName*
-***.classStoreName*** : 4D.ClassStore
+***.classStoreName***: 4D.ClassStore
#### Descripción
-Each `4D.ClassStore` published by a component is available as a property of the class store.
+Cada `4D.ClassStore` publicado por un componente está disponible como propiedad del class store.
-The name of the class store exposed by a component is the component namespace as [declared in the component's Settings page](../Extensions/develop-components.md#declaring-the-component-namespace).
+El nombre del class store expuesto por un componente es el namespace del componente como [declarado en la página Parámetros del componente](../Extensions/develop-components.md#declaring-the-component-namespace).
#### Ejemplo
```4d
var $classtore:=cs.AiKit
- //$classtore is the class store of the 4D AIKit component
+ //$classtore es el class store del componente 4D AIKit
```
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 162afc92e967e2..de96194475e8e5 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/CollectionClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/CollectionClass.md
@@ -9,7 +9,7 @@ Una colección es inicializada con los comandos [`New collection`](../commands/n
:::info
-This class is [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) in binary.
+Esta clase es [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) en binario.
:::
@@ -1926,7 +1926,7 @@ La función `.max()` devuelve el elemento
> Esta función no modifica la colección original.
-If the collection contains different [types of values](../Concepts/data-types.md), they will be sorted according to the [4D ordering principles](../Concepts/ordering.md) and the `.max()` function will return the maximum value within the last element type in the type list order.
+Si la colección contiene diferentes [tipos de valores](../Concepts/data-types.md), se ordenarán según los [principios de ordenación de 4D](../Concepts/ordering.md) y la función `.max()` devolverá el valor máximo del último tipo de elemento en el orden de la lista de tipos.
Si la colección contiene objetos, pase el parámetro *propertyPath* para indicar la propiedad del objeto cuyo valor máximo desea obtener.
@@ -1979,7 +1979,7 @@ La función `.min()` devuelve el elemento
> Esta función no modifica la colección original.
-If the collection contains different [types of values](../Concepts/data-types.md), they will be sorted according to the [4D ordering principles](../Concepts/ordering.md) and the `.min()` function will return the minimum value within the first element type in the type list order.
+Si la colección contiene diferentes [tipos de valores](../Concepts/data-types.md), se ordenarán según los [principios de ordenación 4D](../Concepts/ordering.md) y la función `.min()` devolverá el valor mínimo en el primer tipo de elemento en el orden de la lista de tipos.
Si la colección contiene objetos, pase el parámetro *propertyPath* para indicar la propiedad del objeto cuyo valor mínimo desea obtener.
@@ -2035,7 +2035,7 @@ La función `.multiSort()` permite r
Si se llama a `.multiSort()` sin parámetros, la función tiene el mismo efecto que la función [`.sort()`](#sort): la colección se ordena (sólo valores escalares) en orden ascendente por defecto, según su tipo.
-If the collection contains elements of different [types](../Concepts/data-types.md), they will be sorted according to the [4D ordering principles](../Concepts/ordering.md).
+Si la colección contiene elementos de diferentes [tipos](../Concepts/data-types.md), se ordenarán según los [principios de ordenación 4D](../Concepts/ordering.md).
**Ordenación sincronizada de un nivel**
@@ -2196,7 +2196,7 @@ También puede pasar un parámetro de criterios para definir cómo deben ordenar
Esta sintaxis sólo ordena los valores escalares de la colección (otros tipos de elementos, como objetos o colecciones, se devuelven desordenados).
-If the collection contains elements of different [types](../Concepts/data-types.md), they will be sorted according to the [4D ordering principles](../Concepts/ordering.md).
+Si la colección contiene elementos de diferentes [tipos](../Concepts/data-types.md), se ordenarán según los [principios de ordenación de 4D](../Concepts/ordering.md).
#### Ejemplo 1
@@ -2545,7 +2545,7 @@ donde:
| Incluído en | IN | Devuelve los datos iguales a al menos uno de los valores de una colección o de un conjunto de valores, admite el comodín (@) |
- **valor**: valor a comparar con el valor actual de la propiedad de cada elemento de la colección. Puede ser cualquier valor de expresión constante que coincida con la propiedad del tipo de datos del elemento o un [**marcador de posición**](#using-placeholders).
- For example, if the string "v20" is entered as value to compare with an integer attribute, it will be converted to 20.
+ Al utilizar un valor constante, deben respetarse las siguientes reglas:
- La constante de tipo **texto** puede pasarse con o sin comillas simples (ver **Uso de comillas** más abajo). Para consultar una cadena dentro de otra cadena (una consulta de tipo "contiene"), utilice el símbolo de comodín (@) en el valor para aislar la cadena a buscar como se muestra en este ejemplo: "@Smith@". Las siguientes palabras claves están prohibidas para las constantes de texto: true, false.
- Valores constantes de tipo **booleano**: **true** o **false** (Sensible a las mayúsculas y minúsculas).
- Valores constantes de **tipo numérico**: los decimales se separan con un '.' (punto).
@@ -2602,7 +2602,7 @@ $o.parameters:={name:"Chicago")
$c:=$myCol.query(":att=:name";$o)
```
-Puede mezclar todos los tipos de argumentos en *queryString*. Puede mezclar todos los tipos de argumentos en *queryString*.
+Puede mezclar todos los tipos de argumentos en *queryString*. Un *queryString* puede contener, para los parámetros *propertyPath* y *value*:
- valores directos (sin marcadores),
- marcadores indexados y/o con nombre.
@@ -3105,7 +3105,7 @@ Por defecto, los nuevos elementos se llenan con valores **null**. Puede especifi
#### Descripción
-The `.reverse()` function returns a new collection with all elements of the original collection in reverse order. Si la colección original es una colección compartida, la colección devuelta es también una colección compartida.
+La función `.reverse()` devuelve una nueva colección con todos los elementos de la colección original en orden inverso. Si la colección original es una colección compartida, la colección devuelta es también una colección compartida.
> Esta función no modifica la colección original.
@@ -3347,7 +3347,7 @@ También puede pasar una de las siguientes constantes en el parámetro *ascOrDes
Esta sintaxis sólo ordena los valores escalares de la colección (otros tipos de elementos, como objetos o colecciones, se devuelven desordenados).
-If the collection contains elements of different [types](../Concepts/data-types.md), they will be sorted according to the [4D ordering principles](../Concepts/ordering.md).
+Si la colección contiene elementos de diferentes [tipos](../Concepts/data-types.md), se ordenarán según los [principios de ordenación 4D](../Concepts/ordering.md).
Si quiere ordenar los elementos de la colección en algún otro orden o ordenar cualquier tipo de elemento, debe suministrar en *formula* ([objeto Formula](FunctionClass.md)) o *methodName* (Text) una retro llamada que define el orden de clasificación. El valor de retorno debe ser un booleano que indica el orden relativo de los dos elementos: **True** si *$1.value* es menor que *$1.value2*, **False** si *$1.value* es mayor que *$1.value2*. Puede ofrecer parámetros adicionales a la retrollamada si es necesario.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/DataClassClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/DataClassClass.md
index 70448568f67648..2c13cb567b8fc6 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/DataClassClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/DataClassClass.md
@@ -272,7 +272,7 @@ Para cada objeto de *objectCol*:
- Si el objeto contiene una propiedad booleana "\__NEW" establecida en false (o no contiene una propiedad booleana "\__NEW"), la entidad se actualiza o se crea con los valores correspondientes de las propiedades del objeto. No se realiza ninguna comprobación con respecto a la llave primaria:
- Si la llave primaria se da y existe, la entidad se actualiza. En este caso, la llave primaria puede darse tal cual o con una propiedad "\_\_KEY" (llenada con el valor de la llave primaria).
- - If the primary key is given (as is) and does not exist, the entity is created
+ - Si se da la llave primaria (tal cual) y no existe, se crea la entidad
- Si no se da la llave primaria, se crea la entidad y se asigna el valor de la llave primaria con respecto a las reglas estándar de la base de datos.
- Si el objeto contiene una propiedad booleana "\_\_NEW" definida como **true**, la entidad se crea con los valores correspondientes de los atributos del objeto. Se realiza una verificación con respecto a la llave primaria:
- Si se da la llave primaria (tal cual) y existe, se envía un error
@@ -970,8 +970,8 @@ Las fórmulas en las consultas pueden recibir parámetros a través de $1. Este
| Incluído en | IN | Devuelve los datos iguales a al menos uno de los valores de una colección o de un conjunto de valores, admite el comodín (@) | |
| Contiene palabra clave | % | Las palabras claves pueden utilizarse en atributos de tipo texto o imagen | |
-- Puede ser un **marcador de posición** (ver **Uso de marcadores de posición** más adelante) o cualquier expresión que coincida con la propiedad de tipo de datos. **value**: el valor a comparar con el valor actual de la propiedad de cada entidad en la selección de entidades. Por ejemplo, si se introduce la cadena "v20" como **value** para comparar con un atributo entero, se convertirá a 20. For example, if the string "v20" is entered as value to compare with an integer attribute, it will be converted to 20.
- For example, if the string "v20" is entered as value to compare with an integer attribute, it will be converted to 20.
+- Puede ser un **marcador de posición** (ver **Uso de marcadores de posición** más adelante) o cualquier expresión que coincida con la propiedad de tipo de datos. **value**: el valor a comparar con el valor actual de la propiedad de cada entidad en la selección de entidades. Por ejemplo, si se introduce la cadena "v20" como **value** para comparar con un atributo entero, se convertirá a 20. Por ejemplo, si la cadena "v20" se introduce como **value** para comparar con un atributo entero, se convertirá en 20.
+ Al utilizar un valor constante, deben respetarse las siguientes reglas:
- La constante de tipo **texto** puede pasarse con o sin comillas simples (ver **Uso de comillas** más abajo). Para consultar una cadena dentro de otra cadena (una consulta de tipo "contiene"), utilice el símbolo de comodín (@) en el valor para aislar la cadena a buscar como se muestra en este ejemplo: "@Smith@". Las siguientes palabras claves están prohibidas para las constantes de texto: true, false.
- Valores constantes de tipo **booleano**: **true** o **false** (Sensible a las mayúsculas y minúsculas).
- Valores constantes de **tipo numérico**: los decimales se separan con un '.' (punto).
@@ -990,7 +990,7 @@ Las fórmulas en las consultas pueden recibir parámetros a través de $1. Este
> Si utiliza esta instrucción, la selección de entidades devuelta estará ordenada (para más información, consulte [Selecciones de entidades ordenadas o desordenadas](ORDA/dsMapping.md#ordered-or-unordered-entity-selection)).
-If the entity selection attributes contain values of different [types](../Concepts/data-types.md), they will be sorted according to the [4D ordering principles](../Concepts/ordering.md).
+Si los atributos de la selección de entidades contienen valores de diferentes [tipos](../Concepts/data-types.md), se ordenarán según los [principios de ordenación de 4D](../Concepts/ordering.md).
### Utilizar comillas
@@ -1222,11 +1222,11 @@ Si *attributePath* designa un atributo que almacena [**objetos vectores**](../AP
En este caso, el parámetro *value* debe ser un **objeto vectorial de comparación** que contenga las siguientes propiedades:
-| Propiedad | Tipo | Descripción |
-| --------- | -------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| vector | [4D.Vector](../API/VectorClass.md) | Obligatorio. El vector a comparar |
-| metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. You can use one of the following (Text) constants:
`mk cosine` (default if omitted): calculates the cosine similarity between vectors.
`mk dot`: calculates the dot similarity of vectors.
`mk 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. |
+| Propiedad | Tipo | Descripción |
+| --------- | -------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| vector | [4D.Vector](../API/VectorClass.md) | Obligatorio. El vector a comparar |
+| metric | Text | Opcional. [Cálculo vectorial](../API/VectorClass.md#understanding-the-different-vector-computations) a utilizar para la consulta. Puede utilizar una de las siguientes constantes (Texto)
:`mk cosine` (por defecto si se omite): calcula la similaridad en cosenos entre los vectores.
`mk dot`: calcula la similaridad en puntos de los vectores.
`mk euclidean`: calcula la distancia euclideana 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. |
Sólo se admite un subconjunto de símbolos **comparadores**. Tenga en cuenta que comparan los resultados con el valor umbral:
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/DataStoreClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/DataStoreClass.md
index fc22c831ec7de6..5e26815a43b39b 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/DataStoreClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/DataStoreClass.md
@@ -48,7 +48,7 @@ Un [Datastore](ORDA/dsMapping.md#datastore) es el objeto de interfaz suministrad
#### Descripción
-Each dataclass in a datastore is available as a property of the [DataStore object](ORDA/dsMapping.md#datastore) data. El objeto devuelto contiene una descripción de la clase de datos.
+Cada dataclass en un datastore está disponible como propiedad del [objeto DataStore](ORDA/dsMapping.md#datastore). El objeto devuelto contiene una descripción de la clase de datos.
#### Ejemplo
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/EmailObjectClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/EmailObjectClass.md
index 71a2dd273974f1..18486dd5299651 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/EmailObjectClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/EmailObjectClass.md
@@ -18,7 +18,7 @@ Los comandos [`MAIL Convert from MIME`](../commands/mail-convert-from-mime) y [`
:::info
-This class is [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) in binary.
+Esta clase es [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) en binario.
:::
@@ -26,7 +26,7 @@ This class is [**streamable**](../Concepts/dt_object.md#binary-streaming-variabl
Los objetos Email ofrecen las siguientes propiedades:
-> 4D sigue la [especificación JMAP](https://jmap.io/spec-mail.html) para formatear el objeto Email.
+> 4D sigue la [especificación JMAP](https://jmap.io/spec/rfc8621/) para formatear el objeto Email.
| |
| -------------------------------------------------------------------------------------------------------------------------------------- |
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 87f4c73fe5b234..23669f898da29d 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/EntityClass.md
@@ -402,15 +402,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). 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. **StatusText asociado**: "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. 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 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 | El valor del marcador interno de la entidad no coincide con el de la entidad almacenada en los datos (bloqueo optimista).
con `.save()`: error solo si no se utiliza la opción `dk auto merge`
con `.drop()`: error solo si no se utiliza la opción `dk force drop if stamp changed`
con `.lock()`: error solo si no se utiliza la opción `dk reload if stamp changed`
**statusText asociado**: "Stamp has changed"
|
+| `dk status wrong permission` | 1 | Los privilegios actuales no permiten suprimir la entidad. **StatusText asociado**: "Permission Error" |
#### Ejemplo 1
@@ -1062,7 +1062,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 marcador interno de la entidad no coincide con el de la entidad almacenada en los datos (bloqueo optimista).
con `.save()`: error solo si no se utiliza la opción `dk auto merge`
con `.drop()`: error solo si no se utiliza la opción `dk force drop if stamp changed`
con `.lock()`: error solo si no se utiliza la opción `dk reload if stamp changed`
**Estado asociado**: "Stamp has changed" |
#### Ejemplo 1
@@ -1339,7 +1339,7 @@ Los siguientes valores pueden ser devueltos en las propiedades `status`y `status
| `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 stamp has changed` | 2 | El valor del marcador interno de la entidad no coincide con el de la entidad almacenada en los datos (bloqueo optimista).
con `.save()`: error solo si no se utiliza la opción `dk auto merge`
con `.drop()`: error solo si no se utiliza la opción `dk force drop if stamp changed`
con `.lock()`: error solo si no se utiliza la opción `dk reload if stamp changed`
**statusText asociado**: "Stamp has changed" |
| `dk status wrong permission` | 1 | Los privilegios actuales no permiten guardar la entidad. **StatusText asociado**: "Permission Error" |
#### Ejemplo 1
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md
index 94286bfa706c1e..db0d8869c4a703 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/EntitySelectionClass.md
@@ -1131,7 +1131,7 @@ El siguiente código genérico duplica todas las entidades de la entity selectio
La función `.getRemoteContextAttributes()` devuelve información sobre el contexto de optimización utilizado por la entity selection.
-If there is no [optimization context](../ORDA/client-server-optimization.md) for the entity selection, the function returns an empty Text.
+Si no hay un [contexto de optimización](../ORDA/client-server-optimization.md) para la entity selection, la función devuelve un texto vacío.
#### Ejemplo
@@ -1372,7 +1372,7 @@ Las entity selections siempre tienen una propiedad `.length`.
La función `.max()` devuelve el valor más alto (o máximo) entre todos los valores de *attributePath* en la entity selection. En realidad devuelve el valor de la última entidad de la selección de entidades tal y como se ordenaría de forma ascendente utilizando la función [`.orderBy()`](#orderby).
-If you pass in *attributePath* a path to an object property containing different [types of values](../Concepts/data-types.md), the `.max()` function will return the maximum value within the first scalar type according to the [4D ordering principles](../Concepts/ordering.md).
+Si pasa en *attributePath* una ruta a una propiedad de objeto que contenga diferentes [tipos de valores](../Concepts/data-types.md), la función `.max()` devolverá el valor máximo dentro del primer tipo escalar de acuerdo con los [principios de ordenación de 4D](../Concepts/ordering.md).
`.max()` devuelve **undefined** si la entity selection está vacía o no se encuentra *attributePath* en el atributo objeto.
@@ -1425,7 +1425,7 @@ Queremos encontrar el salario más alto entre todas las empleadas:
La función `.min()` devuelve el valor más bajo (o mínimo) entre todos los valores de attributePath en la entity selection. En realidad devuelve la primera entidad de la entity selection tal y como se ordenaría de forma ascendente utilizando la función [`.orderBy()`](#orderby) (excluyendo los valores **null**).
-If you pass in *attributePath* a path to an object property containing different [types of values](../Concepts/data-types.md), the `.min()` function will return the minimum value within the first scalar type according to the [4D ordering principles](../Concepts/ordering.md).
+Si pasa en *attributePath* una ruta a una propiedad de objeto que contenga diferentes [tipos de valores](../Concepts/data-types.md), la función `.min()` devolverá el valor mínimo en el primer tipo escalar de acuerdo con los [principios de ordenación de 4D](../Concepts/ordering.md).
`.min()` devuelve **undefined** si la entity selection está vacía o *attributePath* no se encuentra en el atributo objeto.
@@ -1655,7 +1655,7 @@ Por defecto, los atributos se clasifican en orden ascendente ("descending" es fa
Puede añadir tantos objetos en la colección de criterios como sea necesario.
-If the entity selection attributes contain values of different [types](../Concepts/data-types.md), they will be sorted according to the [4D ordering principles](../Concepts/ordering.md).
+Si los atributos de la selección de entidades contienen valores de diferentes [tipos](../Concepts/data-types.md), se ordenarán según los [principios de ordenación de 4D](../Concepts/ordering.md).
Si pasa una ruta de atributo inválida en *pathString* o *pathObject*, la función devuelve una entity selection vacía.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/FileClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/FileClass.md
index 40ebfd2e97a615..6bf99af7106500 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/FileClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/FileClass.md
@@ -7,7 +7,7 @@ Los objetos `File` se crean con el comando [`File`](../commands/file). Contienen
:::info
-This class is [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) in binary.
+Esta clase es [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) en binario.
:::
@@ -647,18 +647,18 @@ Para definir un valor de tipo Fecha, el formato a utilizar es una cadena de time
Cada propiedad válida definida en el parámetro objeto *info* se escribe en el recurso de versión del archivo .exe o .dll. Las propiedades disponibles son (toda otra propiedad será ignorada):
-| Propiedad | Tipo | Comentario |
-| ---------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| CompanyName | Text | |
-| FileDescription | Text | |
-| FileVersion | Text | |
-| InternalName | Text | |
-| LegalCopyright | Text | |
-| OriginalFilename | Text | |
-| ProductName | Text | |
-| ProductVersion | Text | |
-| removeFluentUI | Boolean | Sólo puede utilizarse con una aplicación 4D fusionada (archivo.exe). Pass True to replace the *manifest* referencing the embedded Windows App SDK (required for [Fluent UI rendering](../FormEditor/forms.md#fluent-ui-rendering)) and the *.pri* file with versions allowing the use of a Windows App SDK installed in the OS. El uso de un SDK local permite reducir el tamaño de la aplicación generada (también es necesario eliminar los archivos integrados por defecto). Pasar False u omitir la propiedad no hace nada. |
-| WinIcon | Text | Ruta Posix del archivo .ico. Esta propiedad sólo se aplica a los archivos ejecutables generados por 4D. |
+| Propiedad | Tipo | Comentario |
+| ---------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| CompanyName | Text | |
+| FileDescription | Text | |
+| FileVersion | Text | |
+| InternalName | Text | |
+| LegalCopyright | Text | |
+| OriginalFilename | Text | |
+| ProductName | Text | |
+| ProductVersion | Text | |
+| removeFluentUI | Boolean | Sólo puede utilizarse con una aplicación 4D fusionada (archivo.exe). Pase True para reemplazar el *manifest* que hace referencia al Windows App SDK integrado (necesario para la renderización [Fluent UI](../FormEditor/forms.md#fluent-ui-rendering)) y el archivo *.pri* con versiones que permiten el uso de un Windows App SDK instalado en el sistema operativo. El uso de un SDK local permite reducir el tamaño de la aplicación generada (también es necesario eliminar los archivos integrados por defecto). Pasar False u omitir la propiedad no hace nada. |
+| WinIcon | Text | Ruta Posix del archivo .ico. Esta propiedad sólo se aplica a los archivos ejecutables generados por 4D. |
Para todas las propiedades excepto `WinIcon`, si se pasa un texto nulo o vacío como valor, se escribe una cadena vacía en la propiedad. Si pasa un valor de tipo diferente a texto, se convierte en una cadena.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/FolderClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/FolderClass.md
index 41f76eaefb9bfb..7d7192fe61b9c7 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/FolderClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/FolderClass.md
@@ -7,7 +7,7 @@ Los objetos `Folder` son creados con el comando [`Folder`](../commands/folder).
:::info
-This class is [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) in binary.
+Esta clase es [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) en binario.
:::
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/FormulaClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/FormulaClass.md
index 5eeb198512bc1d..aec3fbf4cc13ab 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/FormulaClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/FormulaClass.md
@@ -3,18 +3,18 @@ id: FormulaClass
title: Formula
---
-`4D.Formula` objects are created by the [Formula](../commands/formula) or [Formula from string](../commands/formula-from-string) commands and allow you execute any 4D expression or code expressed as single-line text.
+Los objetos `4D.Formula` son creados por los comandos [Formula](../commands/formula) o [Formula from string](../commands/formula-from-string) y le permiten ejecutar cualquier expresión 4D o código expresado como texto de una sola línea.
Los objetos de la clase `4D.Formula` heredan de la clase [`4D.Function`](./FunctionClass.md). Así, para ejecutar la fórmula, puede:
-- store a `4D.Formula` object in an object property and use the `()` operator after the property name,
+- almacenar un objeto `4D.Formula` en una propiedad de objeto y utilizar el operador `()` después del nombre de la propiedad,
- o llamar directamente al objeto `4D.Formula` usando la función [`call()`](#call) o [`apply()`](#apply) sobre él.
Ver ejemplos en el párrafo [Ejecución de código en los objetos Function](../API/FunctionClass.md#executing-code-in-function-objects).
:::info
-This class is [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) in binary.
+Esta clase es [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) en binario.
:::
@@ -32,8 +32,8 @@ O utilizando la función [.call()](#call):
```4d
var $f : 4D.Formula
$f:=Formula($1+" "+$2)
- $text:=$f.call(Null;"Hello";"World") //returns "Hello World"
- $text:=$f.call(Null;"Welcome to";String(Year of(Current date))) //returns "Welcome to 2026" (for example)
+ $text:=$f.call(Null;"Hello";"World") //devuelve "Hello World"
+ $text:=$f.call(Null;"Welcome to";String(Year of(Current date))) //devuelve "Welcome to 2026" (por ejemplo)
```
#### Parámetros de un solo método
@@ -44,9 +44,9 @@ Para mayor comodidad, cuando la fórmula se compone de un único método proyect
var $f : 4D.Formula
$f:=Formula(myMethod)
- //Writing Formula(myMethod($1;$2)) is not necessary
- $text:=$f.call(Null;"Hello";"World") //returns "Hello World"
- $text:=$f.call() //returns "How are you?"
+ //Escribir Formula(myMethod($1;$2)) no es necesario
+ $text:=$f.call(Null;"Hello";"World") //devuelve "Hello World"
+ $text:=$f.call() //devuelve "How are you?"
//myMethod
#DECLARE ($param1 : Text; $param2 : Text)->$return : Text
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/FunctionClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/FunctionClass.md
index c92a5e51d5896c..8e5155324cdd34 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/FunctionClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/FunctionClass.md
@@ -9,10 +9,10 @@ Un objeto **`4D.Function`** contiene un trozo de código que puede ser ejecutado
4D maneja varios tipos de objetos `Function`, que heredan de la clase **4D.Function**:
-- **native functions**, i.e. built-in functions from various 4D classes such as [`collection.sort()`](./CollectionClass.md#sort) or [`file.copyTo()`](./FileClass.md#copyto).
+- las **funciones nativas**, es decir las funciones integradas de varias clases 4D como [`collection.sort()`](./CollectionClass.md#sort) o [`file.copyTo()`](./FileClass.md#copyto).
- **funciones usuario**, creadas en las [clases usuario](Concepts/classes.md) utilizando la [palabra clave `Function`](Concepts/classes.md#function).
- las **funciones de fórmula**, es decir, las funciones que pueden ejecutar un código de fórmula almacenado en los objetos [4D.Formula](./FormulaClass.md),
-- **method functions**, i.e. functions that can execute source code as text stored in [4D.Method](./MethodClass.md) objects.
+- las **funciones de método**, es decir las funciones que pueden ejecutar código fuente como texto almacenado en los objetos [4D.Method](./MethodClass.md).
### Ejecución del código en los objetos Function
@@ -86,14 +86,14 @@ También puede ejecutar una función utilizando [`apply()`](#apply) y [`call()`]
#### Descripción
-The `.apply()` function executes the function object to which it is applied, passing parameters as a collection, and returns the resulting value.
+La función `.apply()` ejecuta el objeto función al que se aplica, pasando los parámetros como una colección, y devuelve el valor resultante.
En el parámetro *thisObj*, puede pasar una referencia al objeto que se utilizará como `This` en la función. Pasa Null si no quiere utilizar `This` pero quiere enviar parámetros.
Puede pasar una colección para utilizarla como parámetros en la función utilizando el parámetro opcional *params*:
- en los objetos `4D.Formula`, los parámetros se pasan en $1...$n en la fórmula.
-- in other `4D.Function` objects such as `4D.Method` objects, parameters are passed in [declared method parameters](../Concepts/parameters.md).
+- en los otros objetos `4D.Function` como los objetos `4D.Method`, los parámetros se pasan en [parámetros declarados](../Concepts/parameters.md).
Tenga en cuenta que `.apply()` es similar a [`.call()`](#call) excepto que los parámetros se pasan como una colección. Esto puede ser útil para pasar los resultados calculados.
@@ -129,11 +129,11 @@ Tenga en cuenta que `.apply()` es similar a [`.call()`](#call) excepto que los p
#### Descripción
-The `.call()` function executes the function object to which it is applied, with one or more parameter(s) passed directly, and returns the resulting value.
+La función `.call()` ejecuta el objeto función al que se aplica, con uno o más parámetros pasados directamente, y devuelve el valor resultante.
En el parámetro *thisObj*, puede pasar una referencia al objeto que se utilizará como `This` en la función.
-You can pass values to be used as parameters in the function using the optional *params* parameter:
+Puede pasar valores que se utilizarán como parámetros en la función utilizando el parámetro opcional *params*:
- en los objetos `4D.Formula`, los parámetros se pasan en $1...$n en la fórmula.
- en los objetos `4D.Method`, los parámetros se pasan en [parámetros declarados](../Concepts/parameters.md).
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/HTTPAgentClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/HTTPAgentClass.md
index 400b45f9663853..e6fbca3aa06dc2 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/HTTPAgentClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/HTTPAgentClass.md
@@ -64,7 +64,7 @@ Dado que HTTPAgent es un objeto compartible, puede añadir uno a una clase singl
La función `4D.HTTPAgent.new()` crea un objeto HTTPAgent compartible con las *opciones* definidas, y devuelve un objeto `4D.HTTPAgent`.
-El [`objeto HTTPAgent`] devuelto (#httpagent-object) se utiliza para personalizar las conexiones a servidores HTTP.
+El objeto [`HTTPAgent`](#httpagent-object) devuelto se utiliza para personalizar las conexiones a servidores HTTP.
#### Parámetro *options*
@@ -76,21 +76,21 @@ Las opciones de HTTPAgent se fusionarán con [opciones HTTPRequest](HTTPRequestC
:::
-| Propiedad | Tipo | Por defecto | Descripción |
-| ---------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| certificatesFolder | Folder | undefined (ver valor por defecto en [HTTPRequest.new()](HTTPRequestClass.md#options-parameter)) | Define la carpeta activa de certificados de cliente para las solicitudes que utilizan el agente. Puede reemplazarse por "storeCertificateName" (ver abajo) |
-| keepAlive | Boolean | true | Activa keep alive para el agente |
-| maxSockets | Integer | 65535 | Número máximo de sockets por servidor |
-| maxTotalSockets | Integer | 65535 | Número máximo de sockets para el agente |
-| minTLSVersion | Text | undefined (ver valor por defecto en [HTTPRequest.new()](HTTPRequestClass.md#options-parameter)) | Define la versión mínima de TLS para las solicitudes que utilizan este agente |
-| protocol | Text | undefined (ver valor por defecto en [HTTPRequest.new()](HTTPRequestClass.md#options-parameter)) | Protocolo usado para las peticiones utilizando el agente |
-| storeCertificateName | Text | indefinido | Name of a certificate stored in the Certificate Store (Windows) or in the *keychain* (macOS) to use instead of one saved in the certificates folder. Si el certificado no se encuentra en el almacén, se devuelve un error. For more information, see [this blog post for Windows](https://blog.4d.com/https-requests-now-support-windows-certificate-store) and [this blog post for macOS](https://blog.4d.com/https-requests-macos-keychain-support-is-here). |
-| timeout | Real | indefinido | Si se define, tiempo después del cual se cierra un socket no utilizado |
-| validateTLSCertificate | Boolean | undefined (ver valor por defecto en [HTTPRequest.new()](HTTPRequestClass.md#options-parameter)) | Validar el certificado Tls para las solicitudes que utilizan el agente |
+| Propiedad | Tipo | Por defecto | Descripción |
+| ---------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| certificatesFolder | Folder | undefined (ver valor por defecto en [HTTPRequest.new()](HTTPRequestClass.md#options-parameter)) | Define la carpeta activa de certificados de cliente para las solicitudes que utilizan el agente. Puede reemplazarse por "storeCertificateName" (ver abajo) |
+| keepAlive | Boolean | true | Activa keep alive para el agente |
+| maxSockets | Integer | 65535 | Número máximo de sockets por servidor |
+| maxTotalSockets | Integer | 65535 | Número máximo de sockets para el agente |
+| minTLSVersion | Text | undefined (ver valor por defecto en [HTTPRequest.new()](HTTPRequestClass.md#options-parameter)) | Define la versión mínima de TLS para las solicitudes que utilizan este agente |
+| protocol | Text | undefined (ver valor por defecto en [HTTPRequest.new()](HTTPRequestClass.md#options-parameter)) | Protocolo usado para las peticiones utilizando el agente |
+| storeCertificateName | Text | indefinido | Nombre de un certificado almacenado en el almacén de certificados (Windows) o en la *keychain* (macOS) que se utilizará en lugar de uno guardado en la carpeta de certificados. Si el certificado no se encuentra en el almacén, se devuelve un error. Para más información, consulte [esta entrada del blog para Windows](https://blog.4d.com/https-requests-now-support-windows-certificate-store) y [esta entrada del blog para macOS](https://blog.4d.com/https-requests-macos-keychain-support-is-here). |
+| timeout | Real | indefinido | Si se define, tiempo después del cual se cierra un socket no utilizado |
+| validateTLSCertificate | Boolean | undefined (ver valor por defecto en [HTTPRequest.new()](HTTPRequestClass.md#options-parameter)) | Validar el certificado Tls para las solicitudes que utilizan el agente |
:::note
-On macOS, when a new application (new [UUID](./FileClass.md#setappinfo)) requests access to the keychain for the first time, a password can be requested to the user, depending on the local keychain configuration.
+En macOS, cuando una nueva aplicación (nuevo [UUID](./FileClass.md#setappinfo)) solicita acceso al llavero por primera vez, se puede solicitar una contraseña al usuario, dependiendo de la configuración del llavero local.
:::
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md
index acaf4ea5a1d0b3..42eaa543b4f2af 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/HTTPRequestClass.md
@@ -17,7 +17,7 @@ La clase `HTTPRequest` está disponible en el class store `4D`. Para crear y env
### Programación asíncrona
-This class supports asynchronous programming in 4D as described in the [Asynchronous Execution](../Develop/async.md) page.
+Esta clase soporta programación asíncrona en 4D como se describe en la página [Ejecución Asíncrona](../Develop/async.md).
### Ejemplo
@@ -137,34 +137,34 @@ Por ejemplo, puede pasar las siguientes cadenas:
En el parámetro *options*, pase un objeto que puede contener las siguientes propiedades:
-| Propiedad | Tipo | Descripción | Por defecto |
-| ---------------------- | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
-| agent | [4D.HTTPAgent](HTTPAgentClass.md) | HTTPAgent a utilizar para la HTTPRequest. Las opciones del agente se fusionarán con las opciones de la petición (las opciones de la petición tienen prioridad). Si no se define un agente específico, se utiliza un agente global con valores predeterminados. | Objeto agente global |
-| automaticRedirections | Boolean | Si es true, las redirecciones se realizan automáticamente (se gestionan hasta 5 redirecciones, se devuelve la 6ª respuesta de redirección si la hay) | True |
-| body | Variant | Cuerpo de la petición (necesario en el caso de las peticiones `post` o `put`). Puede ser un texto, un blob, o un objeto. El content-type se determina a partir del tipo de esta propiedad a menos que se defina dentro de los encabezados | indefinido |
-| certificatesFolder | [Folder](FolderClass.md) | Define la carpeta de certificados de cliente activa. Puede reemplazarse por "storeCertificateName" (ver abajo). | indefinido |
-| dataType | Text | Tipo de atributo del cuerpo de la respuesta. Valores: "text", "blob", "object", o "auto". Si "auto", el tipo de contenido del cuerpo se deducirá de su tipo MIME (object para JSON, texto para texto, javascript, xml, mensaje http y formulario codificado en url, blob en caso contrario) | "auto" |
-| decodeData | Boolean | Si true, los datos recibidos en la retrollamada `onData` se descomprimen | False |
-| encoding | Text | Se utiliza sólo en caso de peticiones con un `body` (métodos `post` o `put`). Codificación del contenido del cuerpo de la petición si es un texto, se ignora si se define content-type dentro de los encabezados | "UTF-8" |
-| headers | Object | Encabezados de la petición. Sintaxis: `headers.key=value` (*value* puede ser una colección si la misma llave debe aparecer varias veces) | Objeto vacío |
-| method | Text | "POST", "GET" u otro método | "GET" |
-| minTLSVersion | Text | Define la versión mínima de TLS: "`TLSv1_0`", "`TLSv1_1`", "`TLSv1_2`", "`TLSv1_3`" | "`TLSv1_2`" |
-| onData | [Function](FunctionClass.md) | Retrollamada cuando se reciben los datos del cuerpo. Recibe dos objetos como parámetros (ver más abajo) | indefinido |
-| onError | [Function](FunctionClass.md) | Retrollamada cuando ocurre un error. Recibe dos objetos como parámetros (ver más abajo) | indefinido |
-| onHeaders | [Function](FunctionClass.md) | Retrollamada cuando se reciben los encabezados. Recibe dos objetos como parámetros (ver más abajo) | indefinido |
-| onResponse | [Function](FunctionClass.md) | Retrollamada cuando se recibe una respuesta. Recibe dos objetos como parámetros (ver más abajo) | indefinido |
-| onTerminate | [Function](FunctionClass.md) | Retrollamada cuando la petición haya terminado. Recibe dos objetos como parámetros (ver más abajo) | indefinido |
-| protocol | Text | "auto" o "HTTP1". "auto" significa HTTP1 en la implementación actual | "auto" |
-| proxyAuthentication | [objeto de autenticación](#authentication-object) | Autenticación del proxy de gestión de objetos | indefinido |
-| returnResponseBody | Boolean | Si false, el cuerpo de la respuesta no se devuelve en el [objeto `response`](#response). Devuelve un error si es false y `onData` es undefined | True |
-| serverAuthentication | [objeto de autenticación](#authentication-object) | Autenticación del servidor de gestión de objetos | indefinido |
-| storeCertificateName | Text | Name of a certificate stored in the Certificate Store (Windows) or in the *keychain* (macOS) to use instead of one saved in the certificates folder. Si el certificado no se encuentra en el almacén, se devuelve un error. For more information, see [this blog post for Windows](https://blog.4d.com/https-requests-now-support-windows-certificate-store) and [this blog post for macOS](https://blog.4d.com/https-requests-macos-keychain-support-is-here). | indefinido |
-| timeout | Real | Tiempo de espera en segundos. indefinido = sin tiempo de espera | indefinido |
-| validateTLSCertificate | Boolean | Si false, 4D no valida el certificado TLS y no devuelve un error si no es válido (es decir, caducado, autofirmado...). Importante: en la implementación actual, la propia Autoridad de Certificación no se verifica. | True |
+| Propiedad | Tipo | Descripción | Por defecto |
+| ---------------------- | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------- |
+| agent | [4D.HTTPAgent](HTTPAgentClass.md) | HTTPAgent a utilizar para la HTTPRequest. Las opciones del agente se fusionarán con las opciones de la petición (las opciones de la petición tienen prioridad). Si no se define un agente específico, se utiliza un agente global con valores predeterminados. | Objeto agente global |
+| automaticRedirections | Boolean | Si es true, las redirecciones se realizan automáticamente (se gestionan hasta 5 redirecciones, se devuelve la 6ª respuesta de redirección si la hay) | True |
+| body | Variant | Cuerpo de la petición (necesario en el caso de las peticiones `post` o `put`). Puede ser un texto, un blob, o un objeto. El content-type se determina a partir del tipo de esta propiedad a menos que se defina dentro de los encabezados | indefinido |
+| certificatesFolder | [Folder](FolderClass.md) | Define la carpeta de certificados de cliente activa. Puede reemplazarse por "storeCertificateName" (ver abajo). | indefinido |
+| dataType | Text | Tipo de atributo del cuerpo de la respuesta. Valores: "text", "blob", "object", o "auto". Si "auto", el tipo de contenido del cuerpo se deducirá de su tipo MIME (object para JSON, texto para texto, javascript, xml, mensaje http y formulario codificado en url, blob en caso contrario) | "auto" |
+| decodeData | Boolean | Si true, los datos recibidos en la retrollamada `onData` se descomprimen | False |
+| encoding | Text | Se utiliza sólo en caso de peticiones con un `body` (métodos `post` o `put`). Codificación del contenido del cuerpo de la petición si es un texto, se ignora si se define content-type dentro de los encabezados | "UTF-8" |
+| headers | Object | Encabezados de la petición. Sintaxis: `headers.key=value` (*value* puede ser una colección si la misma llave debe aparecer varias veces) | Objeto vacío |
+| method | Text | "POST", "GET" u otro método | "GET" |
+| minTLSVersion | Text | Define la versión mínima de TLS: "`TLSv1_0`", "`TLSv1_1`", "`TLSv1_2`", "`TLSv1_3`" | "`TLSv1_2`" |
+| onData | [Function](FunctionClass.md) | Retrollamada cuando se reciben los datos del cuerpo. Recibe dos objetos como parámetros (ver más abajo) | indefinido |
+| onError | [Function](FunctionClass.md) | Retrollamada cuando ocurre un error. Recibe dos objetos como parámetros (ver más abajo) | indefinido |
+| onHeaders | [Function](FunctionClass.md) | Retrollamada cuando se reciben los encabezados. Recibe dos objetos como parámetros (ver más abajo) | indefinido |
+| onResponse | [Function](FunctionClass.md) | Retrollamada cuando se recibe una respuesta. Recibe dos objetos como parámetros (ver más abajo) | indefinido |
+| onTerminate | [Function](FunctionClass.md) | Retrollamada cuando la petición haya terminado. Recibe dos objetos como parámetros (ver más abajo) | indefinido |
+| protocol | Text | "auto" o "HTTP1". "auto" significa HTTP1 en la implementación actual | "auto" |
+| proxyAuthentication | [objeto de autenticación](#authentication-object) | Autenticación del proxy de gestión de objetos | indefinido |
+| returnResponseBody | Boolean | Si false, el cuerpo de la respuesta no se devuelve en el [objeto `response`](#response). Devuelve un error si es false y `onData` es undefined | True |
+| serverAuthentication | [objeto de autenticación](#authentication-object) | Autenticación del servidor de gestión de objetos | indefinido |
+| storeCertificateName | Text | Nombre de un certificado almacenado en el almacén de certificados (Windows) o en la *keychain* (macOS) que se utilizará en lugar de uno guardado en la carpeta de certificados. Si el certificado no se encuentra en el almacén, se devuelve un error. Para más información, consulte [esta entrada del blog para Windows](https://blog.4d.com/https-requests-now-support-windows-certificate-store) y [esta entrada del blog para macOS](https://blog.4d.com/https-requests-macos-keychain-support-is-here). | indefinido |
+| timeout | Real | Tiempo de espera en segundos. indefinido = sin tiempo de espera | indefinido |
+| validateTLSCertificate | Boolean | Si false, 4D no valida el certificado TLS y no devuelve un error si no es válido (es decir, caducado, autofirmado...). Importante: en la implementación actual, la propia Autoridad de Certificación no se verifica. | True |
:::note
-On macOS, when a new application (new [UUID](./FileClass.md#setappinfo)) requests access to the keychain for the first time, a password can be requested to the user, depending on the local keychain configuration.
+En macOS, cuando una nueva aplicación (nuevo [UUID](./FileClass.md#setappinfo)) solicita acceso al llavero por primera vez, se puede solicitar una contraseña al usuario, dependiendo de la configuración del llavero local.
:::
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/IMAPNotifierClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/IMAPNotifierClass.md
index cbfa877bbb4563..b01f998ced6ed0 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/IMAPNotifierClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/IMAPNotifierClass.md
@@ -3,7 +3,7 @@ id: IMAPNotifierClass
title: IMAPNotifier
---
-The `IMAPNotifier` class allows you to manage IMAP IDLE notifications for a selected mailbox.
+La clase `IMAPNotifier` permite gestionar las notificaciones IMAP IDLE para un buzón seleccionado.
Historia
@@ -13,22 +13,22 @@ The `IMAPNotifier` class allows you to manage IMAP IDLE notifications for a sele
-The `IMAPNotifier` class is available from the `4D` class store.
+La clase `IMAPNotifier` está disponible en el class store `4D`.
-An `IMAPNotifier` object is associated with an [IMAP transporter](./IMAPTransporterClass.md#imap-transporter-object) and provides access to mailbox notification management.
+Un objeto `IMAPNotifier` está asociado a un [transportador IMAP](./IMAPTransporterClass.md#imap-transporter-object) y ofrece acceso a la gestión de notificaciones del buzón.
Todas las funciones de clase `IMAPNotifier` son hilo seguro.
:::tip Entradas de blog relacionadas
-[Instant Email Notifications with IMAP Transporter](https://blog.4d.com/instant-email-notifications-with-imap-transporter)
+[Notificaciones instantáneas por correo electrónico con IMAP Transporter](https://blog.4d.com/instant-email-notifications-with-imap-transporter)
:::
### Ejemplo
```4d
-// Define listener callbacks
+// Define las funciones de retrollamada del listener
var $parameter : Object
var $transporter : 4D.IMAPTransporter
@@ -48,7 +48,7 @@ $transporter.notifier.start()
## IMAPNotifier object
-An IMAPNotifier object provides the following properties and functions:
+Un objeto IMAPNotifier proporciona las siguientes propiedades y funciones:
| |
| ------------------------------------------------------------------------------------------------------------------ |
@@ -84,7 +84,7 @@ La función `4D.IMAPNotifier.new()` c
#### Descripción
-The `.isStarted` property indicates whether the notifier is started (`true`) or stopped (`false`). Esta propiedad es de **solo lectura**.
+La propiedad `.isStarted` indica si el notificador está iniciado (`true`) o detenido (`false`). Esta propiedad es de **solo lectura**.
@@ -104,17 +104,17 @@ The `.isStarted` property indicates
#### Descripción
-The `.start()` function starts the subscription to server notifications and activates IMAP listener callbacks.
+La función `.start()` inicia la suscripción a las notificaciones del servidor y activa las retrollamadas del oyente IMAP.
-A mailbox must be selected using [`selectBox()`](./IMAPTransporterClass.md#selectbox) before calling `.start()`.
+Debe seleccionarse un buzón mediante [`selectBox()`](./IMAPTransporterClass.md#selectbox) antes de llamar a `.start()`.
-Callback functions are executed in the worker where `.start()` is called.
+Las funciones de retrollamada son ejecutadas en el worker donde `.start()` es llamado.
:::note Notas
-- When the notifier is started, other transporter functions (such as `getMail()` or `send()`) are not available. You must call `.stop()` before using these functions, then call `.start()` again to resume notifications.
+- Cuando se inicia el notificador, otras funciones del transportador (como `getMail()` o `send()`) no están disponibles. Debe llamar a `.stop()` antes de utilizar estas funciones, y luego llamar de nuevo a `.start()` para reanudar las notificaciones.
-- IMAP IDLE notifications indicate that a change has occurred but do not provide updated mailbox data. To refresh the mailbox state, you must stop the notifier, retrieve the updated data (for example using `getMail()`), and then restart it.
+- Las notificaciones IMAP IDLE indican que se ha producido un cambio pero no ofrecen datos actualizados del buzón. Para actualizar el estado del buzón, debe detener el aviso, recuperar los datos actualizados (por ejemplo usando `getMail()`), y luego reiniciarlo.
:::
@@ -124,7 +124,7 @@ Callback functions are executed in the worker where `.start()` is called.
| ---------- | ------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------- |
| success | | Boolean | True si la operación tiene éxito, False en caso contrario |
| statusText | | Text | Mensaje de estado devuelto por el servidor IMAP, o último error devuelto en la pila de errores 4D |
-| errors | | Collection | 4D error stack (not returned if a server response is received) |
+| errors | | Collection | Pila de error 4D (no retornado si se recibe una respuesta del servidor) |
| | \[].errcode | Number | Código de error 4D |
| | \[].message | Text | Descripción del error |
| | \[].componentSignature | Text | Firma del componente que ha devuelto el error |
@@ -147,7 +147,7 @@ Callback functions are executed in the worker where `.start()` is called.
#### Descripción
-The `.stop()` function stops the notification subscription. Calling `.stop()` is required before using other transporter functions (such as `getMail()` or `send()`).
+La función `.stop()` detiene la suscripción a la notificación. Es necesario llamar a `.stop()` antes de utilizar otras funciones del transportador (como `getMail()` o `send()`).
#### Objeto devuelto
@@ -155,7 +155,7 @@ The `.stop()` function stops the notifi
| ---------- | ------------------------------------------------------------------------------------------- | ---------- | ------------------------------------------------------------------------------------------------- |
| success | | Boolean | True si la operación tiene éxito, False en caso contrario |
| statusText | | Text | Mensaje de estado devuelto por el servidor IMAP, o último error devuelto en la pila de errores 4D |
-| errors | | Collection | 4D error stack (not returned if a server response is received) |
+| errors | | Collection | Pila de error 4D (no retornado si se recibe una respuesta del servidor) |
| | \[].errcode | Number | Código de error 4D |
| | \[].message | Text | Descripción del error |
| | \[].componentSignature | Text | Firma del componente que ha devuelto el error |
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md
index 83ea74eaa7b121..01e379e63108be 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/IMAPTransporterClass.md
@@ -159,6 +159,14 @@ $flags["$seen"]:=True
$status:=$transporter.addFlags(IMAP all;$flags)
```
+#### Ver también
+
+[`.removeFlags()`](#removeflags)
+
+#### Ver también
+
+[`.removeFlags()`](#removeflags)
+
@@ -1294,7 +1302,7 @@ Para mover todos los mensajes del buzón actual:
#### Descripción
-The `.notifier` property contains the IMAPNotifier object associated with the transporter. Esta propiedad es de **solo lectura**.
+La propiedad `.notifier` contiene el objeto IMAPNotifier asociado al transportador. Esta propiedad es de **solo lectura**.
Véase [IMAPNotifier](./IMAPNotifierClass.md).
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/MailAttachmentClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/MailAttachmentClass.md
index 1805b5cd855dc1..a4d4200ee7d73d 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/MailAttachmentClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/MailAttachmentClass.md
@@ -7,7 +7,7 @@ Los objetos Attachment permiten referenciar archivos en un objeto [`Email`](Emai
:::info
-This class is [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) in binary.
+Esta clase es [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) en binario.
:::
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/MethodClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/MethodClass.md
index 2bbc1ff98634e8..23115e5eef9038 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/MethodClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/MethodClass.md
@@ -3,13 +3,13 @@ id: MethodClass
title: Método
---
-A `4D.Method` object contains a piece of code that is created from text source and can be executed. Los métodos `4D.Method` siempre se ejecutan en modo interpretado, independientemente del modo de ejecución del proyecto (interpretado/compilado). Esta funcionalidad está especialmente diseñada para permitir la ejecución dinámica y sobre la marcha de fragmentos de código.
+Un objeto `4D.Method` contiene un fragmento de código que se crea a partir de la fuente de texto y puede ser ejecutado. Los métodos `4D.Method` siempre se ejecutan en modo interpretado, independientemente del modo de ejecución del proyecto (interpretado/compilado). Esta funcionalidad está especialmente diseñada para permitir la ejecución dinámica y sobre la marcha de fragmentos de código.
Un objeto `4D.Method` se crea con la función `4D.Method.new()`.
Los objetos `4D.Method` heredan de la clase [`4D.Function`](./FunctionClass.md). Así, para ejecutar el objeto método, puede:
-- store a `4D.Method` object in an object property and use the `()` operator after the property name,
+- almacenar un objeto `4D.Method` en una propiedad del objeto y utilizar el operador `()` después del nombre de la propiedad,
- o llamar directamente al objeto `4D.Method` usando la función [`call()`](#call) o [`apply()`](#apply) en él.
Ver ejemplos en el párrafo [Ejecución de código en los objetos Function](../API/FunctionClass.md#executing-code-in-function-objects).
@@ -22,20 +22,20 @@ Ver ejemplos en el párrafo [Ejecución de código en los objetos Function](../A
:::info
-This class is [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) in binary.
+Esta clase es [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) en binario.
:::
### Ejemplos
-#### Basic dynamic method creation
+#### Creación de un método dinámico de base
```4d
var $myCode : Text
-$myCode:="#DECLARE ($number1:Integer;$number2:Integer):Integer"+Char(13)+"return $number1*$number2"
+$myCode:="#DECLARE ($number1:Integer;$number2:Integer):Integer "+Char(13)+"return $number1*$number2"
var $o:={}
-$o.multiplication:=4D.Method.new($myCode) //put object in a property
+$o.multiplication:=4D.Method.new($myCode) //poner objeto en una propiedad
var $result2:=$o.multiplication(2;3) // 6
var $result3:=4D.Method.new($myCode).call(Null; 10; 5) // 50
@@ -56,7 +56,7 @@ $result:=$o.concat("Hello ") // $result is "Hello John"
#### Utilizar un archivo de texto con comprobación sintáctica
```text
-//4d method stored in a text file
+//Método 4d almacenado en un archivo de texto
var $newBusinessRules:=New shared object
Use ($newBusinessRules)
$newBusinessRules.taxRate:=0.2
@@ -77,7 +77,7 @@ Este método se llama en el código:
var $myFile:=File("/DATA/BusinessRules.4dm")
var $myMethod:=4D.Method.new($myFile.getText())
-// Syntax errors verification
+// Verificación de errores de sintaxis
If ($myMethod.checkSyntax().success)
$myMethod.call()
End if
@@ -122,9 +122,9 @@ Los objetos 4D.Method ofrecen las siguientes propiedades y funciones:
#### Descripción
-The `4D.Method.new()` function creates and returns a new `4D.Method` object built from the *source* code.
+La función `4D.Method.new()` crea y devuelve un nuevo objeto `4D.Method` construido a partir del código *source*.
-En el parámetro *source*, pase el código fuente 4D del método como texto. All end-of-line characters are supported (LF, CR, CRLF) using the [`Char`](../commands/char) command or an [escape sequence](../Concepts/quick-tour.md#escape-sequences).
+En el parámetro *source*, pase el código fuente 4D del método como texto. Todos los caracteres de fin de línea son soportados (LF, CR, CRLF) utilizando el comando [`Char`](../commands/char) o una [secuencia de escape](../Concepts/quick-tour.md#escape-sequences).
En el parámetro opcional *name*, pase el nombre del método que se mostrará en el depurador 4D o en el explorador Runtime. Si omite este parámetro, el nombre del método aparecerá como "anonymous".
@@ -132,16 +132,16 @@ En el parámetro opcional *name*, pase el nombre del método que se mostrará en
Se recomienda nombrar explícitamente su método si lo desea:
-- use persistent method name in the [Custom watch pane of the Debugger](../Debugging/debugger#custom-watch-pane) (anonymous methods are not persistent in the debugger).
-- handle the volatile method using commands such as [`Method get path`](../commands/method-get-path) and [`Method resolve path`](../commands/method-resolve-path) (anonymous methods don't have paths).
+- utilizar nombre de método persistente en la [ventana de evaluación del depurador](../Debugging/debugger#custom-watch-pane) (los métodos anónimos no son persistentes en el depurador).
+- manipular el método volátil utilizando comandos como [`Method get path`](../commands/method-get-path) y [`Method resolve path`](../commands/method-resolve-path) (los métodos anónimos no tienen rutas).
:::
-The resulting 4D.Method object can be checked using [`checkSyntax()`](#checksyntax) and executed using `()`, [`.apply()`](#apply) or [`.call()`](#call).
+El objeto 4D.Method resultante puede ser verificado utilizando [`checkSyntax()`](#checksyntax) y ejecutado utilizando `()`, [`.apply()`](#apply) o [`.call()`](#call).
:::note
-Named volatile method objects are not project methods, they are not stored in disk files and cannot be called by commands such as [`EXECUTE METHOD`](../commands/execute-method). On the other hand, since they inherit from the [`4D.Function`](./FunctionClass.md) class, they can be used wherever a `4D.Function` object is expected.
+Los objetos método volátiles con nombre no son métodos proyecto, no se almacenan en archivos disco y no pueden ser llamados por comandos como [`EXECUTE METHOD`](../commands/execute-method). Por otra parte, dado que heredan de la clase [`4D.Function`](./FunctionClass.md), pueden utilizarse siempre que se espere un objeto `4D.Function`.
:::
@@ -196,16 +196,16 @@ var $result:=$m.call(Null; 10; 5) //50
#### Descripción
-The `.checkSyntax()` function checks the syntax of the source code of the `4D.Method` object and returns a result object.
+La función `.checkSyntax()` verifica la sintaxis del código fuente del objeto `4D.Method` y devuelve un objeto resultado.
El objeto devuelto contiene las siguientes propiedades:
@@ -243,7 +243,7 @@ End if
#### Descripción
-The `.name` property contains the name of the `4D.Method` object, if it was declared in the *name* parameter of the `new()` constructor. En caso contrario, no se devuelve la propiedad.
+La propiedad `.name` contiene el nombre del objeto `4D.Method`, si fue declarado en el parámetro *name* del constructor `new()`. En caso contrario, no se devuelve la propiedad.
Esta propiedad es de **solo lectura**.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/POP3TransporterClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/POP3TransporterClass.md
index 89d9dff8a6e5be..931ef442a4c60b 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/POP3TransporterClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/POP3TransporterClass.md
@@ -107,7 +107,7 @@ La función `4D.POP3Transporter.new()` marca el correo electrónico *msgNumber* para su eliminación del servidor POP3.
-En el parámetro *msgNumber*, pase el número del correo electrónico que desea eliminar. This number is returned in the number property by the [`.getMailInfoList()`](#getmailinfolist) method.
+En el parámetro *msgNumber*, pase el número del correo electrónico que desea eliminar. Este número es devuelto en la propiedad number por la [función `.getMailInfoList()`](#getmailinfolist).
La ejecución de este método no elimina realmente ningún correo electrónico. El correo marcado se eliminará del servidor POP3 sólo cuando se destruya el objeto `POP3_transporter` (creado con `POP3 New transporter`). El marcador también puede eliminarse utilizando el método `.undeleteAll()`.
@@ -281,7 +281,7 @@ Quiere saber el remitente del primer correo del buzón:
La función `.getMailInfo()` devuelve un objeto `mailInfo` correspondiente al *msgNumber* en el buzón designado por el [`transportador POP3`](#pop3-transporter-object). Esta función permite gestionar localmente la lista de mensajes localizados en el servidor de correo POP3.
-En *msgNumber*, pase el número del mensaje a recuperar. This number is returned in the number property by the [`.getMailInfoList()`](#getmailinfolist) method.
+En *msgNumber*, pase el número del mensaje a recuperar. Este número es devuelto en la propiedad number por la [función `.getMailInfoList()`](#getmailinfolist).
El objeto `mailInfo` devuelto contiene las siguientes propiedades:
@@ -412,7 +412,7 @@ Quiere saber el número total y el tamaño de los correos electrónicos en el bu
La función `.getMIMEAsBlob()` devuelve un BLOB con el contenido MIME del mensaje correspondiente al *msgNumber* en el buzón designado por el objeto [`POP3_transporter`](#pop3-transporter-object).
-En *msgNumber*, pase el número del mensaje a recuperar. This number is returned in the number property by the [`.getMailInfoList()`](#getmailinfolist) method.
+En *msgNumber*, pase el número del mensaje a recuperar. Este número es devuelto en la propiedad number por la [función `.getMailInfoList()`](#getmailinfolist).
El método devuelve un BLOB vacío si:
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 19fb5623c34c77..35ff62b1d5db0d 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md
@@ -10,7 +10,7 @@ Los objetos de sesión son devueltos por el comando [`Session`](../commands/sess
- [Sesiones escalables para aplicaciones web avanzadas](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/)
- [Permissions: inspeccionar los privilegios de la sesión para facilitar la depuración](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/)
- [Generar, compartir y utilizar contraseñas de un solo uso (OTP) para las sesiones web](https://blog.4d.com/connect-your-web-apps-to-third-party-systems/)
-- [Forget server-side wrappers, use 4D Sessions from the client](https://blog.4d.com/forget-server-side-wrappers-use-4d-sessions-from-the-client)
+- [Olvídese de los wrappers del lado del servidor, utilice Sesiones 4D desde el cliente](https://blog.4d.com/forget-server-side-wrappers-use-4d-sessions-from-the-client)
:::
@@ -134,7 +134,7 @@ Puede definir un tiempo de espera personalizado pasando un valor en segundos en
- para sesiones web, el token se crea con la misma duración que el [`.idleTimeOut`](#idletimeout) de la sesión.
- para sesiones de usuarios remotos, el token se crea con una duración de 10 segundos.
-In web sessions, the returned token can be used in exchanges with third-party applications or websites to securely identify the session. Por ejemplo, el token OTP de sesión se puede utilizar con una aplicación de pago.
+En las sesiones web, el token devuelto puede utilizarse en intercambios con aplicaciones o sitios web de terceros para identificar la sesión de forma segura. Por ejemplo, el token OTP de sesión se puede utilizar con una aplicación de pago.
In remote user sessions (and standalone sessions for test purposes), the returned token can be used by 4D to identify requests coming from the web that [share the session](../Desktop/sessions.md#sharing-a-remote-session-for-web-accesses).
@@ -508,7 +508,7 @@ End if
#### Descripción
-The `.info` property describes the session.
+La propiedad `.info` describe la sesión.
- **Remote user sessions** and **Stored procedure sessions**: The `.info` object is the same object as the one returned in the "session" property by the [`Process activity`](../commands/process-activity) command.
- **Sesiones estándar**: el objeto `.info` es el mismo objeto que el devuelto por el comando [`Session info`](../commands/session-info).
@@ -521,8 +521,8 @@ El objeto `.info` contiene las siguientes propiedades:
| type | Text | Tipo de sesión: "remote", "storedProcedure", "standalone", "rest", "web" |
| userName | Text | Nombre de usuario 4D (mismo valor que [`.userName`](#username)) |
| machineName | Text |
Remote sessions: name of the remote machine.
Client sessions: name of the local machine.
Stored procedures session: name of the server machine.
Standalone session: name of the machine
|
-| systemUserName | Text |
Remote sessions: name of the system session opened on the remote machine.
Client sessions: name of the local system session
|
-| IPAddress | Text |
Remote sessions: IP address of the remote machine.
Client sessions: IP address of the local machine.
Standalone session: "localhost"
|
+| systemUserName | Text |
Sesiones remotas: nombre de la sesión del sistema abierta en la máquina remota.
Sesiones cliente: nombre de la sesión del sistema local.
|
+| IPAddress | Text |
Sesiones remotas: dirección IP de la máquina remota.
Sesiones cliente: dirección IP de la máquina local.
Sesión autónoma: "localhost"
|
| hostType | Text | Tipo de host: "windows", "mac" o "browser" |
| creationDateTime | Date ISO 8601 | Fecha y hora de creación de la sesión (sesión autónoma: fecha y hora de inicio de la aplicación) |
| state | Text | Estado de la sesión: "active", "postponed", "sleeping" |
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/SystemWorkerClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/SystemWorkerClass.md
index 9a6ee5a89bc00c..3c03224b307236 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/SystemWorkerClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SystemWorkerClass.md
@@ -9,7 +9,7 @@ La clase `SystemWorker` está disponible en el class store `4D`.
### Programación asíncrona
-This class supports asynchronous programming in 4D as described in the [Asynchronous Execution](../Develop/async.md) page.
+Esta clase soporta programación asíncrona en 4D como se describe en la página [Ejecución Asíncrona](../Develop/async.md).
### Ejemplo
@@ -328,7 +328,7 @@ $output:=$worker.response
#### Descripción
-The `.commandLine` property contains the command line passed as parameter to the [`new()`](#4dsystemworkernew) function.
+La propiedad `.commandLine` contiene la línea de comandos pasada como parámetro a la función [`new()`](#4dsystemworkernew).
Esta propiedad es de **solo lectura**.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md
index d7f8454c2e290d..ca417407194e46 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/TCPConnectionClass.md
@@ -30,7 +30,7 @@ Para la depuración y monitorización, puede utilizar el [archivo de registro 4D
### Programación asíncrona
-This class supports asynchronous programming in 4D as described in the [Asynchronous Execution](../Develop/async.md) page.
+Esta clase soporta programación asíncrona en 4D como se describe en la página [Ejecución Asíncrona](../Develop/async.md).
### Ejemplos
@@ -170,7 +170,7 @@ Los objetos TCPConnection ofrecen las siguientes propiedades y funciones:
#### Descripción
-The `4D.TCPConnection.new()` function creates a new TCP connection to the specified *serverAddress* and *serverPort*, using the defined *options*, and returns a `4D.TCPConnection` object.
+La función `4D.TCPConnection.new()` crea una nueva conexión TCP a la *serverAddress* y *serverPort* especificados, usando las *opciones* definidas, y devuelve un objeto `4D.TCPConnection`.
#### Parámetro *options*
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/TCPListenerClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/TCPListenerClass.md
index 850a47777e24e0..731a6e59eb6687 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/TCPListenerClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/TCPListenerClass.md
@@ -19,7 +19,7 @@ Todas las funciones de la clase `TCPListener` son hilo seguro.
### Programación asíncrona
-This class supports asynchronous programming in 4D as described in the [Asynchronous Execution](../Develop/async.md) page.
+Esta clase soporta programación asíncrona en 4D como se describe en la página [Ejecución Asíncrona](../Develop/async.md).
### Ejemplo
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/UDPSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/UDPSocketClass.md
index c412faede0a3a8..b988fabba7bb22 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/UDPSocketClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/UDPSocketClass.md
@@ -25,7 +25,7 @@ Para depuración y monitorización, puede utilizar el fichero de registro [4DTCP
### Programación asíncrona
-This class supports asynchronous programming in 4D as described in the [Asynchronous Execution](../Develop/async.md) page.
+Esta clase soporta programación asíncrona en 4D como se describe en la página [Ejecución Asíncrona](../Develop/async.md).
### Objeto UDPSocket
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/VectorClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/VectorClass.md
index ba622c0387469e..ccd4d9f3152b43 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/VectorClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/VectorClass.md
@@ -9,7 +9,7 @@ En el mundo de las IA, un vector es una secuencia de números que permite a una
:::info
-This class is [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) in binary.
+Esta clase es [**streamable**](../Concepts/dt_object.md#binary-streaming-variable-to-blob) en binario.
:::
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md
index 6f17b15f3ab4bb..0c0ed2bbaf9a2a 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebFormClass.md
@@ -31,7 +31,7 @@ La clase `WebForm` contiene funciones y propiedades que permiten manejar sus com
#### Descripción
-The components of web pages are objects that are available directly as properties of these web pages.
+Los componentes de las páginas web son objetos que están disponibles directamente como propiedades de estas páginas web.
Los objetos devueltos son de la clase [`4D.WebFormItem`](WebFormItemClass.md). Estos objetos tienen funciones que puede utilizar para gestionar sus componentes de forma dinámica.
@@ -43,14 +43,14 @@ shared singleton Class constructor()
var myForm : 4D.WebForm
var component : 4D.WebFormItem
- myForm:=webForm //returns the web page as an object, each property is a component
- component:=myForm.myImage //returns the myImage component of the web page
+ myForm:=webForm //devuelve la página web como un objeto, cada propiedad es un componente
+ component:=myForm.myImage //devuelve el componente myImage de la página web
```
:::info
-While `myForm` may not display typical object properties when examined in the debugger, it behaves as if it were the actual `webForm` object. Puede interactuar con las propiedades y funciones del objeto `webForm` subyacente a través de `myForm`. Por ejemplo, puede manipular dinámicamente los componentes de la página o transmitir mensajes a las páginas web utilizando funciones especializadas como `myForm.setMessage()`.
+Aunque `myForm` puede no mostrar las propiedades típicas de un objeto cuando se examina en el depurador, se comporta como si fuera el objeto `webForm` real. Puede interactuar con las propiedades y funciones del objeto `webForm` subyacente a través de `myForm`. Por ejemplo, puede manipular dinámicamente los componentes de la página o transmitir mensajes a las páginas web utilizando funciones especializadas como `myForm.setMessage()`.
:::
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 63b3ed387c521f..6e337bb5136a3c 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebServerClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebServerClass.md
@@ -8,7 +8,7 @@ La API clase `WebServer` le permite iniciar y controlar un servidor web para la
### Propiedades
- **Streamable**: no
-- **Sharable**: no
+- **Compartible**: no
### Objeto servidor web
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md
index d7741644f33ac7..a95bb91b777c2c 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketClass.md
@@ -17,7 +17,7 @@ Las conexiones cliente WebSocket son útiles, por ejemplo, para recibir datos fi
### Programación asíncrona
-This class supports asynchronous programming in 4D as described in the [Asynchronous Execution](../Develop/async.md) page.
+Esta clase soporta programación asíncrona en 4D como se describe en la página [Ejecución Asíncrona](../Develop/async.md).
### Ejemplo
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md
index 609ecd3dc715b6..5102035fec7dc4 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/API/WebSocketServerClass.md
@@ -43,7 +43,7 @@ El [servidor Web 4D](WebServerClass.md) debe estar iniciado.
### Programación asíncrona
-This class supports asynchronous programming in 4D as described in the [Asynchronous Execution](../Develop/async.md) page.
+Esta clase soporta programación asíncrona en 4D como se describe en la página [Ejecución Asíncrona](../Develop/async.md).
### Ejemplo
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Admin/cli.md b/i18n/es/docusaurus-plugin-content-docs/current/Admin/cli.md
index 48facd9797be84..860d87f1a37efd 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Admin/cli.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Admin/cli.md
@@ -42,27 +42,27 @@ 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. Si no es sin interfaz: idéntico a
hacer doble clic en la aplicación; cuando se llama sin argumento de archivo de estructura,
la aplicación se ejecuta y aparece la caja de diálogo "seleccionar base de
datos". |
-| `--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/get-database-parameter) (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). In this mode:
The Design mode is not available, database starts in Application mode
No toolbar, menu bar, MDI window or splash screen is displayed
No icon is displayed in the dock or task bar
The opened database is not registered in the "Recent databases" menu
The diagnostic log is automatically started (see [SET DATABASE PARAMETER](../commands/set-database-parameter), selector 79)
Every call to a dialog box is intercepted and an automatic response it provided (e.g. OK for the [ALERT](../commands/alert) command, Abort for an error dialog...). 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/log-event) command. Tenga en cuenta que las aplicaciones 4D sin interfaz sólo pueden cerrarse mediante una llamada a [QUIT 4D](../commands/quit-4d) 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). En este modo:
No se abre ningún archivo que contenga datos, aunque se especifique en la línea de comandos o en el archivo `.4DLink`, o cuando se utilicen los comandos `CREATE DATA FILE` y `OPEN DATA FILE`.
Los comandos que manipulen datos generarán un error. Por ejemplo, `CREATE RECORD` muestra el mensaje “no hay tabla a la cual aplicar el comando”.
**Nota**:
si se pasa en la línea de comandos, el modo dataless se aplica a todas las bases de datos abiertas en 4D, siempre y cuando la aplicación no se cierre.
Si se pasa utilizando el archivo `.4DLink`, el modo dataless solo 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#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`). |
-
-(\*) Some dialogs are displayed before the database is opened, so that it's impossible to write into the [Diagnostic log file](Debugging/debugLogFiles.md#4ddiagnosticlogtxt) (license alert, conversion dialog, database selection, data file selection). En este caso, se
+| Argumento | Valor | Descripción |
+| :-------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `applicationPath` | Ruta de 4D, 4D Server, aplicación fusionada o tool4d | Lanza la aplicación. Si no es sin interfaz: idéntico a
hacer doble clic en la aplicación; cuando se llama sin argumento de archivo de estructura,
la aplicación se ejecuta y aparece la caja de diálogo "seleccionar base de
datos". |
+| `--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/get-database-parameter) (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/set-database-parameter), 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/alert), Abort para un diálogo de error...). Todos los comandos interceptados(\*) se registran en el historial de diagnóstico.
Para las necesidades de mantenimiento, puede enviar cualquier texto a los flujos de salida estándar utilizando el comando [LOG EVENT](../commands/log-event). Tenga en cuenta que las aplicaciones 4D sin interfaz sólo pueden cerrarse mediante una llamada a [QUIT 4D](../commands/quit-4d) 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). En este modo:
No se abre ningún archivo que contenga datos, aunque se especifique en la línea de comandos o en el archivo `.4DLink`, o cuando se utilicen los comandos `CREATE DATA FILE` y `OPEN DATA FILE`.
Los comandos que manipulen datos generarán un error. Por ejemplo, `CREATE RECORD` muestra el mensaje “no hay tabla a la cual aplicar el comando”.
**Nota**:
si se pasa en la línea de comandos, el modo dataless se aplica a todas las bases de datos abiertas en 4D, siempre y cuando la aplicación no se cierre.
Si se pasa utilizando el archivo `.4DLink`, el modo dataless solo 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#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 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,
y luego la aplicación se cierra.
@@ -219,7 +219,7 @@ En Windows, tool4d es una aplicación de consola, de modo que el stream `stdout`
:::note Notas
- tool4d siempre se ejecuta sin interfaz (la opción de línea de comandos `headless` es inútil).
-- The [`Application type`](../commands/application-type) command returns the value 6 ("tool4d") when called from the tool4d application.
+- El comando [`Application type`](../commands/application-type) devuelve el valor 6 ("tool4d") cuando se llama desde la aplicación tool4d.
- el [archivo de registro de diagnóstico](../Debugging/debugLogFiles.md#4ddiagnosticlogtxt) tiene el prefijo "4DDiagnosticLogTool".
:::
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Admin/data-collect.md b/i18n/es/docusaurus-plugin-content-docs/current/Admin/data-collect.md
index a946d456db01c3..fbaf9803cfd722 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Admin/data-collect.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Admin/data-collect.md
@@ -3,7 +3,7 @@ id: data-collect
title: Recopilación de datos
---
-Para que nuestros productos sean siempre mejores, recogemos automáticamente los datos relativos a las estadísticas de uso de las aplicaciones 4D Server en funcionamiento. Los datos recogidos se transfieren sin ningún impacto en la experiencia del usuario. No se recopila información personal. For more information on 4D policy regarding personal data protection, please visit [this page](https://us.4d.com/privacy-policy).
+Para que nuestros productos sean siempre mejores, recogemos automáticamente los datos relativos a las estadísticas de uso de las aplicaciones 4D Server en funcionamiento. Los datos recolectados se transfieren sin ningún impacto en la experiencia del usuario. No se recopila información personal. Para más información sobre la política de 4D en materia de protección de datos personales, consulte [esta página](https://us.4d.com/privacy-policy).
La sección siguiente lo explica:
@@ -24,115 +24,115 @@ Los datos se recogen durante los siguientes eventos:
También se recogen algunos datos a intervalos regulares.
-| Datos | Tipo | Notas |
-| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- |
-| appServer | Object | Objeto que contiene información sobre el servidor de aplicaciones |
-| appServer.hits | Number | Número de peticiones de procesos internos |
-| appServer.bytesIn | Number | Bytes received by internal processes |
-| appServer.bytesOut | Number | Bytes sent by internal processes |
-| appServer.executionTime | Number | Tiempo de ejecución de la CPU para procesos internos |
-| cacheMissBytes | Object | Número de bytes perdidos de la caché |
-| cacheMissCount | Object | Número de lecturas perdidas en la caché |
-| cacheReadBytes | Object | Número de bytes leídos de la caché |
-| cacheReadCount | Object | Número de lecturas en la caché |
-| classUsage | Object | Número de instancias de ciertas clases de lenguaje |
-| connectionSystems | Collection | Sistema operativo del cliente sin el número de compilación (entre paréntesis) y número de clientes que lo utilizan |
-| databases[].cacheSize | Number | Tamaño de caché en bytes |
-| databases[].externalDatastoreOpened | Number | Número de llamadas a `Open datastore` |
-| databases[].id | Number | Database ID |
-| databases[].internalDatastoreOpened | Number | Número de veces que un servidor externo abre el almacén de datos |
-| databases[].maxConcurrent4DClients | Number | Maximum number of simultaneous 4D Client sessions (using a 4D Client license) over the collection interval |
-| databases[].maxConcurrentRestSessions | Number | Maximum number of simultaneous REST sessions over the collection interval |
-| databases[].maxConcurrentWebSessions | Number | Maximum number of simultaneous Web sessions (4DACTION and SOAP) over the collection interval |
-| databases[].maximum4DClientConnections | Number | Número máximo de conexiones 4D Client al servidor |
-| databases[].numberOfDistinctClients | Number | Distinct count of client persistent UUID seen over collection interval |
-| databases[].numberOfFields | Number | Número de campos |
-| databases[].numberOfKeepRecordSyncInfo | Number | Número de tablas con la opción "Activar la replicación" marcada |
-| databases[].numberOfRecordsMax | Number | Número total de registros |
-| databases[].numberOfTables | Number | Número de tablas |
-| databases[].qodly.webforms | Number | Número de formularios web Qodly |
-| databases[].remoteDebugger4DRemoteAttachments | Number | Número de adjuntos al depurador remoto desde un 4D remoto |
-| databases[].remoteDebuggerQodlyAttachments | Number | Número de archivos adjuntos al depurador remoto de Qodly |
-| databases[].remoteDebuggerVSCodeAttachments | Number | Número de archivos adjuntos al depurador remoto desde VS Code |
-| databases[].structureHash | Text | |
-| databases[].uniqueID | Texto (cadena con hash) | Identificador único asociado a la base de datos (*Polinomio Rolling hash del nombre de la base*) |
-| databases[].uptime | Number | Time elapsed (in seconds) between two collection events |
-| databases[].uuid | Text | Database UUID |
-| databases[].webIPAddressesNumber | Number | Número de direcciones IP diferentes que hicieron una petición a 4D Server |
-| databases[].webMaxScalableSessions | Number | Número máximo de sesiones escalables en el servidor |
-| databases[].webScalableSessions | Boolean | True si las sesiones escalables están activadas |
-| dataSegment1.diskReadBytes | Object | Número de bytes leídos en el archivo de datos |
-| dataSegment1.diskReadCount | Object | Número de lecturas en el archivo de datos |
-| dataSegment1.diskWriteBytes | Object | Número de bytes escritos en el archivo de datos |
-| dataSegment1.diskWriteCount | Object | Número de escrituras en el archivo de datos |
-| dataSize | Number | Tamaño del archivo de datos en bytes |
-| dbServer | Object | Objeto que contiene información sobre el servidor DB4D |
-| dbServer.hits | Number | Número de peticiones de procesos internos |
-| dbServer.bytesIn | Number | Bytes received by internal processes |
-| dbServer.bytesOut | Number | Bytes sent by internal processes |
-| dbServer.executionTime | Number | Tiempo de ejecución de la CPU para procesos internos |
-| encryptedConnections | Boolean | True si las conexiones cliente/servidor están encriptadas |
-| externalPHP | Boolean | True si el cliente realiza una llamada a `PHP execute` y utiliza su propia versión de php |
-| general.buildNumber | Number | Número de build de la aplicación 4D |
-| general.headless | Boolean | True si la aplicación se ejecuta en modo sin interfaz |
-| general.isRosetta | Boolean | True si 4D es emulado a través de Rosetta en macOS, False en caso contrario (no emulado o en Windows). |
-| general.license | Object | Nombre comercial y descripción de las licencias de los productos |
-| general.uniqueID | Text | ID único de 4D Server |
-| general.version | Text | Número de versión de la aplicación 4D |
-| hasDataChangeTracking | Boolean | True si existe una tabla "__DeletedRecords |
-| indexSegment.diskReadBytes | Number | Número de bytes leídos en el archivo índice |
-| indexSegment.diskReadCount | Number | Número de lecturas en el archivo índice |
-| indexSegment.diskWriteBytes | Number | Número de bytes escritos en el archivo índice |
-| indexSegment.diskWriteCount | Number | Número de escrituras en el archivo índice |
-| indexSize | Number | Tamaño del índice en bytes |
-| isCompiled | Boolean | True si la aplicación está compilada |
-| isEncrypted | Boolean | True si el archivo de datos está encriptado |
-| isEngined | Boolean | True si la aplicación se fusiona con 4D Volume Desktop |
-| isProjectMode | Boolean | True si la aplicación es un proyecto |
-| LDAPLogin | Number | Número de llamadas a `LDAP LOGIN` |
-| license.sffPrimaryKey | Number | Server master product number |
-| machine.CPU | Text | Nombre, tipo y velocidad del procesador |
-| machine.memory | Number | Volumen de almacenamiento de memoria (en bytes) disponible en la máquina |
-| machine.numberOfCores | Number | Número total de núcleos |
-| machine.system | Text | Versión del sistema operativo y número de build |
-| maximumNumberOfWebProcesses | Number | Número máximo de procesos web simultáneos |
-| maximumUsedPhysicalMemory | Number | Uso máximo de la memoria física |
-| maximumUsedVirtualMemory | Number | Uso máximo de la memoria virtual |
-| mobile | Collection | Información sobre sesiones móviles |
-| numberOfWebServices | Number | Número de métodos publicados como servicios web |
-| ODBCLogin | Number | Número de llamadas a `SQL LOGIN` utilizando ODBC |
-| phpCall | Number | Número de llamadas a `PHP execute` |
-| QueryBySQL | Number | Número de llamadas a `QUERY BY SQL` |
-| restServer | Object | Objeto que contiene información del servidor REST |
-| restServer.bytesIn | Number | Bytes received by the REST server |
-| restServer.bytesOut | Number | Bytes sent by the REST server |
-| restServer.hits | Number | Number of hits on the REST server |
-| restServer.executionTime | Number | Tiempo de ejecución de la CPU para el servidor REST WEB |
-| soapServer | Object | Objeto que contiene información sobre el servidor SOAP |
-| soapServer.bytesIn | Number | Bytes received by the SOAP server |
-| soapServer.bytesOut | Number | Bytes sent by the SOAP server |
-| soapServer.hits | Number | Number of hits on the SOAP server |
-| soapServer.executionTime | Number | Tiempo de ejecución de la CPU para el servidor SOAP |
-| SQLBeginEndStatement | Number | Número de usos de "Begin SQL" / "End SQL" |
-| SQLLoginInternal | Number | Número de llamadas a `SQL LOGIN` utilizando SQL_INTERNAL |
-| sqlServer | Object | Objeto que contiene información del servidor SQL |
-| sqlServer.hits | Number | Número de consultas SQL ejecutadas |
-| sqlServer.bytesIn | Number | Bytes received by the SQL engine |
-| sqlServer.bytesOut | Number | Bytes sent by the SQL engine |
-| sqlServer.executionTime | Number | Tiempo de ejecución de la CPU para consultas SQL |
-| usingQUICNetworkLayer | Boolean | True si la base utiliza la capa de red QUIC |
-| totalExecutionTime | Number | Tiempo total de ejecución de la CPU: suma de todos los tipos de peticiones |
-| totalRequests | Number | Total requests: sum of web, REST, SOAP, SQL, and internal traffic |
-| webServer | Object | Objeto que contiene información sobre el servidor web |
-| webServer.bytesIn | Number | Bytes recibidos por el servidor web |
-| webServer.bytesOut | Number | Bytes sent by the Web server |
-| webServer.hits | Number | Number of hits on the Web server |
-| webServer.executionTime | Number | Tiempo de ejecución de la CPU para el servidor Web |
-| webStaticServer | Object | Objeto que contiene la información estática del servidor web |
-| webStaticServer.bytesIn | Number | Bytes recibidos por el servidor Web estático |
-| webStaticServer.bytesOut | Number | Bytes enviados por el servidor Web estático |
-| webStaticServer.hits | Number | Número de visitas al servidor Web estático |
-| webStaticServer.executionTime | Number | Tiempo de ejecución de la CPU para el servidor Web estático |
+| Datos | Tipo | Notas |
+| ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ |
+| appServer | Object | Objeto que contiene información sobre el servidor de aplicaciones |
+| appServer.hits | Number | Número de peticiones de procesos internos |
+| appServer.bytesIn | Number | Bytes recibidos por procesos internos |
+| appServer.bytesOut | Number | Bytes enviados por procesos internos |
+| appServer.executionTime | Number | Tiempo de ejecución de la CPU para procesos internos |
+| cacheMissBytes | Object | Número de bytes perdidos de la caché |
+| cacheMissCount | Object | Número de lecturas perdidas en la caché |
+| cacheReadBytes | Object | Número de bytes leídos de la caché |
+| cacheReadCount | Object | Número de lecturas en la caché |
+| classUsage | Object | Número de instancias de ciertas clases de lenguaje |
+| connectionSystems | Collection | Sistema operativo del cliente sin el número de compilación (entre paréntesis) y número de clientes que lo utilizan |
+| databases[].cacheSize | Number | Tamaño de caché en bytes |
+| databases[].externalDatastoreOpened | Number | Número de llamadas a `Open datastore` |
+| databases[].id | Number | ID de la base de datos |
+| databases[].internalDatastoreOpened | Number | Número de veces que un servidor externo abre el almacén de datos |
+| databases[].maxConcurrent4DClients | Number | Número máximo de sesiones 4D Client simultáneas (utilizando una licencia 4D Client) durante el intervalo de recolección |
+| databases[].maxConcurrentRestSessions | Number | Número máximo de sesiones REST simultáneas durante el intervalo de recolección |
+| databases[].maxConcurrentWebSessions | Number | Número máximo de sesiones Web simultáneas (4DACTION y SOAP) durante el intervalo de recolección |
+| databases[].maximum4DClientConnections | Number | Número máximo de conexiones 4D Client al servidor |
+| databases[].numberOfDistinctClients | Number | Conteo de distintos de UUID persistentes de clientes en el intervalo de colección |
+| databases[].numberOfFields | Number | Número de campos |
+| databases[].numberOfKeepRecordSyncInfo | Number | Número de tablas con la opción "Activar la replicación" marcada |
+| databases[].numberOfRecordsMax | Number | Número total de registros |
+| databases[].numberOfTables | Number | Número de tablas |
+| databases[].qodly.webforms | Number | Número de formularios web Qodly |
+| databases[].remoteDebugger4DRemoteAttachments | Number | Número de adjuntos al depurador remoto desde un 4D remoto |
+| databases[].remoteDebuggerQodlyAttachments | Number | Número de archivos adjuntos al depurador remoto de Qodly |
+| databases[].remoteDebuggerVSCodeAttachments | Number | Número de archivos adjuntos al depurador remoto desde VS Code |
+| databases[].structureHash | Text | |
+| databases[].uniqueID | Texto (cadena con hash) | Identificador único asociado a la base de datos (*Polinomio Rolling hash del nombre de la base*) |
+| databases[].uptime | Number | Tiempo transcurrido (en segundos) entre dos eventos de recolección |
+| databases[].uuid | Text | UUID de la base de datos |
+| databases[].webIPAddressesNumber | Number | Número de direcciones IP diferentes que hicieron una petición a 4D Server |
+| databases[].webMaxScalableSessions | Number | Número máximo de sesiones escalables en el servidor |
+| databases[].webScalableSessions | Boolean | True si las sesiones escalables están activadas |
+| dataSegment1.diskReadBytes | Object | Número de bytes leídos en el archivo de datos |
+| dataSegment1.diskReadCount | Object | Número de lecturas en el archivo de datos |
+| dataSegment1.diskWriteBytes | Object | Número de bytes escritos en el archivo de datos |
+| dataSegment1.diskWriteCount | Object | Número de escrituras en el archivo de datos |
+| dataSize | Number | Tamaño del archivo de datos en bytes |
+| dbServer | Object | Objeto que contiene información sobre el servidor DB4D |
+| dbServer.hits | Number | Número de peticiones de procesos internos |
+| dbServer.bytesIn | Number | Bytes recibidos por procesos internos |
+| dbServer.bytesOut | Number | Bytes enviados por procesos internos |
+| dbServer.executionTime | Number | Tiempo de ejecución de la CPU para procesos internos |
+| encryptedConnections | Boolean | True si las conexiones cliente/servidor están encriptadas |
+| externalPHP | Boolean | True si el cliente realiza una llamada a `PHP execute` y utiliza su propia versión de php |
+| general.buildNumber | Number | Número de build de la aplicación 4D |
+| general.headless | Boolean | True si la aplicación se ejecuta en modo sin interfaz |
+| general.isRosetta | Boolean | True si 4D es emulado a través de Rosetta en macOS, False en caso contrario (no emulado o en Windows). |
+| general.license | Object | Nombre comercial y descripción de las licencias de los productos |
+| general.uniqueID | Text | ID único de 4D Server |
+| general.version | Text | Número de versión de la aplicación 4D |
+| hasDataChangeTracking | Boolean | True si existe una tabla "__DeletedRecords |
+| indexSegment.diskReadBytes | Number | Número de bytes leídos en el archivo índice |
+| indexSegment.diskReadCount | Number | Número de lecturas en el archivo índice |
+| indexSegment.diskWriteBytes | Number | Número de bytes escritos en el archivo índice |
+| indexSegment.diskWriteCount | Number | Número de escrituras en el archivo índice |
+| indexSize | Number | Tamaño del índice en bytes |
+| isCompiled | Boolean | True si la aplicación está compilada |
+| isEncrypted | Boolean | True si el archivo de datos está encriptado |
+| isEngined | Boolean | True si la aplicación se fusiona con 4D Volume Desktop |
+| isProjectMode | Boolean | True si la aplicación es un proyecto |
+| LDAPLogin | Number | Número de llamadas a `LDAP LOGIN` |
+| license.sffPrimaryKey | Number | Número de producto del servidor principal |
+| machine.CPU | Text | Nombre, tipo y velocidad del procesador |
+| machine.memory | Number | Volumen de almacenamiento de memoria (en bytes) disponible en la máquina |
+| machine.numberOfCores | Number | Número total de núcleos |
+| machine.system | Text | Versión del sistema operativo y número de build |
+| maximumNumberOfWebProcesses | Number | Número máximo de procesos web simultáneos |
+| maximumUsedPhysicalMemory | Number | Uso máximo de la memoria física |
+| maximumUsedVirtualMemory | Number | Uso máximo de la memoria virtual |
+| mobile | Collection | Información sobre sesiones móviles |
+| numberOfWebServices | Number | Número de métodos publicados como servicios web |
+| ODBCLogin | Number | Número de llamadas a `SQL LOGIN` utilizando ODBC |
+| phpCall | Number | Número de llamadas a `PHP execute` |
+| QueryBySQL | Number | Número de llamadas a `QUERY BY SQL` |
+| restServer | Object | Objeto que contiene información del servidor REST |
+| restServer.bytesIn | Number | Bytes recibidos por el servidor REST |
+| restServer.bytesOut | Number | Bytes enviados por el servidor REST |
+| restServer.hits | Number | Número de hits del servidor REST |
+| restServer.executionTime | Number | Tiempo de ejecución de la CPU para el servidor REST WEB |
+| soapServer | Object | Objeto que contiene información sobre el servidor SOAP |
+| soapServer.bytesIn | Number | Bytes recibidos por el servidor SOAP |
+| soapServer.bytesOut | Number | Bytes enviados por el servidor SOAP |
+| soapServer.hits | Number | Número de hits del servidor SOAP |
+| soapServer.executionTime | Number | Tiempo de ejecución de la CPU para el servidor SOAP |
+| SQLBeginEndStatement | Number | Número de usos de "Begin SQL" / "End SQL" |
+| SQLLoginInternal | Number | Número de llamadas a `SQL LOGIN` utilizando SQL_INTERNAL |
+| sqlServer | Object | Objeto que contiene información del servidor SQL |
+| sqlServer.hits | Number | Número de consultas SQL ejecutadas |
+| sqlServer.bytesIn | Number | Bytes recibidos por el motor SQL |
+| sqlServer.bytesOut | Number | Bytes enviados por el motor SQL |
+| sqlServer.executionTime | Number | Tiempo de ejecución de la CPU para consultas SQL |
+| usingQUICNetworkLayer | Boolean | True si la base utiliza la capa de red QUIC |
+| totalExecutionTime | Number | Tiempo total de ejecución de la CPU: suma de todos los tipos de peticiones |
+| totalRequests | Number | Total de peticiones: suma de peticiones web, REST, SOAP, SQL y del tráfico interno |
+| webServer | Object | Objeto que contiene información sobre el servidor web |
+| webServer.bytesIn | Number | Bytes recibidos por el servidor web |
+| webServer.bytesOut | Number | Bytes enviados por el servidor web |
+| webServer.hits | Number | Número de hits al servidor web |
+| webServer.executionTime | Number | Tiempo de ejecución de la CPU para el servidor Web |
+| webStaticServer | Object | Objeto que contiene la información estática del servidor web |
+| webStaticServer.bytesIn | Number | Bytes recibidos por el servidor Web estático |
+| webStaticServer.bytesOut | Number | Bytes enviados por el servidor Web estático |
+| webStaticServer.hits | Number | Número de visitas al servidor Web estático |
+| webStaticServer.executionTime | Number | Tiempo de ejecución de la CPU para el servidor Web estático |
## ¿Dónde se almacena y envía?
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Admin/dataExplorer.md b/i18n/es/docusaurus-plugin-content-docs/current/Admin/dataExplorer.md
index c166f6d4b0648a..06d6b941ea1651 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Admin/dataExplorer.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Admin/dataExplorer.md
@@ -18,7 +18,7 @@ El Explorador de datos se basa en el componente servidor web [`WebAdmin`](webAdm
## Apertura del Explorador de datos
-[The Web Administration Server](webAdmin.md#starting-the-web-administration-server) is started automatically if necessary when the Data Explorer is clicked on.
+[El servidor de administración web](webAdmin.md#starting-the-web-administration-server) se inicia automáticamente si es necesario cuando se hace clic en el explorador de datos.
Para conectarse a la página web del Explorador de datos:
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Admin/licenses.md b/i18n/es/docusaurus-plugin-content-docs/current/Admin/licenses.md
index ade2fd94054bcf..14208a2f064b59 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Admin/licenses.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Admin/licenses.md
@@ -32,7 +32,7 @@ Las licencias de despliegue pueden ser anidadas en el paso de creación por el d
Algunas licencias 4D tienen una fecha de caducidad, después de la cual deben ser renovadas. Cuando la suscripción a la licencia se renueva en 4D Store, sus licencias se actualizan automáticamente en sus aplicaciones 4D al iniciar el proceso [cuando se conecta](GettingStarted/Installation.md) en el Asistente de bienvenida.
-In some cases, the license update may require that you click on the [**Refresh** button](#refresh) of the Licenses Manager dialog box.
+En algunos casos, la actualización de la licencia puede requerir que haga clic en el botón [**Refrescar**](#refresh) del cuadro de diálogo Administrador de licencias.
## Activación de licencias
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/classes.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/classes.md
index 5aba5ec5ca0280..01c1347c2b0652 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/classes.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/classes.md
@@ -41,16 +41,16 @@ Class files are managed through the 4D Explorer (see [Creating classes](../Proje
#### Borrar una clase
-To delete an existing class, select it in the Explorer and click  or choose **Move to Trash** from the contextual menu.
+Para eliminar una clase existente, selecciónela en el Explorador y haga clic en  o elija **Mover a la Papelera** en el menú contextual.
-You can also remove the .4dm class file from the "Classes" folder on your disk.
+También puede eliminar el archivo de clase .4dm de la carpeta "Classes" de su disco.
## Class stores
Las clases disponibles son accesibles desde sus class stores. Hay dos class stores disponibles:
-- [`cs`](../commands/cs) for user classes and component class stores
-- [`4D`](../commands/4d) for built-in classes
+- [`cs`](../commands/cs) para las clases de usuario y las class stores de los componentes
+- [`4D`](../commands/4d) para las clases integradas
#### `cs`
@@ -149,7 +149,7 @@ En las definiciones de clase se pueden utilizar palabras claves específicas de
```4d
{local | server} {shared} Function ({$parameterName : type; ...}){->$parameterName : type}
-// code
+// código
```
:::note
@@ -162,7 +162,7 @@ Las funciones de clase son propiedades específicas de la clase. Son objetos de
Si las funciones se declaran en una [clase compartida](#shared-class-constructor), puede utilizar la palabra clave `shared` con ellas para que puedan ser llamadas sin la estructura [`Use...End use`](shared.md#useend-use). Para obtener más información, consulte el párrafo [Funciones compartidas](#shared-functions) a continuación.
-In the context of a client/server application, the `local` or `server` keyword allows you to specify on which machine the function must be executed. These keywords can only be used with ORDA data model functions and shared/session singleton functions. For more information, refer to the [local and server functions](#local-and-server) paragraph below.
+En el contexto de una aplicación cliente/servidor, la palabra clave `local` o `server` permite especificar en qué máquina debe ejecutarse la función. Estas palabras claves sólo pueden utilizarse con las funciones del modelo de datos ORDA y las funciones singleton compartidas/sesión. Para más información, consulte el párrafo [funciones locales y de servidor](#local-and-server) más abajo.
El nombre de la función debe ser compatible con las [reglas de nomenclatura de objetos](Concepts/identifiers.md#object-properties).
@@ -457,7 +457,7 @@ $o.age:="Smith" //error con la sintaxis de verificación
```4d
{local | server} {shared} Function get ()->$result : type
-// code
+// código
```
```4d
@@ -488,7 +488,7 @@ Cuando ambas funciones están definidas, la propiedad calculada es **read-write*
Si las funciones se declaran en una [clase compartida](#shared-classes), puede utilizar la palabra clave `shared` con ellas para que puedan ser llamadas sin la estructura [`Use...End use`](shared.md#useend-use). Para obtener más información, consulte el párrafo [Funciones compartidas](#shared-functions) a continuación.
-In the context of a client/server application, the `local` or `server` keyword allows you to specify on which machine the function must be executed. These keywords can only be used with ORDA data model functions and shared/session singleton functions. For more information, refer to the [local and server functions](#local-and-server) paragraph below.
+En el contexto de una aplicación cliente/servidor, la palabra clave `local` o `server` permite especificar en qué máquina debe ejecutarse la función. Estas palabras claves sólo pueden utilizarse con las funciones del modelo de datos ORDA y las funciones singleton compartidas/sesión. Para más información, consulte el párrafo [funciones locales y de servidor](#local-and-server) más abajo.
El tipo de la propiedad calculada es definido por la declaración de tipo `$return` del \*getter \*. Puede ser de cualquier [tipo de propiedad válido](dt_object.md).
@@ -839,14 +839,14 @@ $myList := cs.ItemInventory.me.itemList
:::tip Entradas de blog relacionadas
-[Singletons in 4D](https://blog.4d.com/singletons-in-4d)
-[Session Singletons](https://blog.4d.com/introducing-session-singletons)
+[Singletons en 4D](https://blog.4d.com/singletons-in-4d)
+[Presentación de los Singletons de sesión](https://blog.4d.com/introducing-session-singletons)
:::
## `local` y `server`
-In [client/server architecture](../Desktop/clientServer.md), `local` and `server` keywords allow you to specify where you want the function to be executed: client-side, or server-side. Controlling the execution location is useful for performance reasons or to implement business logic features.
+In [client/server architecture](../Desktop/clientServer.md), `local` and `server` keywords allow you to specify where you want the function to be executed: client-side, or server-side. Controlar la ubicación de ejecución es útil por razones de rendimiento o para implementar características de lógica de negocio.
La sintaxis formal es:
@@ -863,7 +863,7 @@ server Function
`local` and `server` keywords are only available for the functions of the following classes:
- [ORDA data model](../ORDA/ordaClasses.md) classes
-- [shared or session singleton](#singleton-classes) classes.
+- clases [singleton compartidas o de sesión](#singleton-classes).
:::tip Entrada de blog relacionada
@@ -873,18 +873,18 @@ server Function
### Generalidades
-Supported functions have a **default execution location** when no location keyword is used. You can nevertheless insert a `local` or `server` keyword to modify the execution location, or to make the code more explicit.
+Supported functions have a **default execution location** when no location keyword is used. No obstante, puede insertar una palabra clave `local` o `server` para modificar la ubicación de ejecución, o para hacer el código más explícito.
-| Supported functions | Ejecución por defecto | with `local` keyword | with `server` keyword |
-| ------------------------------------------------- | --------------------- | -------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [ORDA data model](../ORDA/ordaClasses.md) | en el servidor | The function is executed on the client if called on the client | |
-| [Shared or session singleton](#singleton-classes) | Local | | The function is executed on the server on the server instance of the singleton. If there is no instance of the singleton on the server, it is created. |
+| Supported functions | Ejecución por defecto | with `local` keyword | con la palabra clave `server` |
+| ------------------------------------------------- | --------------------- | ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| [ORDA data model](../ORDA/ordaClasses.md) | en el servidor | La función se ejecuta en el cliente si se llama en el cliente | |
+| [Shared or session singleton](#singleton-classes) | Local | | La función se ejecuta en el servidor en la instancia de servidor del singleton. If there is no instance of the singleton on the server, it is created. |
If `local` and `server` keywords are used in another context, an error is returned.
:::note
-For a overall description of where code is actually executed in client/server, please refer to [this section](../Desktop/clientServer.md#code-execution-location).
+Para una descripción general de dónde se ejecuta realmente el código en cliente/servidor, consulte [esta sección](../Desktop/clientServer.md#code-execution-location).
::::
@@ -892,15 +892,15 @@ For a overall description of where code is actually executed in client/server, p
In a [client/server architecture](../Desktop/clientServer.md), the `local` keyword specifies that the function must be executed **on the machine from where it is called**.
-:::note Reminder
+:::note Recordatorio
The `local` keyword is useless for [shared or session singleton functions](#singleton-classes), which are executed locally by default.
:::
-By default, [ORDA data model functions](../ORDA/ordaClasses.md) are executed on the server. Suele ofrecer el mejor rendimiento, ya que sólo se envían por la red la petición de función y el resultado. However, [for optimization reasons](../ORDA/client-server-optimization.md#using-the-local-keyword), you could want to execute a data model function on client. You can then use the `local` keyword.
+By default, [ORDA data model functions](../ORDA/ordaClasses.md) are executed on the server. Suele ofrecer el mejor rendimiento, ya que sólo se envían por la red la petición de función y el resultado. However, [for optimization reasons](../ORDA/client-server-optimization.md#using-the-local-keyword), you could want to execute a data model function on client. A continuación, puede utilizar la palabra clave `local`.
-#### Example: Calculating age
+#### Ejemplo: cálculo de la edad
Dada una entidad con un atributo *birthDate*, queremos definir una función `age()` que sería llamada en un list box. Esta función puede ejecutarse en el cliente, lo que evita lanzar una petición al servidor para cada línea del list box.
@@ -920,36 +920,36 @@ End if
### `server`
-In a [client/server architecture](../Desktop/clientServer.md), the `server` keyword specifies that the function must be executed **on the server side**.
+En una [arquitectura cliente/servidor](../Desktop/clientServer.md), la palabra clave `server` especifica que la función debe ejecutarse **en el lado del servidor**.
:::note Recordatorio
-The `server` keyword is useless for [ORDA data model functions](../ORDA/ordaClasses.md), which are executed on the server by default.
+La palabra clave `server` es inútil para las [funciones del modelo de datos ORDA](../ORDA/ordaClasses.md), que se ejecutan en el servidor por defecto.
:::
-`server` function parameters and result must be [**streamable**](./dt_object.md#streaming-support). For example, [4D.Datastore](../API/DataStoreClass.md), [File handle](../API/FileHandleClass.md), or [WebServer](../API/WebServerClass.md) are non-streamable classes but [4D.File](../API/FileClass.md) is streamable.
+Los parámetros y el resultado de la función `server` deben ser [**streamable**](./dt_object.md#streaming-support). For example, [4D.Datastore](../API/DataStoreClass.md), [File handle](../API/FileHandleClass.md), or [WebServer](../API/WebServerClass.md) are non-streamable classes but [4D.File](../API/FileClass.md) is streamable.
-This feature is particularly useful in the context of [remote user sessions](../Desktop/sessions.md#remote-user-sessions), allowing you to implement the business logic in a [session singleton](../Concepts/classes.md#session-singleton) to share it accross all the processes of the session, thus extending the functionalities of the [`Session`](../commands/session) command. In this case, you might want the relevant business logic to be executed **on the server** so that all the session information is gathered on the server.
+This feature is particularly useful in the context of [remote user sessions](../Desktop/sessions.md#remote-user-sessions), allowing you to implement the business logic in a [session singleton](../Concepts/classes.md#session-singleton) to share it accross all the processes of the session, thus extending the functionalities of the [`Session`](../commands/session) command. En este caso, es posible que desee que la lógica de negocio relevante se ejecute **en el servidor** para que toda la información de la sesión se recopile en el servidor.
-By default, shared or session singleton functions are executed locally. Adding the `server` keyword in the class function definition makes 4D use the singleton instance on the server. Note that this can result of an instantiation of the singleton on the server if no instance exists yet.
+Por defecto, las funciones singleton compartidas o de sesión se ejecutan localmente. Añadir la palabra clave `server` en la definición de la función de la clase hace que 4D utilice la instancia singleton en el servidor. Tenga en cuenta que esto puede dar lugar a una instanciación del singleton en el servidor si aún no existe ninguna instancia.
For [sessions singletons](#singleton-classes), the function is executed on the server in the corresponding singleton instance, i.e. the instance of the singleton for the current session.
:::note
-If you declare a `server Function` in a shared singleton, then:
+Si declara una `server Function` en un singleton compartido, entonces:
-- you instantiate a singleton *S1* on the client (named *s1*),
-- you run *s1.function()* on the client.
+- instancia un singleton *S1* en el cliente (llamado *s1*),
+- ejecuta *s1.function()* en el cliente.
If no instance of *S1* exists on the server at that moment, *S1* is instantiated on the server (the constructor is executed), and *function()* runs on that server instance. As a result, two instances of *S1* can coexist (client-side and server-side), with distinct property values. In this case, *s1.property* is always accessed locally. It cannot be accessed on the server, for example from server-side code using direct dot notation (an error is returned).
:::
-#### Example: Administration singleton
+#### Ejemplo: singleton Administration
-The *Administration* shared singleton has a "server" function running the [`Process activity`](../commands/process-activity) command. This singleton is instantiated on a remote 4D but the function returns the server activity on the server.
+El singleton compartido *Administration* tiene una función "server" que ejecuta el comando [`Process activity`](../commands/process-activity). This singleton is instantiated on a remote 4D but the function returns the server activity on the server.
```4d
// Administration class
@@ -982,9 +982,9 @@ $serverActivity:=$administration.processActivity()
```
-#### Example: Session singleton
+#### Ejemplo: singleton de sesión
-You store your users in a Users table and handle a custom authentication. You use a session singleton for the authentication:
+You store your users in a Users table and handle a custom authentication. Utiliza un singleton de sesión para la autenticación:
```4d
// UserSession session singleton class
@@ -1009,7 +1009,7 @@ End if
return $result
```
-To provide the current user to 4D clients, the singleton exposes a user computed property got from the server:
+Para proporcionar el usuario actual a los clientes 4D, el singleton expone una propiedad calculada del usuario obtenida del servidor:
```4d
server Function get user() : cs.UsersEntity
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_blob.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_blob.md
index fe71f47b39a6fb..465be6e7c1effb 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_blob.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_blob.md
@@ -34,7 +34,7 @@ No se pueden utilizar operadores en los blobs.
## Verificar si una variable contiene un blob escalar o un `4D.Blob`
-Use the [Value type](../commands/value-type) command to determine if a value is of type Blob or Object.
+Utilice el comando [Value type](../commands/value-type) para determinar si un valor es de tipo Blob u Object.
Para verificar que un objeto es un objeto blob (`4D.Blob`), utilice [instancia OB de](../commands/ob-instance-of):
```4d
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_object.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_object.md
index 0db81fddc01728..13977768fec5fe 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_object.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/dt_object.md
@@ -265,32 +265,32 @@ $doc:=Null // liberar recursos ocupados por $doc
## Clases
-Objects can belong to classes. Using a class allows to predefine an object behaviour and structure with associated properties and functions.
+Los objetos pueden pertenecer a clases. El uso de una clase permite predefinir el comportamiento y la estructura de un objeto con propiedades y funciones asociadas.
-The 4D language proposes several [native classes](../category/class-API-reference/) that you can use to handle objects. You can also define and use your own [user classes](./classes.md) to organize your code.
+The 4D language proposes several [native classes](../category/class-API-reference/) that you can use to handle objects. También puede definir y utilizar sus propias [clases de usuario](./classes.md) para organizar su código.
-## Streaming support
+## Soporte de streaming
A streamable class (or *serializable* class) is a class whose objects can be converted into a sequence of bytes (text or binary) in order to write them in a file, to send them as parameters, or to be able to store and rebuild them afterwards.
-### Text streaming (`JSON Stringify`)
+### Transmisión de texto (`JSON Stringify`)
-JSON commands that stringify contents such as [`JSON Stringify`](../commands/json-stringify) and the [`Execute on server`](../commands/execute-on-server) command allow you to convert objects to json (text). They support objects, collections, and user classes.
+JSON commands that stringify contents such as [`JSON Stringify`](../commands/json-stringify) and the [`Execute on server`](../commands/execute-on-server) command allow you to convert objects to json (text). Soportan objetos, colecciones y clases de usuarios.
However, text streaming of objects has the following limitations:
-- circular references (i.e. objects containing themselves as a property) are not supported and return an error,
+- las referencias circulares (es decir, los objetos que se contienen a sí mismos como propiedad) no son compatibles y devuelven un error,
- a class object loses its class when it is stringified,
- native 4D class objects such as [Entity](../API/EntityClass.md) cannot be represented as JSON and are returned as "[object \]", for example "[object Entity]".
-### Binary streaming (`VARIABLE TO BLOB`)
+### Serialización binaria (`VARIABLE TO BLOB`)
-4D also implements a built-in binary streaming feature through the [`VARIABLE TO BLOB`](../commands/variable-to-blob) command. This feature allows you to get rid of most of text streaming limitations regarding objects (see above):
+4D también implementa una función de flujo binario a través del comando [`VARIABLE TO BLOB`](../commands/variable-to-blob). Esta función le permite librarse de la mayoría de las limitaciones de transmisión de texto relativas a los objetos (ver arriba):
-- circular references are supported,
-- objects keep their class,
+- las referencias circulares son soportadas,
+- los objetos mantienen su clase,
- an extended range of objects are streamable: [4D Write Pro](../WritePro/user-legacy/presentation.md) documents, pictures as objects, [blobs as objects](dt_blob.md#blob-types), and pointers as objects,
-- several native 4D class objects can be streamed, for example [`File`](../API/FileClass.md), [`Folder`](../API/FolderClass.md), or [`Vector`](../API/VectorClass.md). However, only a few native 4D classes are streamable. Unless explicitely stated that "This class is **streamable** in binary", consider that a native 4D class is NOT streamable.
+- se pueden transmitir varios objetos nativos de la clase 4D, por ejemplo [`File`](../API/FileClass.md), [`Folder`](../API/FolderClass.md), o [`Vector`](../API/VectorClass.md). However, only a few native 4D classes are streamable. Unless explicitely stated that "This class is **streamable** in binary", consider that a native 4D class is NOT streamable.
## Ejemplos
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/ordering.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/ordering.md
index ecb0657ce4ba86..99b5b20c59e265 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/ordering.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/ordering.md
@@ -3,7 +3,7 @@ id: ordering
title: Ordenando colecciones y objetos
---
-To sort a series of data, 4D compares each value against the others by applying comparison criteria defined according to the data type (see [sorting rules](#sorting-rules)). Este proceso se basa en un algoritmo de ordenación que establece un orden total entre todos los elementos. When all data belongs to the same [data type](./data-types.md), the comparison rules are straightforward and well-defined.
+To sort a series of data, 4D compares each value against the others by applying comparison criteria defined according to the data type (see [sorting rules](#sorting-rules)). Este proceso se basa en un algoritmo de ordenación que establece un orden total entre todos los elementos. Cuando todos los datos pertenecen al mismo [tipo de datos](./data-types.md), las reglas de comparación son sencillas y están bien definidas.
However, [collections](./dt_collection.md) and [objects](./dt_object.md), including [entity selections](../ORDA/dsMapping.md#entity-selection), can contain elements and attributes of heterogeneous types: scalar types (text, numbers, booleans, dates) or complex types (objects, blobs, collections). When ordering a collection or object containing heterogeneous values, 4D applies a stratified sorting scheme that first partitions elements by type, then applies comparison rules within each type partition.
@@ -12,17 +12,17 @@ However, [collections](./dt_collection.md) and [objects](./dt_object.md), includ
The 4D language provides several mechanisms that rely on sorting collection elements, object attributes, or orchestrate sorting to produce an ordered result:
- **Collection sorting functions**: [`collection.multiSort()`](../API/CollectionClass.md#multisort) (multi-criteria sorting with explicit key and order specification), [`collection.orderBy()`](../API/CollectionClass.md#orderby) (sorting by evaluating an expression on each element), [`collection.sort()`](../API/CollectionClass.md#sort) (in-place sorting according to the natural ordering relation),
-- **Entity selection sorting functions**: [`entitySelection.orderBy()`](../API/EntitySelectionClass.md#orderby), which applies the same sorting rules as collections,
+- **Funciones de ordenación de la selección de entidades**: [`entitySelection.orderBy()`](../API/EntitySelectionClass.md#orderby), que aplica las mismas reglas de ordenación que las colecciones,
- **Query functions with ordering**: [`entitySelection.query()`](../API/EntitySelectionClass.md#query), [`dataClass.query()`](../API/DataClassClass.md#query) with the `order by attributePath` keyword, which return results in deterministic order,
- **Order-dependent statistical functions**: [`collection.max()`](../API/CollectionClass.md#max), [`collection.min()`](../API/CollectionClass.md#min), [`entitySelection.max()`](../API/EntitySelectionClass.md#max), [`entitySelection.min()`](../API/EntitySelectionClass.md#min), which rely on the ordering relation to identify extrema,
- [**`ORDER BY ATTRIBUTE`**](../commands/order-by-attribute) comando para ordenar una tabla de base de datos en base a un campo objeto.
## Reglas de ordenación
-When a collection or entity selection containing elements of different types is sorted, a **type-based stratification** is applied according to the following algorithm:
+Cuando se ordena una colección o selección de entidades que contiene elementos de diferentes tipos, se aplica una **estratificación basada en el tipo** de acuerdo con el siguiente algoritmo:
1. **Fase de reparto**: los elementos se agrupan en clases de equivalencia en función de su tipo base. Esta fase establece una partición de todo el conjunto de elementos.
-2. **Intra-class ordering phase**: Within each class, elements are sorted according to type-specific comparison rules. The default order is **ascending**.
+2. **Fase de ordenación intraclase**: dentro de cada clase, los elementos se ordenan según reglas de comparación específicas de cada tipo. El orden por defecto es **ascendente**.
Los tipos se ordenan según la secuencia siguiente, con sus respectivas relaciones de comparación en orden ascendente:
@@ -31,7 +31,7 @@ Los tipos se ordenan según la secuencia siguiente, con sus respectivas relacion
| 1 | **null** | punteros (punteros null sólo para colecciones) | no se aplican criterios de comparación |
| 2 | **boolean** | | orden lógico: false *antes que* true |
| 3 | **string** | | orden lexicográfico (por ejemplo, "a" *antes* "ab" *antes* "b") |
-| 4 | **number** | time (converted to milliseconds or seconds depending on the `Time inside objects` database setting) | orden algebraico estándar (comparación numérica) |
+| 4 | **number** | hora (convertido a milisegundos o segundos según la configuración de la base `Time inside objects`) | orden algebraico estándar (comparación numérica) |
| 5 | **object** | blobs, imágenes, punteros no nulos (colecciones) | orden interno (coherente para las funciones de collection, ver más abajo) |
| 6 | **collection** | | orden interno (coherente para las funciones de collection, ver más abajo) |
| 7 | **date** | | orden cronológico (fechas más antiguas *antes* de las más recientes, por ejemplo, ¡1990-01-01! *antes* ¡2000-01-01!) |
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md
index 9a2105aea4cfef..00803c47114685 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md
@@ -427,46 +427,46 @@ En el siguiente ejemplo, el caracter **Retorno de carro** (secuencia de escape `
Las siguientes convenciones se utilizan en la documentación del lenguaje 4D:
- los caracteres{ }`(llaves) indican parámetros opcionales. For example,`.delete({ option : Integer })\` means that the *option* parameter may be omitted when calling the function.
-- the `any` keyword is used for parameters that can be a value of any type (number, text, boolean, date, time, object, collection...).
+- la palabra clave `any` se utiliza para los parámetros que pueden ser de cualquier valor (número, texto, booleano, fecha, hora, objeto, colección...).
- when a parameter can accept several types, they are listed and separated by comma, for example: `value : Text, Real, Date, Time`
This means the parameter *value* can be Text OR Real OR Date OR Time.
-- **variadic parameter**: the `...param : Type` notation indicates from 0 to an unlimited number of parameters of the same type. For example, `.concat( value : any { ;...valueN : any }) : Collection` means that an unlimited number of values of any type can be passed to the function.
-- **variadic group of parameters**: the `{; ...(param1 : Type ; param2 : Type)}` notation indicates from 1 to an unlimited number of groups of parameters. For example, `COLLECTION TO ARRAY( collection : Collection ; array : Array {; propertyName : Text}{; ...(array : Array ; propertyName : Text) })` means that an unlimited number of couple values of type array/text can be passed to the command.
+- **parámetro variable**: la notación `...param: Type` indica de 0 a un número ilimitado de parámetros del mismo tipo. Por ejemplo, `.concat( value : any { ;...valueN :any }) : Collection` significa que se puede pasar a la función un número ilimitado de valores de cualquier tipo.
+- **grupo variable de parámetros**: la notación `{; ...(param1 : Tipo ; param2 : Tipo)}` indica de 1 a un número ilimitado de grupos de parámetros. For example, `COLLECTION TO ARRAY( collection : Collection ; array : Array {; propertyName : Text}{; ...(array : Array ; propertyName : Text) })` means that an unlimited number of couple values of type array/text can be passed to the command.
### Descripción del tipo de parámetro
In the 4D language documentation, the following parameter types can be used.
-| Tipo | Definición | Ejemplos de un comando 4D que lo usa |
-| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
-| > , <, >=, <=, #, =, \| , % | Comparison, logical operators or symbols used in query conditions or expressions. | ORDER BY([Products];[Products]Type;<) PRINT RECORD([Employees];>) |
-| any | Un parámetro que puede aceptar cualquier tipo de datos soportado | JSON Stringify($value) $col.push(6;New object("firstname";"John")) |
-| Array | Variable que contiene una lista de valores del mismo tipo. | ARRAY TEXT($arr;10) |
-| BLOB array | An array containing BLOB values. | ARRAY BLOB($data;10) |
-| Blob | Objeto binario grande usado para almacenar datos binarios. | BLOB TO DOCUMENT($blob;"file.bin") |
-| Boolean | Un valor lógico: True or False. | If (OK=1) |
-| Boolean array | Un array que contiene valores booleanos. | ARRAY BOOLEAN($flags;10) |
-| Nombre de la clase (ej: 4D.File) | A reference to a class type used to create or manipulate class instances. | $file:=File("/RESOURCES/NovelCover1.jpg") |
-| Collection | An ordered list of values that can contain multiple types. | New collection("A";"B";"C") |
-| Fecha | Un valor de fecha de calendario. | $vDate:=Current date |
-| Date array | Un array que contiene valores de fecha. | ARRAY DATE($dates;10) |
-| Expression | Can be anything | SET PROCESS VARIABLE($vlProcess;vtCurStatus;"") |
-| Campo | Una referencia a un campo perteneciente a una tabla. | ORDER BY([Person];[Person]Name) |
-| Integer | A whole number without decimal part. | $Sel:=ds.Employee.newSelection(dk keep ordered) |
-| Integer array | Un array que contiene valores enteros. | ARRAY INTEGER($numbers;10) |
-| Array entero largo | Un array que contiene valores enteros largos. | ARRAY LONGINT($values;10) |
-| Object array | An array containing objects. | ARRAY OBJECT($objects;10) |
-| Object | Contenedor de datos estructurados compuesto por pares llave/valor. | $entity.fromObject($o) |
-| Operador | Siempre \*. | QUERY([Person];[Person]Name="Smith";\*) |
-| Array de imágenes | An array containing pictures. | ARRAY PICTURE($images;10) |
-| Picture | Un valor de imagen gráfica. | READ PICTURE FILE($pic;"image.png") |
-| Array de punteros | An array containing pointers. | ARRAY POINTER($ptrs;10) |
-| Puntero | Una referencia a otra variable, campo u objeto. | If(Is nil pointer($ptr)) |
-| Real array | Un array que contiene números reales. | ARRAY REAL($values;10) |
-| Real | A floating-point numeric value. | $vlResult:=Int(123.4) |
-| Tabla | A reference to a database table. | ALL RECORDS([Person]) |
-| Text | Secuencia de caracteres que representa datos textuales. | ALERT("Hello world") |
-| Array de texto | Un array que contiene valores de texto. | ARRAY TEXT($names;10) |
-| Time | A time value representing hours, minutes, and seconds. | Hora actual |
-| Time array | Un array que contiene valores de tiempo. | ARRAY TIME($times;10) |
-| Variable | A writable variable of type "any" that can receive a value (assignable). | SET PICTURE METADATA(vPicture;IPTC keywords;$arrTkeywords) |
+| Tipo | Definición | Ejemplos de un comando 4D que lo usa |
+| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| > , <, >=, <=, #, =, \| , % | Comparison, logical operators or symbols used in query conditions or expressions. | ORDER BY([Products];[Products]Type;<) PRINT RECORD([Employees];>) |
+| any | Un parámetro que puede aceptar cualquier tipo de datos soportado | JSON Stringify($value) $col.push(6;New object("firstname";"John")) |
+| Array | Variable que contiene una lista de valores del mismo tipo. | ARRAY TEXT($arr;10) |
+| BLOB array | Un array que contiene valores BLOB. | ARRAY BLOB($data;10) |
+| Blob | Objeto binario grande usado para almacenar datos binarios. | BLOB TO DOCUMENT($blob;"file.bin") |
+| Boolean | Un valor lógico: True or False. | If (OK=1) |
+| Boolean array | Un array que contiene valores booleanos. | ARRAY BOOLEAN($flags;10) |
+| Nombre de la clase (ej: 4D.File) | A reference to a class type used to create or manipulate class instances. | $file:=File("/RESOURCES/NovelCover1.jpg") |
+| Collection | Una lista ordenada de valores que puede contener varios tipos. | New collection("A";"B";"C") |
+| Fecha | Un valor de fecha de calendario. | $vDate:=Current date |
+| Date array | Un array que contiene valores de fecha. | ARRAY DATE($dates;10) |
+| Expression | Can be anything | SET PROCESS VARIABLE($vlProcess;vtCurStatus;"") |
+| Campo | Una referencia a un campo perteneciente a una tabla. | ORDER BY([Person];[Person]Name) |
+| Integer | Un número entero sin parte decimal. | $Sel:=ds.Employee.newSelection(dk keep ordered) |
+| Integer array | Un array que contiene valores enteros. | ARRAY INTEGER($numbers;10) |
+| Array entero largo | Un array que contiene valores enteros largos. | ARRAY LONGINT($values;10) |
+| Object array | Un array que contiene objetos. | ARRAY OBJECT($objects;10) |
+| Object | Contenedor de datos estructurados compuesto por pares llave/valor. | $entity.fromObject($o) |
+| Operador | Siempre \*. | QUERY([Person];[Person]Name="Smith";\*) |
+| Array de imágenes | Un array que contiene imágenes. | ARRAY PICTURE($images;10) |
+| Picture | Un valor de imagen gráfica. | READ PICTURE FILE($pic;"image.png") |
+| Array de punteros | Un array que contiene punteros. | ARRAY POINTER($ptrs;10) |
+| Puntero | Una referencia a otra variable, campo u objeto. | If(Is nil pointer($ptr)) |
+| Real array | Un array que contiene números reales. | ARRAY REAL($values;10) |
+| Real | Un valor numérico de coma flotante. | $vlResult:=Int(123.4) |
+| Tabla | Una referencia a una tabla de la base de datos. | ALL RECORDS([Person]) |
+| Text | Secuencia de caracteres que representa datos textuales. | ALERT("Hello world") |
+| Array de texto | Un array que contiene valores de texto. | ARRAY TEXT($names;10) |
+| Time | Un valor de tiempo que representa horas, minutos y segundos. | Hora actual |
+| Time array | Un array que contiene valores de tiempo. | ARRAY TIME($times;10) |
+| Variable | Una variable inscriptible de tipo "any" que puede recibir un valor (asignable). | SET PICTURE METADATA(vPicture;IPTC keywords;$arrTkeywords) |
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugLogFiles.md b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugLogFiles.md
index f0aebd0553ae9b..c5778e8f4019ac 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugLogFiles.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugLogFiles.md
@@ -671,7 +671,7 @@ El archivo de configuración del registro es un archivo `.json` que debe cumplir
:::note
- The "state" property values are described in the corresponding commands: `[`WEB SET OPTION`](../commands/web-set-option) (`Web log recording`), [`HTTP SET OPTION`](../commands/http-set-option) (`HTTP client log`), [`SET DATABASE PARAMETER`](../commands/set-database-parameter) (`Client Web log recording`, `IMAP Log\`,...).
-- For httpDebugLogs, the "level" property corresponds to the `wdl` constant options described in the [`WEB SET OPTION`](../commands/web-set-option) command.
+- Para httpDebugLogs, la propiedad "level" corresponde a las opciones constantes `wdl` descritas en el comando [`WEB SET OPTION`](../commands/web-set-option).
- For diagnosticLogs, the "level" property corresponds to the `Diagnostic log level` constant values described in the [`SET DATABASE PARAMETER`](../commands/set-database-parameter) command.
:::
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 1424da2e3451fa..e111c7e54413a0 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/clientServer.md
@@ -125,26 +125,26 @@ Esta funcionalidad está diseñada para equipos de desarrollo de tamaño pequeñ
:::
-## Code execution location
+## Lugar de ejecución del código
-In a client/server application, it is important to know where your code will be actually executed: **server-side** or **client-side**. Execution location is crucial when you want to implement user session-related code, share information between processes, access data, etc.
+In a client/server application, it is important to know where your code will be actually executed: **server-side** or **client-side**. La ubicación de la ejecución es crucial cuando se desea implementar código relacionado con la sesión del usuario, compartir información entre procesos, acceder a datos, etc.
-The following table summarizes where the code is executed by default and how to switch its execution location (if allowed). Note that **local** means that the code will be executed on the machine from where it is actually called.
+La siguiente tabla resume dónde se ejecuta el código por defecto y cómo cambiar su ubicación de ejecución (si está permitido). Note that **local** means that the code will be executed on the machine from where it is actually called.
| Code | Ejecución por defecto | Cómo cambiar |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| [ORDA data model functions](../ORDA/ordaClasses.md) | server | use `local` keyword in function definition |
-| ORDA computed attribute functions [`get()`](../ORDA/ordaClasses.md#function-get-attributename), [`set()`](../ORDA/ordaClasses.md#function-set-attributename) | server | use `local` keyword in function definition |
-| ORDA computed attribute functions [`query()`](../ORDA/ordaClasses.md#function-query-attributename), [`orderBy()`](../ORDA/ordaClasses.md#function-orderby-attributename) | server | n/a |
+| [Funciones del modelo de datos ORDA](../ORDA/ordaClasses.md) | server | utilizar la palabra clave `local` en la definición de la función |
+| ORDA computed attribute functions [`get()`](../ORDA/ordaClasses.md#function-get-attributename), [`set()`](../ORDA/ordaClasses.md#function-set-attributename) | server | utilizar la palabra clave `local` en la definición de la función |
+| Funciones de atributo calculadas ORDA [`query()`](../ORDA/ordaClasses.md#function-query-attributename), [`orderBy()`](../ORDA/ordaClasses.md#function-orderby-attributename) | server | n/a |
| ORDA event functions [(general)](../ORDA/orda-events.md) | server | n/a |
| ORDA event function [`constructor()`](../ORDA/ordaClasses.md#class-constructor-1) | local | n/a |
-| ORDA event function [`event touched()`](../ORDA/orda-events.md#function-event-touched) | server | use `local` keyword in function definition |
+| Función de evento ORDA [`event touched()`](../ORDA/orda-events.md#function-event-touched) | server | utilizar la palabra clave `local` en la definición de la función |
| [User class functions](../Concepts/classes.md#function) | local | n/a |
-| [Shared or session singleton function](../Concepts/classes.md#singleton-classes) | local | use `server` keyword in function definition |
+| [Shared or session singleton function](../Concepts/classes.md#singleton-classes) | local | utilizar la palabra clave `server` en la definición de la función |
| Trigger | server | n/a |
-| Project method called from a client | client | check [**Execute on server** option](../Project/project-method-properties.md#execute-on-server). The code is executed in the twin process of the [user session process](./sessions.md#remote-user-sessions) |
+| Método proyecto llamado desde un cliente | client | check [**Execute on server** option](../Project/project-method-properties.md#execute-on-server). The code is executed in the twin process of the [user session process](./sessions.md#remote-user-sessions) |
| | | call [`Execute on server`](../commands/execute-on-server) command. The code is executed in the [Stored procedures session](./sessions.md#stored-procedure-sessions) |
-| Project method called from a stored procedure on the server | server | llame al comando [`EXECUTE ON CLIENT`](../commands/execute-on-client). The target client must have been [registered](../commands/register-client) |
+| Método proyecto llamado desde un procedimiento almacenado en el servidor | server | llame al comando [`EXECUTE ON CLIENT`](../commands/execute-on-client). The target client must have been [registered](../commands/register-client) |
| Método objeto | local | n/a |
| Database methods:
On Backup Shutdown
On Backup Startup
On Server Close Connection
On Server Open Connection
On Server Shutdown
On Server Startup
On SQL Authentication
On Web Authentication
On Web Connection
| server | n/a |
| Database methods:
On Startup
On Exit
On Drop
| client | n/a |
\ No newline at end of file
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/sessions.md b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/sessions.md
index 1cece080114966..76339fa9944675 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Desktop/sessions.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Desktop/sessions.md
@@ -9,7 +9,7 @@ A desktop session is a user-related execution context on 4D Server, 4D remote, o
Las sesiones de escritorio incluyen:
-- **Remote user sessions**: In client/server applications, remote users have their own sessions, managed from the client and from the server.
+- **Sesiones de usuario remotas**: en aplicaciones cliente/servidor, los usuarios remotos tienen sus propias sesiones, administradas desde el cliente y desde el servidor.
- **Sesiones de procedimientos almacenados**: en aplicaciones cliente/servidor, la única sesión virtual de usuario que gestiona todos los procedimientos almacenados ejecutados en el servidor.
- **Sesiones autónomas**: objeto de sesión local devuelto en una aplicación mono usuario (útil en las fases de desarrollo y de prueba de las aplicaciones cliente/servidor).
@@ -33,7 +33,7 @@ Este objeto se maneja a través de las funciones y propiedades de la [clase `Ses
Dependiendo de dónde se ejecute el código, se dispondrá de un objeto `session` de usuario del lado del servidor o del lado del cliente. Ambos objetos son similares, excepto que:
-- sus propiedades [`.storage`](../API/SessionClass.md#storage) no son el mismo objeto. A value stored in the `.storage` of the user session on the server will not be available in the `.storage` of the user session on the client and conversely.
+- sus propiedades [`.storage`](../API/SessionClass.md#storage) no son el mismo objeto. Un valor almacenado en el `.storage` de la sesión usuario en el servidor no estará disponible en el `.storage` de la sesión de usuario en el cliente y viceversa.
- for security reasons, the client-side session cannot execute functions that **modify** [privileges](../ORDA/privileges.md) ([`setPrivileges()`](../API/SessionClass.md#setprivileges), [`clearPrivileges()`](../API/SessionClass.md#clearprivileges), [`promote()`](../API/SessionClass.md#promote), [`demote()`](../API/SessionClass.md#demote), [`restore()`](../API/SessionClass.md#restore)). Llamar a estas funciones en un cliente genera un error.
:::note
@@ -64,7 +64,7 @@ Del lado del cliente, existen dos objetos de almacenamiento local distintos:
:::tip Entradas de blog relacionadas
- [Objeto sesión remota 4D con conexión cliente/servidor y procedimiento almacenado](https://blog.4d.com/new-4D-remote-session-object-with-client-server-connection-and-stored-procedure).
-- [Forget server-side wrappers, use 4D Sessions from the client](https://blog.4d.com/forget-server-side-wrappers-use-4d-sessions-from-the-client).
+- [Olvídese de los wrappers del lado del servidor, utilice Sesiones 4D desde el cliente](https://blog.4d.com/forget-server-side-wrappers-use-4d-sessions-from-the-client).
:::
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Develop/async.md b/i18n/es/docusaurus-plugin-content-docs/current/Develop/async.md
index d9de4ba2171daa..c5f431939b6074 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Develop/async.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Develop/async.md
@@ -9,9 +9,9 @@ title: Ejecución asíncrona
#### Ejecución sincrónica
-Synchronous execution follows a **sequential** flow, a step-by-step where each instruction must complete before the next one starts. Esto significa que el hilo de ejecución se bloquea hasta que finaliza la operación.
+La ejecución síncrona sigue un flujo **secuencial**, un paso a paso en el que cada instrucción debe completarse antes de que comience la siguiente. Esto significa que el hilo de ejecución se bloquea hasta que finaliza la operación.
-Synchronous execution is used when:
+La ejecución sincrónica se utiliza cuando:
- La ejecución de las tareas debe seguir un orden estricto.
- El impacto en el rendimiento es mínimo (por ejemplo, operaciones rápidas).
@@ -27,7 +27,7 @@ La ejecución asíncrona se utiliza cuando:
- Una operación tarda mucho tiempo (por ejemplo, esperando una respuesta del servidor).
- La capacidad de respuesta es fundamental (por ejemplo, las interacciones de la interfaz de usuario).
-- Background tasks, network communication, or parallel processing are performed.
+- Se realizan tareas en segundo plano, la comunicación de red o procesamiento paralelo.
Elegir entre ejecución síncrona y asíncrona:
@@ -64,7 +64,7 @@ El proceso llamante envía un mensaje y el worker lo ejecuta. El worker puede pu
### Escucha de eventos
-En el desarrollo dirigido por eventos, es obvio que parte del código debe ser capaz de escuchar los eventos entrantes. Los eventos pueden ser generados por la interfaz de usuario (como un clic del ratón sobre un objeto o la pulsación de una tecla del teclado) o por cualquier otra interacción, como una petición http o el final de otra acción. For example, when a form is displayed using the [`DIALOG`](../commands/dialog) command, user actions can trigger events that your code can process. Al hacer clic en un botón se activará el código asociado al botón.
+En el desarrollo dirigido por eventos, es obvio que parte del código debe ser capaz de escuchar los eventos entrantes. Los eventos pueden ser generados por la interfaz de usuario (como un clic del ratón sobre un objeto o la pulsación de una tecla del teclado) o por cualquier otra interacción, como una petición http o el final de otra acción. Por ejemplo, cuando se muestra un formulario utilizando el comando [`DIALOG`](../commands/dialog), las acciones del usuario pueden desencadenar eventos que su código puede procesar. Al hacer clic en un botón se activará el código asociado al botón.
En el contexto de la ejecución asíncrona, las siguientes funcionalidades colocan su código en modo de escucha:
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Develop/processes.md b/i18n/es/docusaurus-plugin-content-docs/current/Develop/processes.md
index 01b59a85689ae8..bc134b18920372 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Develop/processes.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Develop/processes.md
@@ -33,7 +33,7 @@ Un proceso puede borrarse en las siguientes condiciones (las dos primeras son au
- Cuando el método proceso termina de ejecutarse
- Cuando el usuario sale de la aplicación
- Si detienes el proceso de forma formal o utiliza el botón **Abortar** en el depurador o en el Explorador de Ejecución
-- If you call the [`KILL WORKER`](../commands/kill-worker) command (to delete a worker process only).
+- Si llama al comando [`KILL WORKER`](../commands/kill-worker) (sólo para borrar un proceso worker).
Un proceso puede crear otro proceso. Los procesos no están organizados jerárquicamente: todos los procesos son iguales, independientemente del proceso a partir del cual se hayan creado. Una vez que el proceso "padre" crea un proceso "hijo", el proceso hijo continuará independientemente de si el proceso padre sigue ejecutándose o no.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md
index e958bab07d8b4f..87c1f04690f0df 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/createStylesheet.md
@@ -206,7 +206,7 @@ text[text|=Hello]
### Consultas de medios
-Las consultas de medios permiten aplicar estilos basados en condiciones específicas. 4D supports media queries for **color schemes** and **platform themes**.
+Las consultas de medios permiten aplicar estilos basados en condiciones específicas. 4D soporta media queries para **esquemas de color** y **temas de plataforma**.
Una consulta de medios está formada por características y valores de medios (por ejemplo, `:`).
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md
index 5e9cb6b7c1147b..db6cc6edeed8cd 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/FormEditor/forms.md
@@ -66,36 +66,46 @@ Puede añadir o modificar formularios 4D utilizando los siguientes elementos:
}
```
-## Using forms
+### Formulario proyecto y formulario tabla
-Forms are called using specific commands of the 4D Language. In your 4D desktop applications, forms can be used in various ways, depending on their status within your interface needs. A form can be:
+Hay dos categorías de formularios:
+
+- **Los formularios proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo.
+
+- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados.
+
+Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después.
+
+## Uso de formularios
+
+Los formularios se llaman usando comandos específicos del lenguaje 4D. In your 4D desktop applications, forms can be used in various ways, depending on their status within your interface needs. Un formulario puede ser:
-- used in its own window for data viewing, processing, editing, or to display on-screen information to the user,
-- used embedded in another form (subform),
-- used as template for printing,
-- or called by specific features like the Label editor.
+- utilizado en su propia ventana para la visualización de datos, procesamiento, edición, o para mostrar información en pantalla al usuario,
+- utilizado integrado en otro formulario (subformulario),
+- utilizado como plantilla para la impresión,
+- o llamados por funciones específicas como el editor de etiquetas.
-### Using a project form in a window
+### Utilizar un formulario de proyecto en una ventana
-When you want to use a form as on-screen dialog, you need to (1) create a window and (2) load the form within the window, along with an event loop to process user actions. The straighforward steps to display a form on screen are:
+When you want to use a form as on-screen dialog, you need to (1) create a window and (2) load the form within the window, along with an event loop to process user actions. Los pasos más sencillos para mostrar un formulario en pantalla son:
-1. Call the [`Open form window`](../commands/open-form-window) command to create and preconfigure a window tailored for your form. Note that the command only draw aan empty window, it does not display anything.
-2. In the same method, call the [`DIALOG`](../commands/dialog) command to actually load the form in the opened form window, ready for user interaction. [`DIALOG`](../commands/dialog) loads form data and places your code in listening mode to user events. When you call this command without asterisk (\*), the dialog will stay on screen and the code execution is frozen until an event occurs (see also ["Event listening" paragraph](../Develop/async.md#event-listening)).
-3. (optional) Use the [`Form`](../commands/form) command from within the form context to access form data.
+1. Call the [`Open form window`](../commands/open-form-window) command to create and preconfigure a window tailored for your form. Note that the command only draws an empty window, it does **not** display anything.
+2. En el mismo método, llame al comando [`DIALOG`](../commands/dialog) para cargar realmente el formulario en la ventana de formulario abierta, listo para la interacción del usuario. [`DIALOG`](../commands/dialog) loads form data and places your code in [listening mode to user events](../Develop/async.md#event-listening). Cuando llama a este comando sin asterisco (\*), el diálogo permanecerá en pantalla y la ejecución del código se congelará hasta que ocurra un evento.
+3. (opcional) Utilice el comando [`Form`](../commands/form) desde el contexto del formulario para acceder a los datos del formulario.
-::note Compatibility
+:::note Compatibilidad
-All-in-one commands such as [`ADD RECORD`](../commands/add-record) or [`MODIFY RECORD`](../commands/add-record) merge all steps in a single call. These legacy commands can still be used for prototyping or basic developments but are not adapted to modern, fully controlled interfaces. They directly rely on the 4D database and legacy features such as [table forms](#project-form-and-table-form) and do not benefit from the power and flexibility of [ORDA features](../ORDA/overview.md). Unless specific needs, it is recommended to use project forms for your 4D desktop application interfaces.
+Los comandos todo en uno como [`ADD RECORD`](../commands/add-record) o [`MODIFY RECORD`](../commands/add-record) fusionan todos los pasos en una sola llamada. Estos comandos heredados aún pueden utilizarse para la creación de prototipos o desarrollos básicos, pero no están adaptados a las interfaces modernas totalmente controladas. They directly rely on the 4D database and legacy features such as [table forms](#project-form-and-table-form) and do not benefit from the power and flexibility of [ORDA features](../ORDA/overview.md). Unless specific needs, it is recommended to use project forms for your 4D desktop application interfaces.
:::
-#### Simple example
+#### Ejemplo simple
You create the following basic form in the [Form editor](./formEditor.md):

-The form is [associated with a "myForm" class](./properties_FormProperties.md#form-class), defined as follow:
+El formulario está [asociado a una clase "myForm"](./properties_FormProperties.md#form-class), definida así:
```4d
//cs.myForm
@@ -133,25 +143,25 @@ ALERT($formObject.name+" is "+String($formObject.age)+" years old!")
```
-4D displays:
+4D muestra:

-### Using forms as subforms
+### Utilizar formularios como subformularios
-A form can be embedded within another form, in which case it becomes a [subform object](../FormObjects/subform_overview.md) which follows specific rules. A subform is automatically used when its parent form is [displayed in a window](#using-a-project-form-in-a-window).
+Un formulario puede estar integrado en otro formulario, en cuyo caso se convierte en un [objeto subformulario](../FormObjects/subform_overview.md) que sigue unas reglas específicas. Un subformulario se utiliza automáticamente cuando su formulario principal se [muestra en una ventana](#using-a-project-form-in-a-window).
-In the same way that you pass an object to a form with the [`DIALOG`](../commands/dialog) command, you can also pass an object to a subform area using the property list. Then, you can use it in the subform with the [`Form`](../commands/form) command. In this example, the "InvoiceAddress" object is bound to the subform:
+In the same way that you pass an object to a form with the [`DIALOG`](../commands/dialog) command, you can also pass an object to a subform area using the property list. A continuación, puede utilizarlo en el subformulario con el comando [`Form`](../commands/form). En este ejemplo, el objeto "InvoiceAddress" está vinculado al subformulario:

-### Using forms to be printed
+### Utilizar formularios para imprimir
-In 4D desktop applications, forms can be printed using the various [commands of the **Printing** theme](../commands/theme/Printing).
+En las aplicaciones de escritorio 4D, los formularios pueden imprimirse utilizando los diferentes [comandos del tema **Imprimir**](../commands/theme/Printing).
#### Ejemplos
-You can use forms to print data, either as page or as list.
+Puede utilizar formularios para imprimir datos, ya sea en forma de página o de lista.
- To simply print some part of a form, use the [`Print form`](../commands/print-form) command. Por ejemplo:
@@ -163,7 +173,7 @@ $formData.request:="I need more COFFEE"
var $h:=Print form("Request_var";$formData;Form detail)
```
-- To print a form within a printing job to process data during printing, use [`FORM LOAD`](../commands/form-load) and [`Print object`](../commands/print-object) commands. Por ejemplo:
+- Para imprimir un formulario en una tarea de impresión para procesar datos durante la impresión, utilice los comandos [`FORM LOAD`](../commands/form-load) y [`Print object`](../commands/print-object). Por ejemplo:
```4d
var $formData : Object
@@ -190,17 +200,17 @@ var $h:=Print form("Request_var";$formData;Form detail)
#### Print rendering engine
-4D uses a dedicated print rendering engine to generate outputs with a design adapted for printing. It includes the following main features:
+4D utiliza un motor de renderizado de impresión específico para generar salidas con un diseño adaptado a la impresión. Incluye las siguientes características principales:
- Interactive widgets such as buttons, toggles, dropdowns, etc. and modern UI effects such as glass, blur, transparency, or shadow effects are converted into adapted static representations and flattened into printable styles, so that the document remains readable and professional once printed.
-- Layout structure, spacing, and alignment, are preserved so that the printed document reflects the logical structure of the on-screen form.
-- The same output is produced, whether the form is printed from macOS or Windows.
+- La estructura del diseño, el espaciado y la alineación se conservan para que el documento impreso refleje la estructura lógica del formulario en pantalla.
+- Se produce la misma salida, tanto si el formulario se imprime desde macOS como desde Windows.
-For example, the following form:
+Por ejemplo, el siguiente formulario:

-... will be printed with this rendering:
+... se imprimirá con este renderizado:

@@ -212,40 +222,30 @@ For example, the following form:
#### Legacy print renderer
-In releases prior to 4D 21 R3, another print renderer was used. This legacy renderer simply draws widgets as they appear on the screen. For compatibility, the legacy renderer is **enabled by default** in projects or databases converted from versions prior to 4D 21 R3, so that forms designed with this renderer continue to be printed as expected.
+En versiones anteriores a 4D 21 R3, se utilizaba otro renderizador de impresión. Este renderizador heredado simplemente dibuja los widgets tal y como aparecen en la pantalla. For compatibility, the legacy renderer is **enabled by default** in projects or databases converted from versions prior to 4D 21 R3, so that forms designed with this renderer continue to be printed as expected.
You can however enable the modern print rendering engine at any moment by:
- unchecking the **Use legacy print rendering** option in the [Compatibility page of the Settings dialog box](../settings/compatibility.md) (permanent setting),
-- or executing [`SET DATABASE PARAMETER`](../commands/set-database-parameter) command with `Use legacy print rendering` selector set to 1 (volatile setting).
+- o ejecutando el comando [`SET DATABASE PARAMETER`](../commands/set-database-parameter) con el selector `Use legacy print rendering` a 1 (configuración volátil).
:::warning Limitación
-For technical reasons, the legacy print renderer is not available with forms displayed with [Fluent UI](#fluent-ui-rendering) on Windows or [Liquid Glass](../Notes/updates.md#support-of-liquid-glass-on-macos) on macOS. In these contexts, forms are **always printed with the modern print rendering engine**, whatever the compatibility option.
+For technical reasons, the legacy print renderer is not available with forms displayed with [Fluent UI](#fluent-ui-rendering) on Windows or [Liquid Glass](../Notes/updates.md#support-of-liquid-glass-on-macos) on macOS. En estos contextos, los formularios se **imprimen siempre con el motor de renderizado de impresión moderno**, sea cual sea la opción de compatibilidad.
:::
-### Other form usages
+### Otros usos de formularios
There are several other ways to use forms in the 4D applications, including:
-- a form can be [inherited](#inherited-forms) from another form,
+- un formulario puede ser [heredado](#inherited-forms) de otro formulario,
- a form can be [associated to a listbox](../FormObjects/properties_ListBox.md#detail-form-name) in response to a user action to display a row using an edit button or a double-click,
- the [label editor can use a form](../Desktop/labels.md#form-to-use) as template to print labels.
-## Formulario proyecto y formulario tabla
-
-Hay dos categorías de formularios:
-
-- **Los formularios proyecto** - Formularios independientes que no están unidos a ninguna tabla. Están pensados, sobre todo, para crear cajas de diálogo de interfaz, al igual que componentes. Los formularios proyecto pueden utilizarse para crear interfaces que cumplan fácilmente con los estándares del sistema operativo.
-
-- **Los formularios tablas** - Se adjuntan a tablas específicas y, por tanto, se benefician de funciones automáticas útiles para el desarrollo de aplicaciones basadas en bases de datos. Normalmente, una tabla tiene formularios de entrada y salida separados.
-
-Normalmente, se selecciona la categoría del formulario al crearlo, pero se puede cambiar después.
-
## Páginas formulario
-Each form is made of at least two pages:
+Cada formulario consta de al menos dos páginas:
- una página 1: una página principal, mostrada por defecto
- una página 0: una página de fondo, cuyo contenido se muestra en todas las demás páginas.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox-header-footer.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox-header-footer.md
index a0318d2d45a39b..afed892bfd25b9 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox-header-footer.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox-header-footer.md
@@ -5,7 +5,7 @@ title: List Box Header and Footer
:::note
-- To be able to access header properties for a list box, you must enable the [Display Headers](properties_Headers.md#display-headers) option.
+- Para poder acceder a las propiedades de encabezado de un list box, debe habilitar la opción [Encabezados de pantalla](properties_Headers.md#display-headers).
- Para poder acceder a las propiedades de los encabezados de un list box, debe activar la opción [Mostrar encabezados](properties_Headers.md#display-headers) del list box.
:::
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox-object.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox-object.md
index dacf8ff7aa12e0..81a3114f4d4a37 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox-object.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/listbox-object.md
@@ -7,7 +7,7 @@ title: Objeto List Box
En un list box de tipo array, cada columna debe estar asociada a un array unidimensional 4D; se pueden utilizar todos los tipos de array, a excepción de los arrays de punteros. El número de líneas se basa en el número de elementos del array.
-Por defecto, 4D asigna el nombre "ColumnX" a cada columna. You can change it, as well as other column properties, in the [column properties](./listbox-column.md). The display format for each column can also be defined using the [`OBJECT SET FORMAT`](../commands/object-set-format) command.
+Por defecto, 4D asigna el nombre "ColumnX" a cada columna. Puede cambiarlo, así como las otras propiedades de la columna, en las [propiedades de las columnas](./listbox-column.md). The display format for each column can also be defined using the [`OBJECT SET FORMAT`](../commands/object-set-format) command.
> Los list boxes de tipo array pueden mostrarse en [modo jerárquico](listbox_overview.md#hierarchical-list-boxes), con mecanismos específicos.
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 bbd4b1eb50e631..8e3a75712a4aae 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
@@ -321,7 +321,7 @@ Los principios de prioridad y de herencia se observan cuando la misma propiedad
3. Arrays/métodos de Listbox
4. Propiedades de la columna
5. Propiedades de list box
-6. (lowest priority) Meta Info expression (for collection or entity selection list boxes)
+6. (prioridad más baja) Expresión Meta Info (para list boxes de tipo colección o selección de entidades)
Por ejemplo, si define un estilo de fuente en las propiedades del list box y otro mediante un array de estilos para la columna, se tendrá en cuenta este último.
@@ -570,7 +570,7 @@ El uso de los eventos de formulario `On Expand` y `On Collapse` puede superar es
En este caso, debe llenar y vaciar los arrays por código. Los principios que deben aplicarse son:
-- Cuando se muestra el list box, sólo se debe llenar el primer array. However, you must create a second array with empty values so that the list box displays the expand/collapse buttons:
+- Cuando se muestra el list box, sólo se debe llenar el primer array. Sin embargo, debe crear un segundo array con valores vacíos para que el list box muestre los botones desplegar/contraer:

- Cuando un usuario hace clic en un botón de expandir, puede procesar el evento `On Expand`. El comando [`LISTBOX GET CELL POSITION`](../commands/listbox-get-cell-position) devuelve la celda en cuestión y permite construir la jerarquía adecuada: se llena el primer array con los valores repetidos y el segundo con los valores enviados desde el comando [`SELECTION TO ARRAY`](../commands/selection-to-array) y se insertan tantas líneas como sean necesarias en el list box mediante el comando [`LISTBOX INSERT ROWS`](../commands/listbox-insert-rows).
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_CoordinatesAndSizing.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_CoordinatesAndSizing.md
index 5daaded9dd3f7d..8e3d695bc27835 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_CoordinatesAndSizing.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_CoordinatesAndSizing.md
@@ -205,7 +205,7 @@ Esta propiedad designa el tamaño vertical de un objeto.
Esta propiedad designa el tamaño horizontal de un objeto.
> - Algunos objetos pueden tener una altura predefinida que no se puede modificar.
-> - If the [Resizable](properties_ResizingOptions.md#resizable) property is used for a [list box column](listbox-column.md), the user can also manually resize the column.
+> - Si la propiedad [Redimensionable](properties_ResizingOptions.md#resizable) se utiliza para una [columna de list box](listbox-column.md), el usuario también puede cambiar manualmente el tamaño de la columna.
> - Al redimensionar el formulario, si la propiedad de [dimensionamiento horizontal "Agrandar"](properties_ResizingOptions.md#horizontal-sizing) fue asignada al list box, la columna más a la derecha se agrandará más allá de su ancho máximo, si es necesario.
#### Gramática JSON
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Entry.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Entry.md
index 201859028c589c..df0b5c0edaadec 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Entry.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Entry.md
@@ -38,7 +38,7 @@ For a [multi-style](properties_Text.md#multi-style) text type [input](input_over
- comandos para las modificaciones de estilo soportados: fuente, tamaño, estilo, color y color de fondo.
Cuando el usuario modifica un atributo de estilo a través de este menú emergente, 4D genera el evento de formulario `On After Edit`.
-Para un [Área Web](webArea_overview.md), el contenido del menú depende del motor de renderizado de la plataforma. It is possible to control access to the context menu via the [`WA SET PREFERENCE`](../commands/wa-set-preference) command.
+Para un [Área Web](webArea_overview.md), el contenido del menú depende del motor de renderizado de la plataforma. Es posible controlar el acceso al menú contextual mediante el comando [`WA SET PREFERENCE`](../commands/wa-set-preference).
#### Gramática JSON
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Object.md b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Object.md
index 67f7508a8fadb9..db4d48c92451e6 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Object.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/FormObjects/properties_Object.md
@@ -287,7 +287,7 @@ Para la traducción de la aplicación, puede introducir una referencia XLIFF en
Esta propiedad define el tipo de cálculo que se realizará en un área [pie de columna](listbox-header-footer.md#footers).
-> The calculation for footers can also be set using the [`LISTBOX SET FOOTER CALCULATION`](../commands/listbox-set-footer-calculation) 4D command.
+> El cálculo de los pies de página también puede establecerse utilizando el comando 4D [`LISTBOX SET FOOTER CALCULATION`](../commands/listbox-set-footer-calculation).
Hay varios tipos de cálculos disponibles. La tabla siguiente muestra los cálculos que se pueden utilizar según el tipo de datos que se encuentran en cada columna e indica el tipo afectado automáticamente por 4D a la variable de pie de página (si no está escrita por el código):
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 c0d964fc653a4b..3e947022906e45 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
@@ -32,7 +32,7 @@ Se pueden asociar dos variables específicas a cada área web:
- [`URL`](properties_WebArea.md#url) --para controlar la URL mostrada por el área web
- [`Progression`](properties_WebArea.md#progression) -- para controlar el porcentaje de carga de la página mostrada en el área web.
-> As of 4D 19 R5, the Progression variable is no longer updated in Web Areas using the [Windows system rendering engine](./webArea_overview.md#web-rendering-engine).
+> A partir de 4D 19 R5, la variable Progression ya no se actualiza en las Áreas Web que utilizan el [motor de renderizado del sistema Windows](./webArea_overview.md#web-rendering-engine).
### Motor de renderización web
@@ -225,8 +225,8 @@ Para mostrar el inspector Web, puede ejecutar el comando `WA OPEN WEB INSPECTOR`
- **Execute the `WA OPEN WEB INSPECTOR` command**
This command can be used directly with onscreen (form object) and offscreen web areas.
-- **Use the web area context menu**
- This feature can only be used with onscreen web areas and requires that the following conditions are met:
+- **Utilizar el menú contextual del área web**
+ Esta función sólo puede utilizarse con áreas web en pantalla y requiere que se cumplan las siguientes condiciones:
- el [menú contextual](properties_Entry.md#context-menu) del área web está activado
- el uso del inspector está expresamente autorizado en el área mediante la siguiente declaración:
```4d
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md
index fd3e685518a4da..eb5fa9f5617784 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md
@@ -18,23 +18,23 @@ Lea [**Novedades en 4D 21 R3**](https://blog.4d.com/es/whats-new-in-4d-21-r3/),
- New [**AI** page in Settings](../settings/ai.md), allowing to configure [Provider model aliases](../aikit/provider-model-aliases.md) that can be called in the code using 4D AIKit component.
- 4D AIKit component: new [Providers](../aikit/Classes/OpenAIProviders.md) class to instantiate and handle [Provider and model aliases](../aikit/provider-model-aliases.md).
- Support of [`server` keyword](../Concepts/classes.md#server) for ORDA data model functions and shared/session singleton functions.
-- New [printing renderer](../FormEditor/forms.md#print-rendering-engine) for forms on Liquid glass and Fluent UI interfaces. New compatibility options to [enable the renderer on Classic interfaces](../FormEditor/forms.md#legacy-print-renderer).
-- Dependencies: support of [components stored on GitLab repositories](../Project/components.md#configuring-a-gitlab-repository).
+- Nuevo [renderizador de impresión](../FormEditor/forms.md#print-rendering-engine) para formularios en interfaces Liquid glass y Fluent UI. New compatibility options to [enable the renderer on Classic interfaces](../FormEditor/forms.md#legacy-print-renderer).
+- Dependencias: soporte de los [componentes almacenados en los repositorios GitLab](../Project/components.md#configuring-a-gitlab-repository).
- [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=21_R3): lista de todos los bugs que se han corregido en 4D 21 R3.
#### Soporte de Liquid glass en macOS
-- Automatic support of [**Liquid glass** interface](https://www.apple.com/newsroom/2025/06/apple-introduces-a-delightful-and-elegant-new-software-design/) with 4D on macOS 26 Tahoe. See [this blog post](https://blog.4d.com/the-new-macos-tahoe-design-comes-to-your-4d-applications) for detailed information.
-- New values returned by the [`FORM Theme`](../commands/form-theme) command and [CSS Media queries](../FormEditor/createStylesheet.md#media-queries).
+- Automatic support of [**Liquid glass** interface](https://www.apple.com/newsroom/2025/06/apple-introduces-a-delightful-and-elegant-new-software-design/) with 4D on macOS 26 Tahoe. Consulte [esta entrada del blog](https://blog.4d.com/the-new-macos-tahoe-design-comes-to-your-4d-applications) para obtener información detallada.
+- Nuevos valores devueltos por el comando [`FORM Theme`](../commands/form-theme) y [CSS Media queries](../FormEditor/createStylesheet.md#media-queries).
- To help developers gradually adapt their interfaces, ability to **disable Liquid glass in 4D engine-based applications** via the "UIDesignRequiresCompatibility" key in the application's *Info.plist* file (see [Apple's documentation about this key](https://developer.apple.com/documentation/BundleResources/Information-Property-List/UIDesignRequiresCompatibility)).
#### Cambios de comportamiento
- El comando [`JSON Validate`](../commands/json-validate) ahora tiene en cuenta la llave *$schema* y genera un error si se declara una versión no soportada en el esquema.
- For clarity, formula objects are now instances of a new [`4D.Formula`](../API/FormulaClass.md) class that inherits from the generic [`4D.Function`](../API/FunctionClass.md) class.
-- In 4D 21 R3, new improvements to the [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) apply to language commands (see [this blog post](https://blog.4d.com/enhancement-of-command-syntax-checking-in-the-editor)). Syntax errors that were previously undetected may now be flagged in your code.
-- The "PHP" page has been removed from the [Settings dialog box](../settings/overview.md). Use the [PHP selectors with the `SET DATABASE PARAMETER`](../commands/set-database-parameter#php-interpreter-ip-address-55) command to configure a PHP interpreter.
-- The **Legacy** network layer is no longer supported. Projects and binary databases that were using the Legacy network layer are automatically set to [**ServerNet**](../settings/client-server.md#network-layer) when upgraded to 4D 21 R3 and higher.
+- In 4D 21 R3, new improvements to the [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) apply to language commands (see [this blog post](https://blog.4d.com/enhancement-of-command-syntax-checking-in-the-editor)). Los errores de sintaxis que antes no se detectaban ahora se pueden marcar en el código.
+- Se ha eliminado la página "PHP" de la [caja de diálogo Propiedades](../settings/overview.md). Utilice los [selectores PHP del comando `SET DATABASE PARAMETER`](../commands/set-database-parameter#php-interpreter-ip-address-55) para configurar un intérprete PHP.
+- La capa de red **Legacy** ya no es compatible. Projects and binary databases that were using the Legacy network layer are automatically set to [**ServerNet**](../settings/client-server.md#network-layer) when upgraded to 4D 21 R3 and higher.
## 4D 21 R2
@@ -77,7 +77,7 @@ Lea [**Novedades en 4D 21 R2**](https://blog.4d.com/whats-new-in-4d-21-r2/), la
| libZip | 1.11.4 | 21 | Utilizado por los componentes zip class, 4D Write Pro, svg y serverNet |
| LZMA | 5.8.1 | 21 | |
| ngtcp2 | 1.22.1 | **21 R4** | Utilizado para QUIC |
-| OpenSSL | 3.5.2 | 21 | |
+| OpenSSL | 4.0 | **21 R4** | |
| PDFWriter | 4.7.0 | 21 | Utilizado para [`WP Export document`](../WritePro/commands/wp-export-document.md) y [`WP Export variable`](../WritePro/commands/wp-export-variable.md) |
| SpreadJS | 18.2.0 | 21 R2 | Consulte [esta entrada de blog](https://blog.4d.com/4d-view-pro-whats-new-in-4d-21-r2/) para obtener una visión general de las nuevas funciones |
| webKit | WKWebView | 19 | |
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md
index 7571cdd2ce51ba..e7b38954fb214a 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/client-server-optimization.md
@@ -141,9 +141,9 @@ Por defecto, la caché ORDA es manejada de forma transparente por 4D. Sin embarg
- [dataClass.getRemoteCache()](../API/DataClassClass.md#getremotecache)
- [dataClass.clearRemoteCache()](../API/DataClassClass.md#clearremotecache)
-### Using the `local` keyword
+### Uso de la palabra clave \`local
-By default, [ORDA data model functions](../ORDA/ordaClasses.md) are executed on the server, which usually provides the best performance since only the function request and the result are sent over the network. However, it could happen that a function processes data that's already in the local cache and is fully executable on the client side. In this case, you can save requests to the server and thus, enhance the application performance by [using the `local` keyword in the function definition](../Concepts/classes.md#local).
+By default, [ORDA data model functions](../ORDA/ordaClasses.md) are executed on the server, which usually provides the best performance since only the function request and the result are sent over the network. Sin embargo, puede ocurrir que una función procese datos que ya están en la caché local y sea totalmente ejecutable en el lado del cliente. In this case, you can save requests to the server and thus, enhance the application performance by [using the `local` keyword in the function definition](../Concepts/classes.md#local).
Tenga en cuenta que la función funcionará incluso si eventualmente requiere acceder al servidor (por ejemplo si la caché ORDA está vencida). Sin embargo, es muy recomendable asegurarse de que la función local no accede a los datos del servidor, ya que de lo contrario la ejecución local no podría aportar ninguna ventaja en cuanto al rendimiento. Una función local que genera numerosas peticiones al servidor es menos eficiente que una función ejecutada en el servidor que sólo devolvería los valores resultantes. Por ejemplo, considere la siguiente función en la entidad Schools:
@@ -157,7 +157,7 @@ local Function getYoungest() : Object
- **sin** la palabra clave `local`, el resultado se da utilizando una única petición
- **con** la palabra clave `local`, son necesarias 4 peticiones: una para obtener la entidad Schools, una para la `query()`, una para la `orderBy()`, y una para la `slice()`. En este ejemplo, el uso de la palabra clave `local` es inapropiado.
-#### Example: Checking attributes
+#### Ejemplo: verificación de atributos
Queremos comprobar la consistencia de los atributos de una entidad cargada en el cliente y actualizada por el usuario antes de solicitar al servidor que los guarde.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md
index c73cfafeda2295..a4531b9089c53f 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/ordaClasses.md
@@ -45,7 +45,7 @@ Todas las clases de modelo de datos ORDA se exponen como propiedades del class s
| cs._DataClassName_Entity | cs.EmployeeEntity | [`dataClass.get()`](API/DataClassClass.md#get), [`dataClass.new()`](API/DataClassClass.md#new), [`entitySelection.first()`](API/EntitySelectionClass.md#first), [`entitySelection.last()`](API/EntitySelectionClass.md#last), [`entity.previous()`](API/EntityClass.md#previous), [`entity.next()`](API/EntityClass.md#next), [`entity.first()`](API/EntityClass.md#first), [`entity.last()`](API/EntityClass.md#last), [`entity.clone()`](API/EntityClass.md#clone) |
| cs._DataClassName_Selection | cs.EmployeeSelection | [`dataClass.query()`](API/DataClassClass.md#query), [`entitySelection.query()`](API/EntitySelectionClass.md#query), [`dataClass.all()`](API/DataClassClass.md#all), [`dataClass.fromCollection()`](API/DataClassClass.md#fromcollection), [`dataClass.newSelection()`](API/DataClassClass.md#newselection), [`entitySelection.drop()`](API/EntitySelectionClass.md#drop), [`entity.getSelection()`](API/EntityClass.md#getselection), [`entitySelection.and()`](API/EntitySelectionClass.md#and), [`entitySelection.minus()`](API/EntitySelectionClass.md#minus), [`entitySelection.or()`](API/EntitySelectionClass.md#or), [`entitySelection.orderBy()`](API/EntitySelectionClass.md#or), [`entitySelection.orderByFormula()`](API/EntitySelectionClass.md#orderbyformula), [`entitySelection.slice()`](API/EntitySelectionClass.md#slice), `Create entity selection` |
-> ORDA user classes are stored as regular class files (.4dm) in the Classes subfolder of the project.
+> Las clases usuario ORDA se almacenan como archivos de clase estándar (.4dm) en la subcarpeta Classes del proyecto.
Además, las instancias de objeto de clases usuario de los modelos de datos ORDA se benefician de las propiedades y funciones de sus padres:
@@ -60,7 +60,7 @@ Además, las instancias de objeto de clases usuario de los modelos de datos ORDA
| Lanzamiento | Modificaciones |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| 21 R3 | Support for the `server` keyword. |
+| 21 R3 | Soporte para la palabra clave `server`. |
| 19 R4 | Atributos alias en la Entity Class |
| 19 R3 | Atributos calculados en la Entity Class |
| 18 R5 | Las funciones de clase de modelo de datos no están expuestas a REST por defecto. Nuevas palabras clave `exposed` y `local`. |
@@ -425,7 +425,7 @@ Note over Qodly page: product.creationDate is "06/17/25" and product.commen
```
-#### Example 5 (diagram): Qodly - Entity instantiated in a function
+#### Ejemplo 5 (diagrama): Qodly - Entidad instanciada en una función
```mermaid
@@ -467,7 +467,7 @@ Dentro de las funciones de atributos calculados, [`This`](Concepts/classes.md#th
> Los atributos calculados ORDA no están [**expuestos**](#exposed-vs-non-exposed-functions) por defecto. Para exponer un atributo calculado, añada la palabra clave `exposed` a la definición de la función \*\*get \*\*.
-> **get and set functions** can have the [`local`](../Concepts/classes.md#local) property to optimize client/server processing.
+> **Las funciones get y set** pueden tener la propiedad [`local`](../Concepts/classes.md#local) para optimizar el procesamiento cliente/servidor.
### `Function get `
@@ -551,7 +551,7 @@ Function get coWorkers($event : Object)-> $result: cs.EmployeeSelection
```4d
{local | server} Function set ($value : type {; $event : Object})
-// code
+// código
```
La función *setter* se ejecuta cada vez que se asigna un valor al atributo. Esta función suele procesar los valores de entrada y el resultado se envía entre uno o varios atributos.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/overview.md b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/overview.md
index 04b7264a33a0a6..53d7487c312fb1 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/ORDA/overview.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/ORDA/overview.md
@@ -27,7 +27,7 @@ Fundamentalmente, ORDA gestiona objetos. En ORDA, todos los conceptos principale
Los objetos en ORDA pueden manejarse como los objetos estándar 4D, pero se benefician automáticamente de propiedades y de métodos específicos.
-ORDA objects are created and instantiated when necessary by 4D methods (you do not need to create them). Sin embargo, los objetos del modelo de datos ORDA están asociados a las [clases en las que se pueden añadir funciones personalizadas](ordaClasses.md).
+Los objetos ORDA son creados e instanciados cuando es necesario por los métodos 4D (no necesitas crearlos). Sin embargo, los objetos del modelo de datos ORDA están asociados a las [clases en las que se pueden añadir funciones personalizadas](ordaClasses.md).
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md
index 8aa9ee3a6de948..308a4c37df90a6 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md
@@ -59,7 +59,7 @@ Este archivo de texto también puede contener llaves de configuración, en parti
| menus.json | Definiciones de los menús | JSON |
| roles.json | [Privilegios, permisos](../ORDA/privileges.md#rolesjson-file) y otros ajustes de seguridad del proyecto | JSON |
| settings.4DSettings | Propiedades de la base *Structure*. No se tienen en cuenta si se definen *[parámetros de usuario](#settings-user)* o *[parámetros de usuario para datos](#settings-user-data)* (ver también [Prioridad de los parámetros](../settings/overview.md#priority-of-settings). **Atención**: en las aplicaciones compiladas, la configuración de la estructura se almacena en el archivo .4dz (de sólo lectura). Para las necesidades de despliegue, es necesario [habilitar](../settings/overview.md#enabling-user-settings) y utilizar *parámetros usuario* o *parámetros usuario para datos* para definir parámetros personalizados. | XML |
-| AIProviders.json | *Structure* [AI provider configuration file](../settings/ai.md#aiprovidersjson). Can be overriden by an AIProviders.json file added in *[user settings](#settings-user)* or *[user settings for data](#settings-user-data)* (see also [Priority of settings](../settings/overview.md#priority-of-settings). | JSON |
+| AIProviders.json | *Estructura* [Archivo de configuración del proveedor de IA](../settings/ai.md#aiprovidersjson). Can be overriden by an AIProviders.json file added in *[user settings](#settings-user)* or *[user settings for data](#settings-user-data)* (see also [Priority of settings](../settings/overview.md#priority-of-settings). | JSON |
| tips.json | Mensajes de ayuda definidos | JSON |
| lists.json | Listas definidas | JSON |
| filters.json | Filtros definidos | JSON |
@@ -187,7 +187,7 @@ Esta carpeta contiene [**parámetros usuario para datos**](../settings/overview.
| directory.json | Descripción de los grupos y usuarios de 4D y sus derechos de acceso cuando la aplicación se lanza con este archivo de datos. | JSON |
| Backup.4DSettings | Parámetros de copia de seguridad de la base de datos, utilizados para definir las [opciones de copia de seguridad](Backup/settings.md) cuando la base se lanza con este archivo de datos. Las llaves relativas a la configuración de la copia de seguridad se describen en el manual *Backup de las llaves XML 4D*. | XML |
| settings.4DSettings | Propiedades de la base personalizadas para este archivo de datos. | XML |
-| AIProviders.json | [AI provider configuration file](../settings/ai.md#aiprovidersjson) for this data file | JSON |
+| AIProviders.json | [Archivo de configuración de proveedor de IA](../settings/ai.md#aiprovidersjson) para este archivo de datos | JSON |
### `Logs`
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/code-overview.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/code-overview.md
index da151b5c7a1551..43a0f151a13c5c 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Project/code-overview.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/code-overview.md
@@ -1,6 +1,6 @@
---
id: code-overview
-title: Managing Methods and Classes
+title: Gestión de métodos y clases
---
El código 4D utilizado en todo el proyecto está escrito en [métodos](../Concepts/methods.md) y [clases](../Concepts/classes.md).
@@ -15,7 +15,7 @@ Puede crear [varios tipos de métodos](../Concepts/methods.md#method-types):
- Todos los tipos de métodos pueden crearse o abrirse desde la ventana del **Explorador** (excepto los métodos Objeto que se gestionan desde el [editor de formularios](../FormEditor/formEditor.md)).
- Los métodos proyecto también pueden crearse o abrirse desde el menú **Archivo** o desde la barra de herramientas (**Nuevo/Método...** o **Abrir/Método...**) o utilizando los accesos directos de la ventana del [editor de código](../code-editor/write-class-method.md#shortcuts).
-- **Triggers** can also be created or opened from the [Structure editor](../Develop-legacy/triggers.md#activating-and-creating-a-trigger).
+- Los **Triggers** también pueden ser creados o abiertos desde el [Editor de estructuras](../Develop-legacy/triggers.md#activating-and-creating-a-trigger).
- Los métodos formulario también pueden crearse o abrirse desde el [editor de formularios](../FormEditor/formEditor.md).
## Crear las clases
@@ -28,7 +28,7 @@ Una clase usuario en 4D está definida por un archivo de método específico (**
Project folder Project Sources Classes Polygon.4dm
```
-You can create a class file from the **File** menu or toolbar (**New > Class...**) or in the **Methods** page of the **Explorer** window. También puede utilizar el atajo **Ctrl+Mayús+Alt+k**.
+Puede crear un archivo de clase desde el menú **Archivo** o la barra de herramientas (**Nuevo > Clase...**) o en la página **Métodos** de la ventana **Explorador**. También puede utilizar el atajo **Ctrl+Mayús+Alt+k**.
En la página **Métodos** del Explorador, las clases se agrupan en la categoría **Clases**.
@@ -102,53 +102,53 @@ Para eliminar un método o clase existente, puede:
> Para eliminar un método objeto, seleccione **Borrar el método de objeto** en el [editor de formularios](../FormEditor/formEditor.md) (menú **Objeto** o menú contextual).
-## Design Object Access commands
+## Comandos de acceso a objetos de diseño
-You can access the contents and paths of all methods in your applications by programming, thanks to the [**"Design Object Access" command theme**](../commands/theme/Design_Object_Access.md). This source toolkit facilitates the integration into your applications of code control tools and more particularly version control systems (VCS). It also lets you implement advanced systems for [code documentation](../Project/documentation.md), for building a custom explorer or for organizing scheduled backups of the code saved as disk files.
+You can access the contents and paths of all methods in your applications by programming, thanks to the [**"Design Object Access" command theme**](../commands/theme/Design_Object_Access.md). Este conjunto de herramientas de código fuente facilita la integración en sus aplicaciones de herramientas de control de código y, más concretamente, de sistemas de control de versiones (VCS). It also lets you implement advanced systems for [code documentation](../Project/documentation.md), for building a custom explorer or for organizing scheduled backups of the code saved as disk files.
Se aplican los siguientes principios:
-- Each method and form in a 4D application has its own address in the form of a pathname. Por ejemplo, el método de activación de la tabla 1 se encuentra en "[trigger]/tabla_1". Cada nombre de ruta de objeto es único en una aplicación.
+- Cada método y formulario de una aplicación 4D tiene su propia dirección en forma de nombre de ruta. Por ejemplo, el método de activación de la tabla 1 se encuentra en "[trigger]/tabla_1". Cada nombre de ruta de objeto es único en una aplicación.
- You can access objects in the 4D application using the commands of the **"Design Object Access"** command theme, for example [`METHOD GET NAMES`](../commands/method-get-names) or [`METHOD GET PATHS`](../commands/method-get-paths).
-- Most of the commands in this theme work in both [interpreted and compiled](../Concepts/interpreted.md) mode. However, commands that modify properties or access contents executable from methods can only be used in interpreted mode (see the table below).
+- Most of the commands in this theme work in both [interpreted and compiled](../Concepts/interpreted.md) mode. Sin embargo, los comandos que modifiquen propiedades o accedan a los contenidos ejecutables a partir de métodos sólo pueden utilizarse en modo interpretado (ver la tabla abajo).
- Puede utilizar todos los comandos de este tema con 4D en modo local o remoto. However, keep in mind that you cannot use certain commands in compiled mode: the purpose of this theme is to create custom development support tools. You must not use these commands to dynamically change the functioning of a database that is running. For example, you cannot use [`METHOD SET ATTRIBUTE`](../commands/method-set-attribute) to change a method attribute according to the status of the current user.
-- When a command of this theme is called from a [component](../Project/components.md), by default it accesses the component objects. In this case, to access objects of the host, you just pass a `*` as the last parameter.
+- When a command of this theme is called from a [component](../Project/components.md), by default it accesses the component objects. En este caso, para acceder a los objetos del host, basta con pasar un `*` como último parámetro.
### Uso en modo compilado
For reasons related to the principle of the compilation process, only certain commands in this theme can be used in compiled mode. The following table indicates the available of the commands in compiled mode:
-| Comando | Can be used in compiled mode |
-| ------------------------------------------------------------------------ | ---------------------------- |
-| [Current method path](../commands/current-method-path) | Sí |
-| [FORM GET NAMES](../commands/form-get-names) | Sí |
-| [METHOD Get attribute](../commands/method-get-attribute) | Sí |
-| [METHOD GET ATTRIBUTES](../commands/method-get-attributes) | Sí |
-| [METHOD GET CODE](../commands/method-get-code) | No |
-| [METHOD GET COMMENTS](../commands/method-get-comments) | Sí |
-| [METHOD GET FOLDERS](../commands/method-get-folders) | Sí |
-| [METHOD GET MODIFICATION DATE](../commands/method-get-modification-date) | Sí |
-| [METHOD GET NAMES](../commands/method-get-names) | Sí |
-| [METHOD Get path](../commands/method-get-path) | Sí |
-| [METHOD GET PATHS](../commands/method-get-paths) | Sí |
-| [METHOD GET PATHS FORM](../commands/method-get-paths-form) | Sí |
-| [METHOD OPEN PATH](../commands/method-open-path) | No |
-| [METHOD RESOLVE PATH](../commands/method-resolve-path) | Sí |
-| [METHOD SET ACCESS MODE](../commands/method-set-access-mode) | Sí |
-| [METHOD SET ATTRIBUTE](../commands/method-set-attribute) | No |
-| [METHOD SET ATTRIBUTES](../commands/method-set-attributes) | No |
-| [METHOD SET CODE](../commands/method-set-code) | No |
-| [METHOD SET COMMENTS](../commands/method-set-comments) | No |
+| Comando | Puede utilizarse en modo compilado |
+| ------------------------------------------------------------------------ | ---------------------------------- |
+| [Current method path](../commands/current-method-path) | Sí |
+| [FORM GET NAMES](../commands/form-get-names) | Sí |
+| [METHOD Get attribute](../commands/method-get-attribute) | Sí |
+| [METHOD GET ATTRIBUTES](../commands/method-get-attributes) | Sí |
+| [METHOD GET CODE](../commands/method-get-code) | No |
+| [METHOD GET COMMENTS](../commands/method-get-comments) | Sí |
+| [METHOD GET FOLDERS](../commands/method-get-folders) | Sí |
+| [METHOD GET MODIFICATION DATE](../commands/method-get-modification-date) | Sí |
+| [METHOD GET NAMES](../commands/method-get-names) | Sí |
+| [METHOD Get path](../commands/method-get-path) | Sí |
+| [METHOD GET PATHS](../commands/method-get-paths) | Sí |
+| [METHOD GET PATHS FORM](../commands/method-get-paths-form) | Sí |
+| [METHOD OPEN PATH](../commands/method-open-path) | No |
+| [METHOD RESOLVE PATH](../commands/method-resolve-path) | Sí |
+| [METHOD SET ACCESS MODE](../commands/method-set-access-mode) | Sí |
+| [METHOD SET ATTRIBUTE](../commands/method-set-attribute) | No |
+| [METHOD SET ATTRIBUTES](../commands/method-set-attributes) | No |
+| [METHOD SET CODE](../commands/method-set-code) | No |
+| [METHOD SET COMMENTS](../commands/method-set-comments) | No |
:::note
-The error -9762 "The command cannot be executed in a compiled database." is generated when the command is executed in compiled mode.
+El error -9762 "El comando no puede ejecutarse en una base de datos compilada." se genera cuando el comando se ejecuta en modo compilado.
:::
-### Creation of pathnames
+### Creación de rutas
-Pathnames generated for 4D objects must be compatible with the file management of the operating system. Characters that are forbidden at the OS level such as ":" are automatically encoded in method names, so that generated files may be integrated automatically in a version control system.
+Las rutas generadas para los objetos 4D deben ser compatibles con la gestión de archivos del sistema operativo. Characters that are forbidden at the OS level such as ":" are automatically encoded in method names, so that generated files may be integrated automatically in a version control system.
Estos son los caracteres codificados:
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md
index 6f1f5bfc753874..57943a3d936616 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/components.md
@@ -173,9 +173,9 @@ Las rutas relativas son relativas al archivo [`environment4d.json`](#environment
Utilizar rutas relativas es **recomendable** en la mayoría de los casos, ya que ofrecen flexibilidad y portabilidad de la arquitectura de componentes, especialmente si el proyecto está alojado en una herramienta de control de código fuente. Las rutas absolutas sólo deben utilizarse para componentes específicos de una máquina y un usuario.
-### Components stored on Git hosting platforms {#components-stored-on-git-hosting-platforms}
+### Componentes almacenados en plataformas de alojamiento Git {#components-stored-on-git-hosting-platforms}
-4D components available as **releases** on GitHub and GitLab platforms can be referenced and automatically loaded and updated in your 4D projects.
+Los componentes 4D disponibles como **releases** en las plataformas GitHub y GitLab pueden ser referenciados y cargados y actualizados automáticamente en sus proyectos 4D.
:::note
@@ -183,9 +183,9 @@ Regarding components stored on GitHub or GitLab, both [**dependencies.json**](#d
:::
-To be able to directly reference and use a 4D component stored on GitHub or GitLab, you need to configure the component's repository.
+Para poder referenciar y utilizar directamente un componente 4D almacenado en GitHub o GitLab, es necesario configurar el repositorio del componente.
-#### Configuring a GitHub repository
+#### Configuración de un repositorio GitHub
1. Comprima los archivos componentes en formato ZIP.
2. Nombre este archivo con el mismo nombre que el repositorio GitHub. For example, for a "my-4D-Component" repository, the archive must be named "my-4D-Component.zip".
@@ -194,26 +194,26 @@ To be able to directly reference and use a 4D component stored on GitHub or GitL
Estos pasos pueden automatizarse fácilmente, con código 4D o utilizando GitHub Actions, por ejemplo.
-#### Configuring a GitLab repository
+#### Configuración de un repositorio GitLab
-GitLab releases only store the name and URL of assets, they do not contain uploaded files. Debe ofrecer el archivo zip de su componente como enlace.
+Las versiones de GitLab sólo almacenan el nombre y la URL de los activos, no contienen los archivos subidos. Debe ofrecer el archivo zip de su componente como enlace.
-1. Upload the component's ZIP file somewhere, i.e. either on an external server, or [using GitLab Package Registry](#using-the-gitlab-package-registry) (generic package).
-2. Create a [GitLab release](https://docs.gitlab.com/user/project/releases/) for your component, including the link to your component's file as release asset.
+1. Suba el archivo ZIP del componente en algún lugar, es decir, en un servidor externo, o [usando GitLab Package Registry](#using-the-gitlab-package-registry) (paquete genérico).
+2. Cree una [versión de GitLab](https://docs.gitlab.com/user/project/releases/) para su componente, incluyendo el enlace al archivo de su componente como activo de la versión.
The asset name is typically an artifact link name (\.zip).
#### Using the GitLab Package Registry
-The [GitLab Package Registry](https://docs.gitlab.com/user/packages/package_registry/) allows you to host your files in GitLab itself. Its main advantages include an authenticated access, stable and versioned urls, and the ability to associate binairies with release tags. To use the Package Registry:
+The [GitLab Package Registry](https://docs.gitlab.com/user/packages/package_registry/) allows you to host your files in GitLab itself. Sus principales ventajas incluyen un acceso autenticado, urls estables y versionadas, y la posibilidad de asociar binarios con etiquetas de lanzamiento. To use the Package Registry:
-1. Build your component file (for example: *MyComponent.zip*)
+1. Cree el archivo del componente (por ejemplo: *MiComponente.zip*)
2. Upload it to the [generic packages repository](https://docs.gitlab.com/user/packages/generic_packages/) using a script (see [examples in the GitLab documentation](https://docs.gitlab.com/user/packages/generic_packages/#publish-a-single-file)).
-3. **Deploy** \> **Package Registry** to see the result.
+3. **Deploy** \> **Package Registry** para ver el resultado.
4. Utilice la URL del paquete como enlace a los activos de la versión.
5. Asócielo con la misma etiqueta Git.
-:::tip Tutorial: Create and Use a 4D Component Release with Gitlab
+:::tip Tutorial: crear y utilizar una liberación de componentes 4D con Gitlab
@@ -242,7 +242,7 @@ You declare components stored on GitHub and GitLab in the [**dependencies.json**
```
- (GitLab dependencies only) Use the "host" property to declare a private GitLab self-hosted instance. Using only the "gitlab" property indicates a GitLab repository hosted on https://gitlab.com.
-- "myGitHubComponent1" is referenced and declared for the project, although "myGitHubComponent2" is only referenced. Necesita declararlo en el archivo [**environment4d.json**](#environment4djson):
+- "myGitHubComponent1" está referenciado y declarado para el proyecto, aunque "myGitHubComponent2" sólo está referenciado. Necesita declararlo en el archivo [**environment4d.json**](#environment4djson):
```json title="environment4d.json"
{
@@ -332,18 +332,18 @@ El desarrollador del componente puede definir una versión mínima de 4D en el a
Si quiere integrar un componente ubicado en un repositorio privado, necesita decirle a 4D que utilice un token de conexión para acceder a él.
- for GitHub: in your [GitHub token interface](https://github.com/settings/tokens), create a token with the recommended following properties:
- - type: **classic**
+ - tipo: **classic**
- derechos de acceso: **repo**
- para GitLab: en su cuenta de GitLab, cree un token con las siguientes propiedades:
- - type: **Personal Access token**
+ - tipo: **Personal Access token**
- alcances: **read_api** y **read_repository**
A continuación, deberá [suministrar su token de conexión](#providing-your-access-token) al gestor de dependencias.
#### Caché local para dependencias
-Referenced GitHub and GitLab components are downloaded in a local cache folder then loaded in your environment. La carpeta de caché local se guarda en la siguiente ubicación:
+Los componentes GitHub y GitLab a los que se hace referencia se descargan en una carpeta de caché local y, a continuación, se cargan en su entorno. La carpeta de caché local se guarda en la siguiente ubicación:
- en macOS: `$HOME/Library/Caches//Dependencies`
- en Windows: `C:\Users\\AppData\Local\\Dependencies`
@@ -426,9 +426,9 @@ Las siguientes etiquetas de estado están disponibles:
- **Duplicated**: la dependencia no se carga porque existe otra dependencia con el mismo nombre en la misma ubicación (y está cargada).
- **Disponible después del reinicio**: la referencia a dependencias acaba de ser añadida o actualizada [usando la interfaz](#monitoring-project-dependencies), se cargará una vez que la aplicación se reinicie.
- **Descargado después de reiniciar**: la referencia de dependencias acaba de ser removida [utilizando la interfaz](#removing-a-dependency), se descargará una vez que la aplicación se reinicie.
-- **Update available \**: A new version of the dependency matching your [component version configuration](#defining-a-github-dependency-version-range) has been detected.
+- **Update available \**: A new version of the dependency matching your [component version configuration](#defining-a-dependency-version-range) has been detected.
- **Refreshed after restart**: The [component version configuration](#defining-a-dependency-version-range) of the dependency has been modified, it will be adjusted at the next startup.
-- **Recent update**: A new version of the dependency has been loaded at startup.
+- **Recent update**: se ha cargado una nueva versión de la dependencia al inicio.
:::tip
@@ -469,13 +469,13 @@ Este elemento no se muestra si la relación está inactiva porque no se encuentr
El icono del componente y el logotipo de ubicación ofrecen información adicional:
- El logotipo del componente indica si es suministrado por 4D o por un desarrollador externo.
-- Local components can be differentiated from GitHub and GitLab components by a small icon.
+- Los componentes locales pueden diferenciarse de los componentes de GitHub y GitLab por un pequeño icono.

### Añadir una dependencia local
-To add a local dependency, click on the **[+]** button in the footer area of the panel. Se muestra la siguiente caja de diálogo:
+Para añadir una dependencia local, haga clic en el botón **[+]** en el área de pie de página del panel. Se muestra la siguiente caja de diálogo:

@@ -500,11 +500,11 @@ Si en este paso no se ha definido aún ningún archivo [**environment4d.json**](
La dependencia se añade a la [lista de dependencias inactivas](#dependency-status) con el estado **Disponible después de reiniciar**. Se cargará cuando se reinicie la aplicación.
-### Adding a GitHub or GitLab dependency
+### Añadir una dependencia de GitHub o GitLab
Para añadir una [dependencia GitHub o GitLab](#components-stored-on-git-hosting-platforms):
-1. Click on the **[+]** button in the footer area of the panel and select the tab corresponding to your platform: **GitHub** or **GitLab**.
+1. Haga clic en el botón **[+]** del área de pie de página del panel y seleccione la pestaña correspondiente a su plataforma: **GitHub** o **GitLab**.

@@ -518,10 +518,10 @@ Los componentes ya instalados no están listados.
:::
-2. Enter the path of the GitHub or GitLab repository of the dependency. Podría ser:
+2. Introduzca la ruta del repositorio de GitHub o GitLab de la dependencia. Podría ser:
- a **repository URL** (e.g. "https://github.com/vdelachaux/UI-with-Classes")
-- (GitLab only) a self-hosted instance private server URL (e.g. "https://git-my-server.com/4d/components/mycomponent")
+- (sólo GitLab) una URL de servidor privado de instancia autoalojada (por ejemplo, "https://git-my-server.com/4d/components/mycomponent")
- a **user-account/repository-name string**, for example:

@@ -534,7 +534,7 @@ If the component is stored on a [private repository](#authentication-and-tokens)
:::
-3. Definir el [rango de versiones de dependencia](#tags-and-versions) a utilizar para este proyecto. By defaut, "Latest" (GitHub) or "Highest" (GitLab) is selected, which means that the most recent version will be automatically used.
+3. Definir el [rango de versiones de dependencia](#tags-and-versions) a utilizar para este proyecto. Por defecto, se selecciona "Latest" (GitHub) o "Highest" (GitLab), lo que significa que se utilizará automáticamente la versión más reciente.
4. Haga clic en el botón **Añadir** para añadir la dependencia al proyecto.
@@ -550,7 +550,7 @@ Puede definir la opción [etiqueta o versión](#tags-and-versions) para una depe
- **Hasta la próxima versión mayor**: define un [rango de versiones semánticas](#tags-and-versions) para restringir las actualizaciones a la próxima versión principal.
- **Hasta la siguiente versión menor**: del mismo modo, restringir las actualizaciones a la siguiente versión menor.
- **Versión exacta (Etiqueta)**: selecciona o introduce manualmente una [etiqueta específica](#tags-and-versions) de la lista disponible.
-- **Latest** (GitHub) or **Highest** (GitLab): Allows to download the release with the corresponding tag, usually the most recent release. **Warning:** While using this option can be convenient during early development, it is better to avoid it in production or shared projects since it automatically pulls in newer releases, including beta releases, which may lead to unexpected updates or breaking changes.
+- **Último** (GitHub) o **más alto** (GitLab): permite descargar la versión con la etiqueta correspondiente, normalmente la versión más reciente. **Warning:** While using this option can be convenient during early development, it is better to avoid it in production or shared projects since it automatically pulls in newer releases, including beta releases, which may lead to unexpected updates or breaking changes.
La versión actual de la dependencia se muestra a la derecha del elemento de la dependencia:
@@ -618,7 +618,7 @@ En cualquier caso, sea cual sea el estado actual de la dependencia, se realiza u
Al seleccionar un comando de actualización:
- se muestra un cuadro de diálogo que propone **reiniciar el proyecto**, para que las dependencias actualizadas estén disponibles de inmediato. Normalmente se recomienda reiniciar el proyecto para evaluar las dependencias actualizadas.
-- if you click **Later**, the update command is no longer available in the menu, meaning the action has been planned for the next startup.
+- si hace clic en **Después**, el comando de actualización ya no está disponible en el menú, lo que significa que la acción ha sido planificada para el siguiente inicio.
#### Actualización automática
@@ -630,20 +630,20 @@ Cuando esta opción no está marcada, una nueva versión del componente que coin
### Providing your access token
-Registering your [personal access token](#authentication-and-tokens) in the Dependency manager is:
+Registrar su [token de acceso personal](#authentication-and-tokens) en el gestor de dependencias es:
-- mandatory if the component is stored on a private repository,
+- obligatorio si el componente se almacena en un repositorio privado,
- recomendado para una [verificación de actualizaciones de dependencias](#updating-dependencies) más frecuente.
-#### Adding a token
+#### Añadir un token
-To provide your GitHub or GitLab access token, you can either:
+Para proporcionar su token de acceso a GitHub o GitLab, puede:
- click on **Add a personal access token...** button that is displayed in the "Add a dependency" dialog box after you entered a private repository path.

-- or, select **Add a GitHub personal access token...** or **Add a GitLab personal access token...** in the Dependency manager menu at any moment. Para los tokens de acceso de GitLab, puede seleccionar el host:
+- o, seleccione **Agregar un token de acceso personal de GitHub...** o **Agregar un token de acceso personal de GitLab...** en el menú Administrador de dependencias en cualquier momento. Para los tokens de acceso de GitLab, puede seleccionar el host:

diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/overview.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/overview.md
index c8b597075e3344..271a8b67be875a 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Project/overview.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/overview.md
@@ -8,7 +8,7 @@ A 4D project contains all of the source code of a 4D application, whatever its d
## Archivos del proyecto
-4D project files are open and edited using regular 4D platform applications (4D or 4D Server), on Windows or macOS. With 4D, full-featured editors are available to manage files, including a [code editor](../code-editor/write-class-method.md), a [web interface builder (4D Qodly Pro)](https://developer.4d.com/qodly/), a [form editor](../FormEditor/formEditor.md), a structure editor, a menu editor...
+Los archivos proyecto 4D se abren y editan utilizando las aplicaciones habituales de la plataforma 4D (4D o 4D Server), en Windows o macOS. With 4D, full-featured editors are available to manage files, including a [code editor](../code-editor/write-class-method.md), a [web interface builder (4D Qodly Pro)](https://developer.4d.com/qodly/), a [form editor](../FormEditor/formEditor.md), a structure editor, a menu editor...
Como los proyectos se encuentran en archivos legibles, en texto plano (JSON, XML, etc.), pueden ser leídos o editados manualmente por los desarrolladores, utilizando cualquier editor de código.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Project/project-method-properties.md b/i18n/es/docusaurus-plugin-content-docs/current/Project/project-method-properties.md
index 87efa648f16d85..1471d499f4ed78 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Project/project-method-properties.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/project-method-properties.md
@@ -111,13 +111,13 @@ Un **método de gestión de errores** es un método proyecto basado en interrupc
### API Methods
-Project methods can be called from external contexts such as other applications, web apps, processed files, etc., in which case they can be seen as API. Such calls include:
+Los métodos del proyecto pueden ser llamados desde contextos externos como otras aplicaciones, aplicaciones web, archivos procesados, etc., en cuyo caso pueden ser vistos como API. Such calls include:
-- calls to the web server through [http request handlers](../WebServer/http-request-handler.md) or [`4DACTION` URLs](../WebServer/httpRequests.md#4daction),
+- llamadas al servidor web a través de [http request handlers](../WebServer/http-request-handler.md) o [`4DACTION` URLs](../WebServer/httpRequests.md#4daction),
- [procesamiento de etiquetas](../Tags/transformation-tags.md)
- expressions called from extensions ([4D Write Pro](../WritePro/commands/wp-insert-formula.md), [4D View Pro](../ViewPro/formulas.md) or form objects (e.g. [`ST INSERT EXPRESSION`](../commands/st-insert-expression)).
-External calls to project methods must be allowed in the [project method properties](../Project/project-method-properties.md).
+Las llamadas externas a los métodos proyecto deben estar permitidas en las [propiedades de los métodos proyecto](../Project/project-method-properties.md).
### Execution mode
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-style-sheet.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-style-sheet.md
index f54550e9a1d215..66933e7d27a629 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-style-sheet.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-delete-style-sheet.md
@@ -34,12 +34,12 @@ displayed_sidebar: docs
## Descripción
-The **WP DELETE STYLE SHEET** command removes the designated paragraph or character style sheet from the current document. When a style sheet is removed, every character or paragraph that it was applied to reverts to its original style (*i.e.* the default).
+El comando **WP DELETE STYLE SHEET** elimina la hoja de estilo de párrafo o de caracter designado del documento actual. Cuando se elimina una hoja de estilo, todos los caracteres o párrafos a los que se aplicó vuelven a su estilo original (*es decir,* el predeterminado).
Este comando ofrece dos formas de eliminar una hoja de estilo. Puede especificar:
- the style sheet object (created with the [WP New style sheet](../WritePro/commands/wp-new-style-sheet) or returned by the [WP Get style sheet](../WritePro/commands/wp-get-style-sheet) command) to remove in the *styleSheetType* parameter, or
-- the 4D Write Pro document along with the name of the style sheet to remove in the *wpDoc* and *styleSheetName* parameters.
+- el documento 4D Write Pro junto con el nombre de la hoja de estilo a eliminar en los parámetros *wpDoc* y *styleSheetName*.
When the style sheet to delete belongs to a [hierarchical list style sheet](../user-legacy/stylesheets.md#hierarchical-list-style-sheets), the behavior depends on the level being removed. Puede eliminar:
@@ -52,9 +52,9 @@ Al eliminar una hoja de estilo de subnivel:
- The `wk list level index` of all subsequent sub-level style sheets is decremented to maintain continuous level numbering.
- Los nombres de las hojas de estilo de subnivel afectadas se actualizan para reflejar su nuevo índice de nivel.
-- The `wk list level count` attribute of the root style sheet and all remaining sub-level style sheets is decremented to match the new total number of levels.
+- El atributo `wk list level count` de la hoja de estilo raíz y todas las hojas de estilo de subnivel restantes se decrementan para que coincidan con el nuevo número total de niveles.
-The command performs no action if the specified level does not exist, or if the style sheet is not part of a hierarchical list and *listLevelIndex* is greater than 1.
+El comando no realiza ninguna acción si el nivel especificado no existe, o si la hoja de estilo no forma parte de una lista jerárquica y *listLevelIndex* es mayor que 1.
**Nota**: la hoja de estilo por defecto ("Normal") no se puede eliminar.
@@ -77,7 +77,7 @@ WP DELETE STYLE SHEET(wpArea; "MainList"; 2)
Después de la ejecución:
-- The `wk list level index` values are updated (former level 3 becomes level 2).
+- Los valores `wk list level index` se actualizan (el nivel 3 anterior se convierte en el nivel 2).
- Se decrementa el `wk list level count`.
Para eliminar toda la hoja de estilo jerárquica (raíz y todos los subniveles asociados):
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-document.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-document.md
index 5dc554f83a14f2..b70e4e29a34cf1 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-document.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-document.md
@@ -39,7 +39,7 @@ Puede omitir el parámetro *format*, en cuyo caso deberá especificar la extensi
| -------------------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| wk 4wp | 4 | El documento 4D Write Pro se guarda en un formato de archivo nativo (HTML comprimido e imágenes guardadas en una carpeta separada). Se incluyen las etiquetas específicas 4D y no se calculan las expresiones 4D. Este formato es especialmente adecuado para guardar y archivar documentos 4D Write Pro en disco sin pérdida alguna. |
| wk docx | 7 | Extensión .docx. El documento 4D Write Pro se guarda en formato Microsoft Word. Compatibilidad certificada con Microsoft Word 2010 y versiones posteriores. The document parts exported are:
Body / headers / footers / sections
Page / print settings (margins, background color / image, borders, padding, paper size / orientation)
Images - inline, anchored, and background image pattern (defined with wk background image)
Style sheets (character, paragraph)
Compatible variables and expressions (page number, number of pages, date, time, metadata). Non-compatible variables and expressions will be evaluated and frozen before export.
Links - Bookmarks and URLs
Note that some 4D Write Pro settings may not be available or may behave differently in Microsoft Word. |
-| wk mime html | 1 | El documento 4D Write Pro se guarda como HTML MIME estándar con documentos HTML e imágenes anidadas como partes MIME (codificadas en base64). Se calculan las expresiones y se eliminan las etiquetas específicas de 4D y los enlaces de métodos. Sólo se exportan los cuadros de texto anclados a la vista incrustada (como divs). This format is particularly suitable for sending HTML emails. |
+| wk mime html | 1 | El documento 4D Write Pro se guarda como HTML MIME estándar con documentos HTML e imágenes anidadas como partes MIME (codificadas en base64). Se calculan las expresiones y se eliminan las etiquetas específicas de 4D y los enlaces de métodos. Sólo se exportan los cuadros de texto anclados a la vista incrustada (como divs). Este formato es especialmente adecuado para enviar correos electrónicos HTML. |
| wk pdf | 5 | Extensión .pdf. El documento 4D Write Pro se guarda en formato PDF, según el modo vista Página. The following metadata is exported in a PDF document: Title / Author / Subject / Content creator **Notes**:
Expressions are automatically frozen when document is exported
Links to methods are NOT exported
|
| wk svg | 8 | La página del documento 4D Write Pro se guarda en formato SVG, según el modo vista Página. **Nota:** al exportar a SVG, sólo puede exportar una página cada vez. Utilice el wk page index para especificar qué página exportar. |
| wk web page complete | 2 | Extensión .htm o .html. El documento se guarda como HTML estándar y sus recursos se guardan por separado. Se eliminan las etiquetas 4D y los enlaces a métodos 4D y se calculan las expresiones. Sólo se exportan los cuadros de texto anclados a la vista incrustada (como divs). Only text boxes anchored to embedded view are exported (as divs). |
@@ -53,7 +53,7 @@ Puede omitir el parámetro *format*, en cuyo caso deberá especificar la extensi
### Parámetro option
-Pass in *option* an object containing the values to define the properties of the exported document. Las siguientes propiedades están disponibles:
+Pase en *option* un objeto que contenga los valores para definir las propiedades del documento exportado. Las siguientes propiedades están disponibles:
| Constante | Valor | Comentario |
| ------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-variable.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-variable.md
index a47db46f85bc08..58d2d2a5a48571 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-variable.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-export-variable.md
@@ -38,7 +38,7 @@ En el parámetro *format*, pase una constante del tema *4D Write Pro Constants*
| ------------------- | ------- | ----- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| wk 4wp | Integer | 4 | El documento 4D Write Pro se guarda en un formato de archivo nativo (HTML comprimido e imágenes guardadas en una carpeta separada). Se incluyen las etiquetas específicas 4D y no se calculan las expresiones 4D. Este formato es especialmente adecuado para guardar y archivar documentos 4D Write Pro en disco sin pérdida alguna. |
| wk docx | Integer | 7 | Extensión .docx. El documento 4D Write Pro se guarda en formato Microsoft Word. Compatibilidad certificada con Microsoft Word 2010 y versiones posteriores. The document parts exported are:
Body / headers / footers / sections
Page / print settings (margins, background color / image, borders, padding, paper size / orientation)
Images - inline, anchored, and background image pattern (defined with wk background image)
Style sheets (character, paragraph)
Compatible variables and expressions (page number, number of pages, date, time, metadata). Non-compatible variables and expressions will be evaluated and frozen before export.
Links - Bookmarks and URLs
Note that some 4D Write Pro settings may not be available or may behave differently in Microsoft Word. |
-| wk mime html | Integer | 1 | El documento 4D Write Pro se guarda como HTML MIME estándar con documentos HTML e imágenes anidadas como partes MIME (codificadas en base64). Se calculan las expresiones y se eliminan las etiquetas específicas de 4D y los enlaces de métodos. Sólo se exportan los cuadros de texto anclados a la vista incrustada (como divs). This format is particularly suitable for sending HTML emails. |
+| wk mime html | Integer | 1 | El documento 4D Write Pro se guarda como HTML MIME estándar con documentos HTML e imágenes anidadas como partes MIME (codificadas en base64). Se calculan las expresiones y se eliminan las etiquetas específicas de 4D y los enlaces de métodos. Sólo se exportan los cuadros de texto anclados a la vista incrustada (como divs). Este formato es especialmente adecuado para enviar correos electrónicos HTML. |
| wk pdf | Integer | 5 | Extensión .pdf. El documento 4D Write Pro se guarda en formato PDF, según el modo vista Página. Los siguientes metadatos se exportan en un documento PDF: Título Autor Asunto Creador del contenido **Notas**: Las expresiones se congelan automáticamente al exportar el documento Los enlaces a métodos NO se exportan |
| wk svg | Integer | 8 | La página del documento 4D Write Pro se guarda en formato SVG, según el modo vista Página. **Nota:** al exportar a SVG, sólo puede exportar una página cada vez. Utilice el wk page index para especificar qué página exportar. |
| wk web page html 4D | Integer | 3 | El documento 4D Write Pro se guarda como HTML e incluye etiquetas específicas 4D; cada expresión se inserta como un espacio inseparable. Como este formato no tiene pérdidas, es apropiado para almacenar propósitos en un campo de texto. |
@@ -53,7 +53,7 @@ En el parámetro *format*, pase una constante del tema *4D Write Pro Constants*
### Parámetro option
-Pass in *option* an object containing the values to define the properties of the exported document. Las siguientes propiedades están disponibles:
+Pase en *option* un objeto que contenga los valores para definir las propiedades del documento exportado. Las siguientes propiedades están disponibles:
| Constante | Valor | Comentario |
| ------------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-get-style-sheet.md b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-get-style-sheet.md
index fbff6db38a1bfa..a5abd90bd8d6ce 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-get-style-sheet.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/WritePro/commands/wp-get-style-sheet.md
@@ -38,14 +38,14 @@ displayed_sidebar: docs
En *wpDoc*, pase el documento 4D Write Pro que contiene la hoja de estilo.
-El parámetro *styleSheetName* permite especificar el nombre de la hoja de estilo a devolver. If the style sheet name does not exist in *wpDoc*, an null object is returned.
+El parámetro *styleSheetName* permite especificar el nombre de la hoja de estilo a devolver. Si el nombre de la hoja de estilo no existe en *wpDoc*, se devuelve un objeto null.
If the *styleSheetName* is the root-level name of a hierarchical list style sheet, you can optionally specify the *listLevelIndex* parameter to retrieve a specific level of the hierarchy.
- *listLevelIndex* represents the level of the style sheet in the hierarchy (1 = root-level, 2 = first sub-level, etc.).
- Si se omite el parámetro y la hoja de estilo es jerárquica, se devuelve la hoja de estilo del nivel raíz.
- Si el nivel solicitado no existe, se devuelve un objeto null.
-- If the style sheet is not a hierarchical list style sheet and *listLevelIndex* is greater than 1, a null object is returned.
+- Si la hoja de estilo no es una hoja de estilo de lista jerárquica y *listLevelIndex* es mayor que 1, se devuelve un objeto null.
## Ejemplo 1
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 81343e82b1462e..60313c46ce5958 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
@@ -26,7 +26,7 @@ El comando **WP Import document**](../../commands/xml-get-options) |
| [](../../commands/xml-set-options) |
-## Overview of XML Commands
+## Visión general de los comandos XML
:::note
@@ -20,14 +20,14 @@ For XML support, 4D uses a library named Xerces.dll developed by the Apache Foun
:::
-### XML, DOM, and SAX
+### XML, DOM y SAX
The **XML** theme groups together the generic XML "utilities" commands of 4D. These are option- and error-management commands.
4D also offers two separate sets of XML commands: [**DOM**](../theme/XML_DOM.md) (Document Object Model) and [**SAX**](../theme/XML_SAX.md) (Simple API XML) are two different parsing modes for XML documents.
- The DOM mode parses an XML source and builds its structure (its "tree") in memory. Because of this, access to each element of the source is extremely fast. However, since the entire tree structure is stored in memory, the processing of large XML documents may lead to the memory capacity being exceeded and thus provoke errors.
-- The SAX mode does not build a tree structure in memory. In this mode, "events" (such as the start and end of an element) are generated when parsing the source. This mode lets you parse XML documents of any size, regardless of the amount of memory available.
+- The SAX mode does not build a tree structure in memory. En este modo, se generan "eventos" (como el inicio y el final de un elemento) al analizar el código fuente. This mode lets you parse XML documents of any size, regardless of the amount of memory available.
#### Ver también
@@ -40,14 +40,14 @@ XML references created by a [preemptive process](../../Develop/preemptive.md) ca
### Character Sets
-The following character sets are supported by the XML DOM and XML SAX commands of 4D:
+Los siguientes conjuntos de caracteres son soportados por los comandos XML DOM y XML SAX de 4D:
- ASCII
- UTF-8
- UTF-16 (Big/Small Endian)
- UCS4 (Big/Small Endian)
- EBCDIC code pages IBM037, IBM1047 and IBM1140 encodings,
-- ISO-8859-1 (or Latin1)
+- ISO-8859-1 (o Latin1)
- Windows-1252.
### Glosario
@@ -56,16 +56,16 @@ This non-exhaustive list details the main XML concepts used by the commands and
- **Attribute**: an XML sub-tag associated with an element. An attribute always contains a name and a value.
- **Child**: In an XML structure, an element in a level directly below another.
-- **DTD**: *Document Type Declaration*. The DTD records the set of specific rules and properties that the XML must follow. These rules define, more particularly, the name and content of each tag as well as its context. This formalization of the elements can be used to check whether an XML document is in compliance (in which case, it is declared “valid”). The DTD may be included in the XML document (internal DTD) or in a separate document (external DTD). Note that the DTD is not mandatory.
+- **DTD**: *Document Type Declaration*. The DTD records the set of specific rules and properties that the XML must follow. These rules define, more particularly, the name and content of each tag as well as its context. Esta formalización de los elementos puede utilizarse para comprobar si un documento XML es conforme (en cuyo caso, se declara "válido"). The DTD may be included in the XML document (internal DTD) or in a separate document (external DTD). Tenga en cuenta que la DTD no es obligatoria.
- **Element**: an XML tag. An element always contains a name and a value. Optionally, an element may contain attributes.
-- **ElementRef**: XML reference used by the 4D XML commands to specify an XML structure. This reference is made up of 8 coded characters in hexadecimal form, which means that its length is 32 characters on a 64-bit system. It is recommended to declare XML references as Text.
-- **Parent**: In an XML structure, an element in a level directly above another.
+- **ElementRef**: referencia XML usada por los comandos 4D XML para especificar una estructura XML. This reference is made up of 8 coded characters in hexadecimal form, which means that its length is 32 characters on a 64-bit system. Se recomienda declarar las referencias XML como Texto.
+- **Padre**: en una estructura XML, elemento situado en un nivel directamente superior a otro.
- **Parsing, parser**: The act of analyzing the contents of a structured object in order to extract useful information.
- **Root**: An element located at the first level of an XML structure.
- **Sibling**: An element at the same level as another.
-- **Structure**: structured XML object. This object can be a document, a variable, or an element.
-- **Validation**: An XML document is “validated” by the parser when it is “well-formed” and in compliance with the DTD specifications.
+- **Structure**: structured XML object. Este objeto puede ser un documento, una variable o un elemento.
+- **Validación**: un documento XML es "validado" por el analizador sintáctico cuando está "bien formado" y cumple las especificaciones DTD.
- **Well-formed**: An XML document is declared “well-formed” by the parser when it complies with the generic XML specifications.
-- **XML**: eXtensible Markup Language. A computerized data exchange standard enabling the transfer of data as well as their structure. The XML language is based on the use of tags and a specific syntax, in keeping with the HTML language. However, unlike the latter, the XML language allows the definition of customized tags.
-- **XSL**: eXtensible Stylesheet Language. A language permitting the definition of style sheets used to process and display the contents of an XSL document.
+- **XML**: eXtensible Markup Language. A computerized data exchange standard enabling the transfer of data as well as their structure. El lenguaje XML se basa en el uso de etiquetas y una sintaxis específica, en consonancia con el lenguaje HTML. Sin embargo, a diferencia de este último, el lenguaje XML permite definir etiquetas personalizadas.
+- **XSL**: eXtensible Stylesheet Language. Un lenguaje que permite la definición de hojas de estilo utilizadas para procesar y mostrar los contenidos de un documento XSL.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/theme/XML_DOM.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/theme/XML_DOM.md
index 13d31e65ab2279..401c968f8f1366 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/commands/theme/XML_DOM.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/theme/XML_DOM.md
@@ -43,25 +43,25 @@ slug: /commands/theme/XML-DOM
| [](../../commands/dom-set-xml-element-name) |
| [](../../commands/dom-set-xml-element-value) |
-## Overview of XML DOM Commands
+## Visión general de los comandos XML DOM
See [XML, DOM, and SAX](../theme/XML.md#xml-dom-and-sax) section for a definition of XML DOM.
-### Creating, opening and closing XML documents via DOM
+### Creación, apertura y cierre de documentos XML mediante DOM
Objects created, modified or parsed by the 4D DOM commands can be text, URLs, documents or BLOBs. The DOM commands used for opening XML objects in 4D are [`DOM Parse XML source`](../../commands/dom-parse-xml-source) and [`DOM Parse XML variable`](../../commands/dom-parse-xml-variable).
-Many commands then let you read, parse and write the elements and attributes. Errors are recovered using the [`XML GET ERROR`](../../commands/xml-get-error) command. Do not forget to call the [`DOM CLOSE XML`](../../commands/dom-close-xml) command to close the source in the end.
+Muchos comandos permiten leer, analizar y escribir los elementos y atributos. Los errores se recuperan utilizando el comando [`XML GET ERROR`](../../commands/xml-get-error). No olvide llamar al comando [`DOM CLOSE XML`](../../commands/dom-close-xml) para cerrar la fuente al final.
Note about use of XML BLOB parameters: For historical reasons, XML commands such as [`DOM Parse XML variable`](../../commands/dom-parse-xml-variable) accept BLOB type parameters. However, it is highly recommended to store XML structures as Text. The use of BLOBs is reserved for processing binary data. In conformity with XML specifications, binary data are automatically encoded in Base64, even when the BLOB contains text.
-### Support of XPath notation
+### Soporte de la notación XPath
Several XML DOM commands ([`DOM Create XML element`](../../commands/dom-create-xml-element), [`DOM Find XML element`](../../commands/dom-find-xml-element), [`DOM Create XML element arrays`](../../commands/dom-create-xml-element-arrays) and [`DOM SET XML ELEMENT VALUE`](../../commands/dom-set-xml-element-value)) support some XPath expressions for accessing XML elements.
-XPath notation comes from the XPath language, designed to navigate within XML structures. It allows the setting of elements directly within an XML structure via a "pathname" type syntax, without necessarily having to indicate the complete pathname in order to reach it.
+La notación XPath procede del lenguaje XPath, diseñado para navegar dentro de estructuras XML. It allows the setting of elements directly within an XML structure via a "pathname" type syntax, without necessarily having to indicate the complete pathname in order to reach it.
-For example, given the following structure:
+Por ejemplo, dada la siguiente estructura:
```xml
@@ -75,7 +75,7 @@ For example, given the following structure:
XPath notation allows you to access element 3 using the */RootElement/Elem1/Elem2/Elem3* syntax.
-4D also accepts indexed XPath elements using the *Element[ElementNum]* syntax. For example, given the following structure:
+4D también acepta elementos XPath indexados utilizando la sintaxis *Element[ElementNum]*. Por ejemplo, dada la siguiente estructura:
```xml
@@ -87,9 +87,9 @@ XPath notation allows you to access element 3 using the */RootElement/Elem1/Elem
```
-XPath notation allows you to access the "ccc" value using the */RootElement/Elem1/Elem2[3]* syntax.
+La notación XPath permite acceder al valor "ccc" utilizando la sintaxis */RootElement/Elem1/Elem2[3]*.
-For a comprehensive list of supported XPath expressions, refer to the [`DOM Find XML element`](../../commands/dom-find-xml-element) command description.
+Para una lista completa de expresiones XPath soportadas, consulte la descripción del comando [`DOM Find XML`](../../commands/dom-find-xml-element).
:::note Compatibilidad
@@ -97,9 +97,9 @@ Starting with 4D 18 R3, the XPath implementation has been modified to be more co
:::
-### Error Handling
+### Gestión de errores
-Many functions in this theme return an XML element reference. If an error occurs during function execution (for example, if the root element reference is not valid), the *OK* variable is set to 0 and an error is generated.
+Muchas funciones de este tema devuelven una referencia a un elemento XML. If an error occurs during function execution (for example, if the root element reference is not valid), the *OK* variable is set to 0 and an error is generated.
In addition, the reference returned in this case is a sequence of 32 zero "0" characters.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/theme/XML_SAX.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/theme/XML_SAX.md
index 9cf5b35ac4627b..c3ec189f815d02 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/commands/theme/XML_SAX.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/theme/XML_SAX.md
@@ -25,30 +25,30 @@ slug: /commands/theme/XML-SAX
| [](../../commands/sax-open-xml-element-arrays) |
| [](../../commands/sax-set-xml-declaration) |
-## Overview of XML SAX Commands
+## Visión general de los comandos XML SAX
See [XML, DOM, and SAX](../theme/XML.md#xml-dom-and-sax) section for a definition of XML SAX.
-### Creating, opening and closing XML documents via SAX
+### Creación, apertura y cierre de documentos XML mediante SAX
The SAX commands work with the standard document references of 4D (**DocRef**, a Time type reference). It is therefore possible to use these commands jointly with the 4D commands used to manage documents, such as [`SEND PACKET`](../../commands/send-packet) or [`Append document`](../../commands/append-document).
-The creation and opening of XML documents by programming is carried out using the [`Create document`](../../commands/create-document) and [`Open document`](../../commands/open-document) commands. Subsequently, the use of an XML command with these documents will cause the automatic activation of XML mechanisms such as encoding. For instance, the `` header will be written automatically in the document.
+The creation and opening of XML documents by programming is carried out using the [`Create document`](../../commands/create-document) and [`Open document`](../../commands/open-document) commands. Posteriormente, el uso de un comando XML con estos documentos provocará la activación automática de mecanismos XML como la codificación. Por ejemplo, la codificación `` el encabezado se escribirá automáticamente en el documento.
:::note
-Documents read by SAX commands must be opened in read-only mode by the [`Open document`](../../commands/open-document) command. This avoids any conflict between 4D and the Xerces library when you open "regular" and XML documents simultaneously. If you execute a SAX parsing command with a document open in read-write mode, an alert message is displayed and parsing is impossible.
+Documents read by SAX commands must be opened in read-only mode by the [`Open document`](../../commands/open-document) command. Esto evita cualquier conflicto entre 4D y la biblioteca Xerces cuando se abren documentos "normales" y XML simultáneamente. If you execute a SAX parsing command with a document open in read-write mode, an alert message is displayed and parsing is impossible.
:::
-Closing an XML document must be carried out using the [`CLOSE DOCUMENT`](../../commands/close-document) command. If any XML elements were open, they will be closed automatically.
+El cierre de un documento XML debe realizarse mediante el comando [`CLOSE DOCUMENT`](../../commands/close-document). If any XML elements were open, they will be closed automatically.
### About end-of-line characters and BOM management
When writing SAX documents, 4D uses the following default settings for end-of-line characters and BOM (byte order mask) usage:
-- CRLF characters on Windows and LF on macOS for end-of-line characters
-- files are written without BOM.
+- Caracteres CRLF en Windows y LF en macOS para los caracteres de fin de línea
+- archivos escritos sin BOM.
:::note Compatibilidad
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/4D Environment/get-database-localization.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/4D Environment/get-database-localization.md
index 16d5e434b40924..63427209247ad6 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/4D Environment/get-database-localization.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/4D Environment/get-database-localization.md
@@ -5,7 +5,7 @@ slug: /commands/get-database-localization
displayed_sidebar: docs
---
-**Get database localization** ( {*tipoLeng* : Integer}{;}{*} ) : Text
+**Get database localization** ( { *tipoLeng* : Integer {; * }}) : Text **Get database localization** ( * ) : Text
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-filter.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-filter.md
index 2222f16c9c6145..fabfb93285cae3 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-filter.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-filter.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-filter
displayed_sidebar: docs
---
-**OBJECT Get filter** ( * ; *objeto* : Text ) : Text **OBJECT Get filter** ( *objeto* : Field, Variable ) : Text
+**OBJECT Get filter** ( * ; *objeto* : Text ) : Text **OBJECT Get filter** ( *objeto* : Variable, Field ) : Text
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-focus-rectangle-invisible.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-focus-rectangle-invisible.md
index 001863b857ba1b..7a31ccd4dc4503 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-focus-rectangle-invisible.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-focus-rectangle-invisible.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-focus-rectangle-invisible
displayed_sidebar: docs
---
-**OBJECT Get focus rectangle invisible** ( * ; *objeto* : Text ) : Boolean **OBJECT Get focus rectangle invisible** ( *objeto* : Field, Variable ) : Boolean
+**OBJECT Get focus rectangle invisible** ( * ; *objeto* : Text ) : Boolean** **OBJECT Get focus rectangle invisible** ( *objeto* : Variable, Field ) : Boolean**
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-font-size.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-font-size.md
index c68ac73d27c8e4..30c344da692b93 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-font-size.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-font-size.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-font-size
displayed_sidebar: docs
---
-**OBJECT Get font size** ( * ; *objeto* : Text ) : Integer **OBJECT Get font size** ( *objeto* : Field, Variable ) : Integer
+**OBJECT Get font size** ( * ; *objeto* : Text ) : Integer **OBJECT Get font size** ( *objeto* : Variable, Field ) : Integer
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-font.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-font.md
index 0c40371a25ea7e..5c05b34a5114f9 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-font.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-font.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-font
displayed_sidebar: docs
---
-**OBJECT Get font** ( * ; *objeto* : Text ) : Text **OBJECT Get font** ( *objeto* : Field, Variable ) : Text
+**OBJECT Get font** ( * ; *objeto* : Text ) : Text **OBJECT Get font** ( *objeto* : Variable, Field ) : Text
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-format.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-format.md
index 653f28d8bcb500..7e581761952558 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-format.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-format.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-format
displayed_sidebar: docs
---
-**OBJECT Get format** ( * ; *objeto* : Text ) : Text **OBJECT Get format** ( *objeto* : Field, Variable ) : Text
+**OBJECT Get format** ( * ; *objeto* : Text ) : Text **OBJECT Get format** ( *objeto* : Variable, Field ) : Text
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-help-tip.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-help-tip.md
index 90d422dbd01d86..ab83468fe9e999 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-help-tip.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-help-tip.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-help-tip
displayed_sidebar: docs
---
-**OBJECT Get help tip** ( * ; *objeto* : Text ) : Text **OBJECT Get help tip** ( *objeto* : Field, Variable ) : Text
+**OBJECT Get help tip** ( * ; *objeto* : Text ) : Text **OBJECT Get help tip** ( *objeto* : Variable, Field ) : Text
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-horizontal-alignment.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-horizontal-alignment.md
index bb7f42b00fe14a..15893de047ff58 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-horizontal-alignment.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-horizontal-alignment.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-horizontal-alignment
displayed_sidebar: docs
---
-**OBJECT Get horizontal alignment** ( * ; *objeto* : Text ) : Integer **OBJECT Get horizontal alignment** ( *objeto* : Field, Variable ) : Integer
+**OBJECT Get horizontal alignment** ( * ; *objeto* : Text ) : Integer **OBJECT Get horizontal alignment** ( *objeto* : Variable, Field ) : Integer
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-indicator-type.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-indicator-type.md
index 03b3256bb1709d..92ffed040d358c 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-indicator-type.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-indicator-type.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-indicator-type
displayed_sidebar: docs
---
-**OBJECT Get indicator type** ( * ; *objeto* : Text ) : Integer **OBJECT Get indicator type** ( *objeto* : Field, Variable ) : Integer
+**OBJECT Get indicator type** ( * ; *objeto* : Text ) : Integer **OBJECT Get indicator type** ( *objeto* : Variable, Field ) : Integer
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-keyboard-layout.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-keyboard-layout.md
index 0ad761af5a47f4..37fd52bb9cf54d 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-keyboard-layout.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-keyboard-layout.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-keyboard-layout
displayed_sidebar: docs
---
-**OBJECT Get keyboard layout** ( * ; *objeto* : Text ) : Text **OBJECT Get keyboard layout** ( *objeto* : Field, Variable ) : Text
+**OBJECT Get keyboard layout** ( * ; *objeto* : Text ) : Text **OBJECT Get keyboard layout** ( *objeto* : Variable, Field ) : Text
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-list-name.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-list-name.md
index b2fc96c230f4bf..4db0b912de656c 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-list-name.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-list-name.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-list-name
displayed_sidebar: docs
---
-**OBJECT Get list name** ( * ; *objeto* : Text {; *tipoLista* : Integer} ) : Text **OBJECT Get list name** ( *objeto* : Field, Variable {; *tipoLista* : Integer} ) : Text
+**OBJECT Get list name** ( * ; *objeto* : Text {; *tipoLista* : Integer} ) : Text **OBJECT Get list name** ( *objeto* : Variable, Field {; *tipoLista* : Integer} ) : Text
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-list-reference.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-list-reference.md
index 162a7efd0310f1..3b0114617d5d9d 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-list-reference.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-list-reference.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-list-reference
displayed_sidebar: docs
---
-**OBJECT Get list reference** ( * ; *objeto* : Text {; *tipoLista* : Integer} ) : Integer **OBJECT Get list reference** ( *objeto* : Field, Variable {; *tipoLista* : Integer} ) : Integer
+**OBJECT Get list reference** ( * ; *objeto* : Text {; *tipoLista* : Integer} ) : Integer **OBJECT Get list reference** ( *objeto* : Variable, Field {; *tipoLista* : Integer} ) : Integer
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-maximum-value.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-maximum-value.md
index a44560ba5cab37..b894b7577daee2 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-maximum-value.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-maximum-value.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-maximum-value
displayed_sidebar: docs
---
-**OBJECT GET MAXIMUM VALUE** ( * ; *objeto* : Text ; *valorMax* : Date, Time, Real ) **OBJECT GET MAXIMUM VALUE** ( *objeto* : Field, Variable ; *valorMax* : Date, Time, Real )
+**OBJECT GET MAXIMUM VALUE** ( * ; *objeto* : Text ; *valorMax* : Date, Time, Real ) **OBJECT GET MAXIMUM VALUE** ( *objeto* : Variable, Field ; *valorMax* : Date, Time, Real )
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-minimum-value.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-minimum-value.md
index e143abedcb607b..9039eb909faf68 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-minimum-value.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-minimum-value.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-minimum-value
displayed_sidebar: docs
---
-**OBJECT GET MINIMUM VALUE** ( * ; *objeto* : Text ; *valorMin* : Date, Time, Real ) **OBJECT GET MINIMUM VALUE** ( *objeto* : Field, Variable ; *valorMin* : Date, Time, Real )
+**OBJECT GET MINIMUM VALUE** ( * ; *objeto* : Text ; *valorMin* : Date, Time, Real ) **OBJECT GET MINIMUM VALUE** ( *objeto* : Variable, Field ; *valorMin* : Date, Time, Real )
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-multiline.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-multiline.md
index a5390cada7e9db..bae451c39e739b 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-multiline.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-multiline.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-multiline
displayed_sidebar: docs
---
-**OBJECT Get multiline** ( * ; *objeto* : Text ) : Integer **OBJECT Get multiline** ( *objeto* : Field, Variable ) : Integer
+**OBJECT Get multiline** ( * ; *objeto* : Text ) : Integer **OBJECT Get multiline** ( *objeto* : Variable, Field ) : Integer
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-placeholder.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-placeholder.md
index 52cbe18eb1e1ac..7142c034a3ea93 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-placeholder.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-placeholder.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-placeholder
displayed_sidebar: docs
---
-**OBJECT Get placeholder** ( * ; *objeto* : Text ) : Text **OBJECT Get placeholder** ( *objeto* : Field, Variable ) : Text
+**OBJECT Get placeholder** ( * ; *objeto* : Text ) : Text **OBJECT Get placeholder** ( *objeto* : Variable, Field ) : Text
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-shortcut.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-shortcut.md
index fe01b78c9157dd..07c8ca1fc8090b 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-shortcut.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-shortcut.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-shortcut
displayed_sidebar: docs
---
-**OBJECT GET SHORTCUT** ( * ; *objeto* : Text ; *tecla* : Text ; *modificadores* : Integer ) **OBJECT GET SHORTCUT** ( *objeto* : Field, Variable ; *tecla* : Text ; *modificadores* : Integer )
+**OBJECT GET SHORTCUT** ( * ; *objeto* : Text ; *tecla* : Text ; *modificadores* : Integer ) **OBJECT GET SHORTCUT** ( *objeto* : Variable, Field ; *tecla* : Text ; *modificadores* : Integer )
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-style-sheet.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-style-sheet.md
index 1c7e4d39800bfe..fbdbf63535eb12 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-style-sheet.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-style-sheet.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-style-sheet
displayed_sidebar: docs
---
-**OBJECT Get style sheet** ( * ; *objeto* : Text ) : Text **OBJECT Get style sheet** ( *objeto* : Field, Variable ) : Text
+**OBJECT Get style sheet** ( * ; *objeto* : Text ) : Text **OBJECT Get style sheet** ( *objeto* : Variable, Field ) : Text
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-subform.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-subform.md
index 2daec7bab9bafc..8dc52b0910fe88 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-subform.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-subform.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-subform
displayed_sidebar: docs
---
-**OBJECT GET SUBFORM** ( * ; *objeto* : Text ; *puntTabla* ; *subFormDet* : Text {; *subFormList* : Text} ) **OBJECT GET SUBFORM** ( *objeto* : Field, Variable ; *puntTabla* ; *subFormDet* : Text {; *subFormList* : Text} )
+**OBJECT GET SUBFORM** ( * ; *objeto* : Text ; *puntTabla* : Table ; *subFormDet* : Text {; *subFormList* : Text} ) **OBJECT GET SUBFORM** ( *objeto* : Variable, Field ; *puntTabla* : Table ; *subFormDet* : Text {; *subFormList* : Text} )
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-text-orientation.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-text-orientation.md
index 84ff4267d83361..0d34fa21a39df6 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-text-orientation.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-text-orientation.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-text-orientation
displayed_sidebar: docs
---
-**OBJECT Get text orientation** ( * ; *objeto* : Text ) : Integer **OBJECT Get text orientation** ( *objeto* : Field, Variable ) : Integer
+**OBJECT Get text orientation** ( * ; *objeto* : Text ) : Integer **OBJECT Get text orientation** ( *objeto* : Variable, Field ) : Integer
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-three-states-checkbox.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-three-states-checkbox.md
index 857f20cf533694..4729ec57ec2b28 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-three-states-checkbox.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-three-states-checkbox.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-three-states-checkbox
displayed_sidebar: docs
---
-**OBJECT Get three states checkbox** ( * ; *objeto* : Text ) : Boolean **OBJECT Get three states checkbox** ( *objeto* : Field, Variable ) : Boolean
+**OBJECT Get three states checkbox** ( * ; *objeto* : Text ) : Boolean **OBJECT Get three states checkbox** ( *objeto* : Variable, Field ) : Boolean
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-title.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-title.md
index 7543c6531399bf..6a5b64e3cfe0a9 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-title.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-title.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-title
displayed_sidebar: docs
---
-**OBJECT Get title** ( * ; *objeto* : Text ) : Text **OBJECT Get title** ( *objeto* : Field, Variable ) : Text
+**OBJECT Get title** ( * ; *objeto* : Text ) : Text **OBJECT Get title** ( *objeto* : Variable, Field ) : Text
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-type.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-type.md
index f668626d0c3a4c..00d80ef7c54a88 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-type.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-type.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-type
displayed_sidebar: docs
---
-**OBJECT Get type** ( * ; *objeto* : Text ) : Integer **OBJECT Get type** ( *objeto* : Field, Variable ) : Integer
+**OBJECT Get type** ( * ; *objeto* : Text ) : Integer **OBJECT Get type** ( *objeto* : Variable, Field ) : Integer
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-vertical-alignment.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-vertical-alignment.md
index 8468df4d84d56a..5e365fa5de2bb6 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-vertical-alignment.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-vertical-alignment.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-vertical-alignment
displayed_sidebar: docs
---
-**OBJECT Get vertical alignment** ( * ; *objeto* : Text ) : Integer **OBJECT Get vertical alignment** ( *objeto* : Field, Variable ) : Integer
+**OBJECT Get vertical alignment** ( * ; *objeto* : Text ) : Integer **OBJECT Get vertical alignment** ( *objeto* : Variable, Field ) : Integer
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-visible.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-visible.md
index 91d0cf8d493263..6d6489f0851090 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-visible.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-get-visible.md
@@ -5,7 +5,7 @@ slug: /commands/object-get-visible
displayed_sidebar: docs
---
-**OBJECT Get visible** ( * ; *objeto* : Text ) : Boolean **OBJECT Get visible** ( *objeto* : Field, Variable ) : Boolean
+**OBJECT Get visible** ( * ; *objeto* : Text ) : Boolean **OBJECT Get visible** ( *objeto* : Variable, Field ) : Boolean
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-is-styled-text.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-is-styled-text.md
index 3fcdfc9a0f9079..ca1ef9ca3c641e 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-is-styled-text.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-is-styled-text.md
@@ -5,7 +5,7 @@ slug: /commands/object-is-styled-text
displayed_sidebar: docs
---
-**OBJECT Is styled text** ( * ; *objeto* : Text ) : Boolean **OBJECT Is styled text** ( *objeto* : Field, Variable ) : Boolean
+**OBJECT Is styled text** ( * ; *objeto* : Text ) : Boolean **OBJECT Is styled text** ( *objeto* : Variable, Field ) : Boolean
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-keyboard-layout.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-keyboard-layout.md
index 7f016af8c965a3..8e4685c096726b 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-keyboard-layout.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-keyboard-layout.md
@@ -5,7 +5,7 @@ slug: /commands/object-set-keyboard-layout
displayed_sidebar: docs
---
-**OBJECT SET KEYBOARD LAYOUT** ( * ; *objeto* : Text ; *codigoLeng* : Text ) **OBJECT SET KEYBOARD LAYOUT** ( *objeto* : Field, Variable ; *codigoLeng* : Text )
+**OBJECT SET KEYBOARD LAYOUT** ( * ; *objeto* : Text ; *codigoLeng* : Text ) **OBJECT SET KEYBOARD LAYOUT** ( *objeto* : Variable, Field ; *codigoLeng* : Text )
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-list-by-name.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-list-by-name.md
index 4541e38c7bc0fc..4557a434eca4f5 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-list-by-name.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-list-by-name.md
@@ -5,7 +5,7 @@ slug: /commands/object-set-list-by-name
displayed_sidebar: docs
---
-**OBJECT SET LIST BY NAME** ( * ; *objeto* : Text {; *listType* : Integer}; *lista* : Text ) **OBJECT SET LIST BY NAME** ( *objeto* : Field, Variable {; *listType* : Integer}; *lista* : Text )
+**OBJECT SET LIST BY NAME** ( * ; *objeto* : Text {; *listType* : Integer}; *lista* : Text ) **OBJECT SET LIST BY NAME** ( *objeto* : Variable, Field {; *listType* : Integer}; *lista* : Text )
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-list-by-reference.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-list-by-reference.md
index 43f975d9384193..37556dd92c23aa 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-list-by-reference.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-list-by-reference.md
@@ -5,7 +5,7 @@ slug: /commands/object-set-list-by-reference
displayed_sidebar: docs
---
-**OBJECT SET LIST BY REFERENCE** ( * ; *objeto* : Text {; *tipoLista* : Integer}; *lista* : Integer ) **OBJECT SET LIST BY REFERENCE** ( *objeto* : Field, Variable {; *tipoLista* : Integer}; *lista* : Integer )
+**OBJECT SET LIST BY REFERENCE** ( * ; *objeto* : Text {; *tipoLista* : Integer}; *lista* : Integer ) **OBJECT SET LIST BY REFERENCE** ( *objeto* : Variable, Field {; *tipoLista* : Integer}; *lista* : Integer )
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-maximum-value.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-maximum-value.md
index 0aa431b210c686..966518e3ece8bc 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-maximum-value.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-maximum-value.md
@@ -5,7 +5,7 @@ slug: /commands/object-set-maximum-value
displayed_sidebar: docs
---
-**OBJECT SET MAXIMUM VALUE** ( * ; *objeto* : Text ; *valorMax* : Date, Time, Real ) **OBJECT SET MAXIMUM VALUE** ( *objeto* : Field, Variable ; *valorMax* : Date, Time, Real )
+**OBJECT SET MAXIMUM VALUE** ( * ; *objeto* : Text ; *valorMax* : Date, Time, Real ) **OBJECT SET MAXIMUM VALUE** ( *objeto* : Variable, Field ; *valorMax* : Date, Time, Real )
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-minimum-value.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-minimum-value.md
index ebffbfc832927a..9a2c7a5e29d2e1 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-minimum-value.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-minimum-value.md
@@ -5,7 +5,7 @@ slug: /commands/object-set-minimum-value
displayed_sidebar: docs
---
-**OBJECT SET MINIMUM VALUE** ( * ; *objeto* : Text ; *valorMinimo* : Date, Time, Real ) **OBJECT SET MINIMUM VALUE** ( *objeto* : Field, Variable ; *valorMinimo* : Date, Time, Real )
+**OBJECT SET MINIMUM VALUE** ( * ; *objeto* : Text ; *valorMinimo* : Date, Time, Real ) **OBJECT SET MINIMUM VALUE** ( *objeto* : Variable, Field ; *valorMinimo* : Date, Time, Real )
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-multiline.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-multiline.md
index 5989c0dc8f53a8..ba692dbf06707c 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-multiline.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-multiline.md
@@ -5,7 +5,7 @@ slug: /commands/object-set-multiline
displayed_sidebar: docs
---
-**OBJECT SET MULTILINE** ( * ; *objeto* : Text ; *multilinea* : Integer ) **OBJECT SET MULTILINE** ( *objeto* : Field, Variable ; *multilinea* : Integer )
+**OBJECT SET MULTILINE** ( * ; *objeto* : Text ; *multilinea* : Integer ) **OBJECT SET MULTILINE** ( *objeto* : Variable, Field ; *multilinea* : Integer )
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-placeholder.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-placeholder.md
index 4b4b43c8c8c46e..cd5fbeb01a90dd 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-placeholder.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Objects (Forms)/object-set-placeholder.md
@@ -5,7 +5,7 @@ slug: /commands/object-set-placeholder
displayed_sidebar: docs
---
-**OBJECT SET PLACEHOLDER** ( * ; *objeto* : Text ; *textoEjemplo* : Text ) **OBJECT SET PLACEHOLDER** ( *objeto* : Field, Variable ; *textoEjemplo* : Text )
+**OBJECT SET PLACEHOLDER** ( * ; *objeto* : Text ; *textoEjemplo* : Text ) **OBJECT SET PLACEHOLDER** ( *objeto* : Variable, Field ; *textoEjemplo* : Text )
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Queries/set-query-and-lock.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Queries/set-query-and-lock.md
index 3546a48a3aab38..c72dc524124879 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Queries/set-query-and-lock.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Queries/set-query-and-lock.md
@@ -31,7 +31,7 @@ displayed_sidebar: docs
Por defecto, los registros encontrados por las búsquedas no están bloqueados. Pase [True](../commands/true) en el parámetro *bloq* para activar el bloqueo.
-Este comando debe imperativamente utilizarse al interior de una transacción. Si se llama fuera de este contexto, se genera un error. Esto permite un mejor control del bloqueo de registros. Los registros encontrados permanecerán bloqueados hasta que la transacción termine (validada o cancelada). Después de que la transacción se completa, todos los registros se desbloquean, excepto el registro actual.
+Este comando debe imperativamente utilizarse al interior de una transacción. Si se llama fuera de este contexto, se ignora. Esto permite un mejor control del bloqueo de registros. Los registros encontrados permanecerán bloqueados hasta que la transacción termine (validada o cancelada). Después de que la transacción se completa, todos los registros se desbloquean, excepto el registro actual.
Los registros están bloqueados para todas las tablas en la transacción actual.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Quick Report/qr-insert-column.md b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Quick Report/qr-insert-column.md
index 96857077ea541f..95eda723685030 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Quick Report/qr-insert-column.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/language-legacy/Quick Report/qr-insert-column.md
@@ -5,7 +5,7 @@ slug: /commands/qr-insert-column
displayed_sidebar: docs
---
-**QR INSERT COLUMN** ( *area* : Integer ; *numColumna* : Integer ; *objeto* : Field, Variable, Pointer )
+**QR INSERT COLUMN** ( *area* : Integer ; *numColumna* : Integer ; *objeto* : Text, Pointer )