diff --git a/docs/Extensions/overview.md b/docs/Extensions/overview.md
index 571a9f4fb283fc..59eb1017d7e54d 100644
--- a/docs/Extensions/overview.md
+++ b/docs/Extensions/overview.md
@@ -63,3 +63,31 @@ A subset of these components is listed by default in the [Dependency Manager](..
+- [**System workers**](../API/SystemWorkerClass.md) allow the 4D code to call any external process (a shell command, PHP, any script, etc.) and monitor its execution.
+- [**SQL commands**](../commands/theme/SQL) allow you to connect and use various SQL data sources.
+- The [**built-in HTTP client**](../API/HTTPRequestClass.md) can request any HTTP server and process data.
+- [**Web Areas**](../FormObjects/webArea_overview.md) can give access to web pages or various HTML contents within your forms.
+- [**Components**](Concepts/components.md). Components are made of 4D code. 4D proposes a set of utility components (see below) that you can install and use depending on your needs. You can also [develop your own 4D components](develop-components.md), or use third-party components. Many developers from the 4D community have shared 4D components (browse Github to have a list of public 4D components gathered with the [`4d-component`](https://github.com/topics/4d-component) topic).
+- [**Plug-ins**](../Concepts/plug-ins.md). Plug-ins can be built using any language. Plugins do things that 4D does not natively (e.g., specific platform technology), or would be very hard to write just using 4D. As described in [this page](develop-plug-ins.md), you can develop your own plug-ins. A lot of functionnalities are covered by the existing 4D plug-ins. Browse Github to have a list of public 4D plugins gathered with the [`4d-plugin`](https://github.com/topics/4d-plugin) topic.
+
+
+## Components developed by 4D
+
+4D proposes various components to the 4D community, covering many development needs. All 4D components can be found on the [**4D github repository**](https://github.com/4d).
+
+A subset of these components is listed by default in the [Dependency Manager](../Project/components.md), including:
+
+|Component|Github repository|Description|Main Features|
+|---|---|---|---|
+|4D AIKit|https://github.com/4d/4D-AIKit|Set of classes to connect to third-party OpenAI APIs|`OpenAIChat`, `OpenAIImage`...|
+|4D NetKit|https://github.com/4d/4D-NetKit|Set of web service tools to connect to third-party APIs|`OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` |
+|4D Progress|https://github.com/4d/4D-Progress|Open one or more progress bars in the same window|`Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... |
+|4D QPDF|https://github.com/4d/4D-QPDF|Extract attachments from PDF/A-3 files|`PDF Get attachments` |
+|4D SVG|https://github.com/4d/4D-SVG|Create and manipulate common svg graphic objects|`SVGTool_Display_viewer`, multiple `SVG_` methods |
+|4D ViewPro|https://github.com/4d/4d-view-pro|Spreadsheet features in your forms|See [4D View Pro documentation](ViewPro/getting-started.md)|
+|4D Widgets|https://github.com/4d/4D-Widgets|Manage DatePicker, TimePicker, SearchPicker 4D widgets|`DatePicker calendar`, `DateEntry area`, `TimeEntry`, `SearchPicker SET HELP TEXT`, ...|
+|4D WritePro Interface|https://github.com/4d/4D-WritePro-Interface|Manage 4D Write Pro palettes and [table wizard](../WritePro/writeprointerface.md)|`WP PictureSettings`, `WP ShowTabPages`, `WP SwitchToolbar`, `WP UpdateWidget`|
+|Build4D|https://github.com/4d-depot/Build4D|Compile, build, and sign projects|CI/CD |
+
+
+
diff --git a/docs/Notes/updates.md b/docs/Notes/updates.md
index 5f2fec8b24f0d2..7cd547cb970c44 100644
--- a/docs/Notes/updates.md
+++ b/docs/Notes/updates.md
@@ -33,6 +33,35 @@ Read [**What’s new in 4D 21**](https://blog.4d.com/en-whats-new-in-4d-21/), th
[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program.
+#### Behavior changes
+
+:::caution Index rebuild
+
+4D 21 includes an ICU library update ([see below](#library-table)) which will force an automatic rebuild of indexes of type alpha, text, and object. Depending on the size of the data file, this operation can take a while and may require to be planned.
+
+:::
+
+- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe.
+- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore.
+- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md).
+- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms.
+- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
+
+ - **Import**: import automatically 4D components as dependencies to the project
+ - **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
+ - **Ask later**: do not import components and display the dialog at the next project opening.
+
+:::note
+
+In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components).
+
+:::
+
+#### Developer Preview
+
+[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program.
+
+
#### Behavior changes
:::caution Index rebuild
diff --git a/docs/commands/listbox-get-property.md b/docs/commands/listbox-get-property.md
index 24aeb53df73b84..e2308630b33bcc 100644
--- a/docs/commands/listbox-get-property.md
+++ b/docs/commands/listbox-get-property.md
@@ -1,6 +1,7 @@
---
id: listbox-get-property
title: LISTBOX Get property
+displayed_sidebar: docs
---
**LISTBOX Get property** ( {* ;} *object* ; *property* ) : any
diff --git a/docs/commands/listbox-set-property.md b/docs/commands/listbox-set-property.md
index 9c9b3ccb6d0469..23495c76e98ae1 100644
--- a/docs/commands/listbox-set-property.md
+++ b/docs/commands/listbox-set-property.md
@@ -1,6 +1,7 @@
---
id: listbox-set-property
title: LISTBOX SET PROPERTY
+displayed_sidebar: docs
---
**LISTBOX SET PROPERTY** ( {* ;} *object* ; *property* ; *value* )
diff --git a/docs/commands/object-get-data-source-formula.md b/docs/commands/object-get-data-source-formula.md
index c04fd26513c813..aaab2ad8db3db6 100644
--- a/docs/commands/object-get-data-source-formula.md
+++ b/docs/commands/object-get-data-source-formula.md
@@ -1,6 +1,7 @@
---
id: object-get-data-source-formula
title: OBJECT Get data source formula
+displayed_sidebar: docs
---
**OBJECT Get data source formula** ( {* ;} *object* ) : 4D.Formula
diff --git a/docs/commands/object-set-data-source-formula.md b/docs/commands/object-set-data-source-formula.md
index 14a659868574fe..3ae6d7d701fd1d 100644
--- a/docs/commands/object-set-data-source-formula.md
+++ b/docs/commands/object-set-data-source-formula.md
@@ -1,6 +1,7 @@
---
id: object-set-data-source-formula
title: OBJECT SET DATA SOURCE FORMULA
+displayed_sidebar: docs
---
**OBJECT SET DATA SOURCE FORMULA** ( {* ;} *object* ; *formula* )
diff --git a/docs/commands/wa-get-context.md b/docs/commands/wa-get-context.md
index da18b2aa6092d9..1998b8acedbf08 100644
--- a/docs/commands/wa-get-context.md
+++ b/docs/commands/wa-get-context.md
@@ -1,6 +1,7 @@
---
id: wa-get-context
title: WA Get context
+displayed_sidebar: docs
---
**WA Get context** ( {* ;} *object* ) -> *contextObj*
diff --git a/docs/commands/wa-set-context.md b/docs/commands/wa-set-context.md
index 2c1c06365b9960..66698e7943a227 100644
--- a/docs/commands/wa-set-context.md
+++ b/docs/commands/wa-set-context.md
@@ -1,6 +1,7 @@
---
id: wa-set-context
title: WA SET CONTEXT
+displayed_sidebar: docs
---
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md
index 46c729eb7bc391..135a8e17ea34f1 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Extensions/develop-components.md
@@ -311,6 +311,8 @@ An [error-handling method](Concepts/error-handling.md) installed by the [`ON ERR
However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents.
+However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents.
+
## Acceso a las tablas del proyecto local
Aunque los componentes no pueden utilizar tablas, los punteros pueden permitir que los proyectos locales y los componentes se comuniquen entre sí. Por ejemplo, este es un método que podría ser llamado desde un componente:
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 dc1ab8c8306146..9686a568d2fa96 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md
@@ -68,6 +68,7 @@ In binary databases, you need to select the required components in the 4D instal
- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe.
- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore.
- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md).
+- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms.
#### Cambios de comportamiento
@@ -112,6 +113,34 @@ In binary databases, you need to select the required components in the 4D instal
:::
+#### Vista previa para desarrolladores
+
+[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program.
+
+#### Cambios de comportamiento
+
+:::caution Index rebuild
+
+4D 21 includes an ICU library update ([see below](#library-table)) which will force an automatic rebuild of indexes of type alpha, text, and object. Dependiendo del tamaño del archivo de datos, esta operación puede llevar un tiempo y puede ser necesario planificarla.
+
+:::
+
+- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe.
+- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. Ya no se realiza ningún tratamiento específico en estas URL.
+- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md).
+- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms.
+- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
+ 
+ \- **Import**: import automatically 4D components as dependencies to the project
+ \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
+ \- **Ask later**: do not import components and display the dialog at the next project opening.
+
+:::note
+
+In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components).
+
+:::
+
## 4D 20 R10
Lea las [**Novedades en 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R10/), la entrada del blog que muestra todas las nuevas funcionalidades y mejoras en 4D 20 R10.
diff --git a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md
index c9d5d0ca9004d2..75fe6758145f1f 100644
--- a/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md
+++ b/i18n/es/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md
@@ -39,6 +39,17 @@ Use these callback properties for more granular control over success and error h
See [documentation about asynchronous code for examples](../asynchronous-call.md)
+Use these callback properties for more granular control over success and error handling:
+
+| Propiedad | Tipo | Descripción |
+| ------------ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| `onResponse` | 4D.Function | A function to be called asynchronously when the request finishes **successfully**. Asegúrese de que el proceso actual no termina. |
+| `onError` | 4D.Function | A function to be called asynchronously when the request finishes **with errors**. Asegúrese de que el proceso actual no termina. |
+
+> 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)
+
### Propiedades de la red
| Propiedad | Tipo | Descripción |
diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md
index 339e2a87bf7198..078e094ae695ac 100644
--- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md
+++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md
@@ -11,7 +11,7 @@ title: Extensiones
| Componente | Descripción | Principales funcionalidades |
| ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
-| [4D AiIKit](https://github.com/4d/4D-AIKit) | Conjunto de clases a conectar con las APIs OpenAI de terceros | `OpenAIChat`, `OpenAIImage`... |
+| [4D AIKit](https://github.com/4d/4D-AIKit) | Conjunto de clases a conectar con las APIs OpenAI de terceros | `OpenAIChat`, `OpenAIImage`... |
| [4D Labels](https://github.com/4d/4D-Labels) | Componente interno necesario para la creación de plantillas de etiquetas | |
| [4D NetKit](https://developer.4d.com/4D-NetKit) | Conjunto de herramientas de servicios web para conectarse a APIs de terceros | `OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` |
| [4D Progress](https://github.com/4d/4D-Progress) | Abrir una o varias barras de progreso en la misma ventana | `Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... |
diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/database.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/database.md
index 8c18e521f0ab9c..273169e5c379b3 100644
--- a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/database.md
+++ b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/database.md
@@ -45,9 +45,9 @@ La ubicación actual de esta carpeta se muestra en el área "Actual:". Puede hac
Se ofrecen tres opciones de ubicación:
-- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único.
-- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos.
-- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida.
+ - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Puede averiguar la ubicación actual definida por su sistema utilizando el comando [`Temporary folder`](../commands-legacy/temporary-folder.md) 4D. Los archivos se colocan en una subcarpeta cuyo nombre está formado por el nombre de la base y un identificador único.
+ - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos.
+ - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Si se modifica la opción de ubicación, será necesario reiniciar la base para que se tenga en cuenta la nueva opción. 4D verifica si se puede acceder a la carpeta seleccionada mediante escritura. Si no es así, la aplicación prueba otras opciones hasta encontrar una carpeta válida.
> Esta opción se almacena en las "propiedades adicionales" de la estructura, accesibles durante la exportación XML de la definición de estructura (ver [Exportar e importar las definiciones de estructura](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)).
@@ -66,19 +66,19 @@ Se ofrecen tres opciones de ubicación:
- Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto.
- Por razones de seguridad, sólo el Administrador o Diseñador de la base de datos puede modificar este parámetro.
-- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema.
+ - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. La elección de un idioma de comparación afecta a la ordenación y la búsqueda de textos, así como al cambio entre minúsculas y mayúsculas, pero no afecta a la traducción de etiquetas ni a los formatos de fecha, hora o moneda, que permanecen en el idioma del sistema. Por defecto, 4D utiliza el lenguaje del sistema.
Así, un proyecto 4D puede funcionar en un lenguaje distinto del del sistema. Cuando se abre un proyecto, el motor de 4D detecta el lenguaje utilizado por el archivo de datos y lo pasa al lenguaje (modo intérpretado o compilado). Las comparaciones de texto, independientemente de si las efectúa el motor del proyecto o el lenguaje, se hacen en el mismo idioma.
> Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). En este caso, la configuración se aplica a todas las nuevas bases creadas por 4D.
-- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas.
+ - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por defecto, cuando esta opción no está marcada, 4D utiliza un sofisticado algoritmo que tiene en cuenta las características lingüísticas.
Este algoritmo es similar al que utilizan los programas de tratamiento de textos para determinar los límites al seleccionar una palabra sobre la que se hace doble clic. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`.
Cuando esta opción está marcada, 4D utiliza un algoritmo simplificado. En esta configuración, todo caracter no alfanumérico (es decir, que no sea una letra o un número) se considera un separador de palabras claves. Esta configuración cumple requisitos específicos asociados a determinados idiomas, como el japonés.
-- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado.
+ - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica la interpretación de caracteres como la "Marca sonora prolongada Katakana-Hiragana" o "長音記号" o las "Marcas de iteración japonesa" como "ゝ" o "ゞ". Es probable que un hablante típico de japonés prefiera los resultados cuando el ajuste está activado.
#### Soporte de Mecab (versión japonesa)
@@ -96,7 +96,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la
### Parámetros de la caché para la base
-- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D.
+ - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Esto permite configurar una memoria caché de alto rendimiento adaptada a la mayoría de las configuraciones. A continuación, el tamaño de la memoria caché se calcula dinámicamente en función de los parámetros definidos. Los valores ofrecidos por defecto corresponden al uso estándar de 4D.
- **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Este valor aumenta para la optimización cuando otras aplicaciones se ejecutan en la misma máquina que 4D.
- **Porcentaje de memoria disponible utilizada para la caché**: porcentaje de la memoria restante asignada por defecto a la caché.\
@@ -112,7 +112,7 @@ Utilice los parámetros de esta pestaña para configurar la memoria caché de la

-- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios).
+ - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. 4D muestra entonces un área de entrada que permite configurar la memoria caché a utilizar, así como información relacionada con la memoria física (RAM disponible en la máquina), la caché actual y la caché tras el reinicio (teniendo en cuenta sus cambios).
El tamaño de la memoria caché que introduzca se reservará para la base 4D, independientemente del estado de los recursos de la máquina. Esta configuración puede utilizarse en determinadas configuraciones específicas, o cuando la base está diseñada para utilizarse en sistemas disímiles en cuanto a memoria. En la mayoría de los casos, la caché adaptativa ofrece un mejor rendimiento.
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md
index 6c7affc1cb271a..d4ddf2ba2600a6 100644
--- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md
+++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md
@@ -29,6 +29,14 @@ Les objets session sont retournés par la commande [`Session`](../commands/sessi
:::
+:::tip Related blog posts
+
+- [Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/)
+- [Permissions : Inspecter les privilèges de la session pour faciliter le débogage](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/)
+- [Générer, partager et utiliser des passcodes à usage unique (OTP) pour les sessions web](https://blog.4d.com/connect-your-web-apps-to-third-party-systems/)
+
+:::
+
### Types de sessions
Les types de sessions suivants sont pris en charge par cette classe :
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/fr/docusaurus-plugin-content-docs/current/Extensions/develop-components.md
index d6d4c01544bf99..02c37f21e8edfc 100644
--- a/i18n/fr/docusaurus-plugin-content-docs/current/Extensions/develop-components.md
+++ b/i18n/fr/docusaurus-plugin-content-docs/current/Extensions/develop-components.md
@@ -312,6 +312,8 @@ An [error-handling method](Concepts/error-handling.md) installed by the [`ON ERR
However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents.
+However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents.
+
## Accès aux tables du projet hôte
Bien que les composants ne puissent pas utiliser de tables, les pointeurs permettent au projet hôte et au composant de communiquer. Par exemple, voici une méthode pouvant être appelée depuis un composant :
diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md
index 510a064817d214..d03863aca1bbca 100644
--- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md
+++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md
@@ -80,6 +80,7 @@ In binary databases, you need to select the required components in the 4D instal
- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe.
- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore.
- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md).
+- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms.
#### Changements de comportement
@@ -99,6 +100,34 @@ In binary databases, you need to select the required components in the 4D instal
- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore.
- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md).
+#### Developer Preview
+
+[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program.
+
+#### Changements de comportement
+
+:::caution Index rebuild
+
+4D 21 includes an ICU library update ([see below](#library-table)) which will force an automatic rebuild of indexes of type alpha, text, and object. En fonction de la taille du fichier de données, cette opération peut prendre un certain temps et nécessiter une planification.
+
+:::
+
+- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe.
+- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore.
+- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md).
+- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms.
+- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
+ 
+ \- **Import**: import automatically 4D components as dependencies to the project
+ \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
+ \- **Ask later**: do not import components and display the dialog at the next project opening.
+
+:::note
+
+In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components).
+
+:::
+
## 4D 20 R10
Lisez [**Les nouveautés de 4D 20 R10**](https://blog.4d.com/fe-whats-new-in-4d-20-R10/), l'article de blog qui liste toutes les nouvelles fonctionnalités et améliorations de 4D 20 R10.
diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md
index e647f0a934cee6..57ba23b9438eab 100644
--- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md
+++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md
@@ -11,7 +11,7 @@ title: Extensions
| Composant | Description | Principales fonctionnalités |
| --------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
-| [4D AiIKit](https://github.com/4d/4D-AIKit) | Set of classes to connect to third-party OpenAI APIs | `OpenAIChat`, `OpenAIImage`... |
+| [4D AIKit](https://github.com/4d/4D-AIKit) | Set of classes to connect to third-party OpenAI APIs | `OpenAIChat`, `OpenAIImage`... |
| [4D Labels](https://github.com/4d/4D-Labels) | Composant interne requis pour la création de modèles de labels | |
| [4D NetKit](https://developer.4d.com/4D-NetKit) | Set of web service tools to connect to third-party APIs | `OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` |
| [4D Progress](https://github.com/4d/4D-Progress) | Ouverture d'une ou plusieurs barres de progression dans la même fenêtre | `Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... |
diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SessionClass.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SessionClass.md
index cfaa5f03d0ee95..778c8ea97c17d9 100644
--- a/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SessionClass.md
+++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/API/SessionClass.md
@@ -31,6 +31,16 @@ Articles de blog sur cette fonctionnalité :
:::
+:::info Pour en savoir plus
+
+Articles de blog sur cette fonctionnalité :
+
+- [Sessions évolutives pour applications web avancées](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/)
+- [Permissions : Inspecter les privilèges de la session pour faciliter le débogage](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/)
+- [Générer, partager et utiliser des passcodes à usage unique (OTP) pour les sessions web](https://blog.4d.com/connect-your-web-apps-to-third-party-systems/)
+
+:::
+
### Types de sessions
Les types de sessions suivants sont pris en charge par cette classe :
diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-table-append-row.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-table-append-row.md
index 52ff6052532ecc..ea6fe9b81ad53c 100644
--- a/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-table-append-row.md
+++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-table-append-row.md
@@ -19,17 +19,17 @@ displayed_sidebar: docs
## Description
-The **WP Table append row** command appends one row to the *tableRef* table, fills it with *value*(s) or a *valueColl* collection, and returns the corresponding row range object.
+El comando **WP Table append row** añade una fila a la tabla *tableRef*, la llena con *value*(s) o una colección *valueColl*, y devuelve el objeto de rango de filas correspondiente.
The command supports two syntaxes:
-- **Using values as parameters:**
- Adds as many cells in the row as there are values provided in the *value* parameter(s). You can pass any number of values of different types.
+- **Usando valores como parámetros:**
+ Añade tantas celdas en la fila como valores proporcionados en el parámetro o parámetros *value*. Puede pasar cualquier número de valores de diferentes tipos.
-- **Using a collection of values (*valueColl)*:**
- Fills the row with values from the *valueColl* collection. Each element of the collection corresponds to a cell in the row.
+- **Usando una colección de valores (*valueColl)*:**
+ Llena la fila con valores de la colección *valueColl*. Cada elemento de la colección corresponde a una célula en la fila.
- The following value types are supported in both syntaxes: Text, Number, Time, Date, Picture and Object (formulas or named formulas returning a row element).
+ En ambas sintaxis se admiten los siguientes tipos de valores: Texto, Número, Hora, Fecha, Imagen y Objeto (fórmulas o fórmulas con nombre que devuelven un elemento de fila).
The default cell alignment will depend on the value type:
@@ -44,7 +44,7 @@ The default cell alignment will depend on the value type:
:::
-The command returns the new row as a row range object.
+El comando devuelve la nueva fila como un objeto de rango de filas.
## Exemple 1
@@ -106,7 +106,7 @@ Dans une application de facturation, vous souhaitez créer un tableau automatiqu
//formater le tableau
$range:=WP Table get columns($wpTable;1;5)
- WP SET ATTRIBUTES($range;wk width;"80pt")
+ WP SET ATTRIBUTES($range;wk width; "80pt")
WP SET ATTRIBUTES($wpTable;wk font size;10)
```
diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md
index 1ff53c83e7947d..d2962e06c5d5ac 100644
--- a/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md
+++ b/i18n/ja/docusaurus-plugin-content-docs/current/Extensions/develop-components.md
@@ -312,6 +312,8 @@ component_method($input_t)
しかしながら、[ホストアプリケーションにコンポーネントエラーハンドラーを実装する](../Concepts/error-handling.md#scope-and-components) ことで、コンポーネントでキャッチされなかったエラーを管理することができます。
+しかしながら、[ホストアプリケーションにコンポーネントエラーハンドラーを実装する](../Concepts/error-handling.md#scope-and-components) ことで、コンポーネントでキャッチされなかったエラーを管理することができます。
+
## ホストプロジェクトのテーブルへのアクセス
コンポーネントでテーブルを使用することはできませんが、ホストプロジェクトとコンポーネントはポインターを使用して通信をおこなうことができます。 たとえば、以下はコンポーネントで実行可能なメソッドです:
diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md
index 294b4e7c8f1b94..8eb57acba88247 100644
--- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md
+++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md
@@ -81,6 +81,7 @@ In binary databases, you need to select the required components in the 4D instal
- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe.
- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore.
- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md).
+- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms.
#### 動作の変更
@@ -100,6 +101,34 @@ In binary databases, you need to select the required components in the 4D instal
- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore.
- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md).
+#### デベロッパー・プレビュー
+
+[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program.
+
+#### 動作の変更
+
+:::caution Index rebuild
+
+4D 21 includes an ICU library update ([see below](#library-table)) which will force an automatic rebuild of indexes of type alpha, text, and object. データファイルのサイズに応じて、この処理には時間がかかることがあるため、計画的なアップグレードが推奨されます。
+
+:::
+
+- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe.
+- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore.
+- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md).
+- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms.
+- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
+ 
+ \- **Import**: import automatically 4D components as dependencies to the project
+ \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
+ \- **Ask later**: do not import components and display the dialog at the next project opening.
+
+:::note
+
+In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components).
+
+:::
+
## 4D 20 R10
[**4D 20 R10の新機能**](https://blog.4d.com/en-whats-new-in-4d-20-R10/) 4D 20 R10 の新機能と拡張機能をすべてリストアップしたブログ記事です。
diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md
index d28ab2a8e56bbc..213accb6202f6d 100644
--- a/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md
+++ b/i18n/ja/docusaurus-plugin-content-docs/current/aikit/Classes/OpenAIParameters.md
@@ -39,6 +39,17 @@ title: OpenAIParameters
詳細な情報については [非同期コードに関するドキュメンテーション](../asynchronous-call.md) を参照してください。
+成功とエラー処理をより細やかに管理するためにはこれらのコールバックプロパティを使用します:
+
+| プロパティ | 型 | 説明 |
+| ------------ | --------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
+| `onResponse` | 4D.Function | A function to be called asynchronously when the request finishes **successfully**. カレントプロセスが終了しないように注意してください。 |
+| `onError` | 4D.Function | リクエストが**エラーで**終了した場合に非同期で呼び出される関数。 カレントプロセスが終了しないように注意してください。 |
+
+> これらのコールバック関数は、同期コード内での関数によって返される結果のオブジェクト型([OpenAIResult](./OpenAIResult.md) 子クラスのうちのいずれか)と同じものを受け取ります。
+
+詳細な情報については [非同期コードに関するドキュメンテーション](../asynchronous-call.md) を参照してください。
+
### ネットワークプロパティ
| プロパティ | 型 | 説明 |
diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md
index f25e91d10fa065..38698387ccdbc8 100644
--- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md
+++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md
@@ -11,7 +11,7 @@ title: 拡張機能
| コンポーネント | 説明 | 主な機能 |
| -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
-| [4D AiIKit](https://github.com/4d/4D-AIKit) | サードパーティのOpenAI API に接続するためのクラス群 | `OpenAIChat`, `OpenAIImage`... |
+| [4D AIKit](https://github.com/4d/4D-AIKit) | サードパーティのOpenAI API に接続するためのクラス群 | `OpenAIChat`, `OpenAIImage`... |
| [4D Labels](https://github.com/4d/4D-Labels) | ラベルテンプレートを作成するための内部コンポーネント | |
| [4D NetKit](https://developer.4d.com/4D-NetKit) | サードパーティAPI に接続するためのWeb サービスツール群 | `OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` |
| [4D Progress](https://github.com/4d/4D-Progress) | 1つ以上の進捗バーを同じウィンドウで開く | `Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... |
diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-components.md b/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-components.md
index 98375cbb7fa61d..bc14f3593f8b35 100644
--- a/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-components.md
+++ b/i18n/pt/docusaurus-plugin-content-docs/current/Extensions/develop-components.md
@@ -312,6 +312,8 @@ An [error-handling method](Concepts/error-handling.md) installed by the [`ON ERR
However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents.
+However, you can install a [component error handler in the host application](../Concepts/error-handling.md#scope-and-components) to manage uncaught errors from compponents.
+
## Acesso às tabelas do projeto local
Apesar de os componentes não poderem usar tabelas, ponteiros podem permitir que projetos locais e componentes se comuniquem entre si. Por exemplo, aqui está um método que pode ser chamado a partir de um componente:
diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md
index c5251fb5c9a5c9..061b439bb87a8b 100644
--- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md
+++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md
@@ -80,6 +80,7 @@ In binary databases, you need to select the required components in the 4D instal
- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe.
- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore.
- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md).
+- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms.
#### Mudanças de comportamento
@@ -99,6 +100,34 @@ In binary databases, you need to select the required components in the 4D instal
- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore.
- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md).
+#### Prévia do desenvolvedor
+
+[**Fluent UI** rendering for 4D forms](../FormEditor/forms.md#fluent-ui-rendering-developer-preview) is proposed in Developer Preview during the beta test program.
+
+#### Mudanças de comportamento
+
+:::caution Index rebuild
+
+4D 21 includes an ICU library update ([see below](#library-table)) which will force an automatic rebuild of indexes of type alpha, text, and object. Dependendo do tamanho do ficheiro de dados, esta operação pode demorar algum tempo e pode necessitar de ser planeada.
+
+:::
+
+- Web services (SOAP): when [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled, web services now run in [**preemptive processes**](../Develop/preemptive.md) in compiled mode. Make sure your SOAP code is thread-safe.
+- Web server: the support of deprecated `4DSYNC/` and `4DCGI/` URLs is removed. No specific processing is done on these URLs anymore.
+- Web user sessions are now returned by [`Process activity`](../commands/process-activity.md).
+- The [`HIGHLIGHT TEXT`](../commands/highlight-text) command is now supported in the context of subforms.
+- **Components no longer embedded**: starting with 4D 21, components developed by 4D (4D NetKit, 4D SVG..., see [this list](../Extensions/overview-old.md)) are no longer embedded in the 4D application. When upgrading a project to 4D 21 or higher, a dialog box is displayed:
+ 
+ \- **Import**: import automatically 4D components as dependencies to the project
+ \- **Ignore**: do not import components and let you [manage components manually](../Project/components.md)
+ \- **Ask later**: do not import components and display the dialog at the next project opening.
+
+:::note
+
+In binary databases, you need to select the required components in the 4D installer or download them from the [4D Product Download portal](https://product-download.4d.com/?type=components).
+
+:::
+
## 4D 20 R10
Leia [**O que há de novo no 4D 20 R10**](https://blog.4d.com/en-whats-new-in-4d-20-R10/), o post do blog que lista todos os novos recursos e aprimoramentos em 4D 20 R10.
diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-collection.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-collection.md
index f044c5be71860c..62e06ed6627541 100644
--- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-collection.md
+++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/new-collection.md
@@ -1,6 +1,6 @@
---
id: new-collection
-title: Nova coleção
+title: New collection
displayed_sidebar: docs
---
diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md
index e7824e0777aecb..78cbb0534fe09f 100644
--- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md
+++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Extensions/_overview-old.md
@@ -11,7 +11,7 @@ A [arquitetura dos projetos](../Project/architecture.md) 4D é modular. Você po
| Componente | Descrição | Principais funcionalidades |
| -------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
-| [4D AiIKit](https://github.com/4d/4D-AIKit) | Set of classes to connect to third-party OpenAI APIs | `OpenAIChat`, `OpenAIImage`... |
+| [4D AIKit](https://github.com/4d/4D-AIKit) | Set of classes to connect to third-party OpenAI APIs | `OpenAIChat`, `OpenAIImage`... |
| [4D Labels](https://github.com/4d/4D-Labels) | Componente interna necessária para construir modelos de etiquetas | |
| [4D NetKit](https://developer.4d.com/4D-NetKit) | Set of web service tools to connect to third-party APIs | `OAuth2Provider` class, `New OAuth2 provider`, `OAuth2ProviderObject.getToken()` |
| [4D Progress](https://github.com/4d/4D-Progress) | Abrir uma ou mais barras de progresso na mesma janela | `Progress New`, `Progress SET ON STOP METHOD`, `Progress SET PROGRESS`, ... |
diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md
index bf002467fd69a2..e354ed2b8d60a8 100644
--- a/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md
+++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/WritePro/commands/wp-set-attributes.md
@@ -114,13 +114,13 @@ O resultado é:
:::note
-The paper box value is only applicable to documents and sections.
+El valor paper box sólo es aplicable a documentos y secciones.
:::
## Exemplo
-You want to set tabs at varying intervals and designate a character as the leading character for the last tab:
+Desea definir tabulaciones a intervalos variables y designar un caracter como caracter principal de la última tabulación:
```4d
$tab1:=New object()
diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/database.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/database.md
index a8de63c5c093d0..e14ad720abe5ce 100644
--- a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/database.md
+++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/database.md
@@ -45,9 +45,9 @@ A localização atual desta pasta é exibida na área "Atual:". Você pode clica
São oferecidos três opções de localização:
-- **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo.
-- **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos.
-- **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada.
+ - **Sistema**: cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta situada en la ubicación especificada por Windows y/o macOS. Você pode descobrir o local atual definido pelo seu sistema usando o comando 4D [`Temporary folder`](../commands-legacy/temporary-folder.md). Os arquivos são colocados em uma subpasta cujo nome consiste no nome do banco de dados e em um identificador exclusivo.
+ - **Carpeta de archivos de datos** (opción por defecto): cuando se selecciona esta opción, los archivos temporales 4D se crean en una carpeta llamada "archivos temporales" situada en el mismo nivel que el archivo de datos de la base de datos.
+ - **Definido por el usuario**: esta opción se utiliza para definir una ubicación personalizada. Se a opção local for modificada, será necessário reiniciar a base de dados para que a nova opção seja tida em conta. 4D verifica se a pasta selecionada pode ser acessada por gravação. Se não for esse o caso, o aplicativo tenta outras opções até que uma pasta válida seja encontrada.
> This option is stored in the "extra properties" of the structure that is available when the structure definition is exported in XML (see [Exporting and importing structure definitions](https://doc.4d.com/4Dv20/4D/20.2/Exporting-and-importing-structure-definitions.300-6750295.en.html)).
@@ -66,19 +66,19 @@ São oferecidos três opções de localização:
- Esta opción también puede influir en el comportamiento de los comandos del tema [Objetos (Formularios)](../commands/theme/Objects_Forms.md) que aceptan el caracter comodín ("@") en el parámetro objeto.
- Por razões de segurança, apenas o Administrador ou Designer da base de dados podem modificar este parâmetro.
-- **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema.
+ - **Lenguaje del archivo de datos actual:** permite configurar el lenguaje utilizado para el procesamiento y la comparación de cadenas de caracteres. A escolha do idioma influencia diretamente a classificação e a pesquisa de texto, bem como as letras maiúsculas e minúsculas, mas não afeta a tradução de textos nem os formatos de data, hora ou moeda, que permanecem no idioma do sistema. Por padrão, 4D usa a linguagem do sistema.
Um projeto 4D pode, portanto, operar em uma linguagem diferente da do sistema. Quando um projeto for aberto, o mecanismo 4D detecta o idioma usado pelo arquivo de dados e o fornece ao idioma (modo interpretador ou compilado). As comparações de texto, independentemente de serem realizadas pelo mecanismo de projeto ou pelo idioma, são feitas no mesmo idioma.
> Puede modificar esta configuración en las Preferencias de la aplicación (ver [Página general](../Preferences/general.md)). Neste caso, a configuração aplica-se a todas as novas bases de dados criadas pela 4D.
-- **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas.
+ - **Considerar sólo caracteres no alfanuméricos para las palabras claves**: modifica el algoritmo utilizado por 4D para identificar los separadores de palabras claves y crear así sus índices. Por padrão, quando esta opção não é verificada, a 4D usa um algoritmo sofisticado que leva em conta as características linguísticas.
Este algoritmo é semelhante ao usado pelo software de processamento de palavras para determinar os limites ao selecionar uma palavra que é clicada duplo. Para más información sobre este algoritmo, consulte la siguiente dirección: `http://userguide.icu-project.org/boundaryanalysis`.
Quando esta opção está selecionada, 4D utiliza um algoritmo simplificado. Nessa configuração, qualquer caractere não alfanumérico (ou seja, que não seja uma letra ou um número) é considerado um separador de palavras-chave. Essa configuração atende a requisitos específicos associados a determinados idiomas, como o japonês.
-- **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada.
+ - **Orden de clasificación apropiado para la búsqueda**: esta opción sólo aparece cuando se selecciona el idioma japonés. Modifica a interpretação de caracteres como a "Marca de som prolongado Katakana-Hiragana" ou "長音記号" ou as "Marcas de iteração japonesas" como "ゝ" ou "ゞ". Um falante típico de japonês provavelmente preferirá os resultados com a configuração ativada.
#### Compatibilidade do MeCab (versão japonesa)
@@ -96,7 +96,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para
### Parâmetros da cache do banco de dados
-- **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D.
+ - **Cálculo de la caché adaptable**: cuando esta opción está marcada, la gestión de la memoria caché es realizada dinámicamente por el sistema, respetando los límites que defina. Isto permite a configuração de um cache de memória de alto desempenho adaptado à maioria das configurações. O tamanho do cache de memória é então calculado dinamicamente dependendo dos parâmetros definidos. Os valores oferecidos por defeito correspondem à utilização normal de 4D.
- **Memoria a reservar para el sistema y las otras aplicaciones**: parte de la memoria RAM a reservar para el Sistema y las otras aplicaciones. Esse valor é aumentado para otimização quando outros aplicativos são executados na mesma máquina que a 4D.
- **Percentage of available memory used for cache**: Percentage of the remaining memory allocated to the cache by default.\
@@ -112,7 +112,7 @@ Você usa as configurações nesta aba para configurar a memória em cache para

-- **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta).
+ - **Cálculo de caché adaptativa no marcado**: en este modo, usted mismo define el tamaño de la memoria caché para la base. O 4D então exibe uma área de entrada que permite a configuração do cache de memória para uso, bem como informações relacionadas à memória física (RAM disponíveis na máquina), o cache atual e o cache após reiniciar (levando suas alterações em conta).
O tamanho do cache de memória que você inserir será reservado para o banco de dados 4D, independentemente do estado dos recursos da máquina. Esta configuração pode ser usada em certas configurações específicas, ou quando a base de dados é projetada para ser usada em sistemas diferentes em termos de memória. Geralmente, a cache adaptativa oferece um melhor desempenho.
diff --git a/sidebars.js b/sidebars.js
index e9165da4359d06..187158082c55e9 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -163,6 +163,12 @@ module.exports =
{
type: "category",
label: "Commands by theme",
+ link: {
+ type: "generated-index",
+ title: "Commands by theme",
+ slug: "/category/commands",
+ image: "/img/docusaurus.png"
+ },
items: [
{
type: "autogenerated",
@@ -1360,6 +1366,11 @@ module.exports =
label: "4D Mobile App Server",
href: "https://github.com/4d/4D-Mobile-App-Server/blob/main/README.md"
},
+ {
+ type: "link",
+ label: "4D Mobile App Server",
+ href: "https://github.com/4d/4D-Mobile-App-Server/blob/main/README.md"
+ },
{
type: "link",
label: "Build4D",
diff --git a/versioned_docs/version-20-R10/commands/listbox-get-property.md b/versioned_docs/version-20-R10/commands/listbox-get-property.md
index 24aeb53df73b84..e2308630b33bcc 100644
--- a/versioned_docs/version-20-R10/commands/listbox-get-property.md
+++ b/versioned_docs/version-20-R10/commands/listbox-get-property.md
@@ -1,6 +1,7 @@
---
id: listbox-get-property
title: LISTBOX Get property
+displayed_sidebar: docs
---
**LISTBOX Get property** ( {* ;} *object* ; *property* ) : any
diff --git a/versioned_docs/version-20-R10/commands/listbox-set-property.md b/versioned_docs/version-20-R10/commands/listbox-set-property.md
index 9c9b3ccb6d0469..23495c76e98ae1 100644
--- a/versioned_docs/version-20-R10/commands/listbox-set-property.md
+++ b/versioned_docs/version-20-R10/commands/listbox-set-property.md
@@ -1,6 +1,7 @@
---
id: listbox-set-property
title: LISTBOX SET PROPERTY
+displayed_sidebar: docs
---
**LISTBOX SET PROPERTY** ( {* ;} *object* ; *property* ; *value* )
diff --git a/versioned_docs/version-20-R10/commands/object-set-data-source-formula.md b/versioned_docs/version-20-R10/commands/object-set-data-source-formula.md
index 14a659868574fe..3ae6d7d701fd1d 100644
--- a/versioned_docs/version-20-R10/commands/object-set-data-source-formula.md
+++ b/versioned_docs/version-20-R10/commands/object-set-data-source-formula.md
@@ -1,6 +1,7 @@
---
id: object-set-data-source-formula
title: OBJECT SET DATA SOURCE FORMULA
+displayed_sidebar: docs
---
**OBJECT SET DATA SOURCE FORMULA** ( {* ;} *object* ; *formula* )
diff --git a/versioned_docs/version-20-R10/commands/wa-get-context.md b/versioned_docs/version-20-R10/commands/wa-get-context.md
index da18b2aa6092d9..1998b8acedbf08 100644
--- a/versioned_docs/version-20-R10/commands/wa-get-context.md
+++ b/versioned_docs/version-20-R10/commands/wa-get-context.md
@@ -1,6 +1,7 @@
---
id: wa-get-context
title: WA Get context
+displayed_sidebar: docs
---
**WA Get context** ( {* ;} *object* ) -> *contextObj*
diff --git a/versioned_docs/version-20-R10/commands/wa-set-context.md b/versioned_docs/version-20-R10/commands/wa-set-context.md
index 2c1c06365b9960..66698e7943a227 100644
--- a/versioned_docs/version-20-R10/commands/wa-set-context.md
+++ b/versioned_docs/version-20-R10/commands/wa-set-context.md
@@ -1,6 +1,7 @@
---
id: wa-set-context
title: WA SET CONTEXT
+displayed_sidebar: docs
---
diff --git a/versioned_docs/version-21/API/SessionClass.md b/versioned_docs/version-21/API/SessionClass.md
index ed2886e8de489f..1ad435a7823c29 100644
--- a/versioned_docs/version-21/API/SessionClass.md
+++ b/versioned_docs/version-21/API/SessionClass.md
@@ -58,6 +58,10 @@ The availability of properties and functions in the `Session` object depends on
|[](#username)
|
+### To learn more
+
+[**Scalable sessions for advanced web applications**](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) (blog post)
+[**Permissions: Inspect Session Privileges for Easy Debugging**](https://blog.4d.com/permissions-inspect-session-privileges-for-easy-debugging/) (blog post)
## .clearPrivileges()
diff --git a/versioned_docs/version-21/WebServer/http-request-handler.md b/versioned_docs/version-21/WebServer/http-request-handler.md
index 572d9c63ccb84d..feee79fcc51082 100644
--- a/versioned_docs/version-21/WebServer/http-request-handler.md
+++ b/versioned_docs/version-21/WebServer/http-request-handler.md
@@ -1,6 +1,6 @@
---
id: http-request-handler
-title: HTTP Request handler
+title: Gestionnaire de requêtes HTTP
---
By default, HTTP requests received by the 4D web server are handled through [built-in processing features](httpRequests.md) or the [REST server](../REST/REST_requests.md).
@@ -9,11 +9,11 @@ In addition, 4D supports the implementation of **custom HTTP Request handlers**,
When a custom HTTP request handler intercepts a request, it is processed directly and no other processing features (e.g. [On Web authentication](./authentication.md#on-web-authentication) or [On Web connection](./httpRequests.md#on-web-connection) database methods) are called.
-Custom HTTP request handlers meet various needs, including:
+Les gestionnaires de requêtes HTTP personnalisés répondent à divers besoins, y compris :
-- using a given URL as a resource provider or a file-uploading box (to download or upload various files),
-- redirecting on specific pages according to a context (user authenticated, privileges granted...),
-- handle an authentication via oAuth 2.0.
+- l'utilisation d'une URL dédiée comme fournisseur de ressources ou comme zone de téléchargement de fichiers (pour télécharger ou téléverser divers fichiers),
+- la redirection sur des pages spécifiques en fonction d'un contexte (utilisateur authentifié, privilèges accordés...),
+- la gestion d'une authentification via oAuth 2.0.
## Requirements
@@ -46,9 +46,9 @@ The json file (or the object in the *settings* parameter) contains all listened
Handlers are provided as a collection.
-At runtime, the first pattern matching the URL is executed, the others are ignored.
+Au moment de l'exécution, le premier motif correspondant à l'URL est exécuté, les autres sont ignorés.
-Here is an example of a *HTTPHandlers.json* file contents:
+Voici un exemple du contenu d'un fichier *HTTPHandlers.json* :
```json
@@ -62,25 +62,25 @@ Here is an example of a *HTTPHandlers.json* file contents:
]
```
-This handler declaration can be read as: when any request starting by `/start/` with a `GET` or `POST` verb is received by the server, the `gettingStarted` function of the `GeneralHandling` singleton is executed.
+Cette déclaration de gestionnaire peut être lue ainsi : quand une requête commençant par `/start/` avec un verbe `GET` ou `POST` est reçue par le serveur, la fonction `gettingStarted` du singleton `GeneralHandling` est exécutée.
:::note
-You must restart the Web server so that modifications made in this file are taken into account.
+Vous devez redémarrer le serveur Web pour que les modifications apportées dans ce fichier soient prises en compte.
:::
## Handler definition
-A handler is defined by:
+Un gestionnaire est défini par :
-- a listened URL pattern
-- a function and its class where the code is implemented to handle the listened URL pattern
-- the verbs with which the URL can be called to trigger the handler
+- un motif d'URL à intercepter
+- une fonction et sa classe où le code est implémenté pour traiter le motif d'URL en question
+- les verbes avec lesquels l'URL peut être appelée pour déclencher le gestionnaire personnalisé
-The handler identifier is the couple [pattern + a verb among the verbs list].
+L'identifiant du gestionnaire est le couple [motif + un verbe parmi la liste des verbes].
### URL patterns
@@ -95,12 +95,10 @@ Ex: `"regexPattern" : "/docs/.+/index\.html"`
"Pattern" and "regexPattern" properties cannot be used in the same handler definition (in this case, only the "regexPattern" property is taken into account).
-#### Pattern matching
+Les motifs d'URL sont déclenchés dans l'ordre défini :
-URL patterns are triggered in the given order:
-
-- the first matching pattern is executed
-- the following patterns are not executed even if they match the URL
+- le premier motif correspondant est exécuté
+- les motifs suivants ne sont pas exécutés même s'ils correspondent à l'URL
As a consequence, you need to apply a accurate strategy when writing your handlers: the most detailed patterns must be written before the more general patterns.
@@ -131,16 +129,16 @@ As a consequence, you need to apply a accurate strategy when writing your handle
#### Forbidden patterns
-URL patterns matching 4D built-in HTTP processing features are not allowed in custom HTTP handlers. For example, the following patterns cannot be handled:
+Les motifs d'URL correspondant aux fonctions de traitement HTTP intégrées de 4D ne sont pas autorisés dans les gestionnaires HTTP personnalisés. Par exemple, les motifs suivants ne peuvent pas être traités :
- `/4DACTION`
- `/rest`
- `/$lib/renderer`
- `/$shared`
-### Class and method
+### Class et method
-You declare the code to be executed when a defined URL pattern is intercepted using the "class" and "method" properties.
+Vous déclarez le code à exécuter lorsqu'un motif d'URL défini est intercepté à l'aide des propriétés "class" et "method".
- "class": class name without `cs.`, e.g. "UsersHandling" for the `cs.UsersHandling` user class. It must be a [**shared**](../Concepts/classes.md#shared-singleton) and [**singleton**](../Concepts/classes.md#singleton-classes) class.
- "method": class function belonging to the class.
@@ -153,7 +151,7 @@ You can use the "verbs" property in the handler definition to declare HTTP verbs
You can declare several verbs, separated by a comma. Verb names are not case sensitive.
-Ex: `"verbs" : "PUT, POST"`
+Ex : `"verbs" : "PUT, POST"`
:::note
@@ -165,13 +163,13 @@ By default, if the "verbs" property is not used for a handler, **all** HTTP verb
:::note
-The HTTP verb can also be evaluated [using the `.verb` property within the request handler code](../API/IncomingMessageClass.md#verb) to be accepted or rejected.
+Le verbe HTTP peut également être évalué [à l'aide de la propriété `.verb` dans le code du gestionnaire de requête](../API/IncomingMessageClass.md#verb) pour être accepté ou rejeté.
:::
## Example
-Here is a detailed example of a HTTPHandlers.json file:
+Voici un exemple détaillé de fichier HTTPHandlers.json :
```json
@@ -222,31 +220,31 @@ Here is a detailed example of a HTTPHandlers.json file:
```
-In this example, you must implement the following functions:
+Dans cet exemple, vous devez implémenter les fonctions suivantes :
-- *handle function* in the *GeneralHandling* class
-- *manageAccount* in the *UsersHandling* class
-- *handleInvoices* in the *FinancialHandling* class
-- *handleDocs* in the *DocsHandling* class
-- *handleTheInvoice* / *handleDetails* / *handleInvoices* in the *InvoicesHandling* class
+- Fonction *handle* dans la classe *GeneralHandling*
+- *manageAccount* dans la classe *UsersHandling*
+- *handleInvoices* dans la classe *FinancialHandling*
+- *handleDocs* dans la classe *DocsHandling*
+- *handleTheInvoice* / *handleDetails* / *handleInvoices* dans la classe *InvoicesHandling*
Examples of URLs triggering the handlers:
-`IP:port/info/` with a GET verb
-`IP:port/info/general` with a GET verb
+`IP:port/info/` avec un verbe GET
+`IP:port/info/general` avec un verbe GET
-`IP:port/userAccount/update/` with a POST verb
-`IP:port/userAccount/update/profile` with a POST verb
+`IP:port/userAccount/update/` avec un verbe POST
+`IP:port/userAccount/update/profile` avec un verbe POST
-`IP:port/docs/invoices/past` with a GET verb
-`IP:port/docs/invoices/today/latest` with a GET verb
+`IP:port/docs/invoices/past` avec un verbe GET
+`IP:port/docs/invoices/today/latest` avec un verbe GET
-`IP:port//docs/myPage.html` with a GET verb
+`IP:port//docs/myPage.html` avec un verbe GET
-`IP:port//docs/invoices/` with a GET verb, calls *handleInvoices* function (*InvoicesHandling* class)
-`IP:port//docs/invoices/details/` with a GET verb, calls *handleDetails* function (*InvoicesHandling* class)
-`IP:port//docs/invoices/details/theInvoice/xxxxxx` with a GET verb, calls *handleTheInvoice* function (*InvoiceslHandling* class)
+`IP:port//docs/invoices/` avec un verbe GET, appelle la fonction *handleInvoices* (classe *InvoicesHandling*)
+`IP:port//docs/invoices/details/` avec un verbe GET, appelle la fonction *handleDetails* (classe *InvoicesHandling*)
+`IP :port//docs/invoices/details/theInvoice/xxxxxx` avec un verbe GET, appelle la fonction *handleTheInvoice* (classe *InvoiceslHandling*)
## Request handler code
@@ -256,13 +254,13 @@ Examples of URLs triggering the handlers:
The HTTP Request handler code must be implemented in a function of a [**Shared**](../Concepts/classes.md#shared-singleton) [**singleton class**](../Concepts/classes.md#singleton-classes).
-If the singleton is missing or not shared, an error "Cannot find singleton" is returned by the server. If the class or the function [defined as handler](#handler-definition) in the HTTPHandlers.json file is not found, an error "Cannot find singleton function" is returned by the server.
+Si le singleton est manquant ou non partagé, une erreur "Cannot find singleton" est renvoyée par le serveur. Si la classe ou la fonction [définie comme handler](#handler-definition) dans le fichier HTTPHandlers.json n'est pas trouvée, le serveur renvoie l'erreur "Cannot find singleton function".
-Request handler functions are not necessarily shared, unless some request handler properties are updated by the functions. In this case, you need to declare its functions with the [`shared` keyword](../Concepts/classes.md#shared-functions).
+Les fonctions du gestionnaire de requêtes ne sont pas nécessairement partagées, sauf si certaines propriétés du gestionnaire sont modifiées par ces fonctions. Dans ce cas, vous devez déclarer ses fonctions avec le [mot-clé `shared`](../Concepts/classes.md#shared-functions).
:::note
-It is **not recommended** to expose request handler functions to external REST calls using [`exposed`](../ORDA/ordaClasses.md#exposed-vs-non-exposed-functions) or [`onHTTPGet`](../ORDA/ordaClasses.md#onhttpget-keyword) keywords.
+Il est **déconseillé** d'exposer les fonctions du gestionnaire de requêtes aux appels REST externes en utilisant les mots-clés [`exposed`](../ORDA/ordaClasses.md#exposed-vs-non-exposed-functions) ou [`onHTTPGet`](../ORDA/ordaClasses.md#onhttpget-keyword).
:::
@@ -275,19 +273,19 @@ All necessary information about the request are available in this object, includ
Then, the request handler can use this information to trigger appropriate business logic.
-### Output: an instance of the 4D.OutgoingMessage class
+### Sortie : une instance de la classe 4D.OutgoingMessage
-The request handler can return an object instance of the [4D.OutGoingMessage class](../API/OutgoingMessageClass.md), i.e. some full web content ready for a browser to handle, such as a file content.
+Le gestionnaire de requête peut renvoyer une instance d'objet de la classe [4D.OutGoingMessage](../API/OutgoingMessageClass.md), c'est-à-dire un contenu web complet prêt à être traité par un navigateur, comme un contenu de fichier.
### Example
-The [4D.IncomingMessage class](../API/IncomingMessageClass.md) provides functions to get the [headers](../API/IncomingMessageClass.md#headers) and the [body](../API/IncomingMessageClass.md#gettext) of the request.
+La classe [4D.IncomingMessage](../API/IncomingMessageClass.md) fournit des fonctions pour obtenir les [headers](../API/IncomingMessageClass.md#headers) et le [body](../API/IncomingMessageClass.md#gettext) de la requête.
-Here is a simple example to upload a file on the server.
+Voici un exemple simple pour télécharger un fichier sur le serveur.
-The **HTTPHandlers.json** file:
+Le fichier **HTTPHandlers.json** :
```json
[
@@ -300,9 +298,9 @@ The **HTTPHandlers.json** file:
]
```
-The called URL is: http://127.0.0.1:8044/putFile?fileName=testFile
+L'URL appelée est : http://127.0.0.1:8044/putFile?fileName=testFile
-The binary content of the file is put in the body of the request and a POST verb is used. The file name is given as parameter (*fileName*) in the URL. It is received in the [`urlQuery`](../API/IncomingMessageClass.md#urlquery) object in the request.
+Le contenu binaire du fichier est placé dans le corps de la requête et un verbe POST est utilisé. Le nom du fichier est fourni en paramètre (*fileName*) dans l'URL. Il est reçu dans l'objet [`urlQuery`](../API/IncomingMessageClass.md#urlquery) de la requête.
```4d
@@ -349,4 +347,4 @@ Function uploadFile($request : 4D.IncomingMessage) : 4D.OutgoingMessage
## See also
-[Perfect mastery of your back end business logic thanks to HTTP requests handlers](https://blog.4d.com/master-http-requests-with-4d-request-handlers/) (blog post)
\ No newline at end of file
+[Maîtriser les requêtes HTTP avec les gestionnaires de requêtes 4D](https://blog.4d.com/master-http-requests-with-4d-request-handlers/) (blog post)
\ No newline at end of file
diff --git a/versioned_docs/version-21/commands/listbox-get-property.md b/versioned_docs/version-21/commands/listbox-get-property.md
index 24aeb53df73b84..e2308630b33bcc 100644
--- a/versioned_docs/version-21/commands/listbox-get-property.md
+++ b/versioned_docs/version-21/commands/listbox-get-property.md
@@ -1,6 +1,7 @@
---
id: listbox-get-property
title: LISTBOX Get property
+displayed_sidebar: docs
---
**LISTBOX Get property** ( {* ;} *object* ; *property* ) : any
diff --git a/versioned_docs/version-21/commands/listbox-set-property.md b/versioned_docs/version-21/commands/listbox-set-property.md
index 9c9b3ccb6d0469..23495c76e98ae1 100644
--- a/versioned_docs/version-21/commands/listbox-set-property.md
+++ b/versioned_docs/version-21/commands/listbox-set-property.md
@@ -1,6 +1,7 @@
---
id: listbox-set-property
title: LISTBOX SET PROPERTY
+displayed_sidebar: docs
---
**LISTBOX SET PROPERTY** ( {* ;} *object* ; *property* ; *value* )
diff --git a/versioned_docs/version-21/commands/object-set-data-source-formula.md b/versioned_docs/version-21/commands/object-set-data-source-formula.md
index 14a659868574fe..3ae6d7d701fd1d 100644
--- a/versioned_docs/version-21/commands/object-set-data-source-formula.md
+++ b/versioned_docs/version-21/commands/object-set-data-source-formula.md
@@ -1,6 +1,7 @@
---
id: object-set-data-source-formula
title: OBJECT SET DATA SOURCE FORMULA
+displayed_sidebar: docs
---
**OBJECT SET DATA SOURCE FORMULA** ( {* ;} *object* ; *formula* )
diff --git a/versioned_docs/version-21/commands/wa-get-context.md b/versioned_docs/version-21/commands/wa-get-context.md
index da18b2aa6092d9..1998b8acedbf08 100644
--- a/versioned_docs/version-21/commands/wa-get-context.md
+++ b/versioned_docs/version-21/commands/wa-get-context.md
@@ -1,6 +1,7 @@
---
id: wa-get-context
title: WA Get context
+displayed_sidebar: docs
---
**WA Get context** ( {* ;} *object* ) -> *contextObj*
diff --git a/versioned_docs/version-21/commands/wa-set-context.md b/versioned_docs/version-21/commands/wa-set-context.md
index 2c1c06365b9960..66698e7943a227 100644
--- a/versioned_docs/version-21/commands/wa-set-context.md
+++ b/versioned_docs/version-21/commands/wa-set-context.md
@@ -1,6 +1,7 @@
---
id: wa-set-context
title: WA SET CONTEXT
+displayed_sidebar: docs
---
diff --git a/versioned_sidebars/version-20-R10-sidebars.json b/versioned_sidebars/version-20-R10-sidebars.json
index 9726f7d1d0b078..9cd87f959f060c 100644
--- a/versioned_sidebars/version-20-R10-sidebars.json
+++ b/versioned_sidebars/version-20-R10-sidebars.json
@@ -3357,6 +3357,11 @@
"label": "4D Mobile App Server",
"href": "https://github.com/4d/4D-Mobile-App-Server/blob/main/README.md"
},
+ {
+ "type": "link",
+ "label": "4D Mobile App Server",
+ "href": "https://github.com/4d/4D-Mobile-App-Server/blob/main/README.md"
+ },
{
"type": "link",
"label": "Build4D",
diff --git a/versioned_sidebars/version-21-sidebars.json b/versioned_sidebars/version-21-sidebars.json
index 2240b25f56c030..0a2c5fd48963fb 100644
--- a/versioned_sidebars/version-21-sidebars.json
+++ b/versioned_sidebars/version-21-sidebars.json
@@ -163,6 +163,12 @@
{
"type": "category",
"label": "Commands by theme",
+ "link": {
+ "type": "generated-index",
+ "title": "Commands by theme",
+ "slug": "/category/commands",
+ "image": "/img/docusaurus.png"
+ },
"items": [
{
"type": "autogenerated",