From 7e385d3184998d7b3d450abf593dd9c51dc1e534 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 13:33:08 +0100 Subject: [PATCH 001/156] New translations mailattachmentclass.md (French) --- .../current/API/MailAttachmentClass.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/API/MailAttachmentClass.md b/i18n/fr/docusaurus-plugin-content-docs/current/API/MailAttachmentClass.md index 35ecd3093c4d16..53503a1b88a1d6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/MailAttachmentClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/MailAttachmentClass.md @@ -38,7 +38,7 @@ Les objets Attachment fournissent les propriétés et fonctions suivantes en lec | ----------- | --------------------------------- | :-------------------------: | ---------------------------------------------------------------------------------------------------- | | file | 4D.File | -> | Fichier joint | | zipFile | 4D.ZipFile | -> | Fichier Zip joint | -| blob | 4D.Blob | -> | Blob containing the attachment | +| blob | 4D.Blob | -> | Blob contenant la pièce jointe | | path | Text | -> | Chemin de la pièce jointe | | name | Text | -> | Nom + extension utilisés par le client de messagerie pour désigner la pièce jointe | | cid | Text | -> | ID de la pièce jointe (messages HTML uniquement) ou " " si aucun cid n'est requis | From d7f258ed63b9a10d1c4e80a68c24e9f8f52f7d98 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 13:33:13 +0100 Subject: [PATCH 002/156] New translations sessionclass.md (French) --- .../current/API/SessionClass.md | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) 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 aef1b74e8bf930..024c8b46abe7b6 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -3,7 +3,7 @@ id: SessionClass title: Session --- -Les objets session sont retournés par la commande [`Session`](../commands/session.md). Ces objets fournissent au développeur une interface permettant de gérer la session utilisateur courante et d'exécuter des actions telles que le stockage de données contextuelles, le partage d'informations entre les process de la session, le lancement de process préemptifs liés à la session ou (uniquement pour le web) la gestion des [privilèges](../ORDA/privileges.md). +Les objets session sont retournés par la commande [`Session`](../commands/session.md). These objects provide the developer with an interface allowing to manage the current user session and execute actions such as store contextual data, share information between session processes, launch session-related preemptive processes, or (web context only) manage [privileges](../ORDA/privileges.md). :::tip Articles de blog sur le sujet @@ -17,7 +17,7 @@ Les objets session sont retournés par la commande [`Session`](../commands/sessi Les types de sessions suivants sont pris en charge par cette classe : -- [**Sessions utilisateur Web**](WebServer/sessions.md) : Les sessions utilisateur Web sont disponibles lorsque [les sessions évolutives (scalable sessions) sont activées dans votre projet](WebServer/sessions.md#enabling-web-sessions). Elles sont utilisées pour les connexions Web (y compris les accès REST) et sont contrôlées par les [privilèges](../ORDA/privileges.md) qui leur sont attribués. +- [**Sessions utilisateur Web**](WebServer/sessions.md) : Les sessions utilisateur Web sont disponibles lorsque [les sessions évolutives (scalable sessions) sont activées dans votre projet](WebServer/sessions.md#enabling-web-sessions). They are used for Web connections (including REST access), and are controlled by assigned [privileges](../ORDA/privileges.md). - [**Sessions desktop**](../Desktop/sessions.md), qui comprennent : - [**Sessions utilisateurs distants**](../Desktop/sessions.md#remote-user-sessions) : Dans les applications client/serveur, les utilisateurs distants ont leurs propres sessions gérées sur le serveur. - [**Sessions procédures stockées**](../Desktop/sessions.md#stored-procedure-sessions) : Session utilisateur virtuelle pour toutes les procédures stockées exécutées sur le serveur. @@ -85,6 +85,7 @@ Cette fonction ne supprime pas les **privilèges promus** du process web, qu'ils :::note Gardez à l'esprit que les privilèges ne s'appliquent qu'au code exécuté via les accès web, quel que soit le [type de session](#session-types) sur lequel cette fonction est exécutée. + ::: #### Exemple @@ -177,6 +178,12 @@ Si aucun privilège avec *promoteId* n'a été promu à l'aide de [`.promote()`] Si plusieurs privilèges ont été ajoutés au process web, la fonction `demote()` doit être appelée pour chacun d'entre eux avec le *promoteId* approprié. Les privilèges sont empilés dans l'ordre dans lequel ils ont été ajoutés au process, il est recommandé de dépiler les privilèges dans l'ordre LIFO (*Last In, First Out*). +:::note + +Gardez à l'esprit que les privilèges ne s'appliquent qu'au code exécuté via les accès web, quel que soit le [type de session](#session-types) sur lequel cette fonction est exécutée. + +::: + #### Exemple ```4d @@ -489,6 +496,7 @@ La propriété `.info` décrit la session - **Sessions distantes** et **Sessions de procédure stockée** : L'objet `.info` est le même que celui renvoyé dans la propriété "session" par la commande [`Process activity`](../commands/process-activity.md). - **Sessions autonomes** : L'objet `.info` est le même que celui retourné par la commande [`Session info`](../commands/session-info.md). +- **Web user sessions**: The `.info` object contains properties available for web user sessions. L'objet `.info` contient les propriétés suivantes: @@ -547,7 +555,7 @@ La fonction `.isGuest()` retourne Tr :::note Compatibilité -Avec les anciennes sessions, `.isGuest()` renvoie True si la session n'a pas de privilèges. +When the [*forcelogin* mode](../REST/authUsers.md#force-login-mode) is disabled, `.isGuest()` returns True if the session has no privileges. ::: @@ -679,6 +687,12 @@ La fonction renvoie `false` si : Dans ce cas, la session courante de l'utilisateur web est laissée intacte (aucune session n'est restaurée). +:::note + +Gardez à l'esprit que les privilèges ne s'appliquent qu'au code exécuté via les accès web, quel que soit le [type de session](#session-types) sur lequel cette fonction est exécutée. + +::: + #### Exemple Dans un singleton appelé par un HTTP request handler personnalisé : From 3186e5308300f0eff0d140758bd376e97806afbe Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 13:37:18 +0100 Subject: [PATCH 003/156] New translations updates.md (French) --- i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md | 1 + 1 file changed, 1 insertion(+) 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 0d2f195467cb86..1cceef6d692eee 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -12,6 +12,7 @@ Lisez [**Les nouveautés de 4D 21 R2**](https://blog.4d.com/fr-whats-new-in-4d-v - Le [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) a été amélioré pour fournir une plus grande précision dans la détection des erreurs (voir [cet article de blog](https://blog.4d.com/better-error-handling-and-type-inference-for-4d-developers) pour plus d'informations). - Les [actions standard de 4D Write Pro](../WritePro/user-legacy/standard-actions.md) qui s'appliquent aux [listes](../WritePro/user-legacy/using-a-4d-write-pro-area.md#lists) ajustent désormais automatiquement les marges des paragraphes pour que les marqueurs restent positionnés à l'intérieur de cette marge. - Prise en charge intégrée de `order by` dans les requêtes pour les recherches vectorielles IA en utilisant les fonctions [`query()`](../API/DataClassClass.md#query-by-vector-similarity) et l'[API REST](../REST/$orderby.md). +- You can now create and open Qodly Pages from the [Explorer](../Develop/explorer.md). - You can [customize the icons of your components](../Extensions/develop-components.md#custom-icon). - Composant 4D AIKit : nouvelle classe [File API](../aikit/Classes/OpenAIFilesAPI.md) pour implémenter les fonctionnalités de **téléversement de fichiers**. - [**Chercher dans le développement**](../Project/search-replace.md#search-in-components) et [**Remplacer dans le contenu**](../Project/search-replace.md#replace-in-contents) peuvent maintenant inclure les composants modifiables. From 53f5226b4111e1ae28770f710bfddf89070a8d79 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 13:37:38 +0100 Subject: [PATCH 004/156] New translations architecture.md (French) --- .../current/Project/architecture.md | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md index d0e9f6ced759c4..e4551a1dbc408a 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -69,24 +69,18 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe | styleSheets_mac.css | Feuilles de style css sur Windows (à partir d'une base binaire convertie) | CSS | | styleSheets_windows.css | Feuilles de style css sur Mac (à partir d'une base binaire convertie) | CSS | -#### `DatabaseMethods` - -| Contenu | Description | Format | -| ---------------------------------------- | ---------------------------------------------------------------------------------- | ------ | -| *databaseMethodName*.4dm | Méthodes base définies dans le projet. Un fichier par méthode base | text | - -#### `Methods` - -| Contenu | Description | Format | -| -------------------------------- | ------------------------------------------------------------------------------- | ------ | -| *methodName*.4dm | Méthodes projet définies dans le projet. Un fichier par méthode | text | - #### `Classes` | Contenu | Description | Format | | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | | *className*.4dm | Méthode de définition de classe utilisateur, permettant d'instancier des objets spécifiques. Un fichier par classe, le nom du fichier est le nom de la classe | text | +#### `DatabaseMethods` + +| Contenu | Description | Format | +| ---------------------------------------- | ---------------------------------------------------------------------------------- | ------ | +| *databaseMethodName*.4dm | Méthodes base définies dans le projet. Un fichier par méthode base | text | + #### `Formulaires` | Contenu | Description | Format | @@ -96,6 +90,20 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe | *formName*/Images/*pictureName* | Image statique du formulaire projet | picture | | *formName*/ObjectMethods/*objectName*.4dm | Méthodes objet. Un fichier par méthode objet | text | +#### `Methods` + +| Contenu | Description | Format | +| -------------------------------- | ------------------------------------------------------------------------------- | ------ | +| *methodName*.4dm | Méthodes projet définies dans le projet. Un fichier par méthode | text | + +#### `Shared` + +| Contenu | Description | Format | +| ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | +| assets/ | [Shared files](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/events/bindingActionToEvents#shared-folder) such as pictures used in Qodly pages | variés | +| CustomComponents/ | [Custom components](https://developer.4d.com/qodly/Integrations/customComponent/overview) files used in Qodly pages | json | +| *other_files*.json | shared elements such as css or datasources used in Qodly pages | json | + #### `TableForms` | Contenu | Description | Format | @@ -117,6 +125,13 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe **Note:** The .4dm file extension is a text-based file format, containing the code of a 4D method. Il est compatible avec les outils de contrôle de version. +#### `WebForms` + +| Contenu | Description | Format | +| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ------ | +| *QodlyFormName*.WebForm | Json representations of Qodly pages | JSON | +| crafted_components.json | Description of [components crafted](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/craftedComponents) on Qodly pages | JSON | + ### `Trash` Le dossier Trash contient des méthodes et des formulaires qui ont été supprimés du projet (le cas échéant). Il peut contenir les dossiers suivants : From ae4d8425ccd5c4743d35970b6d24ebbfaad20f8b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 13:56:59 +0100 Subject: [PATCH 005/156] New translations session.md (French) --- .../current/commands/session.md | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/commands/session.md b/i18n/fr/docusaurus-plugin-content-docs/current/commands/session.md index f9a4c043e98979..23dd822200481c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/commands/session.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/commands/session.md @@ -26,21 +26,21 @@ displayed_sidebar: docs ## Description -The `Session` command returns the `Session` object corresponding to the current session. +La commande `Session` retourne l'objet `Session` correspondant à la session courante. -Depending on the process from which the command is called, the current session can be: +Selon le process à partir duquel la commande est appelée, la session courante peut être : - une session web (lorsque les [sessions évolutives sont activées](WebServer/sessions.md#enabling-web-sessions)), -- a remote client session (on the server), -- a stored procedures session, -- a standalone session. +- une session utilisateur distant (sur le serveur), +- une session de procédures stockées, +- une session autonome. Pour plus d'informations, voir le paragraphe [Types de session](../API/SessionClass.md#session-types). -The command returns *Null* if: +La commande retourne *Null* si : -- it is called in a web process and scalable sessions are disabled on the web server, -- it is called on a remote 4D. +- elle est appelée dans un process web et les sessions évolutives sont désactivées sur le serveur web, +- elle est appelée sur un client 4D distant. ### Sessions Web @@ -54,16 +54,16 @@ L'objet `Session` des sessions web est disponible depuis n'importe quel process Pour plus d'informations sur les sessions utilisateur web, veuillez consulter la section [Sessions web](../WebServer/sessions.md). -### Sessions clients distants +### Sessions utilisateur distant -L'objet `Session` des sessions client distants est disponible depuis : +L'objet `Session` des sessions utilisateur distantes est disponible depuis : - Les méthodes projet qui ont l'attribut [Exécuter sur serveur](../Project/code-overview.md#execute-on-server) (elles sont exécutées dans le process jumeau du process client), - Les Triggers, - Les [fonctions du modèle de données](../ORDA/ordaClasses.md) ORDA (sauf celles déclarées avec le mot-clé [`local`](../ORDA/ordaClasses.md#local-functions), - Les méthodes base `On Server Open Connection` et `On Server Shutdown Connection`. -For more information on remote user sessions, please refer to the [**Remote user sessions**](../Desktop/sessions.md#remote-user-sessions) paragraph. +Pour plus d'informations sur les sessions utilisateur distant, veuillez consulter le paragraphe [**Sessions utilisateur distant**](../Desktop/sessions.md#remote-user-sessions). ### Session des procédures stockées @@ -72,29 +72,29 @@ Tous les process des procédures stockées partagent la même session d'utilisat - les méthodes appelées avec la commande [`Execute on server`](../commands-legacy/execute-on-server.md), - Les méthodes base `On Server Startup`, `On Server Shutdown`, `On Backup Startup`, `On Backup Shutdown`, et `On System event`. -For more information on stored procedures virtual user session, please refer to the [**Stored procedure sessions**](../Desktop/sessions.md#stored-procedure-sessions) paragraph. +Pour plus d'informations sur la session utilisateur virtuel des procédures stockées, veuillez vous reporter au paragraphe [**Sessions de procédures stockées**](../Desktop/sessions.md#stored-procedure-sessions). ### Session autonome L'objet `Session` est disponible à partir de n'importe quel process dans les applications autonomes (mono-utilisateur) afin que vous puissiez écrire et tester votre code client/serveur en utilisant l'objet `Session` dans votre environnement de développement 4D. -For more information on standalone sessions, please refer to the [**Standalone sessions**](../Desktop/sessions.md#standalone-sessions) paragraph. +Pour plus d'informations sur les sessions autonomes, veuillez consulter le paragraphe [**Sessions autonomes**](../Desktop/sessions.md#standalone-sessions). -### `Session` and components +### `Session` et composants -When `Session` is called from the code of different [components loaded in the project](../Concepts/components.md), the command returns an object depending on the calling request and the context: +Lorsque `Session` est appelée à partir du code de différents [composants chargés dans le projet](../Concepts/components.md), la commande renvoie un objet qui dépend de la requête d'appel et du contexte : -- in case of a web request, `Session` always returns the session attached to the target web server of the request (and not a session of the component's web server), -- in case of a remote request executed on the server, `Session` always returns the session attached to the remote user, -- in case of a stored procedure session or a standalone session, `Session` always returns the single current session (the same object is used during all the work session). +- dans le cas d'une requête web, `Session` renvoie toujours la session attachée au serveur web cible de la requête (et non une session du serveur web du composant), +- dans le cas d'une requête distante exécutée sur le serveur, `Session` renvoie toujours la session attachée à l'utilisateur distant, +- dans le cas d'une session de procédure stockée ou d'une session autonome, `Session` renvoie toujours l'unique session courante (le même objet est utilisé pendant toute la session de travail). ```mermaid flowchart TD - A[Need a session] --> B{Is it a web request?} - B -->|Yes| C[Use the session attached to the web server of the web request] - B -->|No| D{Is it a remote request?} - D -->|Yes| E[Use the object of the remote user session] - D -->|No| F[Use the unique object of the stored procedure/standalone session] + A[Session requise] --> B{Est-ce une requête web?} + B -->|Yes| C[Utiliser la session associée au serveur web de la requête web] + B -->|No| D{Est-ce une requête distante?} + D -->|Yes| E[Utiliser l'objet de la session utilisateur distant] + D -->|No| F[Utiliser l'objet unique de la session procédure stockée/autonome] classDef decision fill:#f9f,stroke:#333,stroke-width:2px; classDef process fill:#bbf,stroke:#333,stroke-width:2px; @@ -117,7 +117,7 @@ IP:port/4DACTION/action_Session //action_Session method Case of :(Session#Null) - If(Session.hasPrivilege("CreateInvoices")) //calling the hasPrivilege function + If(Session.hasPrivilege("CreateInvoices")) //appel de la fonction hasPrivilege WEB SEND TEXT("4DACTION --> Session is CreateInvoices") Else WEB SEND TEXT("4DACTION --> Session is not CreateInvoices") @@ -133,7 +133,7 @@ IP:port/4DACTION/action_Session [Session API](../API/SessionClass.md) [Desktop sessions](../Desktop/sessions.md) [Web server user sessions](../WebServer/sessions.md) -[*Scalable sessions for advanced web applications* (blog post)](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) +[*Sessions évolutives pour les applications web avancées* (blog post)](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ## Propriétés From 8c12f89557f2dbdda6cc7405e37f4e8e7988362f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 14:36:22 +0100 Subject: [PATCH 006/156] New translations sessionclass.md (French) --- .../version-21/API/SessionClass.md | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) 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 f1ce9df566b5dc..efa3bdf2c24348 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 @@ -17,7 +17,7 @@ Les objets session sont retournés par la commande [`Session`](../commands/sessi Les types de sessions suivants sont pris en charge par cette classe : -- [**Sessions utilisateur Web**](WebServer/sessions.md) : Les sessions utilisateur Web sont disponibles lorsque [les sessions évolutives (scalable sessions) sont activées dans votre projet](WebServer/sessions.md#enabling-web-sessions). Elles sont utilisées pour les connexions Web (y compris les accès REST) et sont contrôlées par les [privilèges](../ORDA/privileges.md) qui leur sont attribués. +- [**Sessions utilisateur Web**](WebServer/sessions.md) : Les sessions utilisateur Web sont disponibles lorsque [les sessions évolutives (scalable sessions) sont activées dans votre projet](WebServer/sessions.md#enabling-web-sessions). They are used for Web connections (including REST access), and are controlled by assigned [privileges](../ORDA/privileges.md). - [**Sessions desktop**](../Desktop/sessions.md), qui comprennent : - [**Sessions utilisateurs distants**](../Desktop/sessions.md#remote-user-sessions) : Dans les applications client/serveur, les utilisateurs distants ont leurs propres sessions gérées sur le serveur. - [**Sessions procédures stockées**](../Desktop/sessions.md#stored-procedure-sessions) : Session utilisateur virtuelle pour toutes les procédures stockées exécutées sur le serveur. @@ -25,7 +25,7 @@ Les types de sessions suivants sont pris en charge par cette classe : :::warning A propos des privilèges de session -Tous les types de sessions peuvent gérer les privilèges, mais seul le code exécuté dans les [sessions web utilisateurs](WebServer/sessions.md) est en fait contrôlé par les privilèges de la session. +Tous les types de session peuvent gérer des privilèges, mais seul le code exécuté dans un **contexte web** est réellement contrôlé par les privilèges de la session. ::: @@ -85,13 +85,13 @@ Cette fonction ne supprime pas les **privilèges promus** du process web, qu'ils :::note Gardez à l'esprit que les privilèges ne s'appliquent qu'au code exécuté via les accès web, quel que soit le [type de session](#session-types) sur lequel cette fonction est exécutée. + ::: #### Exemple ```4d //Invalider la session d'un utilisateur web -var $isGuest : Boolean var $isOK : Boolean $isOK:=Session.clearPrivileges() @@ -178,6 +178,12 @@ Si aucun privilège avec *promoteId* n'a été promu à l'aide de [`.promote()`] Si plusieurs privilèges ont été ajoutés au process web, la fonction `demote()` doit être appelée pour chacun d'entre eux avec le *promoteId* approprié. Les privilèges sont empilés dans l'ordre dans lequel ils ont été ajoutés au process, il est recommandé de dépiler les privilèges dans l'ordre LIFO (*Last In, First Out*). +:::note + +Gardez à l'esprit que les privilèges ne s'appliquent qu'au code exécuté via les accès web, quel que soit le [type de session](#session-types) sur lequel cette fonction est exécutée. + +::: + #### Exemple ```4d @@ -490,6 +496,7 @@ La propriété `.info` décrit la session - **Sessions distantes** et **Sessions de procédure stockée** : L'objet `.info` est le même que celui renvoyé dans la propriété "session" par la commande [`Process activity`](../commands/process-activity.md). - **Sessions autonomes** : L'objet `.info` est le même que celui retourné par la commande [`Session info`](../commands/session-info.md). +- **Web user sessions**: The `.info` object contains properties available for web user sessions. L'objet `.info` contient les propriétés suivantes: @@ -548,7 +555,7 @@ La fonction `.isGuest()` retourne Tr :::note Compatibilité -Dans une session REST lorsque le [**mode Force login**](../REST/authUsers.md#force-login-mode) n'est pas activé, `.isGuest()` renvoie True si la session n'a pas de privilèges. +When the [*forcelogin* mode](../REST/authUsers.md#force-login-mode) is disabled, `.isGuest()` returns True if the session has no privileges. ::: @@ -680,6 +687,12 @@ La fonction renvoie `false` si : Dans ce cas, la session courante de l'utilisateur web est laissée intacte (aucune session n'est restaurée). +:::note + +Gardez à l'esprit que les privilèges ne s'appliquent qu'au code exécuté via les accès web, quel que soit le [type de session](#session-types) sur lequel cette fonction est exécutée. + +::: + #### Exemple Dans un singleton appelé par un HTTP request handler personnalisé : From e50367c762535e10c1e8ea76755bc6be0ba0bd09 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 14:37:15 +0100 Subject: [PATCH 007/156] New translations dt_number.md (French) --- .../version-21/Concepts/dt_number.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md index e8de0b63b25b94..d645b8d9481546 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/dt_number.md @@ -79,9 +79,9 @@ L'opérateur modulo % retourne des valeurs significatives avec des nombres appar ::: -### Integer division +### Division entière -The integer division operator divides one number by another and returns the whole number part of the result, discarding any remainder. `a\b` is equivalent to `Int(a/b)`. This operator returns significant values with integer numbers only. +L'opérateur de division entière divise un nombre par un autre et renvoie la partie entière du résultat, en rejetant tout reste. `a\b` est équivalent à `Int(a/b)`. Cet opérateur renvoie des valeurs significatives uniquement avec des nombres entiers. ### Comparaison des réels @@ -113,7 +113,7 @@ retourne 23 car l'expression (4 \* 5) est évaluée en premier lieu. Le résulta Des parenthèses peuvent être incluses dans d'autres parenthèses. Assurez-vous qu'il y ait une parenthèse fermante pour chaque parenthèse ouverte. Une parenthèse manquante ou placée à un mauvais endroit peut soit donner un résultat erroné, soit renvoyer une expression invalide. De plus, si vous avez l'intention de compiler vos applications, vous devez vous assurer d'une bonne utilisation des parenthèses. Le compilateur interprètera toute parenthèse manquante ou superflue comme une erreur de syntaxe. -## Opérateurs sur les bits +## Opérateurs bit à bit Les opérateurs bit à bit opèrent sur des expressions ou des valeurs d'Integers (longs). @@ -125,16 +125,16 @@ Comme un bit peut valoir 0 (zéro) ou 1, vous pouvez également considérer une Une expression qui utilise un opérateur bit à bit renvoie une valeur de type Long, à l'exception de l'opérateur Bit Test, pour lequel l'expression renvoie une valeur booléenne. Le tableau suivant fournit la liste des opérateurs sur les bits et leur syntaxe : -| Opération | Opérateur | Syntaxe | Retourne | -| -------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------ | -| ET | & | Long & Long | E. long | -| OU (inclusif) | | | long | E. long | E. long | -| OU (exclusif) | ^ | | Long ^ | Long | E. long | -| Décaler bits à gauche | << | long << E. long | long (voir note n°1) | -| Décaler bits à droite | > > | long >> E. long | long (voir note n°1) | -| Mettre bit à 1 | ?+ | long ?+ E. E. long | long (voir note n°2) | -| Mettre bit à 0 | ?- | long ?? | long (voir note n°2) | -| Tester bit | ?? | long \^| E. E. long | Booléen (voir note n°2) | +| Opération | Opérateur | Syntaxe | Retourne | +| -------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------ | +| ET | & | Long & Long | Long | +| OU (inclusif) | | | Long | Long | Long | +| OU (exclusif) | ^ | | Long ^ | Long | Long | +| Décaler bits à gauche | << | Long << Long | long (voir note n°1) | +| Décaler bits à droite | > > | Long >> Long | long (voir note n°1) | +| Mettre bit à 1 | ?+ | Long ?+ Long | long (voir note n°2) | +| Mettre bit à 0 | ?- | Long ?- Long | long (voir note n°2) | +| Tester bit | ?? | Long ?? Long | Booléen (voir note n°2) | #### Notes From f5f2c829d72c6d97f6390707eccfa1d18d95a89e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 14:37:33 +0100 Subject: [PATCH 008/156] New translations parameters.md (French) --- .../version-21/Concepts/parameters.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/parameters.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/parameters.md index 9838e143ea8cae..ae355a56a188fe 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/parameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Concepts/parameters.md @@ -53,10 +53,10 @@ L'ancienne syntaxe de déclaration, où les paramètres sont automatiquement cop ## Déclaration des paramètres -Inside called methods or class functions, you declare parameters using a **parameter name** along with a **parameter type**, separated by colon. +À l'intérieur des méthodes ou des fonctions de classe appelées, vous déclarez des paramètres en utilisant un **nom de paramètre** ainsi qu'un **type de paramètre**, séparés par deux points. -- For class functions, parameters are declared along with the function prototype, i.e. when using the `Function` or `Class Constructor` keywords. -- Pour les méthodes (méthodes projet, méthodes d'objets de formulaire, méthodes de base de données et triggers), les paramètres sont déclarés à l'aide du mot-clé **`#DECLARE`** au début du code de la méthode. +- Pour les fonctions de classe, les paramètres sont déclarés avec le prototype de la fonction, c'est-à-dire lors de l'utilisation des mots-clés `Function` ou `Class constructor`. +- Pour les méthodes (méthodes projet, méthodes objets de formulaire, méthodes base et triggers), les paramètres sont déclarés à l'aide du mot-clé **`#DECLARE`** au début du code de la méthode. :::info Compatibilité @@ -112,7 +112,7 @@ $entitySelection:=ds.User.query("login=:1"; $user) :::note -Do not confuse **parameter declarations** with [**variable declarations**](variables.md#declaring-variables). Using the `var` keyword with parameters will generate errors. +Ne confondez pas les **déclarations de paramètres** avec les [**déclarations de variables**](variables.md#declaring-variables). L'utilisation du mot-clé `var` avec des paramètres génère des erreurs. ::: From f90a2fd08187018a0a2e45d66b1544c93c38e8e5 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 14:50:45 +0100 Subject: [PATCH 009/156] New translations session.md (French) --- .../version-21/commands/session.md | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/session.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/session.md index f9a4c043e98979..23dd822200481c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/session.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/commands/session.md @@ -26,21 +26,21 @@ displayed_sidebar: docs ## Description -The `Session` command returns the `Session` object corresponding to the current session. +La commande `Session` retourne l'objet `Session` correspondant à la session courante. -Depending on the process from which the command is called, the current session can be: +Selon le process à partir duquel la commande est appelée, la session courante peut être : - une session web (lorsque les [sessions évolutives sont activées](WebServer/sessions.md#enabling-web-sessions)), -- a remote client session (on the server), -- a stored procedures session, -- a standalone session. +- une session utilisateur distant (sur le serveur), +- une session de procédures stockées, +- une session autonome. Pour plus d'informations, voir le paragraphe [Types de session](../API/SessionClass.md#session-types). -The command returns *Null* if: +La commande retourne *Null* si : -- it is called in a web process and scalable sessions are disabled on the web server, -- it is called on a remote 4D. +- elle est appelée dans un process web et les sessions évolutives sont désactivées sur le serveur web, +- elle est appelée sur un client 4D distant. ### Sessions Web @@ -54,16 +54,16 @@ L'objet `Session` des sessions web est disponible depuis n'importe quel process Pour plus d'informations sur les sessions utilisateur web, veuillez consulter la section [Sessions web](../WebServer/sessions.md). -### Sessions clients distants +### Sessions utilisateur distant -L'objet `Session` des sessions client distants est disponible depuis : +L'objet `Session` des sessions utilisateur distantes est disponible depuis : - Les méthodes projet qui ont l'attribut [Exécuter sur serveur](../Project/code-overview.md#execute-on-server) (elles sont exécutées dans le process jumeau du process client), - Les Triggers, - Les [fonctions du modèle de données](../ORDA/ordaClasses.md) ORDA (sauf celles déclarées avec le mot-clé [`local`](../ORDA/ordaClasses.md#local-functions), - Les méthodes base `On Server Open Connection` et `On Server Shutdown Connection`. -For more information on remote user sessions, please refer to the [**Remote user sessions**](../Desktop/sessions.md#remote-user-sessions) paragraph. +Pour plus d'informations sur les sessions utilisateur distant, veuillez consulter le paragraphe [**Sessions utilisateur distant**](../Desktop/sessions.md#remote-user-sessions). ### Session des procédures stockées @@ -72,29 +72,29 @@ Tous les process des procédures stockées partagent la même session d'utilisat - les méthodes appelées avec la commande [`Execute on server`](../commands-legacy/execute-on-server.md), - Les méthodes base `On Server Startup`, `On Server Shutdown`, `On Backup Startup`, `On Backup Shutdown`, et `On System event`. -For more information on stored procedures virtual user session, please refer to the [**Stored procedure sessions**](../Desktop/sessions.md#stored-procedure-sessions) paragraph. +Pour plus d'informations sur la session utilisateur virtuel des procédures stockées, veuillez vous reporter au paragraphe [**Sessions de procédures stockées**](../Desktop/sessions.md#stored-procedure-sessions). ### Session autonome L'objet `Session` est disponible à partir de n'importe quel process dans les applications autonomes (mono-utilisateur) afin que vous puissiez écrire et tester votre code client/serveur en utilisant l'objet `Session` dans votre environnement de développement 4D. -For more information on standalone sessions, please refer to the [**Standalone sessions**](../Desktop/sessions.md#standalone-sessions) paragraph. +Pour plus d'informations sur les sessions autonomes, veuillez consulter le paragraphe [**Sessions autonomes**](../Desktop/sessions.md#standalone-sessions). -### `Session` and components +### `Session` et composants -When `Session` is called from the code of different [components loaded in the project](../Concepts/components.md), the command returns an object depending on the calling request and the context: +Lorsque `Session` est appelée à partir du code de différents [composants chargés dans le projet](../Concepts/components.md), la commande renvoie un objet qui dépend de la requête d'appel et du contexte : -- in case of a web request, `Session` always returns the session attached to the target web server of the request (and not a session of the component's web server), -- in case of a remote request executed on the server, `Session` always returns the session attached to the remote user, -- in case of a stored procedure session or a standalone session, `Session` always returns the single current session (the same object is used during all the work session). +- dans le cas d'une requête web, `Session` renvoie toujours la session attachée au serveur web cible de la requête (et non une session du serveur web du composant), +- dans le cas d'une requête distante exécutée sur le serveur, `Session` renvoie toujours la session attachée à l'utilisateur distant, +- dans le cas d'une session de procédure stockée ou d'une session autonome, `Session` renvoie toujours l'unique session courante (le même objet est utilisé pendant toute la session de travail). ```mermaid flowchart TD - A[Need a session] --> B{Is it a web request?} - B -->|Yes| C[Use the session attached to the web server of the web request] - B -->|No| D{Is it a remote request?} - D -->|Yes| E[Use the object of the remote user session] - D -->|No| F[Use the unique object of the stored procedure/standalone session] + A[Session requise] --> B{Est-ce une requête web?} + B -->|Yes| C[Utiliser la session associée au serveur web de la requête web] + B -->|No| D{Est-ce une requête distante?} + D -->|Yes| E[Utiliser l'objet de la session utilisateur distant] + D -->|No| F[Utiliser l'objet unique de la session procédure stockée/autonome] classDef decision fill:#f9f,stroke:#333,stroke-width:2px; classDef process fill:#bbf,stroke:#333,stroke-width:2px; @@ -117,7 +117,7 @@ IP:port/4DACTION/action_Session //action_Session method Case of :(Session#Null) - If(Session.hasPrivilege("CreateInvoices")) //calling the hasPrivilege function + If(Session.hasPrivilege("CreateInvoices")) //appel de la fonction hasPrivilege WEB SEND TEXT("4DACTION --> Session is CreateInvoices") Else WEB SEND TEXT("4DACTION --> Session is not CreateInvoices") @@ -133,7 +133,7 @@ IP:port/4DACTION/action_Session [Session API](../API/SessionClass.md) [Desktop sessions](../Desktop/sessions.md) [Web server user sessions](../WebServer/sessions.md) -[*Scalable sessions for advanced web applications* (blog post)](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) +[*Sessions évolutives pour les applications web avancées* (blog post)](https://blog.4d.com/scalable-sessions-for-advanced-web-applications/) ## Propriétés From 294c8f9f3ea47ba42d15cb083df0d1bfdcaac915 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 15:41:07 +0100 Subject: [PATCH 010/156] New translations sessionclass.md (Spanish) --- .../current/API/SessionClass.md | 50 ++++++++++++------- 1 file changed, 32 insertions(+), 18 deletions(-) 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 89c842077fc7a4..db83d9067553b6 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -3,7 +3,7 @@ id: SessionClass title: Session --- -Los objetos de sesión son devueltos por el comando [`Session`](../commands/session.md). Estos objetos ofrecen al desarrollador una interfaz que permite gestionar la sesión de usuario actual y ejecutar acciones como almacenar datos contextuales, compartir información entre procesos de sesión, lanzar procesos preferentes relacionados con la sesión o (sólo web) gestionar [privilegios](../ORDA/privileges.md). +Los objetos de sesión son devueltos por el comando [`Session`](../commands/session.md). These objects provide the developer with an interface allowing to manage the current user session and execute actions such as store contextual data, share information between session processes, launch session-related preemptive processes, or (web context only) manage [privileges](../ORDA/privileges.md). :::tip Entradas de blog relacionadas @@ -17,7 +17,7 @@ Los objetos de sesión son devueltos por el comando [`Session`](../commands/sess Los siguientes tipos de sesiones están soportados por esta clase: -- [**Sesiones usuario web**](WebServer/sessions.md): las sesiones usuario web están disponibles cuando [las sesiones escalables están activas en su proyecto](WebServer/sessions.md#enabling-web-sessions). They are used for Web connections (including and REST access), and are controlled by assigned [privileges](../ORDA/privileges.md). +- [**Sesiones usuario web**](WebServer/sessions.md): las sesiones usuario web están disponibles cuando [las sesiones escalables están activas en su proyecto](WebServer/sessions.md#enabling-web-sessions). They are used for Web connections (including REST access), and are controlled by assigned [privileges](../ORDA/privileges.md). - [**Sesiones de escritorio**](../Desktop/sessions.md), que incluyen: - [**Remote user sessions**](../Desktop/sessions.md#remote-user-sessions): In client/server applications, remote users have their own sessions managed on the server. - [**Stored procedures sessions**](../Desktop/sessions.md#stored-procedure-sessions): Virtual user session for all stored procedures executed on the server. @@ -84,7 +84,8 @@ Esta función no elimina los **privilegios promovidos** del proceso web, tanto s :::note -Keep in mind that privileges only apply to the code executed through web accesses, whatever the [session type](#session-types) on which this function is executed. +Tenga en cuenta que los privilegios sólo se aplican al código ejecutado a través de accesos web, sea cual sea el [tipo de sesión](#session-types) sobre el que se ejecuta esta función. + ::: #### Ejemplo @@ -177,6 +178,12 @@ Si ningún privilegio con *promoteId* fue promovido usando [`.promote()`](#promo Si se han añadido varios privilegios al proceso web, se debe llamar a la función `demote()` para cada uno de ellos con el *promoteId* apropiado. Los privilegios se apilan en el orden en que se han añadido al proceso, se recomienda desapilar los privilegios en un orden LIFO (*Last In, First Out*). +:::note + +Tenga en cuenta que los privilegios sólo se aplican al código ejecutado a través de accesos web, sea cual sea el [tipo de sesión](#session-types) sobre el que se ejecuta esta función. + +::: + #### Ejemplo ```4d @@ -274,7 +281,7 @@ Esta función devuelve los privilegios asignados a una Sesión utilizando única :::note -Keep in mind that privileges only apply to the code executed through web accesses, whatever the [session type](#session-types) on which this function is executed. +Tenga en cuenta que los privilegios sólo se aplican al código ejecutado a través de accesos web, sea cual sea el [tipo de sesión](#session-types) sobre el que se ejecuta esta función. ::: #### Ejemplo @@ -344,10 +351,10 @@ $privileges := Session.getPrivileges()
Historia -| Lanzamiento | Modificaciones | -| ----------- | ------------------------------------------------------------------------------- | -| 21 | Returns True for promoted privileges, Support of remote and standalone sessions | -| 18 R6 | Añadidos | +| Lanzamiento | Modificaciones | +| ----------- | ---------------------------------------------------------------------------------- | +| 21 | Devuelve True para privilegios promovidos, Soporte de sesiones remotas y autónomas | +| 18 R6 | Añadidos |
@@ -374,7 +381,7 @@ Esta función devuelve True para el *privilegio* si se llama desde una función :::note -Keep in mind that privileges only apply to the code executed through web accesses, whatever the [session type](#session-types) on which this function is executed. +Tenga en cuenta que los privilegios sólo se aplican al código ejecutado a través de accesos web, sea cual sea el [tipo de sesión](#session-types) sobre el que se ejecuta esta función. ::: #### Ejemplo @@ -383,16 +390,16 @@ Desea verificar si el privilegio "CreateInvoices" está asociado a la sesión de ```4d If (Session.hasPrivilege("CreateInvoices")) - //Access to Invoice creation features + //Acceso a las funciones de creación de facturas Else - //No access to Invoice creation features + //Sin acceso a las funciones de creación de facturas End if ``` #### Ver también -[*Restrict data according to privileges or information saved in session storage* (blog post)](https://blog.4d.com/?s=hasPrivilege) +[*Restringir datos según privilegios o información guardada en almacenamiento de sesión* (entrada de blog)](https://blog.4d.com/?s=hasPrivilege) @@ -485,10 +492,11 @@ End if #### Descripción -The `.info` property describes the desktop or web session. +La propiedad `.info` describe la sesión de escritorio o web. -- **Remote 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.md) command. -- **Standalone sessions**: The `.info` object is the same object as the one returned by the [`Session info`](../commands/session-info.md) command. +- **Sesiones remotas** y **Sesiones de procedimientos almacenados**: el objeto `.info` es el mismo objeto que el devuelto en la propiedad "session" por el comando [`Process activity`](../commands/process-activity.md). +- **Sesiones estándar**: el objeto `.info` es el mismo objeto que el devuelto por el comando [`Session info`](../commands/session-info.md). +- **Web user sessions**: The `.info` object contains properties available for web user sessions. El objeto `.info` contiene las siguientes propiedades: @@ -547,7 +555,7 @@ The `.isGuest()` function returns Tr :::note Compatibilidad -With legacy sessions, `.isGuest()` returns True if the session has no privileges. +When the [*forcelogin* mode](../REST/authUsers.md#force-login-mode) is disabled, `.isGuest()` returns True if the session has no privileges. ::: @@ -605,7 +613,7 @@ Para eliminar un privilegio dinámicamente, llame a la función `demote()` con e :::note -Keep in mind that privileges only apply to the code executed through web accesses, whatever the [session type](#session-types) on which this function is executed. +Tenga en cuenta que los privilegios sólo se aplican al código ejecutado a través de accesos web, sea cual sea el [tipo de sesión](#session-types) sobre el que se ejecuta esta función. ::: #### Ejemplo @@ -679,6 +687,12 @@ La función devuelve `false` si: En este caso, la sesión actual de usuario web se deja sin tocar (no se restaura la sesión). +:::note + +Tenga en cuenta que los privilegios sólo se aplican al código ejecutado a través de accesos web, sea cual sea el [tipo de sesión](#session-types) sobre el que se ejecuta esta función. + +::: + #### Ejemplo En un singleton llamado por un HTTP Request handler personalizado: @@ -751,7 +765,7 @@ La propiedad [`userName`](#username) está disponible a nivel de objeto de sesi :::note -Keep in mind that privileges only apply to the code executed through web accesses, whatever the [session type](#session-types) on which this function is executed. +Tenga en cuenta que los privilegios sólo se aplican al código ejecutado a través de accesos web, sea cual sea el [tipo de sesión](#session-types) sobre el que se ejecuta esta función. ::: #### Ejemplo From 8c293941f69d76b55e5e3fd816336511a777ab17 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 15:45:21 +0100 Subject: [PATCH 011/156] New translations updates.md (Spanish) --- i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md | 1 + 1 file changed, 1 insertion(+) 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 628f7c8f19c8e1..b873e5c30eed98 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -12,6 +12,7 @@ Lea [**Novedades en 4D 21 R2**](https://blog.4d.com/en-whats-new-in-4d-21-r2/), - [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) has been enhanced to provide greater precision in error detection (see [this blog post](https://blog.4d.com/better-error-handling-and-type-inference-for-4d-developers) for more information). - [4D Write Pro standard actions](../WritePro/user-legacy/standard-actions.md) that apply [lists](../WritePro/user-legacy/using-a-4d-write-pro-area.md#lists) now automatically adjust paragraph margins to keep markers positioned inside it. - Built-in support of `order by` in query strings for AI vector searches using [`query()`](../API/DataClassClass.md#query-by-vector-similarity) functions and the [REST API](../REST/$orderby.md). +- You can now create and open Qodly Pages from the [Explorer](../Develop/explorer.md). - You can [customize the icons of your components](../Extensions/develop-components.md#custom-icon). - 4D AIKit component: new [File API](../aikit/Classes/OpenAIFilesAPI.md) class to implement **file upload** features. - [**Find in Design**](../Project/search-replace.md#search-in-components) and [**Replace in contents**](../Project/search-replace.md#replace-in-contents) features can now support editable components. From 08f0c87d7233b574ff4f70ec7557b427fd140836 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 15:45:47 +0100 Subject: [PATCH 012/156] New translations architecture.md (Spanish) --- .../current/Project/architecture.md | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) 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 755af59c77aedf..444d6171ea58e3 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -69,24 +69,18 @@ Este archivo de texto también puede contener llaves de configuración, en parti | styleSheets_mac.css | Hojas de estilo css de Mac (a partir de una base binaria convertida) | CSS | | styleSheets_windows.css | Hojas de estilo css en Windows (a partir de una base binaria convertida) | CSS | -#### `DatabaseMethods` - -| Contenido | Descripción | Formato | -| ---------------------------------------- | --------------------------------------------------------------------------------- | ------- | -| *databaseMethodName*.4dm | Métodos base definidos en el proyecto. Un archivo por método base | text | - -#### `Métodos` - -| Contenido | Descripción | Formato | -| -------------------------------- | -------------------------------------------------------------------------------- | ------- | -| *methodName*.4dm | Métodos proyecto definidos en el proyecto. Un archivo por método | text | - #### `Clases` | Contenido | Descripción | Formato | | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- | | *className*.4dm | Método de definición de clases usuario, que permite instanciar objetos específicos. Un archivo por clase, el nombre del archivo es el nombre de la clase | text | +#### `DatabaseMethods` + +| Contenido | Descripción | Formato | +| ---------------------------------------- | --------------------------------------------------------------------------------- | ------- | +| *databaseMethodName*.4dm | Métodos base definidos en el proyecto. Un archivo por método base | text | + #### `Formularios` | Contenido | Descripción | Formato | @@ -96,6 +90,20 @@ Este archivo de texto también puede contener llaves de configuración, en parti | *formName*/Images/*pictureName* | Imagen estática del formulario proyecto | picture | | *formName*/ObjectMethods/*objectName*.4dm | Métodos objeto. Un archivo por método objeto | text | +#### `Métodos` + +| Contenido | Descripción | Formato | +| -------------------------------- | -------------------------------------------------------------------------------- | ------- | +| *methodName*.4dm | Métodos proyecto definidos en el proyecto. Un archivo por método | text | + +#### `Shared` + +| Contenido | Descripción | Formato | +| ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | +| assets/ | [Shared files](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/events/bindingActionToEvents#shared-folder) such as pictures used in Qodly pages | varios | +| CustomComponents/ | [Custom components](https://developer.4d.com/qodly/Integrations/customComponent/overview) files used in Qodly pages | json | +| *other_files*.json | shared elements such as css or datasources used in Qodly pages | json | + #### `TableForms` | Contenido | Descripción | Formato | @@ -117,6 +125,13 @@ Este archivo de texto también puede contener llaves de configuración, en parti **Note:** The .4dm file extension is a text-based file format, containing the code of a 4D method. Es compatible con las herramientas de control de versión. +#### `WebForms` + +| Contenido | Descripción | Formato | +| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ------- | +| *QodlyFormName*.WebForm | Json representations of Qodly pages | JSON | +| crafted_components.json | Description of [components crafted](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/craftedComponents) on Qodly pages | JSON | + ### `Trash` La carpeta Trash contiene los métodos y formularios que se han eliminado del proyecto (si los hay). Puede contener las siguientes carpetas: From 4b74099b45daad03aac1048ae83511d4b41a489c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 16:06:27 +0100 Subject: [PATCH 013/156] New translations session.md (Spanish) --- .../current/commands/session.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/commands/session.md b/i18n/es/docusaurus-plugin-content-docs/current/commands/session.md index 52f39a41c501ba..d0d540d80dc816 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/commands/session.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/commands/session.md @@ -31,7 +31,7 @@ The `Session` command returns the `Sessio Dependiendo del proceso desde el que se llame al comando, la sesión actual puede ser: - una sesión web (cuando las [sesiones escalables están activadas](WebServer/sessions.md#enabling-web-sessions)), -- una sesión de cliente remoto (en el servidor), +- a remote user session (on the server), - una sesión de procedimientos almacenados, - a standalone session. @@ -40,7 +40,7 @@ Para obtener más información, consulte el párrafo [Tipos de sesion](../API/Se El comando devuelve *Null* si: - se llama en un proceso web y se desactivan las sesiones escalables en el servidor web, -- se llama en un 4D remoto. +- it is called on a remote 4D client. ### Sesiones web @@ -54,9 +54,9 @@ El objeto `Session` de las sesiones web está disponible desde cualquier proceso Para más información sobre las sesiones usuario web, consulte la sección [Sesiones web](../WebServer/sessions.md). -### Sesiones de cliente remoto +### Sesiones de usuarios remotos -El objeto `Session` de las sesiones cliente remotas está disponible desde: +The `Session` object of remote user sessions is available from: - Métodos proyecto que tienen el atributo [Ejecutar en el Servidor](../Project/code-overview.md#execute-on-server) (se ejecutan en el proceso "twinned" del proceso cliente), - Triggers, From 1a4f73a28e7d9b64acb34f6f89517cb2c6dc7dc9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 16:44:26 +0100 Subject: [PATCH 014/156] New translations sessionclass.md (Spanish) --- .../version-21/API/SessionClass.md | 47 ++++++++++++------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SessionClass.md b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SessionClass.md index c3bbfb0339223d..fda5fc5bf40033 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/API/SessionClass.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/API/SessionClass.md @@ -17,7 +17,7 @@ Los objetos de sesión son devueltos por el comando [`Session`](../commands/sess Los siguientes tipos de sesiones están soportados por esta clase: -- [**Sesiones usuario web**](WebServer/sessions.md): las sesiones usuario web están disponibles cuando [las sesiones escalables están activas en su proyecto](WebServer/sessions.md#enabling-web-sessions). Se utilizan para las conexiones Web (incluidos los accesos REST) y se controlan mediante los [privilegios](../ORDA/privileges.md) asignados. +- [**Sesiones usuario web**](WebServer/sessions.md): las sesiones usuario web están disponibles cuando [las sesiones escalables están activas en su proyecto](WebServer/sessions.md#enabling-web-sessions). They are used for Web connections (including REST access), and are controlled by assigned [privileges](../ORDA/privileges.md). - [**Sesiones de escritorio**](../Desktop/sessions.md), que incluyen: - [Sesiones usuario remoto\*\*](../Desktop/sessions.md#remote-user-sessions): en las aplicaciones cliente/servidor, los usuarios remotos tienen sus propias sesiones gestionadas en el servidor. - [Sesiones procedimientos almacenados\*\*](../Desktop/sessions.md#stored-procedure-sessions): sesión usuario virtual para todos los procedimientos almacenados ejecutados en el servidor. @@ -25,7 +25,7 @@ Los siguientes tipos de sesiones están soportados por esta clase: :::warning Acerca de los privilegios de sesión -Todos los tipos de sesión pueden manejar los privilegios, pero solo el código ejecutado en las [sesiones usuario web](WebServer/sessions.md) está realmente controlado por los privilegios de sesión. +All session types can handle privileges, but only the code executed in a **web context** is actually controlled by session's privileges. ::: @@ -85,13 +85,13 @@ Esta función no elimina los **privilegios promovidos** del proceso web, tanto s :::note Tenga en cuenta que los privilegios sólo se aplican al código ejecutado a través de accesos web, sea cual sea el [tipo de sesión](#session-types) sobre el que se ejecuta esta función. + ::: #### Ejemplo ```4d -//Invalidar la sesión de un usuario web -var $isGuest : Boolean +//Invalidate a web user session var $isOK : Boolean $isOK:=Session.clearPrivileges() @@ -105,10 +105,10 @@ $isOK:=Session.clearPrivileges()
Historia -| Lanzamiento | Modificaciones | -| ----------- | --------------------------------------- | -| 21 | Soporte de sesiones remotas y autónomas | -| 20 R9 | Añadidos | +| Lanzamiento | Modificaciones | +| ----------- | ----------------------------------------- | +| 21 | Support of remote and standalone sessions | +| 20 R9 | Añadidos |
@@ -116,10 +116,10 @@ $isOK:=Session.clearPrivileges() -| Parámetros | Tipo | | Descripción | -| ---------- | ------- | :-------------------------: | ------------------------------------------------------------------------------- | -| lifespan | Integer | -> | Duración del token de sesión en segundos (solo sesiones web) | -| Resultado | Text | <- | UUID del token | +| Parámetros | Tipo | | Descripción | +| ---------- | ------- | :-------------------------: | ------------------------------------------------------------------------ | +| lifespan | Integer | -> | Session token lifespan in seconds (web sessions only) | +| Resultado | Text | <- | UUID del token | @@ -131,13 +131,13 @@ Para más información sobre los tokens OTP, por favor consulte [esta sección]( Si se utiliza un token caducado para restaurar la sesión, se ignora. -Para las sesiones web, puede definir un tiempo de espera personalizado pasando un valor en segundos en *lifespan*. Por defecto, si se omite el parámetro *lifespan*, el token se crea con el mismo tiempo de vida que el [`.idleTimeOut`](#idletimeout) de la sesión. +For web sessions, you can set a custom timeout by passing a value in seconds in *lifespan*. Por defecto, si se omite el parámetro *lifespan*, el token se crea con el mismo tiempo de vida que el [`.idleTimeOut`](#idletimeout) de la sesión. -Para las sesiones de escritorio, el token se crea con una vida útil de 10 segundos. +For desktop sessions, the token is created with a 10 seconds lifespan. -El token devuelto puede ser utilizado en intercambios con aplicaciones de terceros o sitios web 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. +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. -El token devuelto puede ser utilizado por 4D Server o la aplicación monousuario 4D para identificar las peticiones procedentes de la web que [comparten la sesión](../Desktop/sessions.md#sharing-a-desktop-session-for-web-accesses). +The returned token can be used by 4D Server or 4D single-user application to identify requests coming from the web that [share the session](../Desktop/sessions.md#sharing-a-desktop-session-for-web-accesses). #### Ejemplo @@ -178,6 +178,12 @@ Si ningún privilegio con *promoteId* fue promovido usando [`.promote()`](#promo Si se han añadido varios privilegios al proceso web, se debe llamar a la función `demote()` para cada uno de ellos con el *promoteId* apropiado. Los privilegios se apilan en el orden en que se han añadido al proceso, se recomienda desapilar los privilegios en un orden LIFO (*Last In, First Out*). +:::note + +Tenga en cuenta que los privilegios sólo se aplican al código ejecutado a través de accesos web, sea cual sea el [tipo de sesión](#session-types) sobre el que se ejecuta esta función. + +::: + #### Ejemplo ```4d @@ -490,6 +496,7 @@ La propiedad `.info` describe la sesión - **Sesiones remotas** y **Sesiones de procedimientos almacenados**: el objeto `.info` es el mismo objeto que el devuelto en la propiedad "session" por el comando [`Process activity`](../commands/process-activity.md). - **Sesiones estándar**: el objeto `.info` es el mismo objeto que el devuelto por el comando [`Session info`](../commands/session-info.md). +- **Web user sessions**: The `.info` object contains properties available for web user sessions. El objeto `.info` contiene las siguientes propiedades: @@ -548,7 +555,7 @@ La función `.isGuest()` devuelve Tr :::note Compatibilidad -En una sesión REST cuando el modo [**Forzar inicio de sesión**](../REST/authUsers.md#force-login-mode) no está activado, `.isGuest()` devuelve True si la sesión no tiene privilegios. +When the [*forcelogin* mode](../REST/authUsers.md#force-login-mode) is disabled, `.isGuest()` returns True if the session has no privileges. ::: @@ -680,6 +687,12 @@ La función devuelve `false` si: En este caso, la sesión actual de usuario web se deja sin tocar (no se restaura la sesión). +:::note + +Tenga en cuenta que los privilegios sólo se aplican al código ejecutado a través de accesos web, sea cual sea el [tipo de sesión](#session-types) sobre el que se ejecuta esta función. + +::: + #### Ejemplo En un singleton llamado por un HTTP Request handler personalizado: From f61e614fe92e8c77b0c4feaf64665b3b77f270f7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 16:58:15 +0100 Subject: [PATCH 015/156] New translations session.md (Spanish) --- .../version-21/commands/session.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/session.md b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/session.md index 52f39a41c501ba..d0d540d80dc816 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/commands/session.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/commands/session.md @@ -31,7 +31,7 @@ The `Session` command returns the `Sessio Dependiendo del proceso desde el que se llame al comando, la sesión actual puede ser: - una sesión web (cuando las [sesiones escalables están activadas](WebServer/sessions.md#enabling-web-sessions)), -- una sesión de cliente remoto (en el servidor), +- a remote user session (on the server), - una sesión de procedimientos almacenados, - a standalone session. @@ -40,7 +40,7 @@ Para obtener más información, consulte el párrafo [Tipos de sesion](../API/Se El comando devuelve *Null* si: - se llama en un proceso web y se desactivan las sesiones escalables en el servidor web, -- se llama en un 4D remoto. +- it is called on a remote 4D client. ### Sesiones web @@ -54,9 +54,9 @@ El objeto `Session` de las sesiones web está disponible desde cualquier proceso Para más información sobre las sesiones usuario web, consulte la sección [Sesiones web](../WebServer/sessions.md). -### Sesiones de cliente remoto +### Sesiones de usuarios remotos -El objeto `Session` de las sesiones cliente remotas está disponible desde: +The `Session` object of remote user sessions is available from: - Métodos proyecto que tienen el atributo [Ejecutar en el Servidor](../Project/code-overview.md#execute-on-server) (se ejecutan en el proceso "twinned" del proceso cliente), - Triggers, From 406d2febde3c1c3c628488bf6d370fd658074baa Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 17:48:47 +0100 Subject: [PATCH 016/156] New translations sessionclass.md (Japanese) --- .../current/API/SessionClass.md | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md index 8d9501c5e11350..56a7acce732faf 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -3,7 +3,7 @@ id: SessionClass title: Session --- -Session オブジェクトは [`Session`](../commands/session.md) コマンドによって返されます。 このオブジェクトは、カレントユーザーセッションを管理するためのインターフェースをデベロッパーに対して提供し、コンテキストデータの保存、プロセス間の情報共有、セッションに関連したプリエンプティブプロセスの開始などのアクションの実行や、[アクセス権](../ORDA/privileges.md) の管理を可能にします。 +Session オブジェクトは [`Session`](../commands/session.md) コマンドによって返されます。 These objects provide the developer with an interface allowing to manage the current user session and execute actions such as store contextual data, share information between session processes, launch session-related preemptive processes, or (web context only) manage [privileges](../ORDA/privileges.md). :::tip 関連したblog 記事 @@ -17,7 +17,7 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド このクラスは以下の種類のセッションをサポートしています: -- [**Webユーザーセッション**](WebServer/sessions.md): [プロジェクトにおいてスケーラブルセッションが有効化されている](WebServer/sessions.md#webセッションの有効化) 場合、Webユーザーセッションが利用可能です。 これらは(REST アクセスを含めた)Web 接続に使用され、割り当てられた[権限](../ORDA/privileges.md) によって管理されます。 +- [**Webユーザーセッション**](WebServer/sessions.md): [プロジェクトにおいてスケーラブルセッションが有効化されている](WebServer/sessions.md#webセッションの有効化) 場合、Webユーザーセッションが利用可能です。 They are used for Web connections (including REST access), and are controlled by assigned [privileges](../ORDA/privileges.md). - [**デスクトップセッション**](../Desktop/sessions.md)。これには以下のものが含まれます: - [**リモートユーザー セッション**](../Desktop/sessions.md#リモートユーザーセッション): クライアント/サーバーアプリケーションでは、リモートユーザーは、サーバー上で管理される独自のセッションを持ちます。 - [**ストアドプロシージャーセッション**](../Desktop/sessions.md#ストアドプロシージャーセッション): サーバー上で実行される全てのストアドプロシージャーセッションの仮想ユーザーセッション。 @@ -85,6 +85,7 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド :::note 権限は、この関数が実行された[セッションの種類](#セッションの種類) に関わらず、Web アクセスを通して実行されたコードにのみ適用されるという点に注意してください。 + ::: #### 例題 @@ -177,6 +178,12 @@ Web プロセス内において *promoteId* で指定した権限が [`.promote( Web プロセスに複数の権限が追加されていた場合、 `demote()` 関数はそれぞれの権限に対して適切な *promoteId* を使用して呼び出す必要があります。 権限はプロセスに対して追加された順番でスタックされているため、スタックを解除する場合にはLIFO (*Last In, First Out*) 順で解除することが推奨されます。 +:::note + +権限は、この関数が実行された[セッションの種類](#セッションの種類) に関わらず、Web アクセスを通して実行されたコードにのみ適用されるという点に注意してください。 + +::: + #### 例題 ```4d @@ -489,6 +496,7 @@ End if - **リモートセッション** および **ストアドプロシージャーセッション**の場合: `.info` オブジェクトは[`Process activity`](../commands/process-activity.md) コマンドの "session" プロパティに返されるオブジェクトと同じです。 - **スタンドアロンセッションの場合**: `.info` オブジェクトは、[`Session info`](../commands/session-info.md) コマンドで返されるものと同じオブジェクトです。 +- **Web user sessions**: The `.info` object contains properties available for web user sessions. `.info` オブジェクトには、次のプロパティが格納されています: @@ -547,7 +555,7 @@ End if :::note 互換性 -旧式のセッションでは、`.isGuest()` はセッションに何の権限もない場合に True を返します。 +When the [*forcelogin* mode](../REST/authUsers.md#force-login-mode) is disabled, `.isGuest()` returns True if the session has no privileges. ::: @@ -679,6 +687,12 @@ End if これらの場合には、カレントのWeb ユーザーセッションはそのまま残されます(セッションは復元されません)。 +:::note + +権限は、この関数が実行された[セッションの種類](#セッションの種類) に関わらず、Web アクセスを通して実行されたコードにのみ適用されるという点に注意してください。 + +::: + #### 例題 カスタムのHTTP リクエストハンドラーから呼ばれたシングルトンの例: From 3d8c7e26437ec54ac493640d0a86865b5ad4a4c0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 17:52:52 +0100 Subject: [PATCH 017/156] New translations updates.md (Japanese) --- i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md | 1 + 1 file changed, 1 insertion(+) 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 5a162fac438c38..b5592e2ce5fcc1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -12,6 +12,7 @@ title: リリースノート - [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) has been enhanced to provide greater precision in error detection (see [this blog post](https://blog.4d.com/better-error-handling-and-type-inference-for-4d-developers) for more information). - [4D Write Pro standard actions](../WritePro/user-legacy/standard-actions.md) that apply [lists](../WritePro/user-legacy/using-a-4d-write-pro-area.md#lists) now automatically adjust paragraph margins to keep markers positioned inside it. - Built-in support of `order by` in query strings for AI vector searches using [`query()`](../API/DataClassClass.md#query-by-vector-similarity) functions and the [REST API](../REST/$orderby.md). +- You can now create and open Qodly Pages from the [Explorer](../Develop/explorer.md). - You can [customize the icons of your components](../Extensions/develop-components.md#custom-icon). - 4D AIKit component: new [File API](../aikit/Classes/OpenAIFilesAPI.md) class to implement **file upload** features. - [**Find in Design**](../Project/search-replace.md#search-in-components) and [**Replace in contents**](../Project/search-replace.md#replace-in-contents) features can now support editable components. From c731e728a981afab1de0a25e7f91ff1bd484a306 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 17:53:13 +0100 Subject: [PATCH 018/156] New translations architecture.md (Japanese) --- .../current/Project/architecture.md | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md b/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md index c922921306853f..896f20d7891ddc 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -69,24 +69,18 @@ title: アーキテクチャー | styleSheets_mac.css | Mac用 CSS スタイルシート (変換されたバイナリデータベースより) | CSS | | styleSheets_windows.css | Windows用 CSS スタイルシート (変換されたバイナリデータベースより) | CSS | -#### `DatabaseMethods` - -| 内容 | 説明 | 形式 | -| ---------------------------------------- | ----------------------------------------------------------------------------------------------- | ---- | -| *databaseMethodName*.4dm | プロジェクト内で定義されているデータベースメソッド プロジェクト内で定義されているデータベースメソッド (1つのデータベースメソッドにつき1ファイル)。 | text | - -#### `Methods` - -| 内容 | 説明 | 形式 | -| -------------------------------- | ------------------------------------------------------------------------------------------------------- | ---- | -| *methodName*.4dm | プロジェクト内で定義されているプロジェクトメソッド (1つのメソッドにつき1ファイル)。 (1つのメソッドにつき1ファイル)。 | text | - #### `Classes` | 内容 | 説明 | 形式 | | ------------------------------- | ---------------------------------------------------------------------- | ---- | | *className*.4dm | 特定のオブジェクトをインスタンス化するための、ユーザークラス用の定義メソッド。 1クラスにつき1ファイル。 ファイル名がクラス名になります。 | text | +#### `DatabaseMethods` + +| 内容 | 説明 | 形式 | +| ---------------------------------------- | ----------------------------------------------------------------------------------------------- | ---- | +| *databaseMethodName*.4dm | プロジェクト内で定義されているデータベースメソッド プロジェクト内で定義されているデータベースメソッド (1つのデータベースメソッドにつき1ファイル)。 | text | + #### `Forms` | 内容 | 説明 | 形式 | @@ -96,6 +90,20 @@ title: アーキテクチャー | *formName*/Images/*pictureName* | プロジェクトフォームのスタティックピクチャー | picture | | *formName*/ObjectMethods/*objectName*.4dm | オブジェクトメソッド (1つのオブジェクトメソッドにつき1ファイル) | text | +#### `Methods` + +| 内容 | 説明 | 形式 | +| -------------------------------- | ------------------------------------------------------------------------------------------------------- | ---- | +| *methodName*.4dm | プロジェクト内で定義されているプロジェクトメソッド (1つのメソッドにつき1ファイル)。 (1つのメソッドにつき1ファイル)。 | text | + +#### `Shared` + +| 内容 | 説明 | 形式 | +| ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ---- | +| assets/ | [Shared files](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/events/bindingActionToEvents#shared-folder) such as pictures used in Qodly pages | 様々 | +| CustomComponents/ | [Custom components](https://developer.4d.com/qodly/Integrations/customComponent/overview) files used in Qodly pages | json | +| *other_files*.json | shared elements such as css or datasources used in Qodly pages | json | + #### `TableForms` | 内容 | 説明 | 形式 | @@ -118,6 +126,13 @@ title: アーキテクチャー **注:** 拡張子 .4dm のファイルは、4Dメソッドのコードをテキスト形式で格納しており、 ソース管理ツールに対応しています。 +#### `WebForms` + +| 内容 | 説明 | 形式 | +| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ---- | +| *QodlyFormName*.WebForm | Json representations of Qodly pages | JSON | +| crafted_components.json | Description of [components crafted](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/craftedComponents) on Qodly pages | JSON | + ### `Trash` プロジェクトから削除されたメソッドやフォームがあれば、Trash フォルダーにはそれらが格納されます。 たとえば、つぎのフォルダーが格納されている場合があります: From f25d36304e21bd6593aa4f44a11ce126aff9bc0f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 18:13:45 +0100 Subject: [PATCH 019/156] New translations session.md (Japanese) --- .../current/commands/session.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/commands/session.md b/i18n/ja/docusaurus-plugin-content-docs/current/commands/session.md index cb239708bd03de..f90b6eaeb98cab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/commands/session.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/commands/session.md @@ -31,7 +31,7 @@ displayed_sidebar: docs コマンドを呼び出したプロセスによって、カレントセッションは次のいずれかです: - Web セッション([スケーラブルセッションが有効化されている](WebServer/sessions.md#webセッションの有効化) 場合) -- (サーバー上の)リモートクライアントセッション +- a remote user session (on the server), - ストアドプロシージャーセッション - スタンドアロンセッション @@ -40,7 +40,7 @@ displayed_sidebar: docs このコマンドは、以下の場合には **Null** を返します: - コマンドがWeb プロセス内で呼び出されているが、Web サーバーではスケーラブルセッションが無効化されている -- コマンドがリモート4D から呼び出されている +- it is called on a remote 4D client. ### Webセッション @@ -54,9 +54,9 @@ Webセッションの `Session` オブジェクトは、どの Webプロセス Web ユーザーセッションに関する詳細な情報については、[Web Server Sessions](../WebServer/sessions.md) の章を参照してください。 -### リモートクライアントセッション +### リモートユーザーセッション -リモートクライアントの `Session` オブジェクトは、次のいずれかから利用できます: +The `Session` object of remote user sessions is available from: - [サーバー上で実行](../Project/code-overview.md#サーバー上で実行) 属性を持つプロジェクトメソッド (クライアントプロセスの "双子" プロセスで実行されます) - トリガー From a8d4b618d53b81d160ff42b75433d3424d4d074f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 18:52:48 +0100 Subject: [PATCH 020/156] New translations sessionclass.md (Japanese) --- .../version-21/API/SessionClass.md | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SessionClass.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SessionClass.md index 3cc5b1d45c03a4..30e0b836f98d44 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SessionClass.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/API/SessionClass.md @@ -17,7 +17,7 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド このクラスは以下の種類のセッションをサポートしています: -- [**Webユーザーセッション**](WebServer/sessions.md): [プロジェクトにおいてスケーラブルセッションが有効化されている](WebServer/sessions.md#webセッションの有効化) 場合、Webユーザーセッションが利用可能です。 これらは(REST アクセスを含めた)Web 接続に使用され、割り当てられた[権限](../ORDA/privileges.md) によって管理されます。 +- [**Webユーザーセッション**](WebServer/sessions.md): [プロジェクトにおいてスケーラブルセッションが有効化されている](WebServer/sessions.md#webセッションの有効化) 場合、Webユーザーセッションが利用可能です。 They are used for Web connections (including REST access), and are controlled by assigned [privileges](../ORDA/privileges.md). - [**デスクトップセッション**](../Desktop/sessions.md)。これには以下のものが含まれます: - [**リモートユーザー セッション**](../Desktop/sessions.md#リモートユーザーセッション): クライアント/サーバーアプリケーションでは、リモートユーザーは、サーバー上で管理される独自のセッションを持ちます。 - [**ストアドプロシージャーセッション**](../Desktop/sessions.md#ストアドプロシージャーセッション): サーバー上で実行される全てのストアドプロシージャーセッションの仮想ユーザーセッション。 @@ -25,7 +25,7 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド :::warning セッション権限について -全てのセッションタイプは権限を管理できますが、[web ユーザーセッション](WebServer/sessions.md) 内で実行されたコードに関してだけは、実際にはセッションの権限によって管理されます。 +全てのセッションタイプは権限を管理できますが、**web コンテキスト** 内で実行されたコードに関してだけは、実際にはセッションの権限によって管理されます。 ::: @@ -85,13 +85,13 @@ Session オブジェクトは [`Session`](../commands/session.md) コマンド :::note 権限は、この関数が実行された[セッションの種類](#セッションの種類) に関わらず、Web アクセスを通して実行されたコードにのみ適用されるという点に注意してください。 + ::: #### 例題 ```4d // Web ユーザーセッションを無効化する -var $isGuest : Boolean var $isOK : Boolean $isOK:=Session.clearPrivileges() @@ -178,6 +178,12 @@ Web プロセス内において *promoteId* で指定した権限が [`.promote( Web プロセスに複数の権限が追加されていた場合、 `demote()` 関数はそれぞれの権限に対して適切な *promoteId* を使用して呼び出す必要があります。 権限はプロセスに対して追加された順番でスタックされているため、スタックを解除する場合にはLIFO (*Last In, First Out*) 順で解除することが推奨されます。 +:::note + +権限は、この関数が実行された[セッションの種類](#セッションの種類) に関わらず、Web アクセスを通して実行されたコードにのみ適用されるという点に注意してください。 + +::: + #### 例題 ```4d @@ -490,6 +496,7 @@ End if - **リモートセッション** および **ストアドプロシージャーセッション**の場合: `.info` オブジェクトは[`Process activity`](../commands/process-activity.md) コマンドの "session" プロパティに返されるオブジェクトと同じです。 - **スタンドアロンセッションの場合**: `.info` オブジェクトは、[`Session info`](../commands/session-info.md) コマンドで返されるものと同じオブジェクトです。 +- **Web user sessions**: The `.info` object contains properties available for web user sessions. `.info` オブジェクトには、次のプロパティが格納されています: @@ -548,7 +555,7 @@ End if :::note 互換性 -In a REST session when the [**Force login mode**](../REST/authUsers.md#force-login-mode) is not enabled, `.isGuest()` returns True if the session has no privileges. +When the [*forcelogin* mode](../REST/authUsers.md#force-login-mode) is disabled, `.isGuest()` returns True if the session has no privileges. ::: @@ -680,6 +687,12 @@ End if これらの場合には、カレントのWeb ユーザーセッションはそのまま残されます(セッションは復元されません)。 +:::note + +権限は、この関数が実行された[セッションの種類](#セッションの種類) に関わらず、Web アクセスを通して実行されたコードにのみ適用されるという点に注意してください。 + +::: + #### 例題 カスタムのHTTP リクエストハンドラーから呼ばれたシングルトンの例: From 09b36fb78b17c0e0bb8cd537f2d1067bfa0a6e6c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 19:06:58 +0100 Subject: [PATCH 021/156] New translations session.md (Japanese) --- .../version-21/commands/session.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/session.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/session.md index cb239708bd03de..f90b6eaeb98cab 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/session.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/commands/session.md @@ -31,7 +31,7 @@ displayed_sidebar: docs コマンドを呼び出したプロセスによって、カレントセッションは次のいずれかです: - Web セッション([スケーラブルセッションが有効化されている](WebServer/sessions.md#webセッションの有効化) 場合) -- (サーバー上の)リモートクライアントセッション +- a remote user session (on the server), - ストアドプロシージャーセッション - スタンドアロンセッション @@ -40,7 +40,7 @@ displayed_sidebar: docs このコマンドは、以下の場合には **Null** を返します: - コマンドがWeb プロセス内で呼び出されているが、Web サーバーではスケーラブルセッションが無効化されている -- コマンドがリモート4D から呼び出されている +- it is called on a remote 4D client. ### Webセッション @@ -54,9 +54,9 @@ Webセッションの `Session` オブジェクトは、どの Webプロセス Web ユーザーセッションに関する詳細な情報については、[Web Server Sessions](../WebServer/sessions.md) の章を参照してください。 -### リモートクライアントセッション +### リモートユーザーセッション -リモートクライアントの `Session` オブジェクトは、次のいずれかから利用できます: +The `Session` object of remote user sessions is available from: - [サーバー上で実行](../Project/code-overview.md#サーバー上で実行) 属性を持つプロジェクトメソッド (クライアントプロセスの "双子" プロセスで実行されます) - トリガー From b822e6c85bc5ce85f121912e3759a9a97d1193f8 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 19:56:58 +0100 Subject: [PATCH 022/156] New translations sessionclass.md (Portuguese, Brazilian) --- .../current/API/SessionClass.md | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md b/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md index 34446aea9ef499..c9e69e376cd758 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/API/SessionClass.md @@ -3,7 +3,7 @@ id: SessionClass title: Session --- -Os objetos de sessão são retornados pelo comando [`Session`](../commands/session.md). Esses objetos fornecem ao desenvolvedor uma interface que permite gerenciar a sessão atual do usuário e executar ações como armazenar dados contextuais, compartilhar informações entre processos de sessão, iniciar processos preemptivos relacionados à sessão ou (somente na Web) gerenciar [privilégios](../ORDA/privileges.md). +Os objetos de sessão são retornados pelo comando [`Session`](../commands/session.md). These objects provide the developer with an interface allowing to manage the current user session and execute actions such as store contextual data, share information between session processes, launch session-related preemptive processes, or (web context only) manage [privileges](../ORDA/privileges.md). :::tip Related blog posts @@ -17,7 +17,7 @@ Os objetos de sessão são retornados pelo comando [`Session`](../commands/sessi Os seguintes tipos de sessões são suportados por essa classe: -- [**Sessões de usuário web**](WebServer/sessions.md): sessões de usuário web estão disponíveis quando [sessões escaláveis estão habilitadas em seu projeto](WebServer/sessions.md#enabling-web-sessions). They are used for Web connections (including and REST access), and are controlled by assigned [privileges](../ORDA/privileges.md). +- [**Sessões de usuário web**](WebServer/sessions.md): sessões de usuário web estão disponíveis quando [sessões escaláveis estão habilitadas em seu projeto](WebServer/sessions.md#enabling-web-sessions). They are used for Web connections (including REST access), and are controlled by assigned [privileges](../ORDA/privileges.md). - [**Desktop sessions**](../Desktop/sessions.md), which include: - [**Remote user sessions**](../Desktop/sessions.md#remote-user-sessions): In client/server applications, remote users have their own sessions managed on the server. - [**Stored procedures sessions**](../Desktop/sessions.md#stored-procedure-sessions): Virtual user session for all stored procedures executed on the server. @@ -85,6 +85,7 @@ This function does not remove **promoted privileges** from the web process, whet :::note Keep in mind that privileges only apply to the code executed through web accesses, whatever the [session type](#session-types) on which this function is executed. + ::: #### Exemplo @@ -177,6 +178,12 @@ If no privilege with *promoteId* was promoted using [`.promote()`](#promote) in If several privileges have been added to the web process, the `demote()` function must be called for each one with the appropriate *promoteId*. Privileges are stacked in the order they have been added to the process, it is recommended to unstack privileges in a LIFO (*Last In, First Out*) order. +:::note + +Keep in mind that privileges only apply to the code executed through web accesses, whatever the [session type](#session-types) on which this function is executed. + +::: + #### Exemplo ```4d @@ -489,6 +496,7 @@ The `.info` property describes the deskto - **Remote 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.md) command. - **Standalone sessions**: The `.info` object is the same object as the one returned by the [`Session info`](../commands/session-info.md) command. +- **Web user sessions**: The `.info` object contains properties available for web user sessions. O objeto `.info` contém as seguintes propriedades: @@ -547,7 +555,7 @@ The `.isGuest()` function returns Tr :::note Compatibidade -With legacy sessions, `.isGuest()` returns True if the session has no privileges. +When the [*forcelogin* mode](../REST/authUsers.md#force-login-mode) is disabled, `.isGuest()` returns True if the session has no privileges. ::: @@ -679,6 +687,12 @@ A função retorna `false` se: Nesse caso, a sessão atual do usuário da Web não é alterada (nenhuma sessão é restaurada). +:::note + +Keep in mind that privileges only apply to the code executed through web accesses, whatever the [session type](#session-types) on which this function is executed. + +::: + #### Exemplo Em um singleton chamado por um manipulador de solicitação HTTP personalizado: From 1f22bf940f689a67be482b7b2c6961511ac85381 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 20:01:22 +0100 Subject: [PATCH 023/156] New translations updates.md (Portuguese, Brazilian) --- i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md | 1 + 1 file changed, 1 insertion(+) 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 4d466489ce7f87..c9c05b38ad8b9c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -12,6 +12,7 @@ Leia [**O que há de novo no 4D v21 R2**](https://blog.4d.com/en-whats-new-in-4d - [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) has been enhanced to provide greater precision in error detection (see [this blog post](https://blog.4d.com/better-error-handling-and-type-inference-for-4d-developers) for more information). - [4D Write Pro standard actions](../WritePro/user-legacy/standard-actions.md) that apply [lists](../WritePro/user-legacy/using-a-4d-write-pro-area.md#lists) now automatically adjust paragraph margins to keep markers positioned inside it. - Built-in support of `order by` in query strings for AI vector searches using [`query()`](../API/DataClassClass.md#query-by-vector-similarity) functions and the [REST API](../REST/$orderby.md). +- You can now create and open Qodly Pages from the [Explorer](../Develop/explorer.md). - You can [customize the icons of your components](../Extensions/develop-components.md#custom-icon). - 4D AIKit component: new [File API](../aikit/Classes/OpenAIFilesAPI.md) class to implement **file upload** features. - [**Find in Design**](../Project/search-replace.md#search-in-components) and [**Replace in contents**](../Project/search-replace.md#replace-in-contents) features can now support editable components. From d7514de70451c793e93f96142a9dfb494557286f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 20:01:44 +0100 Subject: [PATCH 024/156] New translations architecture.md (Portuguese, Brazilian) --- .../current/Project/architecture.md | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md b/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md index 6308d745616b51..80ed004670a1d2 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -69,24 +69,18 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula | styleSheets_mac.css | Folhas de estilo css para Mac (de um banco de dados binário convertido) | CSS | | styleSheets_windows.css | Folhas de estilo css em Windows (de um banco de dados binário convertido) | CSS | -#### `DatabaseMethods` - -| Conteúdos | Descrição | Formato | -| ---------------------------------------- | ---------------------------------------------------------------------------------------------- | ------- | -| *databaseMethodName*.4dm | Métodos de projeto definidos na database. Um ficheiro por método base de dados | text | - -#### `Página Métodos` - -| Conteúdos | Descrição | Formato | -| -------------------------------- | ------------------------------------------------------------------------------------ | ------- | -| *methodName*.4dm | Métodos de banco definidos na database. One file per database method | text | - #### `Classes` | Conteúdos | Descrição | Formato | | ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | | *className*.4dm | Método de definição de classe usuário, que permite instanciar objetos específicos. Um arquivo por classe, o nome do arquivo é o nome da classe | text | +#### `DatabaseMethods` + +| Conteúdos | Descrição | Formato | +| ---------------------------------------- | ---------------------------------------------------------------------------------------------- | ------- | +| *databaseMethodName*.4dm | Métodos de projeto definidos na database. Um ficheiro por método base de dados | text | + #### `Formulários` | Conteúdos | Descrição | Formato | @@ -96,6 +90,20 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula | *formName*/Images/*pictureName* | Imagem estática do formulário projeto | picture | | *formName*/ObjectMethods/*objectName*.4dm | Métodos objecto. Um arquivo por método objeto | text | +#### `Página Métodos` + +| Conteúdos | Descrição | Formato | +| -------------------------------- | ------------------------------------------------------------------------------------ | ------- | +| *methodName*.4dm | Métodos de banco definidos na database. One file per database method | text | + +#### `Shared` + +| Conteúdos | Descrição | Formato | +| ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | +| assets/ | [Shared files](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/events/bindingActionToEvents#shared-folder) such as pictures used in Qodly pages | vários | +| CustomComponents/ | [Custom components](https://developer.4d.com/qodly/Integrations/customComponent/overview) files used in Qodly pages | json | +| *other_files*.json | shared elements such as css or datasources used in Qodly pages | json | + #### `TableForms` | Conteúdos | Descrição | Formato | @@ -117,6 +125,13 @@ Esse arquivo de texto também pode conter chaves de configuração, em particula **Note:** The .4dm file extension is a text-based file format, containing the code of a 4D method. É compatível com as ferramentas de controlo da versão. +#### `WebForms` + +| Conteúdos | Descrição | Formato | +| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ------- | +| *QodlyFormName*.WebForm | Json representations of Qodly pages | JSON | +| crafted_components.json | Description of [components crafted](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/craftedComponents) on Qodly pages | JSON | + ### `Trash` A pasta Trash contém métodos e formulários eliminados do projeto (se existirem). Pode conter as seguintes pastas: From 88e35be5f8588db9c3262b4e212fc9da35b9ffac Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 20:20:29 +0100 Subject: [PATCH 025/156] New translations session.md (Portuguese, Brazilian) --- .../current/commands/session.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/commands/session.md b/i18n/pt/docusaurus-plugin-content-docs/current/commands/session.md index 278131db8ad132..49da831a4368b7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/commands/session.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/commands/session.md @@ -31,7 +31,7 @@ The `Session` command returns the `Sessio Depending on the process from which the command is called, the current session can be: - uma sessão web (quando [sessões escaláveis são ativadas](WebServer/sessions.md#enabling-web-sessions)), -- a remote client session (on the server), +- a remote user session (on the server), - a stored procedures session, - a standalone session. @@ -40,7 +40,7 @@ Para obter mais informações, consulte [Tipos de sessão](../API/SessionClass.m The command returns *Null* if: - it is called in a web process and scalable sessions are disabled on the web server, -- it is called on a remote 4D. +- it is called on a remote 4D client. ### Sessões web @@ -54,9 +54,9 @@ O objeto `Session` das sessões web está disponível em qualquer processo web: Para obter mais informações sobre as sessões dos usuários da web, consulte a seção [Sessões de Servidor Web](../WebServer/sessions.md). -### Sessões cliente remoto +### Sessões de usuário remoto -O objeto `Session` das sessões remotas de clientes está disponível em: +The `Session` object of remote user sessions is available from: - Métodos de projeto que têm o atributo [Execute on Server](../Project/code-overview.md#execute-on-server) (são executados no processo "geminado" do processo do cliente), - Triggers, From 0ae27da5b546819837efd6c62e1c67437ec57298 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 20:57:28 +0100 Subject: [PATCH 026/156] New translations sessionclass.md (Portuguese, Brazilian) --- .../version-21/API/SessionClass.md | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SessionClass.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SessionClass.md index e7b6c5a2bc11c5..75a9430dfbf469 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SessionClass.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/API/SessionClass.md @@ -17,7 +17,7 @@ Os objetos de sessão são retornados pelo comando [`Session`](../commands/sessi Os seguintes tipos de sessões são suportados por essa classe: -- [**Sessões de usuário web**](WebServer/sessions.md): sessões de usuário web estão disponíveis quando [sessões escaláveis estão habilitadas em seu projeto](WebServer/sessions.md#enabling-web-sessions). They are used for Web connections (including and REST access), and are controlled by assigned [privileges](../ORDA/privileges.md). +- [**Sessões de usuário web**](WebServer/sessions.md): sessões de usuário web estão disponíveis quando [sessões escaláveis estão habilitadas em seu projeto](WebServer/sessions.md#enabling-web-sessions). They are used for Web connections (including REST access), and are controlled by assigned [privileges](../ORDA/privileges.md). - [**Desktop sessions**](../Desktop/sessions.md), which include: - [**Remote user sessions**](../Desktop/sessions.md#remote-user-sessions): In client/server applications, remote users have their own sessions managed on the server. - [**Stored procedures sessions**](../Desktop/sessions.md#stored-procedure-sessions): Virtual user session for all stored procedures executed on the server. @@ -25,7 +25,7 @@ Os seguintes tipos de sessões são suportados por essa classe: :::warning About session privileges -All session types can handle privileges, but only the code executed in [web user sessions](WebServer/sessions.md) is actually controlled by session's privileges. +All session types can handle privileges, but only the code executed in a **web context** is actually controlled by session's privileges. ::: @@ -85,13 +85,13 @@ This function does not remove **promoted privileges** from the web process, whet :::note Keep in mind that privileges only apply to the code executed through web accesses, whatever the [session type](#session-types) on which this function is executed. + ::: #### Exemplo ```4d //Invalidate a web user session -var $isGuest : Boolean var $isOK : Boolean $isOK:=Session.clearPrivileges() @@ -178,6 +178,12 @@ If no privilege with *promoteId* was promoted using [`.promote()`](#promote) in If several privileges have been added to the web process, the `demote()` function must be called for each one with the appropriate *promoteId*. Privileges are stacked in the order they have been added to the process, it is recommended to unstack privileges in a LIFO (*Last In, First Out*) order. +:::note + +Keep in mind that privileges only apply to the code executed through web accesses, whatever the [session type](#session-types) on which this function is executed. + +::: + #### Exemplo ```4d @@ -490,6 +496,7 @@ The `.info` property describes the deskto - **Remote 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.md) command. - **Standalone sessions**: The `.info` object is the same object as the one returned by the [`Session info`](../commands/session-info.md) command. +- **Web user sessions**: The `.info` object contains properties available for web user sessions. O objeto `.info` contém as seguintes propriedades: @@ -548,7 +555,7 @@ The `.isGuest()` function returns Tr :::note Compatibidade -In a REST session when the [**Force login mode**](../REST/authUsers.md#force-login-mode) is not enabled, `.isGuest()` returns True if the session has no privileges. +When the [*forcelogin* mode](../REST/authUsers.md#force-login-mode) is disabled, `.isGuest()` returns True if the session has no privileges. ::: @@ -680,6 +687,12 @@ A função retorna `false` se: Nesse caso, a sessão atual do usuário da Web não é alterada (nenhuma sessão é restaurada). +:::note + +Keep in mind that privileges only apply to the code executed through web accesses, whatever the [session type](#session-types) on which this function is executed. + +::: + #### Exemplo Em um singleton chamado por um manipulador de solicitação HTTP personalizado: From 967eeed07a1f4425a160fb45ccf2c35cd58eec25 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:11:24 +0100 Subject: [PATCH 027/156] New translations session.md (Portuguese, Brazilian) --- .../version-21/commands/session.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session.md index 278131db8ad132..49da831a4368b7 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/commands/session.md @@ -31,7 +31,7 @@ The `Session` command returns the `Sessio Depending on the process from which the command is called, the current session can be: - uma sessão web (quando [sessões escaláveis são ativadas](WebServer/sessions.md#enabling-web-sessions)), -- a remote client session (on the server), +- a remote user session (on the server), - a stored procedures session, - a standalone session. @@ -40,7 +40,7 @@ Para obter mais informações, consulte [Tipos de sessão](../API/SessionClass.m The command returns *Null* if: - it is called in a web process and scalable sessions are disabled on the web server, -- it is called on a remote 4D. +- it is called on a remote 4D client. ### Sessões web @@ -54,9 +54,9 @@ O objeto `Session` das sessões web está disponível em qualquer processo web: Para obter mais informações sobre as sessões dos usuários da web, consulte a seção [Sessões de Servidor Web](../WebServer/sessions.md). -### Sessões cliente remoto +### Sessões de usuário remoto -O objeto `Session` das sessões remotas de clientes está disponível em: +The `Session` object of remote user sessions is available from: - Métodos de projeto que têm o atributo [Execute on Server](../Project/code-overview.md#execute-on-server) (são executados no processo "geminado" do processo do cliente), - Triggers, From 610a4877a144f9aae86237fd54888a32632047c2 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:28:28 +0100 Subject: [PATCH 028/156] New translations sessions.md (French) --- .../current/Desktop/sessions.md | 88 +++++++++---------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Desktop/sessions.md b/i18n/fr/docusaurus-plugin-content-docs/current/Desktop/sessions.md index 8dd4b43801fde1..fc548d5209fb87 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Desktop/sessions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Desktop/sessions.md @@ -1,41 +1,41 @@ --- id: desktop-sessions -title: Desktop Sessions +title: Sessions Desktop --- -A **desktop session** is a user-related execution context on 4D Server or 4D single-user that does not result from any web or REST access. +Une **session desktop** est un contexte d'exécution lié à l'utilisateur sur 4D Server ou 4D mono-utilisateur qui ne résulte pas d'un accès web ou REST. -Just like in a [**web user session**](../WebServer/sessions.md), the code executed in a desktop session has access to a [`Session`](../API/SessionClass.md) object which provides functions and properties allowing you to store session values and to share them between user processes, for example using the [`session.storage`](../API/SessionClass.md#storage) object. +Tout comme dans une [**session utilisateur web**](../WebServer/sessions.md), le code exécuté dans une session desktop a accès à un objet [`Session`](../API/SessionClass.md) qui fournit des fonctions et des propriétés permettant de stocker les valeurs de session et de les partager entre les process utilisateur, par exemple en utilisant l'objet [`session.storage`](../API/SessionClass.md#storage). -However, unlike the code executed in web user sessions, the code executed in desktop sessions is not controlled by [roles and privileges](../ORDA/privileges.md). It can access any parts of the 4D application, including ORDA and data model classes. On 4D Server, [users and groups feature](../Users/handling_users_groups.md) can manage user accesses. +Toutefois, à la différence du code exécuté dans les sessions utilisateurs Web, le code exécuté dans les sessions desktop n'est pas soumis aux règles des [rôles et privilèges](../ORDA/privileges.md). Il peut accéder à toutes les parties de l'application 4D, y compris ORDA et les classes du modèle de données. Sur 4D Server, la fonctionnalité des [utilisateurs et groupes](../Users/handling_users_groups.md) permet de gérer les accès des utilisateurs. -You can nevertheless [**share** a desktop session with a web session](#sharing-a-desktop-session-for-web-accesses) so that a desktop user can access your 4D application through a web interface, using for example Qodly pages and Web areas. +Vous pouvez néanmoins [**partager** une session desktop avec une session web](#sharing-a-desktop-session-for-web-accesses) afin qu'un utilisateur desktop puisse accéder à votre application 4D par le biais d'une interface web, en utilisant par exemple des pages Qodly et des zones web. ## Types de sessions -Desktop sessions include: +Les sessions desktop comprennent : -- **Remote user sessions**: In client/server applications, the session that manages the user processes on the server. -- **Stored procedures sessions**: In client/server applications, the unique virtual user session that manages all stored procedures executed on the server. -- **Standalone sessions**: Local session object returned in single-user application (useful in development and test phases of client/server applications). +- les **Sessions utilisateur distant** : Dans les applications client/serveur, la session qui gère les process utilisateur sur le serveur. +- les **Sessions des procédures stockées** : Dans les applications client/serveur, la session utilisateur virtuelle unique qui gère toutes les procédures stockées exécutées sur le serveur. +- les **Sessions autonomes**: Objet de session locale retourné dans une application mono-utilisateur (utile dans les phases de développement et de test des applications client/serveur). :::note -Keep in mind that [**Web sessions**](../WebServer/sessions.md) are used as soon as the 4D project is accessed through web or REST requests and [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled. +N'oubliez pas que des [**Sessions Web**](../WebServer/sessions.md) sont utilisées dès qu'on accède au projet 4D via des requêtes Web ou REST et que les [sessions évolutives](../WebServer/sessions.md#enabling-web-sessions) sont activées. ::: -The following diagram shows the different session types and how they interact: +Le diagramme suivant montre les différents types de sessions et leur interaction : ![](../assets/en/Desktop/sessions.png) ## Sessions utilisateur distant -On the server, in "user processes" (i.e. processes related to remote users), the [`Session`](../commands/session.md) command returns a `session` object describing the current user session. Cet objet est géré via les fonctions et les propriétés de la classe [`Session`](../API/SessionClass.md). +Sur le serveur, dans les "process utilisateur" (c'est-à-dire les process liés aux utilisateurs distants), la commande [`Session`](../commands/session.md) renvoie un objet `session` décrivant la session de l'utilisateur courant. Cet objet est géré via les fonctions et les propriétés de la classe [`Session`](../API/SessionClass.md). :::note -On a remote 4D, the `session` object always returns null. +Sur un 4D distant, l'objet `session` renvoie toujours null. ::: @@ -59,64 +59,64 @@ L'objet `session` de l'utilisateur distant est disponible depuis : - Les méthodes projet qui ont l'attribut [Exécuter sur serveur](../Project/code-overview.md#execute-on-server) (elles sont exécutées dans le process jumeau du process client), - Les Triggers, -- ORDA [data model functions](../ORDA/ordaClasses.md) (except those declared with the [`local`](../ORDA/ordaClasses.md#local-functions) keyword), -- Database methods such as [`On Server Open Connection`](../commands/on-server-open-connection-database-method) and [`On Server Close Connection`](../commands/on-server-close-connection-database-method). +- Les [fonctions ORDA du modèle de données](../ORDA/ordaClasses.md) (sauf celles déclarées avec le mot-clé [`local`](../ORDA/ordaClasses.md#local-functions)), +- Les méthodes base telles que [`On Server Open Connection`](../commands/on-server-open-connection-database-method) et [`On Server Close Connection`](../commands/on-server-close-connection-database-method). -## Stored procedure sessions +## Session des procédures stockées -On the server, all [stored procedures](https://doc.4d.com/4Dv20/4D/20/Stored-Procedures.300-6330553.en.html) share the same virtual user session. +Sur le serveur, toutes les [procédures stockées] (https://doc.4d.com/4Dv20/4D/20/Stored-Procedures.300-6330553.en.html) partagent la même session utilisateur virtuelle. ### Utilisation -You can share data between all processes of a store procedure session using the [`session.storage`](../API/SessionClass.md#storage) shared object. +Vous pouvez partager des données entre tous les process d'une session de procédures stockées à l'aide de l'objet partagé [`session.storage`](../API/SessionClass.md#storage). ### Disponibilité -The `session` object of stored procedures is available from: +L'objet `session` des procédures stockées est disponible depuis : -- Project methods that are called by the [`Execute on Server`](../commands-legacy/execute-on-server.md) command, -- ORDA [data model functions](../ORDA/ordaClasses.md) called from a stored procedure, -- Database methods such as [`On Server Startup`](../commands/on-server-startup-database-method) and [`On Server Shutdown`](../commands/on-server-shutdown-database-method). +- les méthodes projet appelées par la commande [`Execute on Server`](../commands-legacy/execute-on-server.md), +- les [fonctions ORDA du modèle de données](../ORDA/ordaClasses.md) appelées à partir d'une procédure stockée, +- les méthodes base telles que [`On Server Startup`](../commands/on-server-startup-database-method) et [`On Server Shutdown`](../commands/on-server-shutdown-database-method). -## Standalone sessions +## Sessions autonomes -A standalone session is the single-user session running when you work locally with 4D. +Une session autonome est une session mono-utilisateur qui s'exécute lorsque vous travaillez localement avec 4D. ### Utilisation -The standalone session can be used to develop and test your client/server application and its interaction with web sessions and [OTP sharing](#sharing-a-desktop-session-for-web-accesses). You can use the `session` object in your code in standalone session just as the `session` object of the remote sessions. +La session autonome peut être utilisée pour développer et tester votre application client/serveur et son interaction avec les sessions web et le [partage d'OTP](#sharing-a-desktop-session-for-web-accesses). Vous pouvez utiliser l'objet `session` dans votre code d'une session autonome tout comme l'objet `session` des sessions distantes. ### Disponibilité -The `session` object of a standalone is available from all methods and code executed on the 4D application. +L'objet `session` d'une application autonome est disponible pour toutes les méthodes et le code exécutés sur l'application 4D. -## Sharing a desktop session for web accesses +## Partage d'une session desktop pour les accès web -Desktop sessions can be used to handle web accesses to the application by the same user and thus, manage their [privileges](../ORDA/privileges.md). This possibility is particularly useful for Client/Server applications where [Qodly pages](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/pageLoaderOverview) are used for the interface, running on remote machines. Avec cette configuration, vos applications disposent d'interfaces web modernes basées sur les CSS, tout en bénéficiant de la puissance et de la simplicité du développement intégré client/serveur. Dans ces applications, les pages Qodly sont exécutées dans des [zones Web](../FormObjects/webArea_overview.md) 4D standard. +Les sessions desktop peuvent être utilisées pour gérer les accès web d'un même utilisateur à l'application et ainsi contrôler ses [privilèges](../ORDA/privileges.md). Cette possibilité est particulièrement utile pour les applications Client/serveur dans lesquelles des [pages Qodly](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/pageLoaderOverview) sont utilisées pour l'interface, sur des machines clientes distantes. Avec cette configuration, vos applications disposent d'interfaces web modernes basées sur les CSS, tout en bénéficiant de la puissance et de la simplicité du développement intégré client/serveur. Dans ces applications, les pages Qodly sont exécutées dans des [zones Web](../FormObjects/webArea_overview.md) 4D standard. -To manage this configuration in production, you need to use remote user sessions. Actually, requests coming from both the remote 4D application and its Qodly pages loaded in Web areas need to work inside the same session. You just have to share the session between the remote client and its web pages so that you can have the same [session storage](../API/SessionClass.md#storage) and client license, wherever the request comes from (web or remote 4D). +Pour gérer cette configuration en production, vous devez utiliser des sessions utilisateur distant. En fait, les requêtes provenant à la fois de l'application 4D distante et de ses pages Qodly chargées dans les zones Web doivent fonctionner au sein de la même session. Il suffit de partager la session entre le client distant et ses pages web afin de disposer du même [session storage](../API/SessionClass.md#storage) et de la même licence client, quelle que soit l'origine de la requête (web ou 4D distant). -Note that [privileges](../ORDA/privileges.md) should be set in the session before executing a web request, so that the user automatically gets their privileges for web access (see example). Keep in mind that privileges **only apply to requests coming from the web**. +Notez que les [privileges](../ORDA/privileges.md) doivent être définis dans la session avant d'exécuter une requête web, afin que l'utilisateur obtienne automatiquement ses privilèges pour l'accès au web (voir l'exemple). N'oubliez pas que les privilèges **ne s'appliquent qu'aux requêtes provenant du web**. -You can develop this configuration in your 4D Developer application (single-user): you can use the [standalone session](#standalone-sessions) to code and test all features related to web access, whether your application is intended for single-user or client/server deployment. +Vous pouvez développer cette configuration dans votre application 4D Developer (mono-utilisateur) : vous pouvez utiliser la [session autonome](#standalone-sessions) pour coder et tester toutes les fonctionnalités liées à l'accès web, que votre application soit destinée à un déploiement mono-utilisateur ou client/serveur. -Les sessions partagées sont gérées par des [tokens OTP](../WebServer/sessions.md#session-token-otp). After you created an OTP token for the desktop session on the server or on the single-user 4D application, you add the token (through the `$4DSID` parameter value) to web requests sent from Web areas containing Qodly pages (or from any web browser) so that the user session on the server or the single-user application is identified and shared. Du côté du serveur web, si une requête web contient un *id OTP* dans le paramètre $4DSID, la session correspondant à ce token OTP est utilisée. +Les sessions partagées sont gérées par des [tokens OTP](../WebServer/sessions.md#session-token-otp). Après avoir créé un token OTP pour la session desktop sur le serveur ou sur l'application 4D mono-utilisateur, vous ajoutez le jeton (par le biais de la valeur du paramètre `$4DSID`) aux requêtes Web envoyées à partir des zones Web contenant des pages Qodly (ou à partir de n'importe quel navigateur Web) afin que la session de l'utilisateur sur le serveur ou l'application mono-utilisateur soit identifiée et partagée. Du côté du serveur web, si une requête web contient un *id OTP* dans le paramètre $4DSID, la session correspondant à ce token OTP est utilisée. :::note -When creating an OTP token in client/server environment, you need to execute the [OTP creation code](../API/SessionClass.md#createotp) **on the server** (the `Session` object is Null on a remote 4D). You can use for example the [`On Server Open Connection`](../commands-legacy/on-server-open-connection-database-method.md) database method. +Lors de la création d'un token OTP en environnement client/serveur, vous devez exécuter le [code de création de l'OTP](../API/SessionClass.md#createotp) **sur le serveur** (l'objet `Session` est Null sur un 4D distant). Vous pouvez par exemple utiliser la méthode base [`On Server Open Connection`](../commands-legacy/on-server-open-connection-database-method.md). ::: :::tip Article(s) de blog sur le sujet -[Embed Qodly pages in a 4D web area without extra cost](https://blog.4d.com/embed-qodly-pages-in-a-4d-web-area-without-extra-cost) +[Intégrez des pages Qodly dans une zone web 4D sans coût supplémentaire](https://blog.4d.com/embed-qodly-pages-in-a-4d-web-area-without-extra-cost) ::: ### Exemple -In a form, get an OTP and open a Qodly page in a Web area: +Dans un formulaire, obtenez un OTP et ouvrez une page Qodly dans une zone Web : ```4d Form.otp:=getOTP @@ -127,13 +127,13 @@ WA OPEN URL(*; "QodlyPage"; Form.url) ``` -The *getOTP* project method (with the [**Execute on server** property](../Project/project-method-properties.md#execute-on-server) in Client/Server): +La méthode de projet *getOTP* (avec la propriété [**Exécuter sur le serveur**](../Project/project-method-properties.md#execute-on-server) en Client/Server) : ```4d -// In Client Server: +// En client/serveur: // ---------------- -// Method executed on the server because the session object is on the server -// The Session object is Null on the client +// Méthode exécutée sur le serveur car l'objet session est sur le serveur +// L'objet Session est Null sur le client // #DECLARE() : Text @@ -142,15 +142,15 @@ return Session.createOTP() ``` -Here is the code used to put the "viewProducts" privilege in the session: +Voici le code utilisé pour placer le privilège "viewProducts" dans la session : ```4d -// In Client Server: +// En client/serveur: // ---------------- -// This code must be executed on the server because the session object is on the server -// The Session object is Null on the client +// Ce code doit être exécuté sur le serveur car l'objet session est sur le serveur +// L'objet Session est Null sur la session client -Session.clearPrivileges() // Clean the session from its old privileges +Session.clearPrivileges() // Nettoie la session de ses anciens privilèges Session.setPrivileges("viewProducts") ``` From 943facc18300f954c9478787ba92e6eb7c9c9512 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:28:30 +0100 Subject: [PATCH 029/156] New translations sessions.md (French) --- .../version-21/Desktop/sessions.md | 88 +++++++++---------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Desktop/sessions.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Desktop/sessions.md index 8dd4b43801fde1..fc548d5209fb87 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Desktop/sessions.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Desktop/sessions.md @@ -1,41 +1,41 @@ --- id: desktop-sessions -title: Desktop Sessions +title: Sessions Desktop --- -A **desktop session** is a user-related execution context on 4D Server or 4D single-user that does not result from any web or REST access. +Une **session desktop** est un contexte d'exécution lié à l'utilisateur sur 4D Server ou 4D mono-utilisateur qui ne résulte pas d'un accès web ou REST. -Just like in a [**web user session**](../WebServer/sessions.md), the code executed in a desktop session has access to a [`Session`](../API/SessionClass.md) object which provides functions and properties allowing you to store session values and to share them between user processes, for example using the [`session.storage`](../API/SessionClass.md#storage) object. +Tout comme dans une [**session utilisateur web**](../WebServer/sessions.md), le code exécuté dans une session desktop a accès à un objet [`Session`](../API/SessionClass.md) qui fournit des fonctions et des propriétés permettant de stocker les valeurs de session et de les partager entre les process utilisateur, par exemple en utilisant l'objet [`session.storage`](../API/SessionClass.md#storage). -However, unlike the code executed in web user sessions, the code executed in desktop sessions is not controlled by [roles and privileges](../ORDA/privileges.md). It can access any parts of the 4D application, including ORDA and data model classes. On 4D Server, [users and groups feature](../Users/handling_users_groups.md) can manage user accesses. +Toutefois, à la différence du code exécuté dans les sessions utilisateurs Web, le code exécuté dans les sessions desktop n'est pas soumis aux règles des [rôles et privilèges](../ORDA/privileges.md). Il peut accéder à toutes les parties de l'application 4D, y compris ORDA et les classes du modèle de données. Sur 4D Server, la fonctionnalité des [utilisateurs et groupes](../Users/handling_users_groups.md) permet de gérer les accès des utilisateurs. -You can nevertheless [**share** a desktop session with a web session](#sharing-a-desktop-session-for-web-accesses) so that a desktop user can access your 4D application through a web interface, using for example Qodly pages and Web areas. +Vous pouvez néanmoins [**partager** une session desktop avec une session web](#sharing-a-desktop-session-for-web-accesses) afin qu'un utilisateur desktop puisse accéder à votre application 4D par le biais d'une interface web, en utilisant par exemple des pages Qodly et des zones web. ## Types de sessions -Desktop sessions include: +Les sessions desktop comprennent : -- **Remote user sessions**: In client/server applications, the session that manages the user processes on the server. -- **Stored procedures sessions**: In client/server applications, the unique virtual user session that manages all stored procedures executed on the server. -- **Standalone sessions**: Local session object returned in single-user application (useful in development and test phases of client/server applications). +- les **Sessions utilisateur distant** : Dans les applications client/serveur, la session qui gère les process utilisateur sur le serveur. +- les **Sessions des procédures stockées** : Dans les applications client/serveur, la session utilisateur virtuelle unique qui gère toutes les procédures stockées exécutées sur le serveur. +- les **Sessions autonomes**: Objet de session locale retourné dans une application mono-utilisateur (utile dans les phases de développement et de test des applications client/serveur). :::note -Keep in mind that [**Web sessions**](../WebServer/sessions.md) are used as soon as the 4D project is accessed through web or REST requests and [scalable sessions](../WebServer/sessions.md#enabling-web-sessions) are enabled. +N'oubliez pas que des [**Sessions Web**](../WebServer/sessions.md) sont utilisées dès qu'on accède au projet 4D via des requêtes Web ou REST et que les [sessions évolutives](../WebServer/sessions.md#enabling-web-sessions) sont activées. ::: -The following diagram shows the different session types and how they interact: +Le diagramme suivant montre les différents types de sessions et leur interaction : ![](../assets/en/Desktop/sessions.png) ## Sessions utilisateur distant -On the server, in "user processes" (i.e. processes related to remote users), the [`Session`](../commands/session.md) command returns a `session` object describing the current user session. Cet objet est géré via les fonctions et les propriétés de la classe [`Session`](../API/SessionClass.md). +Sur le serveur, dans les "process utilisateur" (c'est-à-dire les process liés aux utilisateurs distants), la commande [`Session`](../commands/session.md) renvoie un objet `session` décrivant la session de l'utilisateur courant. Cet objet est géré via les fonctions et les propriétés de la classe [`Session`](../API/SessionClass.md). :::note -On a remote 4D, the `session` object always returns null. +Sur un 4D distant, l'objet `session` renvoie toujours null. ::: @@ -59,64 +59,64 @@ L'objet `session` de l'utilisateur distant est disponible depuis : - Les méthodes projet qui ont l'attribut [Exécuter sur serveur](../Project/code-overview.md#execute-on-server) (elles sont exécutées dans le process jumeau du process client), - Les Triggers, -- ORDA [data model functions](../ORDA/ordaClasses.md) (except those declared with the [`local`](../ORDA/ordaClasses.md#local-functions) keyword), -- Database methods such as [`On Server Open Connection`](../commands/on-server-open-connection-database-method) and [`On Server Close Connection`](../commands/on-server-close-connection-database-method). +- Les [fonctions ORDA du modèle de données](../ORDA/ordaClasses.md) (sauf celles déclarées avec le mot-clé [`local`](../ORDA/ordaClasses.md#local-functions)), +- Les méthodes base telles que [`On Server Open Connection`](../commands/on-server-open-connection-database-method) et [`On Server Close Connection`](../commands/on-server-close-connection-database-method). -## Stored procedure sessions +## Session des procédures stockées -On the server, all [stored procedures](https://doc.4d.com/4Dv20/4D/20/Stored-Procedures.300-6330553.en.html) share the same virtual user session. +Sur le serveur, toutes les [procédures stockées] (https://doc.4d.com/4Dv20/4D/20/Stored-Procedures.300-6330553.en.html) partagent la même session utilisateur virtuelle. ### Utilisation -You can share data between all processes of a store procedure session using the [`session.storage`](../API/SessionClass.md#storage) shared object. +Vous pouvez partager des données entre tous les process d'une session de procédures stockées à l'aide de l'objet partagé [`session.storage`](../API/SessionClass.md#storage). ### Disponibilité -The `session` object of stored procedures is available from: +L'objet `session` des procédures stockées est disponible depuis : -- Project methods that are called by the [`Execute on Server`](../commands-legacy/execute-on-server.md) command, -- ORDA [data model functions](../ORDA/ordaClasses.md) called from a stored procedure, -- Database methods such as [`On Server Startup`](../commands/on-server-startup-database-method) and [`On Server Shutdown`](../commands/on-server-shutdown-database-method). +- les méthodes projet appelées par la commande [`Execute on Server`](../commands-legacy/execute-on-server.md), +- les [fonctions ORDA du modèle de données](../ORDA/ordaClasses.md) appelées à partir d'une procédure stockée, +- les méthodes base telles que [`On Server Startup`](../commands/on-server-startup-database-method) et [`On Server Shutdown`](../commands/on-server-shutdown-database-method). -## Standalone sessions +## Sessions autonomes -A standalone session is the single-user session running when you work locally with 4D. +Une session autonome est une session mono-utilisateur qui s'exécute lorsque vous travaillez localement avec 4D. ### Utilisation -The standalone session can be used to develop and test your client/server application and its interaction with web sessions and [OTP sharing](#sharing-a-desktop-session-for-web-accesses). You can use the `session` object in your code in standalone session just as the `session` object of the remote sessions. +La session autonome peut être utilisée pour développer et tester votre application client/serveur et son interaction avec les sessions web et le [partage d'OTP](#sharing-a-desktop-session-for-web-accesses). Vous pouvez utiliser l'objet `session` dans votre code d'une session autonome tout comme l'objet `session` des sessions distantes. ### Disponibilité -The `session` object of a standalone is available from all methods and code executed on the 4D application. +L'objet `session` d'une application autonome est disponible pour toutes les méthodes et le code exécutés sur l'application 4D. -## Sharing a desktop session for web accesses +## Partage d'une session desktop pour les accès web -Desktop sessions can be used to handle web accesses to the application by the same user and thus, manage their [privileges](../ORDA/privileges.md). This possibility is particularly useful for Client/Server applications where [Qodly pages](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/pageLoaderOverview) are used for the interface, running on remote machines. Avec cette configuration, vos applications disposent d'interfaces web modernes basées sur les CSS, tout en bénéficiant de la puissance et de la simplicité du développement intégré client/serveur. Dans ces applications, les pages Qodly sont exécutées dans des [zones Web](../FormObjects/webArea_overview.md) 4D standard. +Les sessions desktop peuvent être utilisées pour gérer les accès web d'un même utilisateur à l'application et ainsi contrôler ses [privilèges](../ORDA/privileges.md). Cette possibilité est particulièrement utile pour les applications Client/serveur dans lesquelles des [pages Qodly](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/pageLoaderOverview) sont utilisées pour l'interface, sur des machines clientes distantes. Avec cette configuration, vos applications disposent d'interfaces web modernes basées sur les CSS, tout en bénéficiant de la puissance et de la simplicité du développement intégré client/serveur. Dans ces applications, les pages Qodly sont exécutées dans des [zones Web](../FormObjects/webArea_overview.md) 4D standard. -To manage this configuration in production, you need to use remote user sessions. Actually, requests coming from both the remote 4D application and its Qodly pages loaded in Web areas need to work inside the same session. You just have to share the session between the remote client and its web pages so that you can have the same [session storage](../API/SessionClass.md#storage) and client license, wherever the request comes from (web or remote 4D). +Pour gérer cette configuration en production, vous devez utiliser des sessions utilisateur distant. En fait, les requêtes provenant à la fois de l'application 4D distante et de ses pages Qodly chargées dans les zones Web doivent fonctionner au sein de la même session. Il suffit de partager la session entre le client distant et ses pages web afin de disposer du même [session storage](../API/SessionClass.md#storage) et de la même licence client, quelle que soit l'origine de la requête (web ou 4D distant). -Note that [privileges](../ORDA/privileges.md) should be set in the session before executing a web request, so that the user automatically gets their privileges for web access (see example). Keep in mind that privileges **only apply to requests coming from the web**. +Notez que les [privileges](../ORDA/privileges.md) doivent être définis dans la session avant d'exécuter une requête web, afin que l'utilisateur obtienne automatiquement ses privilèges pour l'accès au web (voir l'exemple). N'oubliez pas que les privilèges **ne s'appliquent qu'aux requêtes provenant du web**. -You can develop this configuration in your 4D Developer application (single-user): you can use the [standalone session](#standalone-sessions) to code and test all features related to web access, whether your application is intended for single-user or client/server deployment. +Vous pouvez développer cette configuration dans votre application 4D Developer (mono-utilisateur) : vous pouvez utiliser la [session autonome](#standalone-sessions) pour coder et tester toutes les fonctionnalités liées à l'accès web, que votre application soit destinée à un déploiement mono-utilisateur ou client/serveur. -Les sessions partagées sont gérées par des [tokens OTP](../WebServer/sessions.md#session-token-otp). After you created an OTP token for the desktop session on the server or on the single-user 4D application, you add the token (through the `$4DSID` parameter value) to web requests sent from Web areas containing Qodly pages (or from any web browser) so that the user session on the server or the single-user application is identified and shared. Du côté du serveur web, si une requête web contient un *id OTP* dans le paramètre $4DSID, la session correspondant à ce token OTP est utilisée. +Les sessions partagées sont gérées par des [tokens OTP](../WebServer/sessions.md#session-token-otp). Après avoir créé un token OTP pour la session desktop sur le serveur ou sur l'application 4D mono-utilisateur, vous ajoutez le jeton (par le biais de la valeur du paramètre `$4DSID`) aux requêtes Web envoyées à partir des zones Web contenant des pages Qodly (ou à partir de n'importe quel navigateur Web) afin que la session de l'utilisateur sur le serveur ou l'application mono-utilisateur soit identifiée et partagée. Du côté du serveur web, si une requête web contient un *id OTP* dans le paramètre $4DSID, la session correspondant à ce token OTP est utilisée. :::note -When creating an OTP token in client/server environment, you need to execute the [OTP creation code](../API/SessionClass.md#createotp) **on the server** (the `Session` object is Null on a remote 4D). You can use for example the [`On Server Open Connection`](../commands-legacy/on-server-open-connection-database-method.md) database method. +Lors de la création d'un token OTP en environnement client/serveur, vous devez exécuter le [code de création de l'OTP](../API/SessionClass.md#createotp) **sur le serveur** (l'objet `Session` est Null sur un 4D distant). Vous pouvez par exemple utiliser la méthode base [`On Server Open Connection`](../commands-legacy/on-server-open-connection-database-method.md). ::: :::tip Article(s) de blog sur le sujet -[Embed Qodly pages in a 4D web area without extra cost](https://blog.4d.com/embed-qodly-pages-in-a-4d-web-area-without-extra-cost) +[Intégrez des pages Qodly dans une zone web 4D sans coût supplémentaire](https://blog.4d.com/embed-qodly-pages-in-a-4d-web-area-without-extra-cost) ::: ### Exemple -In a form, get an OTP and open a Qodly page in a Web area: +Dans un formulaire, obtenez un OTP et ouvrez une page Qodly dans une zone Web : ```4d Form.otp:=getOTP @@ -127,13 +127,13 @@ WA OPEN URL(*; "QodlyPage"; Form.url) ``` -The *getOTP* project method (with the [**Execute on server** property](../Project/project-method-properties.md#execute-on-server) in Client/Server): +La méthode de projet *getOTP* (avec la propriété [**Exécuter sur le serveur**](../Project/project-method-properties.md#execute-on-server) en Client/Server) : ```4d -// In Client Server: +// En client/serveur: // ---------------- -// Method executed on the server because the session object is on the server -// The Session object is Null on the client +// Méthode exécutée sur le serveur car l'objet session est sur le serveur +// L'objet Session est Null sur le client // #DECLARE() : Text @@ -142,15 +142,15 @@ return Session.createOTP() ``` -Here is the code used to put the "viewProducts" privilege in the session: +Voici le code utilisé pour placer le privilège "viewProducts" dans la session : ```4d -// In Client Server: +// En client/serveur: // ---------------- -// This code must be executed on the server because the session object is on the server -// The Session object is Null on the client +// Ce code doit être exécuté sur le serveur car l'objet session est sur le serveur +// L'objet Session est Null sur la session client -Session.clearPrivileges() // Clean the session from its old privileges +Session.clearPrivileges() // Nettoie la session de ses anciens privilèges Session.setPrivileges("viewProducts") ``` From f63b7449408fe7922ac36a14909cabd73eec0681 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:28:35 +0100 Subject: [PATCH 030/156] New translations explorer.md (French) --- .../current/Develop/explorer.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/Develop/explorer.md diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Develop/explorer.md b/i18n/fr/docusaurus-plugin-content-docs/current/Develop/explorer.md new file mode 100644 index 00000000000000..f52a1a1df933dc --- /dev/null +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Develop/explorer.md @@ -0,0 +1,70 @@ +--- +id: explorer +title: Explorateur +--- + +L'Explorateur est une fenêtre du mode Développement qui vous permet d'accéder facilement aux tables, formulaires, méthodes, commandes 4D intégrées, constantes et aux modules d'extension. Il fournit également des informations sur ces éléments. Vous pouvez afficher l'explorateur à tout moment en choisissant l'une des pages dans le sous-menu **Développement > Explorateur** ou en cliquant sur le bouton **Explorateur** dans la barre d'outils. + +:::note + +Pour une description complète de l'Explorateur, veuillez vous référer au [chapitre Explorateur sur doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Explorer.200-7676561.en.html). + +::: + +## Page Formulaires + +La page Formulaires contient trois listes : **Formulaires projet**, **Formulaires table** et **Pages Qodly**. + +### Pages Qodly + +![](../assets/en/Develop/explorer-qodly.png) + +Cette section vous permet de visualiser la liste des pages Qodly définies dans votre projet. Vous pouvez également ajouter ou ouvrir des pages. + +Les pages listées dans la section Pages Qodly sont stockées dans le sous-dossier [**WebForm**](../Project/architecture.md#webforms) du dossier Sources du projet. + +:::note + +Les pages Qodly ne sont pas visibles dans la page **Accueil** de l'Explorateur. + +::: + +### Conditions requises + +Les pages Qodly sont créées et éditées dans [Qodly Studio](https://developer.4d.com/qodly/4DQodlyPro/qodlyStudioInterface), un outil de développement basé sur le web. L'accès à Qodly Studio à partir de 4D nécessite quelques [configurations spécifiques](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#requirements), que vous [pouvez définir en un clic](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#one-click-configuration). + +### Créer ou ouvrir une page Qodly + +Vous pouvez créer ou ouvrir des pages Qodly directement à partir de l'Explorateur 4D. Si les [conditions requires](#requirements) sont remplies, la page est ouverte dans l'[éditeur de pages de Qodly Studio](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/pageLoaderOverview). + +Pour créer une page : + +- Sélectionnez **Nouvelle page Qodly...** dans le menu contextuel,
+ ![](../assets/en/Develop/qodly-context.png) + +- ou cliquez sur l'icône **+** ou sélectionnez **Nouvelle page Qodly...** dans la partie inférieure de l'Explorateur.
+ ![](../assets/en/Develop/qodly-add.png) + +Saisissez le nom de la page et cliquez sur **OK** pour ouvrir la page dans Qodly Studio : + +![](../assets/en/Develop/qodly-create.png) + +Pour ouvrir une page : + +- double-cliquez sur un nom de page Qodly, ou +- cliquez avec le bouton droit de la souris sur le nom d'une page Qodly et sélectionnez **Editer...** dans le menu contextuel. + +### Renommer ou supprimer une page Qodly + +Le renommage et la suppression d'une page Qodly ne peuvent être effectués que dans l'[éditeur de pages de Qodly Studio](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/pageLoaderOverview). + +Cliquez sur l'icône du stylo pour renommer la page :
+![](../assets/en/Develop/qodly-rename.png) + +Cliquez sur le bouton d'options et sélectionnez **Supprimer** pour supprimer une page :
+![](../assets/en/Develop/qodly-delete.png) + +Une boîte de dialogue de confirmation s'affiche. + + + From afdee2760ebc92d7ce0ed5fe01e31ed3c7ef6a71 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:28:36 +0100 Subject: [PATCH 031/156] New translations explorer-qodly.png (French) --- .../current/assets/en/Develop/explorer-qodly.png | Bin 0 -> 8150 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/explorer-qodly.png diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/explorer-qodly.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/explorer-qodly.png new file mode 100644 index 0000000000000000000000000000000000000000..2a2bf4eac64d652de1a9fd13a57ec5cccaf40fef GIT binary patch literal 8150 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 Date: Tue, 30 Dec 2025 21:28:37 +0100 Subject: [PATCH 032/156] New translations qodly-add.png (French) --- .../current/assets/en/Develop/qodly-add.png | Bin 0 -> 2530 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-add.png diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-add.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-add.png new file mode 100644 index 0000000000000000000000000000000000000000..24f0f90a585117506e3df3fb37b9ce1bb6ad6ced GIT binary patch literal 2530 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 sm%V+u7&eD=l}o!07*qoM6N<$f*6?0YXATM literal 0 HcmV?d00001 From 5c723de367e99f6f19a93e49ba06517a4e696627 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:28:39 +0100 Subject: [PATCH 033/156] New translations qodly-bad-name.png (French) --- .../current/assets/en/Develop/qodly-bad-name.png | Bin 0 -> 8599 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-bad-name.png diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-bad-name.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-bad-name.png new file mode 100644 index 0000000000000000000000000000000000000000..dda0eee24fe3d5f79e7e5875c4fbc8dade66c909 GIT binary patch literal 8599 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 literal 0 HcmV?d00001 From d66355f35a99c19c72b77a28d90085106b246213 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:28:40 +0100 Subject: [PATCH 034/156] New translations qodly-context.png (French) --- .../current/assets/en/Develop/qodly-context.png | Bin 0 -> 4484 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-context.png diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-context.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-context.png new file mode 100644 index 0000000000000000000000000000000000000000..ce32dd404512f4cc6b444c8113a11976707e1b97 GIT binary patch literal 4484 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 W^s;X~zJCS)0000 Date: Tue, 30 Dec 2025 21:28:41 +0100 Subject: [PATCH 035/156] New translations qodly-create.png (French) --- .../current/assets/en/Develop/qodly-create.png | Bin 0 -> 5416 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-create.png diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-create.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-create.png new file mode 100644 index 0000000000000000000000000000000000000000..470dba01034ec3fd918cc252edb38cb750ae22e8 GIT binary patch literal 5416 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 literal 0 HcmV?d00001 From 91559cc9a9abde198d63139107fce0bd3c3556ba Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:28:43 +0100 Subject: [PATCH 036/156] New translations qodly-delete.png (French) --- .../current/assets/en/Develop/qodly-delete.png | Bin 0 -> 13471 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-delete.png diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-delete.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-delete.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0c03f5185f3fb47e98a44304813d6a8e97fea2 GIT binary patch literal 13471 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 literal 0 HcmV?d00001 From 9dc96ddad0d1338a934e40f7482d9fa90ddbb5be Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:28:44 +0100 Subject: [PATCH 037/156] New translations qodly-rename.png (French) --- .../current/assets/en/Develop/qodly-rename.png | Bin 0 -> 4522 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-rename.png diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-rename.png b/i18n/fr/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-rename.png new file mode 100644 index 0000000000000000000000000000000000000000..8d548672ca9abb2ef0be60b6addcc7e620ef3bf3 GIT binary patch literal 4522 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 Date: Tue, 30 Dec 2025 21:28:51 +0100 Subject: [PATCH 038/156] New translations explorer.md (Spanish) --- .../current/Develop/explorer.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/Develop/explorer.md diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Develop/explorer.md b/i18n/es/docusaurus-plugin-content-docs/current/Develop/explorer.md new file mode 100644 index 00000000000000..5c8588354e7f6e --- /dev/null +++ b/i18n/es/docusaurus-plugin-content-docs/current/Develop/explorer.md @@ -0,0 +1,70 @@ +--- +id: explorador +title: Explorador +--- + +The Explorer is a window in the Design environment that gives you convenient access to tables, forms, methods, built-in 4D commands, constants and plug-ins. It also provides information about these items. You can display the Explorer at any time by choosing one of the pages in the **Design > Explorer** sub-menu or by clicking on the **Explorer** button in the toolbar. + +:::note + +For a comprehensive description of the Explorer, please refer to the [Explorer chapter on doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Explorer.200-7676561.en.html). + +::: + +## Forms page + +The Forms page contains three lists: **Project Forms**, **Table Forms**, and **Qodly Pages**. + +### Qodly Pages + +![](../assets/en/Develop/explorer-qodly.png) + +This section allows you to view the list of Qodly pages defined your project. You can also add or open pages. + +The pages listed in the Qodly Pages section are stored in the [**WebForm** subfolder](../Project/architecture.md#webforms) of the project's Sources folder. + +:::note + +Qodly pages are not visible in the **Home** page of the Explorer. + +::: + +### Requisitos + +Qodly pages are created and edited in [Qodly Studio](https://developer.4d.com/qodly/4DQodlyPro/qodlyStudioInterface), a web-based development tool. Accessing Qodly Studio from 4D requires some [specific configurations](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#requirements), that you [can set in one click](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#one-click-configuration). + +### Adding or opening a Qodly page + +You can add or open Qodly pages directly from the 4D Explorer. If [requirements](#requirements) are met, the page is opened in the [Page editor of Qodly Studio](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/pageLoaderOverview). + +To add a page: + +- Select **New Qodly page...** in the contextual menu,
+ ![](../assets/en/Develop/qodly-context.png) + +- or click the **+** icon or select **New Qodly page...** in the bottom area of the Explorer.
+ ![](../assets/en/Develop/qodly-add.png) + +Enter the name of the page and click **OK** to open the page in Qodly Studio: + +![](../assets/en/Develop/qodly-create.png) + +To open a page: + +- double-click on a Qodly page name, or +- right-click on a Qodly page name and select **Edit...** in the contextual menu. + +### Renaming or deleting a Qodly page + +Renaming or deleting a Qodly page can only be done in the [Page editor of Qodly Studio](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/pageLoaderOverview). + +Click on the pen icon to rename the page:
+![](../assets/en/Develop/qodly-rename.png) + +Click on the options button and select **Delete** to delete a page:
+![](../assets/en/Develop/qodly-delete.png) + +Aparece una caja de diálogo de confirmación. + + + From 670395cda60ad80c4f9eedf55e7834cc39820a71 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:28:52 +0100 Subject: [PATCH 039/156] New translations explorer-qodly.png (Spanish) --- .../current/assets/en/Develop/explorer-qodly.png | Bin 0 -> 8150 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/explorer-qodly.png diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/explorer-qodly.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/explorer-qodly.png new file mode 100644 index 0000000000000000000000000000000000000000..2a2bf4eac64d652de1a9fd13a57ec5cccaf40fef GIT binary patch literal 8150 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 Date: Tue, 30 Dec 2025 21:29:13 +0100 Subject: [PATCH 040/156] New translations qodly-add.png (Spanish) --- .../current/assets/en/Develop/qodly-add.png | Bin 0 -> 2530 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-add.png diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-add.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-add.png new file mode 100644 index 0000000000000000000000000000000000000000..24f0f90a585117506e3df3fb37b9ce1bb6ad6ced GIT binary patch literal 2530 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 sm%V+u7&eD=l}o!07*qoM6N<$f*6?0YXATM literal 0 HcmV?d00001 From 6d9a13b771aab1799c9360a506edf4a1e1773e78 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:15 +0100 Subject: [PATCH 041/156] New translations qodly-bad-name.png (Spanish) --- .../current/assets/en/Develop/qodly-bad-name.png | Bin 0 -> 8599 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-bad-name.png diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-bad-name.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-bad-name.png new file mode 100644 index 0000000000000000000000000000000000000000..dda0eee24fe3d5f79e7e5875c4fbc8dade66c909 GIT binary patch literal 8599 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 literal 0 HcmV?d00001 From f258196181a8c57a563e2b292771f4922ea29813 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:16 +0100 Subject: [PATCH 042/156] New translations qodly-context.png (Spanish) --- .../current/assets/en/Develop/qodly-context.png | Bin 0 -> 4484 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-context.png diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-context.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-context.png new file mode 100644 index 0000000000000000000000000000000000000000..ce32dd404512f4cc6b444c8113a11976707e1b97 GIT binary patch literal 4484 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 W^s;X~zJCS)0000 Date: Tue, 30 Dec 2025 21:29:17 +0100 Subject: [PATCH 043/156] New translations qodly-create.png (Spanish) --- .../current/assets/en/Develop/qodly-create.png | Bin 0 -> 5416 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-create.png diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-create.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-create.png new file mode 100644 index 0000000000000000000000000000000000000000..470dba01034ec3fd918cc252edb38cb750ae22e8 GIT binary patch literal 5416 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 literal 0 HcmV?d00001 From 6266fe5d91d579c01c431bedb89686343536be7a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:18 +0100 Subject: [PATCH 044/156] New translations qodly-delete.png (Spanish) --- .../current/assets/en/Develop/qodly-delete.png | Bin 0 -> 13471 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-delete.png diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-delete.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-delete.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0c03f5185f3fb47e98a44304813d6a8e97fea2 GIT binary patch literal 13471 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 literal 0 HcmV?d00001 From 283034a3b18c54e054cc31aa849932a56e90d5b1 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:20 +0100 Subject: [PATCH 045/156] New translations qodly-rename.png (Spanish) --- .../current/assets/en/Develop/qodly-rename.png | Bin 0 -> 4522 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-rename.png diff --git a/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-rename.png b/i18n/es/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-rename.png new file mode 100644 index 0000000000000000000000000000000000000000..8d548672ca9abb2ef0be60b6addcc7e620ef3bf3 GIT binary patch literal 4522 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 Date: Tue, 30 Dec 2025 21:29:21 +0100 Subject: [PATCH 046/156] New translations explorer.md (Japanese) --- .../current/Develop/explorer.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/Develop/explorer.md diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/explorer.md b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/explorer.md new file mode 100644 index 00000000000000..9ad9fddf8adb99 --- /dev/null +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/explorer.md @@ -0,0 +1,70 @@ +--- +id: エクスプローラー +title: エクスプローラー +--- + +The Explorer is a window in the Design environment that gives you convenient access to tables, forms, methods, built-in 4D commands, constants and plug-ins. It also provides information about these items. You can display the Explorer at any time by choosing one of the pages in the **Design > Explorer** sub-menu or by clicking on the **Explorer** button in the toolbar. + +:::note + +For a comprehensive description of the Explorer, please refer to the [Explorer chapter on doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Explorer.200-7676561.en.html). + +::: + +## Forms page + +The Forms page contains three lists: **Project Forms**, **Table Forms**, and **Qodly Pages**. + +### Qodly Pages + +![](../assets/en/Develop/explorer-qodly.png) + +This section allows you to view the list of Qodly pages defined your project. You can also add or open pages. + +The pages listed in the Qodly Pages section are stored in the [**WebForm** subfolder](../Project/architecture.md#webforms) of the project's Sources folder. + +:::note + +Qodly pages are not visible in the **Home** page of the Explorer. + +::: + +### 要件 + +Qodly pages are created and edited in [Qodly Studio](https://developer.4d.com/qodly/4DQodlyPro/qodlyStudioInterface), a web-based development tool. Accessing Qodly Studio from 4D requires some [specific configurations](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#requirements), that you [can set in one click](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#one-click-configuration). + +### Adding or opening a Qodly page + +You can add or open Qodly pages directly from the 4D Explorer. If [requirements](#requirements) are met, the page is opened in the [Page editor of Qodly Studio](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/pageLoaderOverview). + +To add a page: + +- Select **New Qodly page...** in the contextual menu,
+ ![](../assets/en/Develop/qodly-context.png) + +- or click the **+** icon or select **New Qodly page...** in the bottom area of the Explorer.
+ ![](../assets/en/Develop/qodly-add.png) + +Enter the name of the page and click **OK** to open the page in Qodly Studio: + +![](../assets/en/Develop/qodly-create.png) + +To open a page: + +- double-click on a Qodly page name, or +- right-click on a Qodly page name and select **Edit...** in the contextual menu. + +### Renaming or deleting a Qodly page + +Renaming or deleting a Qodly page can only be done in the [Page editor of Qodly Studio](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/pageLoaderOverview). + +Click on the pen icon to rename the page:
+![](../assets/en/Develop/qodly-rename.png) + +Click on the options button and select **Delete** to delete a page:
+![](../assets/en/Develop/qodly-delete.png) + +確認用のダイアログボックスが表示されます。 + + + From 5e74ecbc20e9b0b7e3a1ca5e51adffae6fec408b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:23 +0100 Subject: [PATCH 047/156] New translations explorer-qodly.png (Japanese) --- .../current/assets/en/Develop/explorer-qodly.png | Bin 0 -> 8150 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/explorer-qodly.png diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/explorer-qodly.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/explorer-qodly.png new file mode 100644 index 0000000000000000000000000000000000000000..2a2bf4eac64d652de1a9fd13a57ec5cccaf40fef GIT binary patch literal 8150 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 Date: Tue, 30 Dec 2025 21:29:24 +0100 Subject: [PATCH 048/156] New translations qodly-add.png (Japanese) --- .../current/assets/en/Develop/qodly-add.png | Bin 0 -> 2530 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-add.png diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-add.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-add.png new file mode 100644 index 0000000000000000000000000000000000000000..24f0f90a585117506e3df3fb37b9ce1bb6ad6ced GIT binary patch literal 2530 zcmV<82_5!{P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D33o|EK~#8N?cL8y z8*d&5@OOg!P7QPmrF-gOTY^Pm4)#!p1qm*QK@nRB{sA_42?1Mz5PFt?1PKHWmDE2# z0K=-GMr25qe&bChlfl^77~=6by1Kgb zlK}wl-o3+eE4sS6(B0jQnVA{=BqBqxY~YucmM}a#tZ%Mqcz76Z-n`K_6B){> z&f$MIgkN4>);FEX=g*(@O&WLZ+|f53TSrF+R##Wya5(Vz@nZnMix)3y{=B!hhx_;M z=|Ca zeyyKGWEht1;d^^~F*i4-Z?0)>ZVtV@z4~S%L$Pe&M@L7ova)ilH`Qb^8LX_VV03g; zKZ(dt&K&sVSS=K;XsaA0zB5@TaybwjVbIcIWm5)Ow$Kbgo-&U_AUbeT*Bna|;g$T%2yA`7wXke=_LBeS#FZ2Bf^^zg-E@yLV7?5h2} zo3@AlU8sLIoye%F_3R2$23{ZLU%!4~e}DhT(T>Q>Y&IKgHX8&%C?5ngfj2sRn3aJ4 z{P`1CuU>^92)J_Pie?@nvpP69K%r28BuNki0d~6`wtxI<%M^jvhaK|szg<7XU;pw4 zu3fvPolayCJ3Bl0&;S0!m;c($anY_;*o!E_aRq2?ZPiXEvXIu+RyeMd@?eUJVlSelrA0p%k!7^Bw4lXa%7ftpuj$?8uq*9HdVV4cGkoCnVOO^oi$zTvk>wdZ z@I-Vnw)PMIHf}dqwTD-F_fp$GZ~cLrH*Z$vBeI};K99eD{S!8nqG4KJzkY4fz^4%u zhL8-*Lz?#K+M{S+e~XY))qE!Mwp1;i*gD=eZUfZh^7%Y&-MR(a^XJbE8~AD$<&-w% zJpSRshfN&#C~}@G+z|LS3d21wuYWy;+>q+vfh=ER{)it)EkcBd#T4N0uXdvDK}{`}*O>1~$b-q~J%@yc03-&BTe&Yz(;})$KE98{9}DdStBcM86+MjYN_2_rnP% z`u#a9Ol<)E{!$No9P;{=vjd0;M3br>|J2mi6>9xVmw|zACe9FMV;)t557X;0AnYoi zdkgXqz}fEyvX$Yxv)_+gGFM|bUrTBIxgmMot`z+1%K18(k*V&(SG!8zy!YXWE)MU* z6Il=gPh=qsJduSk@I)5Ez!O;r15acjrU|_I7M=R`91)ciS>lSwS{QgD3t`}iEQEn4 zvJeKI$U+$SOOr-W_31Zl`}ur?R9%ir{mHwNJIhC2<=0()oMc%#D+c~jdElv9^rG>^ zgcq)`TT@J99z$mc{aIA1@2tmw@Cb`|UK9rYl3hsES}}o2<_%(M#=N zouLQ<*%aiGe00tj_{(+?RckjlkPQr0DQw|Hn>$-BfLXhOt#+C>Q7(F?o&gE3Zkcot zg7;(xvvjb=DTikJiKDMsw~weg2EGZLchy>PGpBj3*4D06*r`{+Ry%DLDb2UolsFNJ zsD3X1>4hW$5xMAP4PqjSq^DAc&o`}{a?B%;R7M~5wqJc8QFRP_Q#jwMwazxT=6O~1 zD%gsf$a!LTDo=BUA_%CLRrm%GNG`}dY#Ix>$}(D&*W?PjG5=O|P)G;mo?2Dguio}+ z?IWs+fo~S)S+%yU9iDO!)v6yLPS1y@u^gfa5n@6quvv||WVY(Mf|!7J2=eP)ho-z= zT~+oGRb|+~*ZN?LaX&b7j#X=&Aw&X63~A1%MI^i~gx!(S_s!L-VC!syI~#^F01*?> zDnt4bXTKjvO=0RZ2a?SVWIgR@0|0RmsjS>yZ~Ha(QLS5tC%uhmE`|-fDV<~0THmyU zb$<%3^2IF|!dVYu%ilC32m(gnuRf%Qd~k6mkyH*OC*gaF7{aCBabyGT z@~)`2{o4D8jxuc3T73_$uUM-*fAr`PtJc;cCg632k%b4b27a?_Iw)XaQ2mX#4JIbw zb!{M`yUj?o<@0&GeEE_+yrnrqcq>Veq{f9EVgk{c7wZ}$Jr%AD{pmy)cxsT+eR#o@ zf?xUmxrUL~Ef3j;k^$|NeL6MxH1`hm5f?OyRu)n{rZzi&ggM$P7{P`0w+mK#AoG%uO*xufTBuSe2h^(YgDB#<- zZ^rH6PvXOe57^z^#m>$S4h|0VlZi}ge}5mlySw=D;|JE()&Qfv@kT$SSD&-%ABTsB za5x;eckdo<+_-_()>h53L}pbe6tKO$jrZ^0qfjWoZnv8!@BnalcvyaZczCG!U;nsF sm%V+u7&eD=l}o!07*qoM6N<$f*6?0YXATM literal 0 HcmV?d00001 From 3d927e8c251b72aba59528b3cd8467efa83bbf3a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:25 +0100 Subject: [PATCH 049/156] New translations qodly-bad-name.png (Japanese) --- .../current/assets/en/Develop/qodly-bad-name.png | Bin 0 -> 8599 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-bad-name.png diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-bad-name.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-bad-name.png new file mode 100644 index 0000000000000000000000000000000000000000..dda0eee24fe3d5f79e7e5875c4fbc8dade66c909 GIT binary patch literal 8599 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 literal 0 HcmV?d00001 From 1ef401ca4db89b946e432537bcb821218279007e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:27 +0100 Subject: [PATCH 050/156] New translations qodly-context.png (Japanese) --- .../current/assets/en/Develop/qodly-context.png | Bin 0 -> 4484 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-context.png diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-context.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-context.png new file mode 100644 index 0000000000000000000000000000000000000000..ce32dd404512f4cc6b444c8113a11976707e1b97 GIT binary patch literal 4484 zcmV-~5qs{5P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D5gAEDK~#8N?VWva z6m^=%KRua{Kt)-Q^AN3F?}nUI4260j8_7xxh@?^#g5YF$5%VQ01Ck3E86J@e(kGq##s@X0utsK(+uuD&ES=lEl39{W0A$-90lQXo547 z=Tkh@)4$iA=GWhT=K1|Pt$g#%H|l4fea3zF-N)$BqY(r_5JC%^H9-&rK?p5G$OSVFBtNx+6JC%$? z;K(1jV9gT*K?orN3i;gJeA1kAsIJ&f$@&-R>+7Rr{fksrY$we*hq<}=)+!#()@|iD z@XYK~Q+mSe0DoHits8OTFzF(Ze^MFpJ*i^*sN!8mf)}iT5%d z7rP!ahg}Nm^n(6EGFpfS-|yf#4lVrS+nyi@!r&56$Q4B)d-Yn6nE&djnH~|(UcDAY zQLI&NkQxe;7IWMf>Nv8P$2Bo;d}RhZN#^ASmBtGPc*a^?Ih7E^EncJFGs%g+VW`+ zv;50mHZBIJirSTPaT>F{dsqP8SwlWqaE#~-= z12n#xs>PmXurqNJyLM-Bmnr|p?0Re>uOCU~<%Umr{BEr*+Wxr}Bs{T!DQ})+^Di9U zwgB`pcbml)YS@x6m#OdUX2wtNBvS1)2YE3$$ml<*PqP(=SJXxv)u>#x5KQX#J< zCn}S&tV+6y(=6%hnACiT+`)Yi7FSUUad{2i1fRYKit!k4^mw)J?b%PFV8C^S?@D`n zJGb3-8;YX%7=|T?vJ^422)fY9-o1NSuwVhv(b3#~`|W)2!3WkNVMr25O_}6WThj+0 zw}{76+0{jtW|d?Tbu&8mA&G)!_c1gVK;FV4Zsb)Vf*`mFDj}aRVFI&f&*s>%W2{-T zh6M{2@buG9Gh)OD4jedOEgn`l^9yKNH^f5bDq>+?Je6I=82#_G;${k()=@O1o%fF; zH=nGA3ikYf#~=uyN>B;;`Sa&_^2sMjPEMw^wUtYkE-_=q47$6!$;ikcJ3HHC#l^+e zCPJ6kT=L`dSQto6T}7lsMY$j9h{~ZFsLqKpc=6TbM5TDe*i}S|)yr;ep&={7B;sxy z#Kt#Jp{uB=FJm9(yp*C=Lx!gSMJbj#)j33^+}KU3I>+0;>DPj(|03V-Y&l1QFdPUP zA$K~RBqk;@X3QAYEL+OjoNU(q`#gTT{WYdP@(|aqUE{UaUSrLgH6Huoi!ZFrgfwZz zmBi;Q^y3*R=7ik$;lvQbRRb53>5*{&j?WurCv8GmBtxcwVBe9c` zv`^LK#N`oRsrA)dKvSkJmgc-IR2X91Iu3I44aWskSCx^KpG$w?Z&%Se%95Oc(o#U1sJR}hdXml4r?cghdD1g9 zNTawip1eYfFX?Kfi3alGG;cGrjE0t0h@C`IQ!6f@x~d6hz7s0;;KIe83UKPGsNsl> zH|_hy)k+gtWaw_YBbWTF23lIRyrcqFYI%;_e6oynb<#4(Dyz~w;%cgzymicYzf)XZ zJe7wGVqcx3dDeyr(f;}mbdCfc26A2WmnQ@tK_lefe)}z5U0ndID0s_lt4mn1x`duH zU2J-N6YJNnXXVP39t%s-R#M=1;xo%MLD^ND299)`RItZYO;wYV^t5!Gw9x9>Lj_*% z)|OCffIHra=F(a9#YI zBS9Dj1dWhC@W2D?-0A*{;^pP#CR;xF7i8V~OSWz`r-vsFa<>%Flxgrp9kIky<|kC( zAl(TS3w5z{knU`vs;~w8iKio%{H!uEP4Q|MMJaLQ#pk=1{%L)AA|tLM)|F`tRT)aDHumyLlOm^*oV8Xrc5nAt^#MX?k%TLT$x3gmbVb6 z|IiBBO(VXHGW`Z|Bc!dQfIRmxE^Hy*b1M4lKkzvcgm5RQ9tg7A?ezBcGIs1(($mw4 zh=^e8n_Ky9N-te^USZD1KQfii&d#Q!q{Q+d&`CB=zlWuVO+`6(?p%;Q5EKNsib#pe zqhXLA%BjwYqAH_{A&YRhib#oTA>Xo`QV2|Ydpl#tj`chQWV6})J`iO6ECe?}y+S=Nf^{=y-vbl@D+|^F`|M*T`8AaU7G)h|BG53y+4z69hX2=tK zaO85RtBbC#!4q*@MXU=r$vHSw7v_0GFv5T_PIOu)K4p?KGzlsp2bef{TGM)|oY2wvpc2tR^qvJ;@VxOl)%Y)+m$nPtnC zfuF&tsw#bbef0J9p{gpEE?ttzPGQ*7-rnwh$+|YtsZVy=Y;K<}(8Q+@+ytGF-v~x; zqCXMu>+9pnl`GtO>#amaMw;3XgyBL@PY;(bUnV9d#z(|;0T&?;O~Nv?;!oghHk;?k zQ9&4vbaZr}D2mD9p`Vp1fzpNGBP@h`AOkKkGLnvt4z66eLQhYRHCqtEmhSFuu3o)L zXJ;oPMvSm#3t>Q5gjS4OV>rcXy}iA3cXyk-5kUxd^l*vYZpUu7d%`La5fMJIa${&k zuPX#UVd0S*F~;}&4NAM+PDDh6&%pg5Oc)+m|KD$>MMOjp5fR}LaN{u~=fV)z!?HF~eHLG|_1_>soT_zD#-w;fz(#jW?F--DvdsLTC_FLarzZPd)V% zW5buvrJCbuf#G4M($H3)X8z-xorUpz+AZjT^`F z&p*$(bLZ&jaC_o9KOXb<{N(TciP{sjru2~`NBX=WNZ$_BhLY3ekFu2a_}_W|V9kO7 zK9MSfK0l;58im@QnEMlU<5ma_f=0+6ee_YzoH;{EN(v<9|Mto5@H`~*#C<@>yR**pLbvNB>N zhYqbGGBT18BSw(={%Mr{!YXasm=zO4OiTge(G*Gna{Zw zyQyXsa1rtFAZUbq^ytwuEmgZ9_r(eEJl}C}Or&KRWJN>g)f+IX@R)IGgDliw(Ky=iJ}9w_Z2?_Jz$iFY{!MK5{8h!sD#YG^j!{FE{s#B8eysfhoYb;hxo(W-a4i>91f-)Udp?N z%=N{@Zno)T(uj3m2ra@+$lWZ5D%~rYiL$?ztcm79?6HYi)b5|k(tF&0tJ!W}PlsWq%ncJr9}7OBH@iJu@01QGD?;r{`) W^s;X~zJCS)0000 Date: Tue, 30 Dec 2025 21:29:28 +0100 Subject: [PATCH 051/156] New translations qodly-create.png (Japanese) --- .../current/assets/en/Develop/qodly-create.png | Bin 0 -> 5416 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-create.png diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-create.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-create.png new file mode 100644 index 0000000000000000000000000000000000000000..470dba01034ec3fd918cc252edb38cb750ae22e8 GIT binary patch literal 5416 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 literal 0 HcmV?d00001 From a91bfa1ae2b9ffff10e8b7dd11455c2bd0509f90 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:29 +0100 Subject: [PATCH 052/156] New translations qodly-delete.png (Japanese) --- .../current/assets/en/Develop/qodly-delete.png | Bin 0 -> 13471 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-delete.png diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-delete.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-delete.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0c03f5185f3fb47e98a44304813d6a8e97fea2 GIT binary patch literal 13471 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 literal 0 HcmV?d00001 From b4a637d2658be72457af0a1d93ed5255d1b132f2 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:30 +0100 Subject: [PATCH 053/156] New translations qodly-rename.png (Japanese) --- .../current/assets/en/Develop/qodly-rename.png | Bin 0 -> 4522 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-rename.png diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-rename.png b/i18n/ja/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-rename.png new file mode 100644 index 0000000000000000000000000000000000000000..8d548672ca9abb2ef0be60b6addcc7e620ef3bf3 GIT binary patch literal 4522 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 Date: Tue, 30 Dec 2025 21:29:32 +0100 Subject: [PATCH 054/156] New translations explorer.md (Portuguese, Brazilian) --- .../current/Develop/explorer.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/Develop/explorer.md diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Develop/explorer.md b/i18n/pt/docusaurus-plugin-content-docs/current/Develop/explorer.md new file mode 100644 index 00000000000000..e099da5149d4e3 --- /dev/null +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Develop/explorer.md @@ -0,0 +1,70 @@ +--- +id: explorador +title: Explorador +--- + +The Explorer is a window in the Design environment that gives you convenient access to tables, forms, methods, built-in 4D commands, constants and plug-ins. It also provides information about these items. You can display the Explorer at any time by choosing one of the pages in the **Design > Explorer** sub-menu or by clicking on the **Explorer** button in the toolbar. + +:::note + +For a comprehensive description of the Explorer, please refer to the [Explorer chapter on doc.4d.com](https://doc.4d.com/4Dv21/4D/21/Explorer.200-7676561.en.html). + +::: + +## Forms page + +The Forms page contains three lists: **Project Forms**, **Table Forms**, and **Qodly Pages**. + +### Qodly Pages + +![](../assets/en/Develop/explorer-qodly.png) + +This section allows you to view the list of Qodly pages defined your project. You can also add or open pages. + +The pages listed in the Qodly Pages section are stored in the [**WebForm** subfolder](../Project/architecture.md#webforms) of the project's Sources folder. + +:::note + +Qodly pages are not visible in the **Home** page of the Explorer. + +::: + +### Requisitos + +Qodly pages are created and edited in [Qodly Studio](https://developer.4d.com/qodly/4DQodlyPro/qodlyStudioInterface), a web-based development tool. Accessing Qodly Studio from 4D requires some [specific configurations](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#requirements), that you [can set in one click](https://developer.4d.com/qodly/4DQodlyPro/gettingStarted#one-click-configuration). + +### Adding or opening a Qodly page + +You can add or open Qodly pages directly from the 4D Explorer. If [requirements](#requirements) are met, the page is opened in the [Page editor of Qodly Studio](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/pageLoaderOverview). + +To add a page: + +- Select **New Qodly page...** in the contextual menu,
+ ![](../assets/en/Develop/qodly-context.png) + +- or click the **+** icon or select **New Qodly page...** in the bottom area of the Explorer.
+ ![](../assets/en/Develop/qodly-add.png) + +Enter the name of the page and click **OK** to open the page in Qodly Studio: + +![](../assets/en/Develop/qodly-create.png) + +To open a page: + +- double-click on a Qodly page name, or +- right-click on a Qodly page name and select **Edit...** in the contextual menu. + +### Renaming or deleting a Qodly page + +Renaming or deleting a Qodly page can only be done in the [Page editor of Qodly Studio](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/pageLoaderOverview). + +Click on the pen icon to rename the page:
+![](../assets/en/Develop/qodly-rename.png) + +Click on the options button and select **Delete** to delete a page:
+![](../assets/en/Develop/qodly-delete.png) + +É exibida uma caixa de diálogo de confirmação. + + + From 641beec37ba22782463d22f106dc273f7147a8e8 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:33 +0100 Subject: [PATCH 055/156] New translations explorer-qodly.png (Portuguese, Brazilian) --- .../current/assets/en/Develop/explorer-qodly.png | Bin 0 -> 8150 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/explorer-qodly.png diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/explorer-qodly.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/explorer-qodly.png new file mode 100644 index 0000000000000000000000000000000000000000..2a2bf4eac64d652de1a9fd13a57ec5cccaf40fef GIT binary patch literal 8150 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 Date: Tue, 30 Dec 2025 21:29:35 +0100 Subject: [PATCH 056/156] New translations qodly-add.png (Portuguese, Brazilian) --- .../current/assets/en/Develop/qodly-add.png | Bin 0 -> 2530 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-add.png diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-add.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-add.png new file mode 100644 index 0000000000000000000000000000000000000000..24f0f90a585117506e3df3fb37b9ce1bb6ad6ced GIT binary patch literal 2530 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 sm%V+u7&eD=l}o!07*qoM6N<$f*6?0YXATM literal 0 HcmV?d00001 From dc1d410651eb0543b31741aed31a0fc4a27cdcde Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:36 +0100 Subject: [PATCH 057/156] New translations qodly-bad-name.png (Portuguese, Brazilian) --- .../current/assets/en/Develop/qodly-bad-name.png | Bin 0 -> 8599 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-bad-name.png diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-bad-name.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-bad-name.png new file mode 100644 index 0000000000000000000000000000000000000000..dda0eee24fe3d5f79e7e5875c4fbc8dade66c909 GIT binary patch literal 8599 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 literal 0 HcmV?d00001 From 241021a0a3dc70076f9ef7307d9ceb89ed462713 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:37 +0100 Subject: [PATCH 058/156] New translations qodly-context.png (Portuguese, Brazilian) --- .../current/assets/en/Develop/qodly-context.png | Bin 0 -> 4484 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-context.png diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-context.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-context.png new file mode 100644 index 0000000000000000000000000000000000000000..ce32dd404512f4cc6b444c8113a11976707e1b97 GIT binary patch literal 4484 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 W^s;X~zJCS)0000 Date: Tue, 30 Dec 2025 21:29:38 +0100 Subject: [PATCH 059/156] New translations qodly-create.png (Portuguese, Brazilian) --- .../current/assets/en/Develop/qodly-create.png | Bin 0 -> 5416 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-create.png diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-create.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-create.png new file mode 100644 index 0000000000000000000000000000000000000000..470dba01034ec3fd918cc252edb38cb750ae22e8 GIT binary patch literal 5416 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 literal 0 HcmV?d00001 From 058edeb1b79c71cabb46920013bec61929015921 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:40 +0100 Subject: [PATCH 060/156] New translations qodly-delete.png (Portuguese, Brazilian) --- .../current/assets/en/Develop/qodly-delete.png | Bin 0 -> 13471 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-delete.png diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-delete.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-delete.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0c03f5185f3fb47e98a44304813d6a8e97fea2 GIT binary patch literal 13471 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 literal 0 HcmV?d00001 From 93efc945d29474e3789354eb461775fcd30b6df8 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Tue, 30 Dec 2025 21:29:41 +0100 Subject: [PATCH 061/156] New translations qodly-rename.png (Portuguese, Brazilian) --- .../current/assets/en/Develop/qodly-rename.png | Bin 0 -> 4522 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-rename.png diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-rename.png b/i18n/pt/docusaurus-plugin-content-docs/current/assets/en/Develop/qodly-rename.png new file mode 100644 index 0000000000000000000000000000000000000000..8d548672ca9abb2ef0be60b6addcc7e620ef3bf3 GIT binary patch literal 4522 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 Date: Wed, 31 Dec 2025 01:14:58 +0100 Subject: [PATCH 062/156] New translations dt_number.md (French) --- .../version-19/Concepts/dt_number.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/dt_number.md b/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/dt_number.md index f2b473e17d67e4..1ad5c4a66eab08 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/dt_number.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-19/Concepts/dt_number.md @@ -73,9 +73,9 @@ L'opérateur modulo % retourne des valeurs significatives avec des nombres appar ::: -### Integer division +### Division entière -The integer division operator divides one number by another and returns the whole number part of the result, discarding any remainder. `a\b` is equivalent to `Int(a/b)`. This operator returns significant values with integer numbers only. +L'opérateur de division entière divise un nombre par un autre et renvoie la partie entière du résultat, en rejetant tout reste. `a\b` is equivalent to `Int(a/b)`. Cet opérateur renvoie des valeurs significatives uniquement avec des nombres entiers. ### Comparaison des réels @@ -107,7 +107,7 @@ retourne 23 car l'expression (4 * 5) est évaluée en premier lieu. Le résultat Des parenthèses peuvent être incluses dans d'autres parenthèses. Assurez-vous qu'il y ait une parenthèse fermante pour chaque parenthèse ouverte. Une parenthèse manquante ou placée à un mauvais endroit peut soit donner un résultat erroné, soit renvoyer une expression invalide. De plus, si vous avez l'intention de compiler vos applications, vous devez vous assurer d'une bonne utilisation des parenthèses. Le compilateur interprètera toute parenthèse manquante ou superflue comme une erreur de syntaxe. -## Opérateurs sur les bits +## Opérateurs bit à bit Les opérateurs sur les bits s'appliquent à des expressions ou valeurs de type **Entier long**. @@ -119,16 +119,16 @@ Comme un bit peut valoir 0 (zéro) ou 1, vous pouvez également considérer une Une expression utilisant un opérateur sur les bits retourne une valeur de type Entier long, à l'exception de l'opérateur Tester bit avec lequel l'expression retournée est du type Booléen. Le tableau suivant fournit la liste des opérateurs sur les bits et leur syntaxe : -| Opération | Opérateur | Syntaxe | Retourne | -| --------------------- | ------------- | ------------------------- | ----------------------- | -| ET | & | long & E. E. long | E. long | -| OU (inclusif) | | | long | E. long | E. long | -| OU (exclusif) | ^ | | Long ^ | Long | E. long | -| Décaler bits à gauche | << | E. Long << E. Long | long (voir note n°1) | -| Décaler bits à droite | >> | E. Long >> E. Long | long (voir note n°1) | -| Mettre bit à 1 | ?+ | long ?+ E. E. long | long (voir note n°2) | -| Mettre bit à 0 | ?- | long ?? | long (voir note n°2) | -| Tester bit | ?? | long \^| E. E. long | Booléen (voir note n°2) | +| Opération | Opérateur | Syntaxe | Retourne | +| --------------------- | ------------- | ----------------------- | ----------------------- | +| ET | & | long & E. E. long | Long | +| OU (inclusif) | | | Long | Long | Long | +| OU (exclusif) | ^ | | Long ^ | Long | Long | +| Décaler bits à gauche | << | E. Long << E. Long | long (voir note n°1) | +| Décaler bits à droite | >> | E. Long >> E. Long | long (voir note n°1) | +| Mettre bit à 1 | ?+ | Long ?+ Long | long (voir note n°2) | +| Mettre bit à 0 | ?- | Long ?- Long | long (voir note n°2) | +| Tester bit | ?? | Long ?? Long | Booléen (voir note n°2) | #### Notes From 6dc67fb1bef18587542e597e78c41ecafbd5d3b2 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:00 +0100 Subject: [PATCH 063/156] New translations forms.md (French) --- .../version-19/FormEditor/forms.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-19/FormEditor/forms.md b/i18n/fr/docusaurus-plugin-content-docs/version-19/FormEditor/forms.md index 46f28c1588d1c9..15834efa6ccfe8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-19/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-19/FormEditor/forms.md @@ -86,10 +86,10 @@ Chaque formulaire est composé d'au moins deux pages : Vous pouvez créer plusieurs pages pour un formulaire d'entrée. Si le nombre de champs ou de variables est supérieur au nombre maximal supporté sur un écran, vous pouvez créer des pages supplémentaires pour les afficher. Plusieurs pages vous permettent d'effectuer les opérations suivantes : -- Placez les informations les plus importantes sur la première page et les informations les moins importantes sur les autres pages. -- Organisez chaque sujet sur sa propre page. +- Placer les informations les plus importantes sur la première page et les informations les moins importantes sur les autres pages. +- Organiser chaque sujet sur sa propre page. - Réduire ou éliminer le défilement pendant la saisie des données en définissant [l'ordre de saisie](formEditor.md#data-entry-order). -- Prévoyez de l'espace autour des éléments du formulaire pour un design d'écran attrayant. +- Définir de l'espace autour des éléments du formulaire pour un design d'écran attrayant. Les pages multiples sont utiles uniquement pour les formulaires d'entrée. Elles ne sont pas destinées à être imprimées. Lorsqu'un formulaire de plusieurs pages est imprimé, seule la première page est imprimée. From a1c9a00cdba99ed186143453ce7a1ff5467e2a17 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:02 +0100 Subject: [PATCH 064/156] New translations dt_number.md (French) --- .../version-20/Concepts/dt_number.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/dt_number.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/dt_number.md index f2b473e17d67e4..1ad5c4a66eab08 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/dt_number.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/Concepts/dt_number.md @@ -73,9 +73,9 @@ L'opérateur modulo % retourne des valeurs significatives avec des nombres appar ::: -### Integer division +### Division entière -The integer division operator divides one number by another and returns the whole number part of the result, discarding any remainder. `a\b` is equivalent to `Int(a/b)`. This operator returns significant values with integer numbers only. +L'opérateur de division entière divise un nombre par un autre et renvoie la partie entière du résultat, en rejetant tout reste. `a\b` is equivalent to `Int(a/b)`. Cet opérateur renvoie des valeurs significatives uniquement avec des nombres entiers. ### Comparaison des réels @@ -107,7 +107,7 @@ retourne 23 car l'expression (4 * 5) est évaluée en premier lieu. Le résultat Des parenthèses peuvent être incluses dans d'autres parenthèses. Assurez-vous qu'il y ait une parenthèse fermante pour chaque parenthèse ouverte. Une parenthèse manquante ou placée à un mauvais endroit peut soit donner un résultat erroné, soit renvoyer une expression invalide. De plus, si vous avez l'intention de compiler vos applications, vous devez vous assurer d'une bonne utilisation des parenthèses. Le compilateur interprètera toute parenthèse manquante ou superflue comme une erreur de syntaxe. -## Opérateurs sur les bits +## Opérateurs bit à bit Les opérateurs sur les bits s'appliquent à des expressions ou valeurs de type **Entier long**. @@ -119,16 +119,16 @@ Comme un bit peut valoir 0 (zéro) ou 1, vous pouvez également considérer une Une expression utilisant un opérateur sur les bits retourne une valeur de type Entier long, à l'exception de l'opérateur Tester bit avec lequel l'expression retournée est du type Booléen. Le tableau suivant fournit la liste des opérateurs sur les bits et leur syntaxe : -| Opération | Opérateur | Syntaxe | Retourne | -| --------------------- | ------------- | ------------------------- | ----------------------- | -| ET | & | long & E. E. long | E. long | -| OU (inclusif) | | | long | E. long | E. long | -| OU (exclusif) | ^ | | Long ^ | Long | E. long | -| Décaler bits à gauche | << | E. Long << E. Long | long (voir note n°1) | -| Décaler bits à droite | >> | E. Long >> E. Long | long (voir note n°1) | -| Mettre bit à 1 | ?+ | long ?+ E. E. long | long (voir note n°2) | -| Mettre bit à 0 | ?- | long ?? | long (voir note n°2) | -| Tester bit | ?? | long \^| E. E. long | Booléen (voir note n°2) | +| Opération | Opérateur | Syntaxe | Retourne | +| --------------------- | ------------- | ----------------------- | ----------------------- | +| ET | & | long & E. E. long | Long | +| OU (inclusif) | | | Long | Long | Long | +| OU (exclusif) | ^ | | Long ^ | Long | Long | +| Décaler bits à gauche | << | E. Long << E. Long | long (voir note n°1) | +| Décaler bits à droite | >> | E. Long >> E. Long | long (voir note n°1) | +| Mettre bit à 1 | ?+ | Long ?+ Long | long (voir note n°2) | +| Mettre bit à 0 | ?- | Long ?- Long | long (voir note n°2) | +| Tester bit | ?? | Long ?? Long | Booléen (voir note n°2) | #### Notes From beed8254ff8d0eae244ed796c93fbde76b72c208 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:04 +0100 Subject: [PATCH 065/156] New translations parameters.md (French) --- .../current/Concepts/parameters.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/parameters.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/parameters.md index c65821c9f8a628..8c4c6e4b71ad5d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/parameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/parameters.md @@ -47,10 +47,10 @@ Les valeurs d'entrée et de sortie sont [évaluées](#values-or-references) au m ## Déclaration des paramètres -Inside called methods or class functions, you declare parameters using a **parameter name** along with a **parameter type**, separated by colon. +À l'intérieur des méthodes ou des fonctions de classe appelées, vous déclarez des paramètres en utilisant un **nom de paramètre** ainsi qu'un **type de paramètre**, séparés par deux points. -- For class functions, parameters are declared along with the function prototype, i.e. when using the `Function` or `Class Constructor` keywords. -- Pour les méthodes (méthodes projet, méthodes d'objets de formulaire, méthodes de base de données et triggers), les paramètres sont déclarés à l'aide du mot-clé **`#DECLARE`** au début du code de la méthode. +- Pour les fonctions de classe, les paramètres sont déclarés avec le prototype de la fonction, c'est-à-dire lors de l'utilisation des mots-clés `Function` ou `Class constructor`. +- Pour les méthodes (méthodes projet, méthodes objets de formulaire, méthodes base et triggers), les paramètres sont déclarés à l'aide du mot-clé **`#DECLARE`** au début du code de la méthode. :::info Compatibilité @@ -106,7 +106,7 @@ $entitySelection:=ds.User.query("login=:1"; $user) :::note -Do not confuse **parameter declarations** with [**variable declarations**](variables.md#declaring-variables). Using the `var` keyword with parameters will generate errors. +Ne confondez pas les **déclarations de paramètres** avec les [**déclarations de variables**](variables.md#declaring-variables). L'utilisation du mot-clé `var` avec des paramètres génère des erreurs. ::: From eeb4aa27aaeca295e0ad7c7d3dadbd1c60a8e1bd Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:07 +0100 Subject: [PATCH 066/156] New translations quick-tour.md (French) --- .../current/Concepts/quick-tour.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md index 61ae5fbb7d749c..8584151564acb5 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/quick-tour.md @@ -310,7 +310,7 @@ Vous vous référez à une expression via le type de données qu’elle retourne | Col[5] | Élément de collection | Un élément de collection est une expression qui peut être de tout type | | $entitySel[0] | Entity | Un élément d'une sélection d'entité ORDA est une expression de type entité. Ce type d'expression n'est **pas affectable** | -### Assignable vs non-assignable expressions {#assignable-vs-non-assignable-expressions} +### Expressions assignables ou non assignables {#assignable-vs-non-assignable-expressions} Une expression peut simplement être une constante littérale, telle que le chiffre 4 ou la chaîne "Hello", ou une variable telle que `$myButton`. Elle peut également utiliser des opérateurs. Par exemple, 4 + 2 est une expression qui utilise l'opérateur d'addition pour additionner deux nombres et renvoyer le résultat 6. Dans tous les cas, ces expressions sont **non-assignables**, ce qui signifie que vous ne pouvez pas leur affecter de valeur. Dans 4D, les expressions peuvent être **assignables**. Une expression est assignable quand elle peut être utilisée à gauche de l'opérateur d'assignation. Par exemple : @@ -429,6 +429,6 @@ Dans l'exemple suivant, le caractère **retour chariot** (séquence d'échappeme Les conventions suivantes sont utilisées dans la documentation du langage 4D : - les caractères `{ }` (accolades) indiquent des paramètres facultatifs. Par exemple, `.delete( { option : Integer } )` signifie que le paramètre *option* peut être omis lors de l'appel de la fonction. -- the `{; ...*param* : Type}` notation indicates an unlimited number of parameters of the same type. For example, `.concat( value : any { ;...valueN : Text } ) : Collection` means that an unlimited number of values of any type can be passed to the function. -- the `{; ...(*param* : Type ; *param2* : Type) }` notation indicates 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 or type array/text can be passed to the command. +- la notation `{ ; ...*param* : Type}` indique un nombre illimité de paramètres du même type. Par exemple, `.concat( value : any { ;...valueN : any} ) : Collection` signifie qu'un nombre illimité de valeurs de n'importe quel type peut être transmis à la fonction. +- la notation `{ ; ...(*param* : Type ; *param2* : Type) }` indique un nombre illimité de groupes de paramètres. Par exemple, `COLLECTION TO ARRAY ( collection : Collection ; array : Array { ; propertyName : Text}{ ; ...(array : Array ; propertyName : Text) } )` signifie qu'un nombre illimité de couples de valeurs de types tableau/texte peut être passé à la commande. - le mot-clé `any` est utilisé pour les paramètres qui peuvent être de n'importe quel type (nombre, texte, booléen, date, heure, objet, collection...). From 628be01629157ab58a962b8a6094333b590059fa Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:11 +0100 Subject: [PATCH 067/156] New translations develop-components.md (French) --- .../current/Extensions/develop-components.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) 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 3e29a0bb5042c8..088cede50f253a 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 @@ -114,9 +114,9 @@ Les fonctionnalités standard de l'IDE 4D sont disponibles pour le composant. Vo - exécuter des méthodes, - restaurer à partir de la corbeille ou vider la corbeille. -### Search and replace +### Rechercher et Remplacer -You can use the [**Search and replace** features](../Project/search-replace.md) of the host project to search elements within the code or the forms of your editable components. The **Search in project** menu allows you to select one or all components as search target: +Vous pouvez utiliser les [**fonctions de recherche et de remplacement**](../Project/search-replace.md) du projet hôte pour rechercher des éléments dans le code ou les formulaires de vos composants modifiables. Le menu **Chercher dans le projet** vous permet de sélectionner un ou tous les composant(s) comme cible de la recherche : ![](../assets/en/Project/find-components.png) @@ -450,25 +450,25 @@ L'exécution du code d'initialisation ou de fermeture se fait au moyen de la mé ## Icône personnalisée -You can use a **custom icon** for your dependency, so that it can be visually distinguished from other components in the [Project Dependencies panel](../Project/components.md#monitoring-project-dependencies). +Vous pouvez utiliser une **icône personnalisée** pour votre dépendance, afin de la distinguer visuellement des autres composants dans la [fenêtre des dépendances du projet](../Project/components.md#monitoring-project-dependencies). -When no custom icon is defined, components use a **default icon**: +Si aucune icône personnalisée n'est définie, les composants utilisent une **icône par défaut** : ![](../assets/en/Develop/icon-comp-default.png) -To declare a custom icon for your component: +Pour déclarer une icône personnalisée pour votre composant : -1. Create a picture file for the icon and name it `logo.svg` or `logo.png`. Note that the picture will be displayed with a square shape (and automatically resized if necessary). The **svg** format is recommended. +1. Créez un fichier image pour l'icône et nommez-le `logo.svg` ou `logo.png`. Notez que l'image sera affichée avec une forme carrée (et automatiquement redimensionnée si nécessaire). Le format **svg** est recommandé. -2. Copy the icon file in the [**Resources folder**](../Project/architecture.md#resources) of the component. +2. Copiez le fichier d'icône dans le dossier [**Resources**](../Project/architecture.md#resources) du composant. -The logo file will be used in the Project Dependency window for the component, whether it is interpreted or [built](../Desktop/building.md#build-component). +Le fichier logo sera utilisé dans la fenêtre de dépendance du projet pour le composant, qu'il soit interprété ou [généré](../Desktop/building.md#build-component). ![](../assets/en/Develop/icon-comp.png) :::note -If both a `logo.svg` and `logo.png` files are found, the `logo.svg` takes priority. +Si les deux fichiers `logo.svg` et `logo.png` sont trouvés, le `logo.svg` est prioritaire. ::: From 95e3c4371fa0973af87e7e0968d655dbda3a2a66 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:13 +0100 Subject: [PATCH 068/156] New translations forms.md (French) --- .../current/FormEditor/forms.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md index 0c5ab01f402f6c..cc33f1c7836568 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormEditor/forms.md @@ -16,7 +16,7 @@ Les formulaires peuvent également contenir d'autres formulaires grâce aux fonc Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suivants : -- **L'interface 4D Developer :** Créez de nouveaux formulaires à partir du menu **Fichier** ou de la fenêtre de l' **Explorateur**. +- **L'interface 4D Developer :** Créez de nouveaux formulaires à partir du menu **Fichier** ou de la fenêtre de l'**Explorateur**. - **L'éditeur de formulaires **: Modifiez vos formulaires à l'aide de l'**[éditeur de formulaires](FormEditor/formEditor.md)**. - **Le code JSON :** Créez et concevez vos formulaires à l'aide de JSON et enregistrez les fichiers de formulaire à [l'emplacement approprié](Project/architecture#sources). Voici un exemple : @@ -85,10 +85,10 @@ Chaque formulaire est composé d'au moins deux pages : Vous pouvez créer plusieurs pages pour un formulaire d'entrée. Si le nombre de champs ou de variables est supérieur au nombre maximal supporté sur un écran, vous pouvez créer des pages supplémentaires pour les afficher. Plusieurs pages vous permettent d'effectuer les opérations suivantes : -- Placez les informations les plus importantes sur la première page et les informations les moins importantes sur les autres pages. -- Organisez chaque sujet sur sa propre page. -- Réduir ou éliminer le défilement pendant la saisie des données en définissant [l'ordre de saisie](formEditor.md#data-entry-order). -- Prévoyez de l'espace autour des éléments du formulaire pour un design d'écran attrayant. +- Placer les informations les plus importantes sur la première page et les informations les moins importantes sur les autres pages. +- Organiser chaque sujet sur sa propre page. +- Réduire ou éliminer le défilement pendant la saisie des données en définissant [l'ordre de saisie](formEditor.md#data-entry-order). +- Définir de l'espace autour des éléments du formulaire pour un design d'écran attrayant. Les pages multiples sont utiles uniquement pour les formulaires d'entrée. Elles ne sont pas destinées à être imprimées. Lorsqu'un formulaire de plusieurs pages est imprimé, seule la première page est imprimée. @@ -114,7 +114,7 @@ La prise en charge de Fluent UI est actuellement en phase d'aperçu pour les dé :::info Disponibilité -This feature can be used **in 4D projects on Windows**. It is not available on macOS or in binary 4D databases on Windows. +Cette fonction peut être utilisée **dans les projets 4D sous Windows**. Elle n'est pas disponible sur macOS ou dans les bases de données binaires 4D sous Windows. ::: From 3a870344a78c8e369a93593a137411bf2e1b5603 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:20 +0100 Subject: [PATCH 069/156] New translations properties_reference.md (French) --- .../current/FormObjects/properties_Reference.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Reference.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Reference.md index 94ab609943bc2a..7634cc7327a390 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Reference.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/properties_Reference.md @@ -32,7 +32,7 @@ Vous trouverez dans cette page une liste complète de toutes les propriétés d' | Propriété | Description | Valeurs possibles | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | a | | | -| [`action`](properties_Action.md#standard-action) | Une action à exécuter. | Nom d'une action standard valide. | +| [`action`](properties_Action.md#standard-action) | Typical activity to be performed. | Nom d'une action standard valide. | | [`allowFontColorPicker`](properties_Text.md#allow-fontcolor-picker) | Permet d'afficher le sélecteur de polices système ou le sélecteur de couleurs pour modifier les attributs d'un objet | true, false (par défaut) | | [`alternateFill`](properties_BackgroundAndBorder.md#alternate-background-color) | Permet de définir une couleur d'arrière-plan différente pour les lignes / colonnes impaires dans une list box. | Toutes les valeurs css; "transparent"; "automatic"; "automaticAlternate" | | [`automaticInsertion`](properties_DataSource.md#automatic-insertion) | Permet d'ajouter automatiquement une valeur à une liste lorsqu'un utilisateur saisit une valeur qui ne se trouve pas dans l'énumération associée à l'objet. | true, false | From 64cc682db0d6d5d25d96656b907e260f3b6c2715 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:21 +0100 Subject: [PATCH 070/156] New translations updates.md (French) --- .../docusaurus-plugin-content-docs/current/Notes/updates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 1cceef6d692eee..0da57e844aa8cc 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Notes/updates.md @@ -12,8 +12,8 @@ Lisez [**Les nouveautés de 4D 21 R2**](https://blog.4d.com/fr-whats-new-in-4d-v - Le [Code Live Checker](../code-editor/write-class-method.md#warnings-and-errors) a été amélioré pour fournir une plus grande précision dans la détection des erreurs (voir [cet article de blog](https://blog.4d.com/better-error-handling-and-type-inference-for-4d-developers) pour plus d'informations). - Les [actions standard de 4D Write Pro](../WritePro/user-legacy/standard-actions.md) qui s'appliquent aux [listes](../WritePro/user-legacy/using-a-4d-write-pro-area.md#lists) ajustent désormais automatiquement les marges des paragraphes pour que les marqueurs restent positionnés à l'intérieur de cette marge. - Prise en charge intégrée de `order by` dans les requêtes pour les recherches vectorielles IA en utilisant les fonctions [`query()`](../API/DataClassClass.md#query-by-vector-similarity) et l'[API REST](../REST/$orderby.md). -- You can now create and open Qodly Pages from the [Explorer](../Develop/explorer.md). -- You can [customize the icons of your components](../Extensions/develop-components.md#custom-icon). +- Vous pouvez désormais créer et ouvrir des pages Qodly à partir de l'[Explorateur](../Develop/explorer.md). +- Vous pouvez [personnaliser les icônes de vos composants](../Extensions/develop-components.md#custom-icon). - Composant 4D AIKit : nouvelle classe [File API](../aikit/Classes/OpenAIFilesAPI.md) pour implémenter les fonctionnalités de **téléversement de fichiers**. - [**Chercher dans le développement**](../Project/search-replace.md#search-in-components) et [**Remplacer dans le contenu**](../Project/search-replace.md#replace-in-contents) peuvent maintenant inclure les composants modifiables. - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=21_R2) : liste de tous les bugs qui ont été corrigés dans 4D 21 R2. From 7054bf1d6bcf9e253418d48af9c8cd012455dd73 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:24 +0100 Subject: [PATCH 071/156] New translations architecture.md (French) --- .../current/Project/architecture.md | 84 +++++++++---------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md index e4551a1dbc408a..a72c2d31bd82ed 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/architecture.md @@ -6,7 +6,7 @@ title: Architecture Un projet 4D est composé de plusieurs dossiers et fichiers, stockés dans un dossier racine de projet (dossier package). Par exemple : - MyPackage (*dossier racine du projet*) - - `Composants` + - `Components` - `Data` - `Logs` - `Settings` @@ -27,18 +27,18 @@ Un projet 4D est composé de plusieurs dossiers et fichiers, stockés dans un do La hiérarchie du dossier Project se présente généralement comme suit : -- fichier `.4DProject` +- `.4DProject` - `Sources` - `Classes` - `DatabaseMethods` - `Methods` - - `Formulaires` + - `Forms` - `TableForms` - - `Les Triggers` + - `Triggers` - `DerivedData` - `Trash` (le cas échéant) -### fichier `.4DProject` +### `.4DProject` Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : @@ -47,27 +47,27 @@ Le fichier de développement de projet, utilisé pour désigner et lancer le pro > Dans les projets 4D, le développement est réalisé avec 4D et le développement multi-utilisateurs est géré par des outils de contrôle de version. 4D Server peut ouvrir des fichiers .4DProject à des fins de test. -This text file can also contain configuration keys, in particular [`"tokenizedText": false`](../Preferences/general.md#excluding-tokens-in-existing-projects). +Ce fichier texte peut également contenir des clés de configuration, en particulier [`"tokenizedText" : false`](../Preferences/general.md#excluding-tokens-in-existing-projects). ### `Sources` -| Contenu | Description | Format | -| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | -| catalog.4DCatalog | Définit des tables et des champs | XML | -| catalog_editor.json | Custom positions and colors of tables, fields, and links in the Structure editor. Depends on a [Compatibility setting](../settings/compatibility.md) in converted projects | JSON | -| folders.json | Définitions des dossiers de l'Explorateur | JSON | -| menus.json | Définit les menus | JSON | -| roles.json | [Privileges, permissions](../ORDA/privileges.md#rolesjson-file) and other security settings for the project | JSON | -| settings.4DSettings | Propriétés de la base *Structure*. They are not taken into account if *[user settings](#settings-user)* or *[user settings for data](#settings-user-data)* are defined (see also [Priority of settings](../settings/overview.md#user-settings#priority-of-settings). **Attention** : dans les applications compilées, les paramètres de structure sont stockés dans le fichier .4dz (lecture seule). Pour les besoins du déploiement, il est nécessaire d'[activer](../settings/overview.md#user-settings#enabling-user-settings) et d'utiliser les *paramètres utilisateurs* ou les *paramètres utilisateurs pour les données* pour définir des paramètres personnalisés. | XML | -| tips.json | Définit les messages d'aide | JSON | -| lists.json | Listes définies | JSON | -| filters.json | Filtres définis | JSON | -| dependencies.json | Names of [components to load](components.md) in the project | JSON | -| HTTPHandlers.json | Custom [HTTP request handlers](../WebServer/http-request-handler.md) defined for the web server | JSON | -| HTTPRules.json | Custom [HTTP rules](../WebServer/http-rules.md) defined for the web server | JSON | -| styleSheets.css | Feuilles de style CSS | CSS | -| styleSheets_mac.css | Feuilles de style css sur Windows (à partir d'une base binaire convertie) | CSS | -| styleSheets_windows.css | Feuilles de style css sur Mac (à partir d'une base binaire convertie) | CSS | +| Contenu | Description | Format | +| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | +| catalog.4DCatalog | Définit des tables et des champs | XML | +| catalog_editor.json | Positions et couleurs personnalisées des tables, champs et liens dans l'éditeur de structure. Dépend d'un [paramètre de compatibilité](../settings/compatibility.md) dans les projets convertis. | JSON | +| folders.json | Définitions des dossiers de l'Explorateur | JSON | +| menus.json | Définit les menus | JSON | +| roles.json | [Privilèges, permissions](../ORDA/privileges.md#rolesjson-file) et autres paramètres de sécurité pour le projet | JSON | +| settings.4DSettings | Propriétés de *structure*. Elles ne sont pas prises en compte si des *[propriétés utilisateur](#settings-user)* ou des *[propriétés utilisateur pour les données](#settings-user-data)* sont définies (voir également [Priorité des propriétés](../settings/overview.md#user-settings#priority-of-settings)). **Attention** : dans les applications compilées, les propriétés de structure sont stockés dans le fichier .4dz (lecture seule). Pour les besoins du déploiement, il est nécessaire d'[activer](../settings/overview.md#user-settings#enabling-user-settings) et d'utiliser les *propriétés utilisateurs* ou les*propriétés utilisateurs pour les données* pour définir des paramétrages personnalisés. | XML | +| tips.json | Définit les messages d'aide | JSON | +| lists.json | Listes définies | JSON | +| filters.json | Filtres définis | JSON | +| dependencies.json | Noms des [composants à charger](components.md) dans le projet | JSON | +| HTTPHandlers.json | [Gestionnaires de requêtes HTTP personnalisés](../WebServer/http-request-handler.md) définis pour le serveur web | JSON | +| HTTPRules.json | [Règles HTTP personnalisées](../WebServer/http-rules.md) définies pour le serveur web | JSON | +| styleSheets.css | Feuilles de style CSS | CSS | +| styleSheets_mac.css | Feuilles de style css sur Windows (à partir d'une base binaire convertie) | CSS | +| styleSheets_windows.css | Feuilles de style css sur Mac (à partir d'une base binaire convertie) | CSS | #### `Classes` @@ -81,7 +81,7 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe | ---------------------------------------- | ---------------------------------------------------------------------------------- | ------ | | *databaseMethodName*.4dm | Méthodes base définies dans le projet. Un fichier par méthode base | text | -#### `Formulaires` +#### `Forms` | Contenu | Description | Format | | --------------------------------------------------------- | ------------------------------------------------------------ | ------- | @@ -98,11 +98,11 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe #### `Shared` -| Contenu | Description | Format | -| ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | -| assets/ | [Shared files](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/events/bindingActionToEvents#shared-folder) such as pictures used in Qodly pages | variés | -| CustomComponents/ | [Custom components](https://developer.4d.com/qodly/Integrations/customComponent/overview) files used in Qodly pages | json | -| *other_files*.json | shared elements such as css or datasources used in Qodly pages | json | +| Contenu | Description | Format | +| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------ | +| assets/ | [Fichiers partagés](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/events/bindingActionToEvents#shared-folder) tels que les images utilisées dans les pages Qodly | variés | +| CustomComponents/ | Fichiers [Custom components](https://developer.4d.com/qodly/Integrations/customComponent/overview) utilisés dans les pages Qodly | json | +| *other_files*.json | Eléments partagés tels que css ou datasources utilisés dans les pages Qodly | json | #### `TableForms` @@ -117,7 +117,7 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe | *n*/Output/*formName*/method.4dm | Méthode du formulaire de sortie de la table | text | | *n*/Output/*formName*/ObjectMethods/*objectName*.4dm | Méthodes objet du formulaire de sortie. Un fichier par méthode objet | text | -#### `Les Triggers` +#### `Triggers` | Contenu | Description | Format | | -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------ | @@ -127,17 +127,17 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe #### `WebForms` -| Contenu | Description | Format | -| ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | ------ | -| *QodlyFormName*.WebForm | Json representations of Qodly pages | JSON | -| crafted_components.json | Description of [components crafted](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/craftedComponents) on Qodly pages | JSON | +| Contenu | Description | Format | +| ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------- | ------ | +| *QodlyFormName*.WebForm | Représentations json des pages Qodly | JSON | +| crafted_components.json | Description des [crafted components](https://developer.4d.com/qodly/4DQodlyPro/pageLoaders/craftedComponents) des pages de Qodly | JSON | ### `Trash` Le dossier Trash contient des méthodes et des formulaires qui ont été supprimés du projet (le cas échéant). Il peut contenir les dossiers suivants : - `Methods` -- `Formulaires` +- `Forms` - `TableForms` Dans ces dossiers, les noms des éléments supprimés sont entre parenthèses, par exemple. "(myMethod).4dm". L'organisation des dossiers est identique à celle du dossier [Sources](#sources). @@ -177,9 +177,9 @@ Le dossier Data contient le fichier de données ainsi que tous les fichiers et d ### `Settings` (user data) -This folder contains [**user settings for data**](../settings/overview.md#user-settings#user-settings-for-data-file) used for application administration. +Ce dossier contient les [**propriétés utilisateur pour les données**](../settings/overview.md#user-settings#user-settings-for-data-file) utilisés pour l'administration de l'application. -> Ces paramètres ont la priorité sur les [paramètres utilisateur ](#settings-user) et sur les [paramètres de structure](#sources). See also [Priority of settings](../settings/overview.md#user-settings#priority-of-settings). +> Ces paramètres ont la priorité sur les [propriétés utilisateur ](#settings-user) et sur les [propriétés de structure](#sources). Voir aussi [Priorité des propriétés](../settings/overview.md#user-settings#priority-of-settings). | Contenu | Description | Format | | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------ | @@ -201,9 +201,9 @@ Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les ## `Settings` (user) -This folder contains [**user settings**](../settings/overview.md#user-settings#user-settings) used for application administration. +Ce dossier contient les [**propriétés utilisateur**](../settings/overview.md#user-settings#user-settings) utilisés pour l'administration de l'application. -> Ces paramètres ont la priorité sur les [paramètres de structure](#sources). Toutefois, s'il existe des [paramètres utilisateur pour les données](#settings-user-data), ils ont la priorité sur ces paramètres utilisateur. See also [Priority of settings](../settings/overview.md#user-settings#priority-of-settings). +> Ces paramètres ont la priorité sur les [paramètres de structure](#sources). Toutefois, s'il existe des [propriétés utilisateur pour les données](#settings-user-data), ils ont la priorité sur ces propriétés utilisateur. Voir aussi [Priorité des propriétés](../settings/overview.md#user-settings#priority-of-settings). | Contenu | Description | Format | | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | @@ -228,13 +228,13 @@ Ce dossier contient des fichiers qui mémorisent les configurations utilisateur, | preferences.4DPreferences | Chemin de données courant et position de la fenêtre principale | XML | | CompilerIntermediateFiles | Fichiers intermédiaires résultant de la compilation Apple Silicon | Folder | -## `Composants` +## `Components` -Folder containing components that are embedded in the project (must be stored at the same level as the Project folder). These components have priority over any other locations. +Dossier contenant les composants intégrés au projet (doit être stocké au même niveau que le dossier Project). Ces composants sont prioritaires par rapport à tout autre emplacement. :::info -You can also use the [**dependencies.json** and (optionnally) **environment4d.json** files](components.md) to declare components. +Vous pouvez également utiliser les fichiers [**dependencies.json** et (optionnellement) **environment4d.json**](components.md) pour déclarer des composants. ::: From 773a00690b3f5564a6f2fa2094e61a3f5c9531ab Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:25 +0100 Subject: [PATCH 072/156] New translations code-overview.md (French) --- .../current/Project/code-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/code-overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/code-overview.md index 26d171f9fc3ccc..fbec99036769c0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/code-overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/code-overview.md @@ -1,6 +1,6 @@ --- id: code-overview -title: Creating Methods and classes +title: Création de méthodes et de classes --- Le code 4D utilisé dans votre projet est écrit dans des [méthodes](../Concepts/methods.md) et des [classes](../Concepts/classes.md). From 81da5a0aece51a26db3e4bbe36fee7637253f70a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:27 +0100 Subject: [PATCH 073/156] New translations compiler.md (French) --- .../current/Project/compiler.md | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/compiler.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/compiler.md index b8613bcdb2ae6c..19dc026c7a6a14 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/compiler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/compiler.md @@ -53,7 +53,7 @@ En plus du bouton [**Compiler**](#compiler), la fenêtre du compilateur fournit ### Vérifier la syntaxe -Le bouton **Vérifier la syntaxe** lance l'exécution de la phase de vérification de la syntaxe. À la fin du processus de vérification, les erreurs détectées sont listées dans la zone d'information. You can double–click on an error line in order to display the corresponding method or form object. +Le bouton **Vérifier la syntaxe** lance l'exécution de la phase de vérification de la syntaxe. À la fin du processus de vérification, les erreurs détectées sont listées dans la zone d'information. Vous pouvez double-cliquer sur une ligne d'erreur afin d'afficher la méthode ou l'objet de formulaire correspondant(e). Le contrôle syntaxique peut également être lancé directement à l'aide de la commande **Check Syntax** associée au bouton de la barre d'outils **Compiler**. Cette option est la seule disponible si vous ne disposez pas d'une licence adéquate pour permettre la compilation d'applications. @@ -61,7 +61,7 @@ Le contrôle syntaxique peut également être lancé directement à l'aide de la :::info Compatibilité -This button is only displayed in converted projects if the **All variables are typed (Direct typing)** [compilation path option](#enabling-direct-typing) is not selected. For information about this button, please refer to the [documentation of previous 4D releases](../Project/compiler.md#generate-typing). +Ce bouton n'est affiché dans les projets convertis que si l'[option du chemin de compilation](#enabling-direct-typing) **Toutes les variables sont typées (typage direct)** n'est pas sélectionnée. Pour plus d'informations sur ce bouton, veuillez vous référer à la [documentation des versions précédentes de 4D](../Project/compiler.md#generate-typing). ::: @@ -71,7 +71,7 @@ Le bouton **Effacer le code compilé** permet de supprimer le code compilé du p ### Afficher/masquer les warnings -You can toggle the [warnings](#warnings) display in the Compiler window by clicking the **Show/Hide Warnings** button: +Vous pouvez permuter l'affichage des [warnings](#warnings) dans la fenêtre du Compilateur en cliquant sur le bouton **Afficher/Masquer les warnings** : ![](../assets/en/Project/compilerWin4.png) @@ -83,7 +83,7 @@ Un double-clic sur un warning ouvre la méthode correspondante. ## Paramètres du compilateur -The "Compiler" tab of the Settings dialog box lets you set parameters related to project compilation. Vous pouvez ouvrir directement cette page à partir de la [fenêtre du compilateur](#compiler-window-features) en cliquant sur le bouton **Paramètres du compilateur** : +L'onglet "Compilateur" de la boîte de dialogue des Propriétés permet de définir les paramètres relatifs à la compilation du projet. Vous pouvez ouvrir directement cette page à partir de la [fenêtre du compilateur](#compiler-window-features) en cliquant sur le bouton **Paramètres du compilateur** : ![](../assets/en/Project/compilerWin6.png) @@ -123,83 +123,83 @@ Deux options de cible sont proposées. Le résultat dépend du processeur de la > La cible de compilation Apple Silicon nécessite que l'application **Clang** soit installée sur votre machine. Clang est fournie avec la dernière version de Xcode. Voir les [pré-requis du compilateur Silicon](#requirements) pour plus d'informations. -### Additional options (Compatibility) +### Options supplémentaires (Compatibilité) -In projects converted from 4D versions prior to 20 R7, additional compilation options are available: +Dans les projets convertis à partir de versions de 4D antérieures à la 20 R7, des options de compilation supplémentaires sont disponibles : - **Chemin de compilation** - **Typage par défaut** - **Méthodes Compilateur pour...** -These options are only maintained for compatibility with legacy code. For more information, please refer to the [documentation of previous 4D releases](../Project/compiler.md#compiler-settings). +Ces options ne sont maintenues que pour des raisons de compatibilité avec le code existant. Pour plus d'informations, veuillez vous référer à la [documentation des versions précédentes de 4D](../Project/compiler.md#compiler-settings). -In converted projects, it is recommended to [enable the direct typing mode](#enabling-direct-typing) and to write compliant declaration code, i.e.: +Dans les projets convertis, il est recommandé [d'activer le mode de typage direct](#enabling-direct-typing) et d'écrire du code de déclaration conforme, c'est-à-dire : -- declare explicitely all variables [using `var` keywords](../Concepts/variables.md#declaring-variables) -- declare explicitely all parameters in function prototypes (i.e. using the `Function` or `Class Constructor` keywords) or with `#DECLARE` keywords in methods (see [Declaring parameters](../Concepts/parameters.md#declaring-parameters). +- déclarer explicitement toutes les variables [en utilisant des mots-clés `var`](../Concepts/variables.md#declaring-variables) +- déclarer explicitement tous les paramètres dans les prototypes de fonctions (c'est-à-dire en utilisant les mots-clés `Function` ou `Class constructor`) ou avec le mots-clé `#DECLARE` dans les méthodes (voir [Déclarer les paramètres](../Concepts/parameters.md#declaring-parameters). -#### Enabling direct typing +#### Activer le typage direct :::info -The direct typing mode is optional in converted projects only. It is natively used in projects created with 4D 20 R7 and higher. +Le mode de typage direct est optionnel uniquement dans les projets convertis. Il est utilisé nativement dans les projets créés avec 4D 20 R7 et suivants. ::: -Select **All variables are typed (Direct typing)** option in the **Compilation Path** menu to enable the direct typing mode. When this option is selected, other compatibility options become useless and are no longer displayed. +Sélectionnez l'option **Toutes les variables sont typées (typage direct)** dans le menu **Chemin de compilation** pour activer le mode de typage direct. Lorsque cette option est sélectionnée, les autres options de compatibilité deviennent inutiles et ne sont plus affichées. -Using this option is recommended since it provides flexibility and efficiency. The direct typing concept assumes that all elements are directly declared where they are defined in your code. You just have to make sure that all your variables are declared using the regular [`var` syntax](../Concepts/variables.md#declaring-variables) and that your method and function parameters are declared [in their prototypes](../Concepts/parameters.md) (the [Check Syntax](#check-syntax) feature can help you detecting missing or invalid declarations). +L'utilisation de cette option est recommandée car elle offre flexibilité et efficacité. Le concept de typage direct suppose que tous les éléments sont déclarés directement à l'endroit où ils sont définis dans votre code. Vous devez simplement vous assurer que toutes vos variables sont déclarées en utilisant la syntaxe [`var`](../Concepts/variables.md#declaring-variables) et que les paramètres de vos méthodes et fonctions sont déclarés [dans leurs prototypes](../Concepts/parameters.md) (la fonctionnalité [Check Syntax](#check-syntax) peut vous aider à détecter les déclarations manquantes ou invalides). ## Warnings Les warnings sont des messages spécifiques générés par le compilateur lorsqu'il vérifie la syntaxe. Ces messages sont destinés à attirer votre attention sur les déclarations qui pourraient entraîner des erreurs d'exécution. Ils n'empêchent pas la compilation. -Depending on circumstances and the programming style used, warnings may be more or less relevant. You can enable or disable warnings, in the compiler dialog, and in the code editors (4D code editor and VS Code), globally through the [warnings tab](#warnings-tab) or locally using [`//%W`](#disabling-and-enabling-warnings-locally). +Selon les circonstances et le style de programmation utilisé, ces warnings peuvent être plus ou moins pertinents. Vous pouvez activer ou désactiver les warnings dans la boîte de dialogue du compilateur et dans les éditeurs de code (éditeur de code 4D et VS Code), globalement via l'[onglet warnings](#warnings-tab) ou localement en utilisant [`//%W`](#disabling-and-enabling-warnings-locally). -### Warnings tab +### Onglet Warnings ![](../assets/en/Project/warnings-tab.png) -This tab allows you to define which warnings should be displayed globally. From the list of all possible warnings with their types, their code and their localized label, ordered by warning code. +Cet onglet vous permet de définir globalement quels warnings doivent être affichés. A partir de la liste de tous les warnings possibles avec leur type, leur code et leur libellé localisé, classés par code. -To reduce the list, you can search words by warning labels and codes using the **Search in codes and labels** textbox or the magnifying glass icon on the left. +Pour réduire la liste, vous pouvez rechercher des mots par libellés et codes de warning en utilisant la zone de texte **Recherche dans les codes et libellés** ou l'icône de loupe à gauche. -By default, all warning types are checked and enabled. +Par défaut, tous les types de warnings sont cochés et activés. -When you modify a warning display status, the information is stored in the "warnings.json" file, placed in the project Settings folder. +Lorsque vous modifiez le statut d'affichage d'un warning, l'information est stockée dans le fichier "warnings.json", placé dans le dossier Settings du projet. -The **Reset to factory settings** button sets all the warning display status checkboxes to default values and deletes the "warnings.json" file. +Le bouton **Rétablir les paramètres d'usine** remet toutes les cases à cocher de statut d'affichage des warnings à leur valeur par défaut et supprime le fichier "warnings.json". -### Disabling and enabling warnings locally +### Désactiver et activer localement les warnings -You can control warnings in specific parts of your code by using special comments to disable or enable them. +Vous pouvez contrôler les warnings dans des parties spécifiques de votre code en utilisant des commentaires spéciaux pour les désactiver ou les activer. -To disable warnings, insert the following comments before and after the code section where you want to disable warnings: +Pour désactiver les warnings, insérez les commentaires suivants avant et après la section de code devant ignorer les warnings : ```4d -// Before the selected code part use +// Avant la partie de code sélectionnée, utilisez //%W- -// After the selected code part use +// Après la partie de code sélectionnée, utilisez //%W+ ``` -To re-enable warnings in a code section, use the following comments: +Pour réactiver les warnings dans une section de code, utilisez les commentaires suivants : ```4d -// Before the selected code part use +// Avant la partie de code sélectionnée, utilisez //%W+ -// After the selected code part use +// Après la partie de code sélectionnée, utilisez //%W- ``` -Only warnings with numbers can be disabled or enabled. Warning numbers are specified at the end of each message in the list of compilation errors or in the list found in the warning tab. +Seuls les warnings comportant un numéro peuvent être désactivés ou activés. Les numéros des warnings sont spécifiés à la fin de chaque message dans la liste des erreurs de compilation ou dans la liste figurant dans l'onglet des warnings. Par exemple, pour désactiver le warning suivant : *1: Redefinition of variable $a (550.10)* -... you just need to write the following comments in your 4D method: +... il vous suffit d'écrire les commentaires suivants dans votre méthode 4D : ```4d var $a : Text @@ -213,7 +213,7 @@ Par exemple, pour désactiver le warning suivant : :::note -The special warnings comments have priority over the warnings display settings set in the warning tab. +Les commentaires des warnings spéciaux sont prioritaires sur les paramètres d'affichage des warnings définis dans l'onglet des warnings. ::: @@ -221,7 +221,7 @@ The special warnings comments have priority over the warnings display settings s ### Fichier de symboles -If you check the [**Generate the symbol file**](#symbol-file) option in the compiler settings, a symbol file called `ProjectName_symbols.txt` is created in the [Logs folder](../Project/architecture.md#logs) of the project during compilation. Il est divisé en plusieurs parties : +Si vous cochez l'option [**Générer le fichier de symboles**](#symbol-file) dans les propriétés du compilateur, un fichier de symboles appelé `ProjectName_symbols.txt` est créé dans le [dossier Logs](../Project/architecture.md#logs) du projet lors de la compilation. Il est divisé en plusieurs parties : #### Liste des variables process et interprocess From f899c83ba22ce7fab47bf3760b8d29f4069f3aba Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:29 +0100 Subject: [PATCH 074/156] New translations documentation.md (French) --- .../current/Project/documentation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/documentation.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/documentation.md index 98f9bd11147e88..ba978854f29e89 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/documentation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/documentation.md @@ -40,7 +40,7 @@ L'architecture du dossier `Documentation` est la suivante : - `DatabaseMethods` - onStartup.md - ... - - `Formulaires` + - `Forms` - loginDial.md - ... - `Methods` @@ -51,7 +51,7 @@ L'architecture du dossier `Documentation` est la suivante : - input.md - ... - ... - - `Les Triggers` + - `Triggers` - table1.md - ... From 2ae9e1a34541d938bfeeff2d7b8a0ea0c1071a1f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:31 +0100 Subject: [PATCH 075/156] New translations overview.md (French) --- .../docusaurus-plugin-content-docs/current/Project/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/overview.md index 3120e63043738c..57ef48e7b54770 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/overview.md @@ -22,6 +22,6 @@ Le développement multi-utilisateur est géré via des outils de **source contro ## Application finale -Les fichiers du projet peuvent être [compilés](compiler.md) et facilement déployés. 4D allows you to create several types of application from your projects, including [web](WebServer/webServer.md) applications, [desktop](Desktop/building.md) applications (client/server or single-user), or mobile applications. +Les fichiers du projet peuvent être [compilés](compiler.md) et facilement déployés. 4D vous permet de créer plusieurs types d'applications à partir de vos projets, y compris des applications [web](WebServer/webServer.md), des applications [desktop](Desktop/building.md) (client/serveur ou mono-utilisateur) ou des applications mobiles. Les applications back end peuvent être déployées à l'aide de 4D Server, 4D ou [fusionnées avec 4D Volume Desktop](../Desktop/building.md). \ No newline at end of file From a067d985d3d2b7455737d0a8ce37041778fddbdc Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:33 +0100 Subject: [PATCH 076/156] New translations dt_number.md (French) --- .../current/Concepts/dt_number.md | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/dt_number.md b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/dt_number.md index d4892d4922001f..d645b8d9481546 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/dt_number.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Concepts/dt_number.md @@ -49,7 +49,7 @@ Les nombres négatifs s’écrivent précédés du signe moins (-). Par exemple | Soustraction | Nombre - Nombre | Number | 3 – 2 | 1 | | Multiplication | Number \* Number | Number | 5 \* 2 | 10 | | Division | Number / Number | Number | 5 / 2 | 2.5 | -| Integer division | Nombre \ Nombre | Number | 5 \ 2 | 2 | +| Division entière | Nombre \ Nombre | Number | 5 \ 2 | 2 | | Modulo | Nombre % Nombre | Number | 5 % 2 | 1 | | Exponentiation | Nombre ^ Nombre | Number | 2 ^ 3 | 8 | | Egalité | Nombre = Nombre | Boolean | 10 = 10 | True | @@ -79,9 +79,9 @@ L'opérateur modulo % retourne des valeurs significatives avec des nombres appar ::: -### Integer division +### Division entière -The integer division operator divides one number by another and returns the whole number part of the result, discarding any remainder. `a\b` is equivalent to `Int(a/b)`. This operator returns significant values with integer numbers only. +L'opérateur de division entière divise un nombre par un autre et renvoie la partie entière du résultat, en rejetant tout reste. `a\b` est équivalent à `Int(a/b)`. Cet opérateur renvoie des valeurs significatives uniquement avec des nombres entiers. ### Comparaison des réels @@ -113,7 +113,7 @@ retourne 23 car l'expression (4 \* 5) est évaluée en premier lieu. Le résulta Des parenthèses peuvent être incluses dans d'autres parenthèses. Assurez-vous qu'il y ait une parenthèse fermante pour chaque parenthèse ouverte. Une parenthèse manquante ou placée à un mauvais endroit peut soit donner un résultat erroné, soit renvoyer une expression invalide. De plus, si vous avez l'intention de compiler vos applications, vous devez vous assurer d'une bonne utilisation des parenthèses. Le compilateur interprètera toute parenthèse manquante ou superflue comme une erreur de syntaxe. -## Opérateurs sur les bits +## Opérateurs bit à bit Les opérateurs bit à bit opèrent sur des expressions ou des valeurs d'Integers (longs). @@ -125,16 +125,16 @@ Comme un bit peut valoir 0 (zéro) ou 1, vous pouvez également considérer une Une expression qui utilise un opérateur bit à bit renvoie une valeur de type Long, à l'exception de l'opérateur Bit Test, pour lequel l'expression renvoie une valeur booléenne. Le tableau suivant fournit la liste des opérateurs sur les bits et leur syntaxe : -| Opération | Opérateur | Syntaxe | Retourne | -| -------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------ | -| ET | & | Long & Long | E. long | -| OU (inclusif) | | | long | E. long | E. long | -| OU (exclusif) | ^ | | Long ^ | Long | E. long | -| Décaler bits à gauche | << | long << E. long | long (voir note n°1) | -| Décaler bits à droite | > > | long >> E. long | long (voir note n°1) | -| Mettre bit à 1 | ?+ | long ?+ E. E. long | long (voir note n°2) | -| Mettre bit à 0 | ?- | long ?? | long (voir note n°2) | -| Tester bit | ?? | long \^| E. E. long | Booléen (voir note n°2) | +| Opération | Opérateur | Syntaxe | Retourne | +| -------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------ | +| ET | & | Long & Long | Long | +| OU (inclusif) | | | Long | Long | Long | +| OU (exclusif) | ^ | | Long ^ | Long | Long | +| Décaler bits à gauche | << | Long << Long | long (voir note n°1) | +| Décaler bits à droite | > > | Long >> Long | long (voir note n°1) | +| Mettre bit à 1 | ?+ | Long ?+ Long | long (voir note n°2) | +| Mettre bit à 0 | ?- | Long ?- Long | long (voir note n°2) | +| Tester bit | ?? | Long ?? Long | Booléen (voir note n°2) | #### Notes From d24533a51f2163ca7b87c63cd1c0a298206bc5e9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:35 +0100 Subject: [PATCH 077/156] New translations webarea_overview.md (French) --- .../current/FormObjects/webArea_overview.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md index 3eec516ac20cfe..f9e548143ae68d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/FormObjects/webArea_overview.md @@ -24,7 +24,7 @@ Deux variables spécifiques sont automatiquement associées à chaque zone web : - [`URL`](properties_WebArea.md#url) --pour contrôler l'URL affichée par la zone web - [`Progression`](properties_WebArea.md#progression) -- pour contrôler le pourcentage de chargement de la page affichée dans la zone 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). +> Depuis 4D 19 R5, la variable Progression n'est plus mise à jour dans les zones Web utilisant le [moteur de rendu système Windows](./webArea_overview.md#web-rendering-engine). ### Moteur de rendu Web @@ -121,9 +121,9 @@ $4d.today(function(result) #### Exemple 2 -Instead of using a standalone method, we can also use a class function to handle the calculation. +Au lieu d'utiliser une méthode indépendante, nous pouvons également utiliser une fonction de classe pour effectuer le calcul. -Define a "SumCalculator" 4D user class with a `calcSum` function which receives parameters and returns their sum: +Définir une classe utilisateur 4D "SumCalculator" avec une fonction `calcSum` qui reçoit des paramètres et renvoie leur somme : ```4d // class SumCalculator From 9acd70e114f4e8aeb33c3f960ffa98791885143e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:37 +0100 Subject: [PATCH 078/156] New translations dt_number.md (French) --- .../version-20-R10/Concepts/dt_number.md | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/dt_number.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/dt_number.md index e8de0b63b25b94..d645b8d9481546 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/dt_number.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/dt_number.md @@ -79,9 +79,9 @@ L'opérateur modulo % retourne des valeurs significatives avec des nombres appar ::: -### Integer division +### Division entière -The integer division operator divides one number by another and returns the whole number part of the result, discarding any remainder. `a\b` is equivalent to `Int(a/b)`. This operator returns significant values with integer numbers only. +L'opérateur de division entière divise un nombre par un autre et renvoie la partie entière du résultat, en rejetant tout reste. `a\b` est équivalent à `Int(a/b)`. Cet opérateur renvoie des valeurs significatives uniquement avec des nombres entiers. ### Comparaison des réels @@ -113,7 +113,7 @@ retourne 23 car l'expression (4 \* 5) est évaluée en premier lieu. Le résulta Des parenthèses peuvent être incluses dans d'autres parenthèses. Assurez-vous qu'il y ait une parenthèse fermante pour chaque parenthèse ouverte. Une parenthèse manquante ou placée à un mauvais endroit peut soit donner un résultat erroné, soit renvoyer une expression invalide. De plus, si vous avez l'intention de compiler vos applications, vous devez vous assurer d'une bonne utilisation des parenthèses. Le compilateur interprètera toute parenthèse manquante ou superflue comme une erreur de syntaxe. -## Opérateurs sur les bits +## Opérateurs bit à bit Les opérateurs bit à bit opèrent sur des expressions ou des valeurs d'Integers (longs). @@ -125,16 +125,16 @@ Comme un bit peut valoir 0 (zéro) ou 1, vous pouvez également considérer une Une expression qui utilise un opérateur bit à bit renvoie une valeur de type Long, à l'exception de l'opérateur Bit Test, pour lequel l'expression renvoie une valeur booléenne. Le tableau suivant fournit la liste des opérateurs sur les bits et leur syntaxe : -| Opération | Opérateur | Syntaxe | Retourne | -| -------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------ | -| ET | & | Long & Long | E. long | -| OU (inclusif) | | | long | E. long | E. long | -| OU (exclusif) | ^ | | Long ^ | Long | E. long | -| Décaler bits à gauche | << | long << E. long | long (voir note n°1) | -| Décaler bits à droite | > > | long >> E. long | long (voir note n°1) | -| Mettre bit à 1 | ?+ | long ?+ E. E. long | long (voir note n°2) | -| Mettre bit à 0 | ?- | long ?? | long (voir note n°2) | -| Tester bit | ?? | long \^| E. E. long | Booléen (voir note n°2) | +| Opération | Opérateur | Syntaxe | Retourne | +| -------------------------------- | ----------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------ | +| ET | & | Long & Long | Long | +| OU (inclusif) | | | Long | Long | Long | +| OU (exclusif) | ^ | | Long ^ | Long | Long | +| Décaler bits à gauche | << | Long << Long | long (voir note n°1) | +| Décaler bits à droite | > > | Long >> Long | long (voir note n°1) | +| Mettre bit à 1 | ?+ | Long ?+ Long | long (voir note n°2) | +| Mettre bit à 0 | ?- | Long ?- Long | long (voir note n°2) | +| Tester bit | ?? | Long ?? Long | Booléen (voir note n°2) | #### Notes From 099d8b4056b58fab684cdab515d9f262f026ebdc Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:39 +0100 Subject: [PATCH 079/156] New translations parameters.md (French) --- .../version-20-R10/Concepts/parameters.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/parameters.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/parameters.md index 9838e143ea8cae..ae355a56a188fe 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/parameters.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Concepts/parameters.md @@ -53,10 +53,10 @@ L'ancienne syntaxe de déclaration, où les paramètres sont automatiquement cop ## Déclaration des paramètres -Inside called methods or class functions, you declare parameters using a **parameter name** along with a **parameter type**, separated by colon. +À l'intérieur des méthodes ou des fonctions de classe appelées, vous déclarez des paramètres en utilisant un **nom de paramètre** ainsi qu'un **type de paramètre**, séparés par deux points. -- For class functions, parameters are declared along with the function prototype, i.e. when using the `Function` or `Class Constructor` keywords. -- Pour les méthodes (méthodes projet, méthodes d'objets de formulaire, méthodes de base de données et triggers), les paramètres sont déclarés à l'aide du mot-clé **`#DECLARE`** au début du code de la méthode. +- Pour les fonctions de classe, les paramètres sont déclarés avec le prototype de la fonction, c'est-à-dire lors de l'utilisation des mots-clés `Function` ou `Class constructor`. +- Pour les méthodes (méthodes projet, méthodes objets de formulaire, méthodes base et triggers), les paramètres sont déclarés à l'aide du mot-clé **`#DECLARE`** au début du code de la méthode. :::info Compatibilité @@ -112,7 +112,7 @@ $entitySelection:=ds.User.query("login=:1"; $user) :::note -Do not confuse **parameter declarations** with [**variable declarations**](variables.md#declaring-variables). Using the `var` keyword with parameters will generate errors. +Ne confondez pas les **déclarations de paramètres** avec les [**déclarations de variables**](variables.md#declaring-variables). L'utilisation du mot-clé `var` avec des paramètres génère des erreurs. ::: From c8d6724a7d97ddac83dc2b0b6bbaa353779572fd Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:44 +0100 Subject: [PATCH 080/156] New translations webarea_overview.md (French) --- .../version-20-R10/FormObjects/webArea_overview.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/webArea_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/webArea_overview.md index 4de88a0d4c1b6b..7145a3b0095ef9 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/webArea_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormObjects/webArea_overview.md @@ -18,7 +18,7 @@ Deux variables spécifiques sont automatiquement associées à chaque zone web : - [`URL`](properties_WebArea.md#url) --pour contrôler l'URL affichée par la zone web - [`Progression`](properties_WebArea.md#progression) -- pour contrôler le pourcentage de chargement de la page affichée dans la zone 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). +> Depuis 4D 19 R5, la variable Progression n'est plus mise à jour dans les zones Web utilisant le [moteur de rendu système Windows](./webArea_overview.md#web-rendering-engine). ### Moteur de rendu Web @@ -115,9 +115,9 @@ $4d.today(function(result) #### Exemple 2 -Instead of using a standalone method, we can also use a class function to handle the calculation. +Au lieu d'utiliser une méthode indépendante, nous pouvons également utiliser une fonction de classe pour effectuer le calcul. -Define a "SumCalculator" 4D user class with a `calcSum` function which receives parameters and returns their sum: +Définir une classe utilisateur 4D "SumCalculator" avec une fonction `calcSum` qui reçoit des paramètres et renvoie leur somme : ```4d // class SumCalculator From 573b061ff620776b60971599dfc4f35e300a0015 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:46 +0100 Subject: [PATCH 081/156] New translations architecture.md (French) --- .../version-20-R10/Project/architecture.md | 64 +++++++++---------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md index 8cda46ce589c99..e8735ea793a293 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/architecture.md @@ -6,7 +6,7 @@ title: Architecture Un projet 4D est composé de plusieurs dossiers et fichiers, stockés dans un dossier racine de projet (dossier package). Par exemple : - MyPackage (*dossier racine du projet*) - - `Composants` + - `Components` - `Data` - `Logs` - `Settings` @@ -27,18 +27,18 @@ Un projet 4D est composé de plusieurs dossiers et fichiers, stockés dans un do La hiérarchie du dossier Project se présente généralement comme suit : -- fichier `.4DProject` +- `.4DProject` - `Sources` - `Classes` - `DatabaseMethods` - `Methods` - - `Formulaires` + - `Forms` - `TableForms` - - `Les Triggers` + - `Triggers` - `DerivedData` - `Trash` (le cas échéant) -### fichier `.4DProject` +### `.4DProject` Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : @@ -47,26 +47,26 @@ Le fichier de développement de projet, utilisé pour désigner et lancer le pro > Dans les projets 4D, le développement est réalisé avec 4D et le développement multi-utilisateurs est géré par des outils de contrôle de version. 4D Server peut ouvrir des fichiers .4DProject à des fins de test. -This text file can also contain configuration keys, in particular [`"tokenizedText": false`](../Preferences/general.md#excluding-tokens-in-existing-projects). +Ce fichier texte peut également contenir des clés de configuration, en particulier [`"tokenizedText" : false`](../Preferences/general.md#excluding-tokens-in-existing-projects). ### `Sources` -| Contenu | Description | Format | -| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | -| catalog.4DCatalog | Définit des tables et des champs | XML | -| catalog_editor.json | Custom positions and colors of tables, fields, and links in the Structure editor. Depends on a [Compatibility setting](../settings/compatibility.md) in converted projects | JSON | -| folders.json | Définitions des dossiers de l'Explorateur | JSON | -| menus.json | Définit les menus | JSON | -| roles.json | [Privileges, permissions](../ORDA/privileges.md#rolesjson-file) and other security settings for the project | JSON | -| settings.4DSettings | Propriétés de la base *Structure*. They are not taken into account if *[user settings](#settings-user)* or *[user settings for data](#settings-user-data)* are defined (see also [Priority of settings](../settings/overview.md#user-settings#priority-of-settings). **Attention** : dans les applications compilées, les paramètres de structure sont stockés dans le fichier .4dz (lecture seule). Pour les besoins du déploiement, il est nécessaire d'[activer](../settings/overview.md#user-settings#enabling-user-settings) et d'utiliser les *paramètres utilisateurs* ou les *paramètres utilisateurs pour les données* pour définir des paramètres personnalisés. | XML | -| tips.json | Définit les messages d'aide | JSON | -| lists.json | Listes définies | JSON | -| filters.json | Filtres définis | JSON | -| dependencies.json | Names of [components to load](components.md) in the project | JSON | -| HTTPHandlers.json | Custom [HTTP request handlers](../WebServer/http-request-handler.md) defined for the web server | JSON | -| styleSheets.css | Feuilles de style CSS | CSS | -| styleSheets_mac.css | Feuilles de style css sur Windows (à partir d'une base binaire convertie) | CSS | -| styleSheets_windows.css | Feuilles de style css sur Mac (à partir d'une base binaire convertie) | CSS | +| Contenu | Description | Format | +| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | +| catalog.4DCatalog | Définit des tables et des champs | XML | +| catalog_editor.json | Positions et couleurs personnalisées des tables, champs et liens dans l'éditeur de structure. Dépend d'un [paramètre de compatibilité](../settings/compatibility.md) dans les projets convertis. | JSON | +| folders.json | Définitions des dossiers de l'Explorateur | JSON | +| menus.json | Définit les menus | JSON | +| roles.json | [Privilèges, permissions](../ORDA/privileges.md#rolesjson-file) et autres paramètres de sécurité pour le projet | JSON | +| settings.4DSettings | Propriétés de *structure*. Elles ne sont pas prises en compte si des *[propriétés utilisateur](#settings-user)* ou des *[propriétés utilisateur pour les données](#settings-user-data)* sont définies (voir également [Priorité des propriétés](../settings/overview.md#user-settings#priority-of-settings)). **Attention** : dans les applications compilées, les propriétés de structure sont stockés dans le fichier .4dz (lecture seule). Pour les besoins du déploiement, il est nécessaire d'[activer](../settings/overview.md#user-settings#enabling-user-settings) et d'utiliser les *propriétés utilisateurs* ou les*propriétés utilisateurs pour les données* pour définir des paramétrages personnalisés. | XML | +| tips.json | Définit les messages d'aide | JSON | +| lists.json | Listes définies | JSON | +| filters.json | Filtres définis | JSON | +| dependencies.json | Noms des [composants à charger](components.md) dans le projet | JSON | +| HTTPHandlers.json | [Gestionnaires de requêtes HTTP personnalisés](../WebServer/http-request-handler.md) définis pour le serveur web | JSON | +| styleSheets.css | Feuilles de style CSS | CSS | +| styleSheets_mac.css | Feuilles de style css sur Windows (à partir d'une base binaire convertie) | CSS | +| styleSheets_windows.css | Feuilles de style css sur Mac (à partir d'une base binaire convertie) | CSS | #### `DatabaseMethods` @@ -86,7 +86,7 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | | *className*.4dm | Méthode de définition de classe utilisateur, permettant d'instancier des objets spécifiques. Un fichier par classe, le nom du fichier est le nom de la classe | text | -#### `Formulaires` +#### `Forms` | Contenu | Description | Format | | --------------------------------------------------------- | ------------------------------------------------------------ | ------- | @@ -108,7 +108,7 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe | *n*/Output/*formName*/method.4dm | Méthode du formulaire de sortie de la table | text | | *n*/Output/*formName*/ObjectMethods/*objectName*.4dm | Méthodes objet du formulaire de sortie. Un fichier par méthode objet | text | -#### `Les Triggers` +#### `Triggers` | Contenu | Description | Format | | -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------ | @@ -121,7 +121,7 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe Le dossier Trash contient des méthodes et des formulaires qui ont été supprimés du projet (le cas échéant). Il peut contenir les dossiers suivants : - `Methods` -- `Formulaires` +- `Forms` - `TableForms` Dans ces dossiers, les noms des éléments supprimés sont entre parenthèses, par exemple. "(myMethod).4dm". L'organisation des dossiers est identique à celle du dossier [Sources](#sources). @@ -161,9 +161,9 @@ Le dossier Data contient le fichier de données ainsi que tous les fichiers et d ### `Settings` (user data) -This folder contains [**user settings for data**](../settings/overview.md#user-settings#user-settings-for-data-file) used for application administration. +Ce dossier contient les [**propriétés utilisateur pour les données**](../settings/overview.md#user-settings#user-settings-for-data-file) utilisés pour l'administration de l'application. -> Ces paramètres ont la priorité sur les [paramètres utilisateur ](#settings-user) et sur les [paramètres de structure](#sources). See also [Priority of settings](../settings/overview.md#user-settings#priority-of-settings). +> Ces paramètres ont la priorité sur les [propriétés utilisateur ](#settings-user) et sur les [propriétés de structure](#sources). Voir aussi [Priorité des propriétés](../settings/overview.md#user-settings#priority-of-settings). | Contenu | Description | Format | | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------ | @@ -185,9 +185,9 @@ Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les ## `Settings` (user) -This folder contains [**user settings**](../settings/overview.md#user-settings#user-settings) used for application administration. +Ce dossier contient les [**propriétés utilisateur**](../settings/overview.md#user-settings#user-settings) utilisés pour l'administration de l'application. -> Ces paramètres ont la priorité sur les [paramètres de structure](#sources). Toutefois, s'il existe des [paramètres utilisateur pour les données](#settings-user-data), ils ont la priorité sur ces paramètres utilisateur. See also [Priority of settings](../settings/overview.md#user-settings#priority-of-settings). +> Ces paramètres ont la priorité sur les [paramètres de structure](#sources). Toutefois, s'il existe des [propriétés utilisateur pour les données](#settings-user-data), ils ont la priorité sur ces propriétés utilisateur. Voir aussi [Priorité des propriétés](../settings/overview.md#user-settings#priority-of-settings). | Contenu | Description | Format | | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | @@ -212,13 +212,13 @@ Ce dossier contient des fichiers qui mémorisent les configurations utilisateur, | preferences.4DPreferences | Chemin de données courant et position de la fenêtre principale | XML | | CompilerIntermediateFiles | Fichiers intermédiaires résultant de la compilation Apple Silicon | Folder | -## `Composants` +## `Components` -Folder containing components that are embedded in the project (must be stored at the same level as the Project folder). These components have priority over any other locations. +Dossier contenant les composants intégrés au projet (doit être stocké au même niveau que le dossier Project). Ces composants sont prioritaires par rapport à tout autre emplacement. :::info -You can also use the [**dependencies.json** and (optionnally) **environment4d.json** files](components.md) to declare components. +Vous pouvez également utiliser les fichiers [**dependencies.json** et (optionnellement) **environment4d.json**](components.md) pour déclarer des composants. ::: From 38f38f56a7dde3da7d9d908f89e60707356c2e91 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:47 +0100 Subject: [PATCH 082/156] New translations code-overview.md (French) --- .../version-20-R10/Project/code-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/code-overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/code-overview.md index 26d171f9fc3ccc..fbec99036769c0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/code-overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/code-overview.md @@ -1,6 +1,6 @@ --- id: code-overview -title: Creating Methods and classes +title: Création de méthodes et de classes --- Le code 4D utilisé dans votre projet est écrit dans des [méthodes](../Concepts/methods.md) et des [classes](../Concepts/classes.md). From 58e6b655292bcd473f82698c9f7767c604e317f5 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:49 +0100 Subject: [PATCH 083/156] New translations compiler.md (French) --- .../version-20-R10/Project/compiler.md | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/compiler.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/compiler.md index b8613bcdb2ae6c..19dc026c7a6a14 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/compiler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/compiler.md @@ -53,7 +53,7 @@ En plus du bouton [**Compiler**](#compiler), la fenêtre du compilateur fournit ### Vérifier la syntaxe -Le bouton **Vérifier la syntaxe** lance l'exécution de la phase de vérification de la syntaxe. À la fin du processus de vérification, les erreurs détectées sont listées dans la zone d'information. You can double–click on an error line in order to display the corresponding method or form object. +Le bouton **Vérifier la syntaxe** lance l'exécution de la phase de vérification de la syntaxe. À la fin du processus de vérification, les erreurs détectées sont listées dans la zone d'information. Vous pouvez double-cliquer sur une ligne d'erreur afin d'afficher la méthode ou l'objet de formulaire correspondant(e). Le contrôle syntaxique peut également être lancé directement à l'aide de la commande **Check Syntax** associée au bouton de la barre d'outils **Compiler**. Cette option est la seule disponible si vous ne disposez pas d'une licence adéquate pour permettre la compilation d'applications. @@ -61,7 +61,7 @@ Le contrôle syntaxique peut également être lancé directement à l'aide de la :::info Compatibilité -This button is only displayed in converted projects if the **All variables are typed (Direct typing)** [compilation path option](#enabling-direct-typing) is not selected. For information about this button, please refer to the [documentation of previous 4D releases](../Project/compiler.md#generate-typing). +Ce bouton n'est affiché dans les projets convertis que si l'[option du chemin de compilation](#enabling-direct-typing) **Toutes les variables sont typées (typage direct)** n'est pas sélectionnée. Pour plus d'informations sur ce bouton, veuillez vous référer à la [documentation des versions précédentes de 4D](../Project/compiler.md#generate-typing). ::: @@ -71,7 +71,7 @@ Le bouton **Effacer le code compilé** permet de supprimer le code compilé du p ### Afficher/masquer les warnings -You can toggle the [warnings](#warnings) display in the Compiler window by clicking the **Show/Hide Warnings** button: +Vous pouvez permuter l'affichage des [warnings](#warnings) dans la fenêtre du Compilateur en cliquant sur le bouton **Afficher/Masquer les warnings** : ![](../assets/en/Project/compilerWin4.png) @@ -83,7 +83,7 @@ Un double-clic sur un warning ouvre la méthode correspondante. ## Paramètres du compilateur -The "Compiler" tab of the Settings dialog box lets you set parameters related to project compilation. Vous pouvez ouvrir directement cette page à partir de la [fenêtre du compilateur](#compiler-window-features) en cliquant sur le bouton **Paramètres du compilateur** : +L'onglet "Compilateur" de la boîte de dialogue des Propriétés permet de définir les paramètres relatifs à la compilation du projet. Vous pouvez ouvrir directement cette page à partir de la [fenêtre du compilateur](#compiler-window-features) en cliquant sur le bouton **Paramètres du compilateur** : ![](../assets/en/Project/compilerWin6.png) @@ -123,83 +123,83 @@ Deux options de cible sont proposées. Le résultat dépend du processeur de la > La cible de compilation Apple Silicon nécessite que l'application **Clang** soit installée sur votre machine. Clang est fournie avec la dernière version de Xcode. Voir les [pré-requis du compilateur Silicon](#requirements) pour plus d'informations. -### Additional options (Compatibility) +### Options supplémentaires (Compatibilité) -In projects converted from 4D versions prior to 20 R7, additional compilation options are available: +Dans les projets convertis à partir de versions de 4D antérieures à la 20 R7, des options de compilation supplémentaires sont disponibles : - **Chemin de compilation** - **Typage par défaut** - **Méthodes Compilateur pour...** -These options are only maintained for compatibility with legacy code. For more information, please refer to the [documentation of previous 4D releases](../Project/compiler.md#compiler-settings). +Ces options ne sont maintenues que pour des raisons de compatibilité avec le code existant. Pour plus d'informations, veuillez vous référer à la [documentation des versions précédentes de 4D](../Project/compiler.md#compiler-settings). -In converted projects, it is recommended to [enable the direct typing mode](#enabling-direct-typing) and to write compliant declaration code, i.e.: +Dans les projets convertis, il est recommandé [d'activer le mode de typage direct](#enabling-direct-typing) et d'écrire du code de déclaration conforme, c'est-à-dire : -- declare explicitely all variables [using `var` keywords](../Concepts/variables.md#declaring-variables) -- declare explicitely all parameters in function prototypes (i.e. using the `Function` or `Class Constructor` keywords) or with `#DECLARE` keywords in methods (see [Declaring parameters](../Concepts/parameters.md#declaring-parameters). +- déclarer explicitement toutes les variables [en utilisant des mots-clés `var`](../Concepts/variables.md#declaring-variables) +- déclarer explicitement tous les paramètres dans les prototypes de fonctions (c'est-à-dire en utilisant les mots-clés `Function` ou `Class constructor`) ou avec le mots-clé `#DECLARE` dans les méthodes (voir [Déclarer les paramètres](../Concepts/parameters.md#declaring-parameters). -#### Enabling direct typing +#### Activer le typage direct :::info -The direct typing mode is optional in converted projects only. It is natively used in projects created with 4D 20 R7 and higher. +Le mode de typage direct est optionnel uniquement dans les projets convertis. Il est utilisé nativement dans les projets créés avec 4D 20 R7 et suivants. ::: -Select **All variables are typed (Direct typing)** option in the **Compilation Path** menu to enable the direct typing mode. When this option is selected, other compatibility options become useless and are no longer displayed. +Sélectionnez l'option **Toutes les variables sont typées (typage direct)** dans le menu **Chemin de compilation** pour activer le mode de typage direct. Lorsque cette option est sélectionnée, les autres options de compatibilité deviennent inutiles et ne sont plus affichées. -Using this option is recommended since it provides flexibility and efficiency. The direct typing concept assumes that all elements are directly declared where they are defined in your code. You just have to make sure that all your variables are declared using the regular [`var` syntax](../Concepts/variables.md#declaring-variables) and that your method and function parameters are declared [in their prototypes](../Concepts/parameters.md) (the [Check Syntax](#check-syntax) feature can help you detecting missing or invalid declarations). +L'utilisation de cette option est recommandée car elle offre flexibilité et efficacité. Le concept de typage direct suppose que tous les éléments sont déclarés directement à l'endroit où ils sont définis dans votre code. Vous devez simplement vous assurer que toutes vos variables sont déclarées en utilisant la syntaxe [`var`](../Concepts/variables.md#declaring-variables) et que les paramètres de vos méthodes et fonctions sont déclarés [dans leurs prototypes](../Concepts/parameters.md) (la fonctionnalité [Check Syntax](#check-syntax) peut vous aider à détecter les déclarations manquantes ou invalides). ## Warnings Les warnings sont des messages spécifiques générés par le compilateur lorsqu'il vérifie la syntaxe. Ces messages sont destinés à attirer votre attention sur les déclarations qui pourraient entraîner des erreurs d'exécution. Ils n'empêchent pas la compilation. -Depending on circumstances and the programming style used, warnings may be more or less relevant. You can enable or disable warnings, in the compiler dialog, and in the code editors (4D code editor and VS Code), globally through the [warnings tab](#warnings-tab) or locally using [`//%W`](#disabling-and-enabling-warnings-locally). +Selon les circonstances et le style de programmation utilisé, ces warnings peuvent être plus ou moins pertinents. Vous pouvez activer ou désactiver les warnings dans la boîte de dialogue du compilateur et dans les éditeurs de code (éditeur de code 4D et VS Code), globalement via l'[onglet warnings](#warnings-tab) ou localement en utilisant [`//%W`](#disabling-and-enabling-warnings-locally). -### Warnings tab +### Onglet Warnings ![](../assets/en/Project/warnings-tab.png) -This tab allows you to define which warnings should be displayed globally. From the list of all possible warnings with their types, their code and their localized label, ordered by warning code. +Cet onglet vous permet de définir globalement quels warnings doivent être affichés. A partir de la liste de tous les warnings possibles avec leur type, leur code et leur libellé localisé, classés par code. -To reduce the list, you can search words by warning labels and codes using the **Search in codes and labels** textbox or the magnifying glass icon on the left. +Pour réduire la liste, vous pouvez rechercher des mots par libellés et codes de warning en utilisant la zone de texte **Recherche dans les codes et libellés** ou l'icône de loupe à gauche. -By default, all warning types are checked and enabled. +Par défaut, tous les types de warnings sont cochés et activés. -When you modify a warning display status, the information is stored in the "warnings.json" file, placed in the project Settings folder. +Lorsque vous modifiez le statut d'affichage d'un warning, l'information est stockée dans le fichier "warnings.json", placé dans le dossier Settings du projet. -The **Reset to factory settings** button sets all the warning display status checkboxes to default values and deletes the "warnings.json" file. +Le bouton **Rétablir les paramètres d'usine** remet toutes les cases à cocher de statut d'affichage des warnings à leur valeur par défaut et supprime le fichier "warnings.json". -### Disabling and enabling warnings locally +### Désactiver et activer localement les warnings -You can control warnings in specific parts of your code by using special comments to disable or enable them. +Vous pouvez contrôler les warnings dans des parties spécifiques de votre code en utilisant des commentaires spéciaux pour les désactiver ou les activer. -To disable warnings, insert the following comments before and after the code section where you want to disable warnings: +Pour désactiver les warnings, insérez les commentaires suivants avant et après la section de code devant ignorer les warnings : ```4d -// Before the selected code part use +// Avant la partie de code sélectionnée, utilisez //%W- -// After the selected code part use +// Après la partie de code sélectionnée, utilisez //%W+ ``` -To re-enable warnings in a code section, use the following comments: +Pour réactiver les warnings dans une section de code, utilisez les commentaires suivants : ```4d -// Before the selected code part use +// Avant la partie de code sélectionnée, utilisez //%W+ -// After the selected code part use +// Après la partie de code sélectionnée, utilisez //%W- ``` -Only warnings with numbers can be disabled or enabled. Warning numbers are specified at the end of each message in the list of compilation errors or in the list found in the warning tab. +Seuls les warnings comportant un numéro peuvent être désactivés ou activés. Les numéros des warnings sont spécifiés à la fin de chaque message dans la liste des erreurs de compilation ou dans la liste figurant dans l'onglet des warnings. Par exemple, pour désactiver le warning suivant : *1: Redefinition of variable $a (550.10)* -... you just need to write the following comments in your 4D method: +... il vous suffit d'écrire les commentaires suivants dans votre méthode 4D : ```4d var $a : Text @@ -213,7 +213,7 @@ Par exemple, pour désactiver le warning suivant : :::note -The special warnings comments have priority over the warnings display settings set in the warning tab. +Les commentaires des warnings spéciaux sont prioritaires sur les paramètres d'affichage des warnings définis dans l'onglet des warnings. ::: @@ -221,7 +221,7 @@ The special warnings comments have priority over the warnings display settings s ### Fichier de symboles -If you check the [**Generate the symbol file**](#symbol-file) option in the compiler settings, a symbol file called `ProjectName_symbols.txt` is created in the [Logs folder](../Project/architecture.md#logs) of the project during compilation. Il est divisé en plusieurs parties : +Si vous cochez l'option [**Générer le fichier de symboles**](#symbol-file) dans les propriétés du compilateur, un fichier de symboles appelé `ProjectName_symbols.txt` est créé dans le [dossier Logs](../Project/architecture.md#logs) du projet lors de la compilation. Il est divisé en plusieurs parties : #### Liste des variables process et interprocess From fbbcf69bf78ad7f46ba0bdc91c53a8486833d656 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:51 +0100 Subject: [PATCH 084/156] New translations documentation.md (French) --- .../version-20-R10/Project/documentation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md index 1dca2c5fb3f211..f0505f350056cd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/documentation.md @@ -40,7 +40,7 @@ L'architecture du dossier `Documentation` est la suivante : - `DatabaseMethods` - onStartup.md - ... - - `Formulaires` + - `Forms` - loginDial.md - ... - `Methods` @@ -51,7 +51,7 @@ L'architecture du dossier `Documentation` est la suivante : - input.md - ... - ... - - `Les Triggers` + - `Triggers` - table1.md - ... From 0f0d9a89404d7fa411203006a25d77e98cf51905 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:53 +0100 Subject: [PATCH 085/156] New translations overview.md (French) --- .../version-20-R10/Project/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/overview.md index 3120e63043738c..57ef48e7b54770 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/overview.md @@ -22,6 +22,6 @@ Le développement multi-utilisateur est géré via des outils de **source contro ## Application finale -Les fichiers du projet peuvent être [compilés](compiler.md) et facilement déployés. 4D allows you to create several types of application from your projects, including [web](WebServer/webServer.md) applications, [desktop](Desktop/building.md) applications (client/server or single-user), or mobile applications. +Les fichiers du projet peuvent être [compilés](compiler.md) et facilement déployés. 4D vous permet de créer plusieurs types d'applications à partir de vos projets, y compris des applications [web](WebServer/webServer.md), des applications [desktop](Desktop/building.md) (client/serveur ou mono-utilisateur) ou des applications mobiles. Les applications back end peuvent être déployées à l'aide de 4D Server, 4D ou [fusionnées avec 4D Volume Desktop](../Desktop/building.md). \ No newline at end of file From 2b9e0bcf04d19d92236f17bd70ffe00f2865e2c5 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:55 +0100 Subject: [PATCH 086/156] New translations project-method-properties.md (French) --- .../current/Project/project-method-properties.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Project/project-method-properties.md b/i18n/fr/docusaurus-plugin-content-docs/current/Project/project-method-properties.md index f8d096c75e32fa..0c6fd8cd22a098 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Project/project-method-properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Project/project-method-properties.md @@ -1,6 +1,6 @@ --- id: project-method-properties -title: Project Method Properties +title: Propriétés des méthodes projet --- Après avoir créé une méthode projet, vous pouvez la renommer et modifier ses propriétés. Les propriétés des méthodes projet définissent principalement leurs conditions d’accès et de sécurité (accès par les utilisateurs, les serveurs intégrés ou les services) ainsi que leur mode d'exécution. @@ -22,9 +22,9 @@ Le nouveau nom doit respecter les règles de nommage 4D (voir [Identifiants](../ :::caution -Changing the name of a method already used in the project can invalidate any methods or formulas that use the old method name and runs the risk of disrupting application functioning. It is strongly recommended to use the [renaming function for project methods](../Project/search-replace.md#renaming-project-methods-and-variables). Avec cette fonction, vous pouvez mettre à jour automatiquement le nom où la méthode partout où elle est appelée dans l'environnement de développement. +Renommer une méthode déjà utilisée dans le projet peut invalider les méthodes ou formules qui utilisent l'ancien nom de la méthode et risque de perturber le fonctionnement de l'application. Il est fortement recommandé d'utiliser la [fonction de renommage des méthodes projet](../Project/search-replace.md#renaming-project-methods-and-variables). Avec cette fonction, vous pouvez mettre à jour automatiquement le nom où la méthode partout où elle est appelée dans l'environnement de développement. -Avec 4D Server, le nom de la méthode est changé sur le serveur lorsque vous avez fini de le modifier. Si plus d'un utilisateur modifie le nom de la méthode en même temps, le nom final de la méthode sera le nom spécifié par le dernier utilisateur ayant terminé de l'éditer. You may want to specify a method owner so that only certain users can change the method's name. +Avec 4D Server, le nom de la méthode est changé sur le serveur lorsque vous avez fini de le modifier. Si plus d'un utilisateur modifie le nom de la méthode en même temps, le nom final de la méthode sera le nom spécifié par le dernier utilisateur ayant terminé de l'éditer. Vous pouvez spécifier un propriétaire de la méthode afin que seuls certains utilisateurs puissent changer le nom de la méthode. ::: From a9356463c2c37fb5bce6124b33ac176a3b2055fd Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:15:56 +0100 Subject: [PATCH 087/156] New translations project-method-properties.md (French) --- .../version-20-R10/Project/project-method-properties.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/project-method-properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/project-method-properties.md index 944f2218c7c3f0..951d604bd75209 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/project-method-properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Project/project-method-properties.md @@ -1,6 +1,6 @@ --- id: project-method-properties -title: Project Method Properties +title: Propriétés des méthodes projet --- Après avoir créé une méthode projet, vous pouvez la renommer et modifier ses propriétés. Les propriétés des méthodes projet définissent principalement leurs conditions d’accès et de sécurité (accès par les utilisateurs, les serveurs intégrés ou les services) ainsi que leur mode d'exécution. From d09d3f78b0067bb83f14a3f32a0ceb043da689c9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:16:01 +0100 Subject: [PATCH 088/156] New translations architecture.md (French) --- .../version-21/Project/architecture.md | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/architecture.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/architecture.md index d0e9f6ced759c4..c8778c216544b2 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/architecture.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/architecture.md @@ -6,7 +6,7 @@ title: Architecture Un projet 4D est composé de plusieurs dossiers et fichiers, stockés dans un dossier racine de projet (dossier package). Par exemple : - MyPackage (*dossier racine du projet*) - - `Composants` + - `Components` - `Data` - `Logs` - `Settings` @@ -27,18 +27,18 @@ Un projet 4D est composé de plusieurs dossiers et fichiers, stockés dans un do La hiérarchie du dossier Project se présente généralement comme suit : -- fichier `.4DProject` +- `.4DProject` - `Sources` - `Classes` - `DatabaseMethods` - `Methods` - - `Formulaires` + - `Forms` - `TableForms` - - `Les Triggers` + - `Triggers` - `DerivedData` - `Trash` (le cas échéant) -### fichier `.4DProject` +### `.4DProject` Le fichier de développement de projet, utilisé pour désigner et lancer le projet. Ce fichier peut être ouvert par : @@ -47,27 +47,27 @@ Le fichier de développement de projet, utilisé pour désigner et lancer le pro > Dans les projets 4D, le développement est réalisé avec 4D et le développement multi-utilisateurs est géré par des outils de contrôle de version. 4D Server peut ouvrir des fichiers .4DProject à des fins de test. -This text file can also contain configuration keys, in particular [`"tokenizedText": false`](../Preferences/general.md#excluding-tokens-in-existing-projects). +Ce fichier texte peut également contenir des clés de configuration, en particulier [`"tokenizedText" : false`](../Preferences/general.md#excluding-tokens-in-existing-projects). ### `Sources` -| Contenu | Description | Format | -| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | -| catalog.4DCatalog | Définit des tables et des champs | XML | -| catalog_editor.json | Custom positions and colors of tables, fields, and links in the Structure editor. Depends on a [Compatibility setting](../settings/compatibility.md) in converted projects | JSON | -| folders.json | Définitions des dossiers de l'Explorateur | JSON | -| menus.json | Définit les menus | JSON | -| roles.json | [Privileges, permissions](../ORDA/privileges.md#rolesjson-file) and other security settings for the project | JSON | -| settings.4DSettings | Propriétés de la base *Structure*. They are not taken into account if *[user settings](#settings-user)* or *[user settings for data](#settings-user-data)* are defined (see also [Priority of settings](../settings/overview.md#user-settings#priority-of-settings). **Attention** : dans les applications compilées, les paramètres de structure sont stockés dans le fichier .4dz (lecture seule). Pour les besoins du déploiement, il est nécessaire d'[activer](../settings/overview.md#user-settings#enabling-user-settings) et d'utiliser les *paramètres utilisateurs* ou les *paramètres utilisateurs pour les données* pour définir des paramètres personnalisés. | XML | -| tips.json | Définit les messages d'aide | JSON | -| lists.json | Listes définies | JSON | -| filters.json | Filtres définis | JSON | -| dependencies.json | Names of [components to load](components.md) in the project | JSON | -| HTTPHandlers.json | Custom [HTTP request handlers](../WebServer/http-request-handler.md) defined for the web server | JSON | -| HTTPRules.json | Custom [HTTP rules](../WebServer/http-rules.md) defined for the web server | JSON | -| styleSheets.css | Feuilles de style CSS | CSS | -| styleSheets_mac.css | Feuilles de style css sur Windows (à partir d'une base binaire convertie) | CSS | -| styleSheets_windows.css | Feuilles de style css sur Mac (à partir d'une base binaire convertie) | CSS | +| Contenu | Description | Format | +| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | +| catalog.4DCatalog | Définit des tables et des champs | XML | +| catalog_editor.json | Positions et couleurs personnalisées des tables, champs et liens dans l'éditeur de structure. Dépend d'un [paramètre de compatibilité](../settings/compatibility.md) dans les projets convertis. | JSON | +| folders.json | Définitions des dossiers de l'Explorateur | JSON | +| menus.json | Définit les menus | JSON | +| roles.json | [Privilèges, permissions](../ORDA/privileges.md#rolesjson-file) et autres paramètres de sécurité pour le projet | JSON | +| settings.4DSettings | Propriétés de *structure*. Elles ne sont pas prises en compte si des *[propriétés utilisateur](#settings-user)* ou des *[propriétés utilisateur pour les données](#settings-user-data)* sont définies (voir également [Priorité des propriétés](../settings/overview.md#user-settings#priority-of-settings)). **Attention** : dans les applications compilées, les propriétés de structure sont stockés dans le fichier .4dz (lecture seule). Pour les besoins du déploiement, il est nécessaire d'[activer](../settings/overview.md#user-settings#enabling-user-settings) et d'utiliser les *propriétés utilisateurs* ou les*propriétés utilisateurs pour les données* pour définir des paramétrages personnalisés. | XML | +| tips.json | Définit les messages d'aide | JSON | +| lists.json | Listes définies | JSON | +| filters.json | Filtres définis | JSON | +| dependencies.json | Noms des [composants à charger](components.md) dans le projet | JSON | +| HTTPHandlers.json | [Gestionnaires de requêtes HTTP personnalisés](../WebServer/http-request-handler.md) définis pour le serveur web | JSON | +| HTTPRules.json | [Règles HTTP personnalisées](../WebServer/http-rules.md) définies pour le serveur web | JSON | +| styleSheets.css | Feuilles de style CSS | CSS | +| styleSheets_mac.css | Feuilles de style css sur Windows (à partir d'une base binaire convertie) | CSS | +| styleSheets_windows.css | Feuilles de style css sur Mac (à partir d'une base binaire convertie) | CSS | #### `DatabaseMethods` @@ -87,7 +87,7 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | | *className*.4dm | Méthode de définition de classe utilisateur, permettant d'instancier des objets spécifiques. Un fichier par classe, le nom du fichier est le nom de la classe | text | -#### `Formulaires` +#### `Forms` | Contenu | Description | Format | | --------------------------------------------------------- | ------------------------------------------------------------ | ------- | @@ -109,7 +109,7 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe | *n*/Output/*formName*/method.4dm | Méthode du formulaire de sortie de la table | text | | *n*/Output/*formName*/ObjectMethods/*objectName*.4dm | Méthodes objet du formulaire de sortie. Un fichier par méthode objet | text | -#### `Les Triggers` +#### `Triggers` | Contenu | Description | Format | | -------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ------ | @@ -122,7 +122,7 @@ This text file can also contain configuration keys, in particular [`"tokenizedTe Le dossier Trash contient des méthodes et des formulaires qui ont été supprimés du projet (le cas échéant). Il peut contenir les dossiers suivants : - `Methods` -- `Formulaires` +- `Forms` - `TableForms` Dans ces dossiers, les noms des éléments supprimés sont entre parenthèses, par exemple. "(myMethod).4dm". L'organisation des dossiers est identique à celle du dossier [Sources](#sources). @@ -162,9 +162,9 @@ Le dossier Data contient le fichier de données ainsi que tous les fichiers et d ### `Settings` (user data) -This folder contains [**user settings for data**](../settings/overview.md#user-settings#user-settings-for-data-file) used for application administration. +Ce dossier contient les [**propriétés utilisateur pour les données**](../settings/overview.md#user-settings#user-settings-for-data-file) utilisés pour l'administration de l'application. -> Ces paramètres ont la priorité sur les [paramètres utilisateur ](#settings-user) et sur les [paramètres de structure](#sources). See also [Priority of settings](../settings/overview.md#user-settings#priority-of-settings). +> Ces paramètres ont la priorité sur les [propriétés utilisateur ](#settings-user) et sur les [propriétés de structure](#sources). Voir aussi [Priorité des propriétés](../settings/overview.md#user-settings#priority-of-settings). | Contenu | Description | Format | | ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------ | @@ -186,9 +186,9 @@ Le dossier Logs contient tous les fichiers journaux utilisés par le projet. Les ## `Settings` (user) -This folder contains [**user settings**](../settings/overview.md#user-settings#user-settings) used for application administration. +Ce dossier contient les [**propriétés utilisateur**](../settings/overview.md#user-settings#user-settings) utilisés pour l'administration de l'application. -> Ces paramètres ont la priorité sur les [paramètres de structure](#sources). Toutefois, s'il existe des [paramètres utilisateur pour les données](#settings-user-data), ils ont la priorité sur ces paramètres utilisateur. See also [Priority of settings](../settings/overview.md#user-settings#priority-of-settings). +> Ces paramètres ont la priorité sur les [paramètres de structure](#sources). Toutefois, s'il existe des [propriétés utilisateur pour les données](#settings-user-data), ils ont la priorité sur ces propriétés utilisateur. Voir aussi [Priorité des propriétés](../settings/overview.md#user-settings#priority-of-settings). | Contenu | Description | Format | | ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------ | @@ -213,13 +213,13 @@ Ce dossier contient des fichiers qui mémorisent les configurations utilisateur, | preferences.4DPreferences | Chemin de données courant et position de la fenêtre principale | XML | | CompilerIntermediateFiles | Fichiers intermédiaires résultant de la compilation Apple Silicon | Folder | -## `Composants` +## `Components` -Folder containing components that are embedded in the project (must be stored at the same level as the Project folder). These components have priority over any other locations. +Dossier contenant les composants intégrés au projet (doit être stocké au même niveau que le dossier Project). Ces composants sont prioritaires par rapport à tout autre emplacement. :::info -You can also use the [**dependencies.json** and (optionnally) **environment4d.json** files](components.md) to declare components. +Vous pouvez également utiliser les fichiers [**dependencies.json** et (optionnellement) **environment4d.json**](components.md) pour déclarer des composants. ::: From 87c72fe7b8ce96d0b0f55b408e98b97040fe3dd9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:16:03 +0100 Subject: [PATCH 089/156] New translations webarea_overview.md (French) --- .../version-21/FormObjects/webArea_overview.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md index 3eec516ac20cfe..f9e548143ae68d 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormObjects/webArea_overview.md @@ -24,7 +24,7 @@ Deux variables spécifiques sont automatiquement associées à chaque zone web : - [`URL`](properties_WebArea.md#url) --pour contrôler l'URL affichée par la zone web - [`Progression`](properties_WebArea.md#progression) -- pour contrôler le pourcentage de chargement de la page affichée dans la zone 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). +> Depuis 4D 19 R5, la variable Progression n'est plus mise à jour dans les zones Web utilisant le [moteur de rendu système Windows](./webArea_overview.md#web-rendering-engine). ### Moteur de rendu Web @@ -121,9 +121,9 @@ $4d.today(function(result) #### Exemple 2 -Instead of using a standalone method, we can also use a class function to handle the calculation. +Au lieu d'utiliser une méthode indépendante, nous pouvons également utiliser une fonction de classe pour effectuer le calcul. -Define a "SumCalculator" 4D user class with a `calcSum` function which receives parameters and returns their sum: +Définir une classe utilisateur 4D "SumCalculator" avec une fonction `calcSum` qui reçoit des paramètres et renvoie leur somme : ```4d // class SumCalculator From 998eea99b3a2593485bf14f80e36de1b9ef87dfc Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:16:04 +0100 Subject: [PATCH 090/156] New translations code-overview.md (French) --- .../version-21/Project/code-overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/code-overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/code-overview.md index 26d171f9fc3ccc..fbec99036769c0 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/code-overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/code-overview.md @@ -1,6 +1,6 @@ --- id: code-overview -title: Creating Methods and classes +title: Création de méthodes et de classes --- Le code 4D utilisé dans votre projet est écrit dans des [méthodes](../Concepts/methods.md) et des [classes](../Concepts/classes.md). From d2721ccdb74a41e9a21bff92c2cd470ddf6939d2 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:16:06 +0100 Subject: [PATCH 091/156] New translations compiler.md (French) --- .../version-21/Project/compiler.md | 66 +++++++++---------- 1 file changed, 33 insertions(+), 33 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/compiler.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/compiler.md index b8613bcdb2ae6c..19dc026c7a6a14 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/compiler.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/compiler.md @@ -53,7 +53,7 @@ En plus du bouton [**Compiler**](#compiler), la fenêtre du compilateur fournit ### Vérifier la syntaxe -Le bouton **Vérifier la syntaxe** lance l'exécution de la phase de vérification de la syntaxe. À la fin du processus de vérification, les erreurs détectées sont listées dans la zone d'information. You can double–click on an error line in order to display the corresponding method or form object. +Le bouton **Vérifier la syntaxe** lance l'exécution de la phase de vérification de la syntaxe. À la fin du processus de vérification, les erreurs détectées sont listées dans la zone d'information. Vous pouvez double-cliquer sur une ligne d'erreur afin d'afficher la méthode ou l'objet de formulaire correspondant(e). Le contrôle syntaxique peut également être lancé directement à l'aide de la commande **Check Syntax** associée au bouton de la barre d'outils **Compiler**. Cette option est la seule disponible si vous ne disposez pas d'une licence adéquate pour permettre la compilation d'applications. @@ -61,7 +61,7 @@ Le contrôle syntaxique peut également être lancé directement à l'aide de la :::info Compatibilité -This button is only displayed in converted projects if the **All variables are typed (Direct typing)** [compilation path option](#enabling-direct-typing) is not selected. For information about this button, please refer to the [documentation of previous 4D releases](../Project/compiler.md#generate-typing). +Ce bouton n'est affiché dans les projets convertis que si l'[option du chemin de compilation](#enabling-direct-typing) **Toutes les variables sont typées (typage direct)** n'est pas sélectionnée. Pour plus d'informations sur ce bouton, veuillez vous référer à la [documentation des versions précédentes de 4D](../Project/compiler.md#generate-typing). ::: @@ -71,7 +71,7 @@ Le bouton **Effacer le code compilé** permet de supprimer le code compilé du p ### Afficher/masquer les warnings -You can toggle the [warnings](#warnings) display in the Compiler window by clicking the **Show/Hide Warnings** button: +Vous pouvez permuter l'affichage des [warnings](#warnings) dans la fenêtre du Compilateur en cliquant sur le bouton **Afficher/Masquer les warnings** : ![](../assets/en/Project/compilerWin4.png) @@ -83,7 +83,7 @@ Un double-clic sur un warning ouvre la méthode correspondante. ## Paramètres du compilateur -The "Compiler" tab of the Settings dialog box lets you set parameters related to project compilation. Vous pouvez ouvrir directement cette page à partir de la [fenêtre du compilateur](#compiler-window-features) en cliquant sur le bouton **Paramètres du compilateur** : +L'onglet "Compilateur" de la boîte de dialogue des Propriétés permet de définir les paramètres relatifs à la compilation du projet. Vous pouvez ouvrir directement cette page à partir de la [fenêtre du compilateur](#compiler-window-features) en cliquant sur le bouton **Paramètres du compilateur** : ![](../assets/en/Project/compilerWin6.png) @@ -123,83 +123,83 @@ Deux options de cible sont proposées. Le résultat dépend du processeur de la > La cible de compilation Apple Silicon nécessite que l'application **Clang** soit installée sur votre machine. Clang est fournie avec la dernière version de Xcode. Voir les [pré-requis du compilateur Silicon](#requirements) pour plus d'informations. -### Additional options (Compatibility) +### Options supplémentaires (Compatibilité) -In projects converted from 4D versions prior to 20 R7, additional compilation options are available: +Dans les projets convertis à partir de versions de 4D antérieures à la 20 R7, des options de compilation supplémentaires sont disponibles : - **Chemin de compilation** - **Typage par défaut** - **Méthodes Compilateur pour...** -These options are only maintained for compatibility with legacy code. For more information, please refer to the [documentation of previous 4D releases](../Project/compiler.md#compiler-settings). +Ces options ne sont maintenues que pour des raisons de compatibilité avec le code existant. Pour plus d'informations, veuillez vous référer à la [documentation des versions précédentes de 4D](../Project/compiler.md#compiler-settings). -In converted projects, it is recommended to [enable the direct typing mode](#enabling-direct-typing) and to write compliant declaration code, i.e.: +Dans les projets convertis, il est recommandé [d'activer le mode de typage direct](#enabling-direct-typing) et d'écrire du code de déclaration conforme, c'est-à-dire : -- declare explicitely all variables [using `var` keywords](../Concepts/variables.md#declaring-variables) -- declare explicitely all parameters in function prototypes (i.e. using the `Function` or `Class Constructor` keywords) or with `#DECLARE` keywords in methods (see [Declaring parameters](../Concepts/parameters.md#declaring-parameters). +- déclarer explicitement toutes les variables [en utilisant des mots-clés `var`](../Concepts/variables.md#declaring-variables) +- déclarer explicitement tous les paramètres dans les prototypes de fonctions (c'est-à-dire en utilisant les mots-clés `Function` ou `Class constructor`) ou avec le mots-clé `#DECLARE` dans les méthodes (voir [Déclarer les paramètres](../Concepts/parameters.md#declaring-parameters). -#### Enabling direct typing +#### Activer le typage direct :::info -The direct typing mode is optional in converted projects only. It is natively used in projects created with 4D 20 R7 and higher. +Le mode de typage direct est optionnel uniquement dans les projets convertis. Il est utilisé nativement dans les projets créés avec 4D 20 R7 et suivants. ::: -Select **All variables are typed (Direct typing)** option in the **Compilation Path** menu to enable the direct typing mode. When this option is selected, other compatibility options become useless and are no longer displayed. +Sélectionnez l'option **Toutes les variables sont typées (typage direct)** dans le menu **Chemin de compilation** pour activer le mode de typage direct. Lorsque cette option est sélectionnée, les autres options de compatibilité deviennent inutiles et ne sont plus affichées. -Using this option is recommended since it provides flexibility and efficiency. The direct typing concept assumes that all elements are directly declared where they are defined in your code. You just have to make sure that all your variables are declared using the regular [`var` syntax](../Concepts/variables.md#declaring-variables) and that your method and function parameters are declared [in their prototypes](../Concepts/parameters.md) (the [Check Syntax](#check-syntax) feature can help you detecting missing or invalid declarations). +L'utilisation de cette option est recommandée car elle offre flexibilité et efficacité. Le concept de typage direct suppose que tous les éléments sont déclarés directement à l'endroit où ils sont définis dans votre code. Vous devez simplement vous assurer que toutes vos variables sont déclarées en utilisant la syntaxe [`var`](../Concepts/variables.md#declaring-variables) et que les paramètres de vos méthodes et fonctions sont déclarés [dans leurs prototypes](../Concepts/parameters.md) (la fonctionnalité [Check Syntax](#check-syntax) peut vous aider à détecter les déclarations manquantes ou invalides). ## Warnings Les warnings sont des messages spécifiques générés par le compilateur lorsqu'il vérifie la syntaxe. Ces messages sont destinés à attirer votre attention sur les déclarations qui pourraient entraîner des erreurs d'exécution. Ils n'empêchent pas la compilation. -Depending on circumstances and the programming style used, warnings may be more or less relevant. You can enable or disable warnings, in the compiler dialog, and in the code editors (4D code editor and VS Code), globally through the [warnings tab](#warnings-tab) or locally using [`//%W`](#disabling-and-enabling-warnings-locally). +Selon les circonstances et le style de programmation utilisé, ces warnings peuvent être plus ou moins pertinents. Vous pouvez activer ou désactiver les warnings dans la boîte de dialogue du compilateur et dans les éditeurs de code (éditeur de code 4D et VS Code), globalement via l'[onglet warnings](#warnings-tab) ou localement en utilisant [`//%W`](#disabling-and-enabling-warnings-locally). -### Warnings tab +### Onglet Warnings ![](../assets/en/Project/warnings-tab.png) -This tab allows you to define which warnings should be displayed globally. From the list of all possible warnings with their types, their code and their localized label, ordered by warning code. +Cet onglet vous permet de définir globalement quels warnings doivent être affichés. A partir de la liste de tous les warnings possibles avec leur type, leur code et leur libellé localisé, classés par code. -To reduce the list, you can search words by warning labels and codes using the **Search in codes and labels** textbox or the magnifying glass icon on the left. +Pour réduire la liste, vous pouvez rechercher des mots par libellés et codes de warning en utilisant la zone de texte **Recherche dans les codes et libellés** ou l'icône de loupe à gauche. -By default, all warning types are checked and enabled. +Par défaut, tous les types de warnings sont cochés et activés. -When you modify a warning display status, the information is stored in the "warnings.json" file, placed in the project Settings folder. +Lorsque vous modifiez le statut d'affichage d'un warning, l'information est stockée dans le fichier "warnings.json", placé dans le dossier Settings du projet. -The **Reset to factory settings** button sets all the warning display status checkboxes to default values and deletes the "warnings.json" file. +Le bouton **Rétablir les paramètres d'usine** remet toutes les cases à cocher de statut d'affichage des warnings à leur valeur par défaut et supprime le fichier "warnings.json". -### Disabling and enabling warnings locally +### Désactiver et activer localement les warnings -You can control warnings in specific parts of your code by using special comments to disable or enable them. +Vous pouvez contrôler les warnings dans des parties spécifiques de votre code en utilisant des commentaires spéciaux pour les désactiver ou les activer. -To disable warnings, insert the following comments before and after the code section where you want to disable warnings: +Pour désactiver les warnings, insérez les commentaires suivants avant et après la section de code devant ignorer les warnings : ```4d -// Before the selected code part use +// Avant la partie de code sélectionnée, utilisez //%W- -// After the selected code part use +// Après la partie de code sélectionnée, utilisez //%W+ ``` -To re-enable warnings in a code section, use the following comments: +Pour réactiver les warnings dans une section de code, utilisez les commentaires suivants : ```4d -// Before the selected code part use +// Avant la partie de code sélectionnée, utilisez //%W+ -// After the selected code part use +// Après la partie de code sélectionnée, utilisez //%W- ``` -Only warnings with numbers can be disabled or enabled. Warning numbers are specified at the end of each message in the list of compilation errors or in the list found in the warning tab. +Seuls les warnings comportant un numéro peuvent être désactivés ou activés. Les numéros des warnings sont spécifiés à la fin de chaque message dans la liste des erreurs de compilation ou dans la liste figurant dans l'onglet des warnings. Par exemple, pour désactiver le warning suivant : *1: Redefinition of variable $a (550.10)* -... you just need to write the following comments in your 4D method: +... il vous suffit d'écrire les commentaires suivants dans votre méthode 4D : ```4d var $a : Text @@ -213,7 +213,7 @@ Par exemple, pour désactiver le warning suivant : :::note -The special warnings comments have priority over the warnings display settings set in the warning tab. +Les commentaires des warnings spéciaux sont prioritaires sur les paramètres d'affichage des warnings définis dans l'onglet des warnings. ::: @@ -221,7 +221,7 @@ The special warnings comments have priority over the warnings display settings s ### Fichier de symboles -If you check the [**Generate the symbol file**](#symbol-file) option in the compiler settings, a symbol file called `ProjectName_symbols.txt` is created in the [Logs folder](../Project/architecture.md#logs) of the project during compilation. Il est divisé en plusieurs parties : +Si vous cochez l'option [**Générer le fichier de symboles**](#symbol-file) dans les propriétés du compilateur, un fichier de symboles appelé `ProjectName_symbols.txt` est créé dans le [dossier Logs](../Project/architecture.md#logs) du projet lors de la compilation. Il est divisé en plusieurs parties : #### Liste des variables process et interprocess From 660a21f7f5b1340c0dc996efe1efdfce2e740646 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:16:08 +0100 Subject: [PATCH 092/156] New translations documentation.md (French) --- .../version-21/Project/documentation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/documentation.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/documentation.md index 98f9bd11147e88..ba978854f29e89 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/documentation.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/documentation.md @@ -40,7 +40,7 @@ L'architecture du dossier `Documentation` est la suivante : - `DatabaseMethods` - onStartup.md - ... - - `Formulaires` + - `Forms` - loginDial.md - ... - `Methods` @@ -51,7 +51,7 @@ L'architecture du dossier `Documentation` est la suivante : - input.md - ... - ... - - `Les Triggers` + - `Triggers` - table1.md - ... From 66ec68153bd89416b9df12cdb0bf54479ade51a0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:16:10 +0100 Subject: [PATCH 093/156] New translations overview.md (French) --- .../version-21/Project/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/overview.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/overview.md index 3120e63043738c..57ef48e7b54770 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/overview.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/overview.md @@ -22,6 +22,6 @@ Le développement multi-utilisateur est géré via des outils de **source contro ## Application finale -Les fichiers du projet peuvent être [compilés](compiler.md) et facilement déployés. 4D allows you to create several types of application from your projects, including [web](WebServer/webServer.md) applications, [desktop](Desktop/building.md) applications (client/server or single-user), or mobile applications. +Les fichiers du projet peuvent être [compilés](compiler.md) et facilement déployés. 4D vous permet de créer plusieurs types d'applications à partir de vos projets, y compris des applications [web](WebServer/webServer.md), des applications [desktop](Desktop/building.md) (client/serveur ou mono-utilisateur) ou des applications mobiles. Les applications back end peuvent être déployées à l'aide de 4D Server, 4D ou [fusionnées avec 4D Volume Desktop](../Desktop/building.md). \ No newline at end of file From 07c3c6984c69e3f4901be307c27aa4fd5b5c0381 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 01:16:12 +0100 Subject: [PATCH 094/156] New translations project-method-properties.md (French) --- .../version-21/Project/project-method-properties.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/project-method-properties.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/project-method-properties.md index 944f2218c7c3f0..951d604bd75209 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/project-method-properties.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Project/project-method-properties.md @@ -1,6 +1,6 @@ --- id: project-method-properties -title: Project Method Properties +title: Propriétés des méthodes projet --- Après avoir créé une méthode projet, vous pouvez la renommer et modifier ses propriétés. Les propriétés des méthodes projet définissent principalement leurs conditions d’accès et de sécurité (accès par les utilisateurs, les serveurs intégrés ou les services) ainsi que leur mode d'exécution. From f460b6dcad2c353386466a1925601c6aaabec12f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 10:14:39 +0100 Subject: [PATCH 095/156] New translations forms.md (French) --- .../version-20/FormEditor/forms.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20/FormEditor/forms.md b/i18n/fr/docusaurus-plugin-content-docs/version-20/FormEditor/forms.md index 95d0ce9631ab66..5138203a4db386 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20/FormEditor/forms.md @@ -86,10 +86,10 @@ Chaque formulaire est composé d'au moins deux pages : Vous pouvez créer plusieurs pages pour un formulaire d'entrée. Si le nombre de champs ou de variables est supérieur au nombre maximal supporté sur un écran, vous pouvez créer des pages supplémentaires pour les afficher. Plusieurs pages vous permettent d'effectuer les opérations suivantes : -- Placez les informations les plus importantes sur la première page et les informations les moins importantes sur les autres pages. -- Organisez chaque sujet sur sa propre page. +- Placer les informations les plus importantes sur la première page et les informations les moins importantes sur les autres pages. +- Organiser chaque sujet sur sa propre page. - Réduire ou éliminer le défilement pendant la saisie des données en définissant [l'ordre de saisie](formEditor.md#data-entry-order). -- Prévoyez de l'espace autour des éléments du formulaire pour un design d'écran attrayant. +- Définir de l'espace autour des éléments du formulaire pour un design d'écran attrayant. Les pages multiples sont utiles uniquement pour les formulaires d'entrée. Elles ne sont pas destinées à être imprimées. Lorsqu'un formulaire de plusieurs pages est imprimé, seule la première page est imprimée. From dc9362cd1630547ea695b23a58b03572d66aa450 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 11:03:02 +0100 Subject: [PATCH 096/156] New translations forms.md (French) --- .../version-20-R10/FormEditor/forms.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md index bc7cb2ef2796ea..3642482ec0590c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/FormEditor/forms.md @@ -16,7 +16,7 @@ Les formulaires peuvent également contenir d'autres formulaires grâce aux fonc Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suivants : -- **L'interface 4D Developer :** Créez de nouveaux formulaires à partir du menu **Fichier** ou de la fenêtre de l' **Explorateur**. +- **L'interface 4D Developer :** Créez de nouveaux formulaires à partir du menu **Fichier** ou de la fenêtre de l'**Explorateur**. - **L'éditeur de formulaires **: Modifiez vos formulaires à l'aide de l'**[éditeur de formulaires](FormEditor/formEditor.md)**. - **Le code JSON :** Créez et concevez vos formulaires à l'aide de JSON et enregistrez les fichiers de formulaire à [l'emplacement approprié](Project/architecture#sources). Voici un exemple : @@ -85,10 +85,10 @@ Chaque formulaire est composé d'au moins deux pages : Vous pouvez créer plusieurs pages pour un formulaire d'entrée. Si le nombre de champs ou de variables est supérieur au nombre maximal supporté sur un écran, vous pouvez créer des pages supplémentaires pour les afficher. Plusieurs pages vous permettent d'effectuer les opérations suivantes : -- Placez les informations les plus importantes sur la première page et les informations les moins importantes sur les autres pages. -- Organisez chaque sujet sur sa propre page. -- Réduir ou éliminer le défilement pendant la saisie des données en définissant [l'ordre de saisie](formEditor.md#data-entry-order). -- Prévoyez de l'espace autour des éléments du formulaire pour un design d'écran attrayant. +- Placer les informations les plus importantes sur la première page et les informations les moins importantes sur les autres pages. +- Organiser chaque sujet sur sa propre page. +- Réduire ou éliminer le défilement pendant la saisie des données en définissant [l'ordre de saisie](formEditor.md#data-entry-order). +- Définir de l'espace autour des éléments du formulaire pour un design d'écran attrayant. Les pages multiples sont utiles uniquement pour les formulaires d'entrée. Elles ne sont pas destinées à être imprimées. Lorsqu'un formulaire de plusieurs pages est imprimé, seule la première page est imprimée. From c940adab3e1008bd35e75669ad94a55a06fae3ad Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 11:34:04 +0100 Subject: [PATCH 097/156] New translations forms.md (French) --- .../version-21/FormEditor/forms.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md index bc7cb2ef2796ea..3642482ec0590c 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/FormEditor/forms.md @@ -16,7 +16,7 @@ Les formulaires peuvent également contenir d'autres formulaires grâce aux fonc Vous pouvez ajouter ou modifier des formulaires 4D à l'aide des éléments suivants : -- **L'interface 4D Developer :** Créez de nouveaux formulaires à partir du menu **Fichier** ou de la fenêtre de l' **Explorateur**. +- **L'interface 4D Developer :** Créez de nouveaux formulaires à partir du menu **Fichier** ou de la fenêtre de l'**Explorateur**. - **L'éditeur de formulaires **: Modifiez vos formulaires à l'aide de l'**[éditeur de formulaires](FormEditor/formEditor.md)**. - **Le code JSON :** Créez et concevez vos formulaires à l'aide de JSON et enregistrez les fichiers de formulaire à [l'emplacement approprié](Project/architecture#sources). Voici un exemple : @@ -85,10 +85,10 @@ Chaque formulaire est composé d'au moins deux pages : Vous pouvez créer plusieurs pages pour un formulaire d'entrée. Si le nombre de champs ou de variables est supérieur au nombre maximal supporté sur un écran, vous pouvez créer des pages supplémentaires pour les afficher. Plusieurs pages vous permettent d'effectuer les opérations suivantes : -- Placez les informations les plus importantes sur la première page et les informations les moins importantes sur les autres pages. -- Organisez chaque sujet sur sa propre page. -- Réduir ou éliminer le défilement pendant la saisie des données en définissant [l'ordre de saisie](formEditor.md#data-entry-order). -- Prévoyez de l'espace autour des éléments du formulaire pour un design d'écran attrayant. +- Placer les informations les plus importantes sur la première page et les informations les moins importantes sur les autres pages. +- Organiser chaque sujet sur sa propre page. +- Réduire ou éliminer le défilement pendant la saisie des données en définissant [l'ordre de saisie](formEditor.md#data-entry-order). +- Définir de l'espace autour des éléments du formulaire pour un design d'écran attrayant. Les pages multiples sont utiles uniquement pour les formulaires d'entrée. Elles ne sont pas destinées à être imprimées. Lorsqu'un formulaire de plusieurs pages est imprimé, seule la première page est imprimée. From 6e120bfa47f182d98c5dddf2dad4ef5327c66121 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 18:10:42 +0100 Subject: [PATCH 098/156] New translations explorer.md (Spanish) --- .../docusaurus-plugin-content-docs/current/Develop/explorer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Develop/explorer.md b/i18n/es/docusaurus-plugin-content-docs/current/Develop/explorer.md index 5c8588354e7f6e..24def1c31c7318 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Develop/explorer.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Develop/explorer.md @@ -1,5 +1,5 @@ --- -id: explorador +id: explorer title: Explorador --- From ea248807cf3ae559dc56a4ef1ac16cfd7faebe91 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 18:10:49 +0100 Subject: [PATCH 099/156] New translations explorer.md (Japanese) --- .../docusaurus-plugin-content-docs/current/Develop/explorer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/explorer.md b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/explorer.md index 9ad9fddf8adb99..42e697c33e1deb 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Develop/explorer.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Develop/explorer.md @@ -1,5 +1,5 @@ --- -id: エクスプローラー +id: explorer title: エクスプローラー --- From d30a0861f72307a6639d3a84cb3692a85dad7ad8 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 18:10:56 +0100 Subject: [PATCH 100/156] New translations explorer.md (Portuguese, Brazilian) --- .../docusaurus-plugin-content-docs/current/Develop/explorer.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Develop/explorer.md b/i18n/pt/docusaurus-plugin-content-docs/current/Develop/explorer.md index e099da5149d4e3..cdf2b4a150d54c 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Develop/explorer.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Develop/explorer.md @@ -1,5 +1,5 @@ --- -id: explorador +id: explorer title: Explorador --- From d1d93235a555189d1e9807df37d7ae7124632865 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 22:43:22 +0100 Subject: [PATCH 101/156] New translations webadmin.md (French) --- .../fr/docusaurus-plugin-content-docs/current/Admin/webAdmin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/webAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/webAdmin.md index 6a4e11c0fd1f4f..7f0cfb5051a89f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -128,7 +128,7 @@ Cette option n'apparaît que si la licence Qodly Studio est activée. ::: -Cette option permet l'accès utilisateur à [Qodly Studio](../WebServer/qodly-studio.md) au niveau de l'application 4D. Notez que vous devez également [activer l'accès au niveau de chaque projet](../settings/web.md#enable-access-to-qodly-studio). +Cette option permet l'accès utilisateur à [Qodly Studio](developer.4d.com/qodly/) au niveau de l'application 4D. Notez que vous devez également [activer l'accès au niveau de chaque projet](../settings/web.md#enable-access-to-qodly-studio). :::note From a3148b2d4e77f2a74753e1fa02eb7c1c6683390f Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 22:44:09 +0100 Subject: [PATCH 102/156] New translations debugging-remote.md (French) --- .../current/Debugging/debugging-remote.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md index f2448909ea5b59..f058c857cac527 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md @@ -19,7 +19,7 @@ Un seul débogueur peut déboguer une application 4D Server à un moment donné. - le débogueur local de 4D Server (par défaut) - si le serveur ne tourne pas en mode headless. - le débogueur d'un client 4D distant - si la session distante a accès au mode Développement. -- le [débogueur Qodly](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) sur 4D Server - si le serveur autorise l'accès à Qodly Studio. +- le [débogueur Qodly](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) sur 4D Server - si le serveur autorise l'accès à Qodly Studio. - le débogueur **VS Code**, à condition que vous ayez installé l'extension [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode). Le débogueur associé est appelé chaque fois que 4D Server rencontre : From b0b2b8af0f3ff3c7c02ada5286168086a7ff2287 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 23:02:27 +0100 Subject: [PATCH 103/156] New translations web.md (French) --- i18n/fr/docusaurus-plugin-content-docs/current/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/current/settings/web.md b/i18n/fr/docusaurus-plugin-content-docs/current/settings/web.md index 659f5e03dc918c..3034d1178e9916 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/fr/docusaurus-plugin-content-docs/current/settings/web.md @@ -325,4 +325,4 @@ Cette option n'apparaît que si la licence Qodly Studio est activée. ::: -Cette option permet l'accès utilisateur à [Qodly Studio](../WebServer/qodly-studio.md) pour le projet en cours. Notez que l'accès global doit être autorisé au [niveau de l'application](../Admin/webAdmin.md). +Cette option permet l'accès utilisateur à [Qodly Studio](developer.4d.com/qodly/) pour le projet en cours. Notez que l'accès global doit être autorisé au [niveau de l'application](../Admin/webAdmin.md). From 2fb91cfb2f7c3a0b4a1257215f8201a0be94cea4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 23:12:34 +0100 Subject: [PATCH 104/156] New translations webadmin.md (French) --- .../version-20-R10/Admin/webAdmin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md index 51a3dff3d80495..6dc1e216718cff 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md @@ -120,7 +120,7 @@ Cette option n'apparaît que si la licence Qodly Studio est activée. ::: -Cette option permet l'accès utilisateur à [Qodly Studio](../WebServer/qodly-studio.md) au niveau de l'application 4D. Notez que vous devez également [activer l'accès au niveau de chaque projet](../settings/web.md#enable-access-to-qodly-studio). +Cette option permet l'accès utilisateur à [Qodly Studio](developer.4d.com/qodly/) au niveau de l'application 4D. Notez que vous devez également [activer l'accès au niveau de chaque projet](../settings/web.md#enable-access-to-qodly-studio). ## Configuration de WebAdmin sans interface From 8843b66600fe4ed000e88210e90675413b634c4a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 23:13:22 +0100 Subject: [PATCH 105/156] New translations debugger.md (French) --- .../version-20-R10/Debugging/debugger.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md index ab71886bbdfff4..7296fd32bd671f 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md @@ -42,7 +42,7 @@ La fenêtre du débogueur est généralement affichée sur la machine où le cod :::note Notes - Si le serveur fonctionne en mode headless, aucune fenêtre de débogage ne peut être affichée sur le serveur, vous devez utiliser le débogueur distant. Voir [Débogage depuis des machines distantes](./debugging-remote.md). -- Vous pouvez également [attacher le débogueur Qodly Studio à une application 4D Server](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) si vous devez déboguer des pages Qodly dans un environnement déployé. +- Vous pouvez également [attacher le débogueur Qodly Studio à une application 4D Server](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) si vous devez déboguer des pages Qodly dans un environnement déployé. ::: From eb9581e6065b0af14b3c4d6802af05ccd2706b2a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 23:13:24 +0100 Subject: [PATCH 106/156] New translations debugging-remote.md (French) --- .../version-20-R10/Debugging/debugging-remote.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md index f2448909ea5b59..f058c857cac527 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md @@ -19,7 +19,7 @@ Un seul débogueur peut déboguer une application 4D Server à un moment donné. - le débogueur local de 4D Server (par défaut) - si le serveur ne tourne pas en mode headless. - le débogueur d'un client 4D distant - si la session distante a accès au mode Développement. -- le [débogueur Qodly](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) sur 4D Server - si le serveur autorise l'accès à Qodly Studio. +- le [débogueur Qodly](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) sur 4D Server - si le serveur autorise l'accès à Qodly Studio. - le débogueur **VS Code**, à condition que vous ayez installé l'extension [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode). Le débogueur associé est appelé chaque fois que 4D Server rencontre : From 060433549ecb3524eff3a18e6273742b23f7c9b4 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 23:16:24 +0100 Subject: [PATCH 107/156] New translations updates.md (French) --- .../version-20-R10/Notes/updates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md index 869008529af28a..2e7c206b3c4709 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md @@ -97,7 +97,7 @@ Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fe-whats-new-in-4d-2 - Prise en charge des [singletons de session](../Concepts/classes.md#singleton-classes) et nouvelle propriété de classe [`.isSessionSingleton`](../API/ClassClass.md#issessionsingleton). - Nouveau [mot-clé fonction `onHTTPGet`](../ORDA/ordaClasses.md#onhttpget-keyword) pour définir des fonctions singleton ou ORDA qui peuvent être appelées par des [requêtes HTTP REST GET](../REST/ClassFunctions.md#function-calls). - Nouvelle classe [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) pour que le serveur REST retourne n'importe quel contenu web. -- Qodly Studio : Vous pouvez maintenant [attacher le débogueur Qodly à 4D Server](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server). +- Qodly Studio : Vous pouvez maintenant [attacher le débogueur Qodly à 4D Server](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server). - Nouvelles clés Build Application pour que les applications 4D distantes valident les [signatures](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateAuthoritiesCertificates.300-7425900.fe.html) et/ou les [domaines](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateDomainName.300-7425906.fe.html) des autorités de certification des serveurs. - Possibilité de [construire des applications autonomes sans licences intégrées](../Desktop/building.md#licenses). - Langage 4D : @@ -153,7 +153,7 @@ Lisez [**Les nouveautés de 4D 20 R5**](https://blog.4d.com/fe-whats-new-in-4d-2 - Prise en charge des [restricted entity selections](../ORDA/entities.md#restricting-entity-selections). - Prise en charge des [classes partagées](../Concepts/classes.md#shared-classes) et des [classes singleton](../Concepts/classes.md#singleton-classes). Nouvelles propriétés de classe : [`isShared`](../API/ClassClass.md#isshared), [`isSingleton`](../API/ClassClass.md#issingleton), [`me`](../API/ClassClass.md#me). - Prise en charge de l'[initialisation d'une propriété de classe dans sa ligne de déclaration](../Concepts/classes.md#initializing-the-property-in-the-declaration-line). -- Nouveau [mode de connexion force login pour les requêtes REST](../REST/authUsers.md#force-login-mode) avec une [prise en charge spécifique dans Qodly Studio for 4D](../WebServer/qodly-studio.md#force-login). +- Nouveau [mode de connexion force login pour les requêtes REST](../REST/authUsers.md#force-login-mode) avec une [prise en charge spécifique dans Qodly Studio for 4D](\(developer.4d.com/qodly/4DQodlyPro/force-login\)). - Nouveau paramètre REST [$format](../REST/$format.md). - L'objet [`Session`](../commands/session.md) est maintenant disponible pour les sessions utilisateur à distance et les procédures stockées. - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R5) : liste de tous les bugs qui ont été corrigés dans 4D 20 R5. From b5b2962877b721d923b799b39324620d4a0bad66 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 23:17:26 +0100 Subject: [PATCH 108/156] New translations authusers.md (French) --- .../version-20-R10/REST/authUsers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md index c36a93c732f654..3baa7b0e69accd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md @@ -29,7 +29,7 @@ La séquence de connexion d'un utilisateur est la suivante : 2. `authentify()` doit être une [fonction de datastore class](../ORDA/ordaClasses.md#datastore-class) exposée. Vous appelez votre fonction [`authentify()`](#function-authentify) (créée au préalable), dans laquelle vous vérifiez les informations d'identification de l'utilisateur et appelez [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) avec les privilèges appropriés. -3. La requête `/rest/$catalog/authentify` est envoyée au serveur avec les informations d'identification de l'utilisateur. Cette étape nécessite seulement un formulaire de connexion basique qui n'accède pas aux données ; cela peut être une [page Qodly](../WebServer/qodly-studio.md) (appelée via la requête `/rest/$getWebForm`). +3. La requête `/rest/$catalog/authentify` est envoyée au serveur avec les informations d'identification de l'utilisateur. Cette étape nécessite seulement un formulaire de connexion basique qui n'accède pas aux données ; cela peut être une [page Qodly](developer.4d.com/qodly/) (appelée via la requête `/rest/$getWebForm`). 4. Si l'utilisateur est authentifié avec succès, une licence 4D est consommée sur le serveur et toutes les requêtes REST sont acceptées. From 4205b70cc282d8e46b5c91bbcef06f2c36e3abc7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 23:39:56 +0100 Subject: [PATCH 109/156] New translations web.md (French) --- .../version-20-R10/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/web.md b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/web.md index deeb0217c8108f..4fc41bcb436df4 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/web.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-20-R10/settings/web.md @@ -325,4 +325,4 @@ Cette option n'apparaît que si la licence Qodly Studio est activée. ::: -Cette option permet l'accès utilisateur à [Qodly Studio](../WebServer/qodly-studio.md) pour le projet en cours. Notez que l'accès global doit être autorisé au [niveau de l'application](../Admin/webAdmin.md). +Cette option permet l'accès utilisateur à [Qodly Studio](developer.4d.com/qodly/) pour le projet en cours. Notez que l'accès global doit être autorisé au [niveau de l'application](../Admin/webAdmin.md). From dfe1432c30466c6c010c80029b54869328fd62dc Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 23:42:42 +0100 Subject: [PATCH 110/156] New translations webadmin.md (French) --- .../docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md index 51a3dff3d80495..6dc1e216718cff 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md @@ -120,7 +120,7 @@ Cette option n'apparaît que si la licence Qodly Studio est activée. ::: -Cette option permet l'accès utilisateur à [Qodly Studio](../WebServer/qodly-studio.md) au niveau de l'application 4D. Notez que vous devez également [activer l'accès au niveau de chaque projet](../settings/web.md#enable-access-to-qodly-studio). +Cette option permet l'accès utilisateur à [Qodly Studio](developer.4d.com/qodly/) au niveau de l'application 4D. Notez que vous devez également [activer l'accès au niveau de chaque projet](../settings/web.md#enable-access-to-qodly-studio). ## Configuration de WebAdmin sans interface From d2f3aff518deb43f82458c9313786a0b0e3d53e7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 23:43:30 +0100 Subject: [PATCH 111/156] New translations debugging-remote.md (French) --- .../version-21/Debugging/debugging-remote.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md index f2448909ea5b59..f058c857cac527 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md @@ -19,7 +19,7 @@ Un seul débogueur peut déboguer une application 4D Server à un moment donné. - le débogueur local de 4D Server (par défaut) - si le serveur ne tourne pas en mode headless. - le débogueur d'un client 4D distant - si la session distante a accès au mode Développement. -- le [débogueur Qodly](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) sur 4D Server - si le serveur autorise l'accès à Qodly Studio. +- le [débogueur Qodly](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) sur 4D Server - si le serveur autorise l'accès à Qodly Studio. - le débogueur **VS Code**, à condition que vous ayez installé l'extension [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode). Le débogueur associé est appelé chaque fois que 4D Server rencontre : From 637888768bdf2baaeeea09cbc08ebb3d8bed4366 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 23:57:12 +0100 Subject: [PATCH 112/156] New translations web.md (French) --- .../docusaurus-plugin-content-docs/version-21/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/web.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/web.md index 659f5e03dc918c..3034d1178e9916 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/web.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/settings/web.md @@ -325,4 +325,4 @@ Cette option n'apparaît que si la licence Qodly Studio est activée. ::: -Cette option permet l'accès utilisateur à [Qodly Studio](../WebServer/qodly-studio.md) pour le projet en cours. Notez que l'accès global doit être autorisé au [niveau de l'application](../Admin/webAdmin.md). +Cette option permet l'accès utilisateur à [Qodly Studio](developer.4d.com/qodly/) pour le projet en cours. Notez que l'accès global doit être autorisé au [niveau de l'application](../Admin/webAdmin.md). From 30d826eb3d392afa020706bd67909a40f1da8055 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 23:57:46 +0100 Subject: [PATCH 113/156] New translations updates.md (French) --- .../version-21/Notes/updates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/Notes/updates.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/Notes/updates.md index bcc9a8ecf0baf8..06ed0e5f0addd8 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/Notes/updates.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/Notes/updates.md @@ -152,7 +152,7 @@ Lisez [**Les nouveautés de 4D 20 R7**](https://blog.4d.com/fe-whats-new-in-4d-2 - Prise en charge des [singletons de session](../Concepts/classes.md#singleton-classes) et nouvelle propriété de classe [`.isSessionSingleton`](../API/ClassClass.md#issessionsingleton). - Nouveau [mot-clé fonction `onHTTPGet`](../ORDA/ordaClasses.md#onhttpget-keyword) pour définir des fonctions singleton ou ORDA qui peuvent être appelées par des [requêtes HTTP REST GET](../REST/ClassFunctions.md#function-calls). - Nouvelle classe [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) pour que le serveur REST retourne n'importe quel contenu web. -- Qodly Studio : Vous pouvez maintenant [attacher le débogueur Qodly à 4D Server](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server). +- Qodly Studio : Vous pouvez maintenant [attacher le débogueur Qodly à 4D Server](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server). - Nouvelles clés Build Application pour que les applications 4D distantes valident les [signatures](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateAuthoritiesCertificates.300-7425900.fe.html) et/ou les [domaines](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateDomainName.300-7425906.fe.html) des autorités de certification des serveurs. - Possibilité de [construire des applications autonomes sans licences intégrées](../Desktop/building.md#licenses). - Langage 4D : @@ -208,7 +208,7 @@ Lisez [**Les nouveautés de 4D 20 R5**](https://blog.4d.com/fe-whats-new-in-4d-2 - Prise en charge des [restricted entity selections](../ORDA/entities.md#restricting-entity-selections). - Prise en charge des [classes partagées](../Concepts/classes.md#shared-classes) et des [classes singleton](../Concepts/classes.md#singleton-classes). Nouvelles propriétés de classe : [`isShared`](../API/ClassClass.md#isshared), [`isSingleton`](../API/ClassClass.md#issingleton), [`me`](../API/ClassClass.md#me). - Prise en charge de l'[initialisation d'une propriété de classe dans sa ligne de déclaration](../Concepts/classes.md#initializing-the-property-in-the-declaration-line). -- Nouveau [mode de connexion force login pour les requêtes REST](../REST/authUsers.md#force-login-mode) avec une [prise en charge spécifique dans Qodly Studio for 4D](../WebServer/qodly-studio.md#force-login). +- Nouveau [mode de connexion force login pour les requêtes REST](../REST/authUsers.md#force-login-mode) avec une [prise en charge spécifique dans Qodly Studio for 4D](\(developer.4d.com/qodly/4DQodlyPro/force-login\)). - Nouveau paramètre REST [$format](../REST/$format.md). - L'objet [`Session`](../commands/session.md) est maintenant disponible pour les sessions utilisateur à distance et les procédures stockées. - [**Liste des bugs corrigés**](https://bugs.4d.fr/fixedbugslist?version=20_R5) : liste de tous les bugs qui ont été corrigés dans 4D 20 R5. From feacaf587bb2814976cc8c51b8fcd7c13c081bca Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Wed, 31 Dec 2025 23:58:47 +0100 Subject: [PATCH 114/156] New translations authusers.md (French) --- .../docusaurus-plugin-content-docs/version-21/REST/authUsers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/authUsers.md b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/authUsers.md index c36a93c732f654..3baa7b0e69accd 100644 --- a/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/authUsers.md +++ b/i18n/fr/docusaurus-plugin-content-docs/version-21/REST/authUsers.md @@ -29,7 +29,7 @@ La séquence de connexion d'un utilisateur est la suivante : 2. `authentify()` doit être une [fonction de datastore class](../ORDA/ordaClasses.md#datastore-class) exposée. Vous appelez votre fonction [`authentify()`](#function-authentify) (créée au préalable), dans laquelle vous vérifiez les informations d'identification de l'utilisateur et appelez [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) avec les privilèges appropriés. -3. La requête `/rest/$catalog/authentify` est envoyée au serveur avec les informations d'identification de l'utilisateur. Cette étape nécessite seulement un formulaire de connexion basique qui n'accède pas aux données ; cela peut être une [page Qodly](../WebServer/qodly-studio.md) (appelée via la requête `/rest/$getWebForm`). +3. La requête `/rest/$catalog/authentify` est envoyée au serveur avec les informations d'identification de l'utilisateur. Cette étape nécessite seulement un formulaire de connexion basique qui n'accède pas aux données ; cela peut être une [page Qodly](developer.4d.com/qodly/) (appelée via la requête `/rest/$getWebForm`). 4. Si l'utilisateur est authentifié avec succès, une licence 4D est consommée sur le serveur et toutes les requêtes REST sont acceptées. From 79583baaf6b20505a51107c82bbe54636f9ef8ba Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 00:43:18 +0100 Subject: [PATCH 115/156] New translations webadmin.md (Spanish) --- .../es/docusaurus-plugin-content-docs/current/Admin/webAdmin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Admin/webAdmin.md b/i18n/es/docusaurus-plugin-content-docs/current/Admin/webAdmin.md index 45a69e2f96f144..ec93ffce1aba35 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -129,7 +129,7 @@ Esta opción sólo aparece si la licencia de Qodly Studio está activa. ::: -Esta opción permite al usuario acceder a [Qodly Studio](../WebServer/qodly-studio.md) a nivel de la aplicación 4D. Tenga en cuenta que también necesita [habilitar el acceso en cada nivel de proyecto](../settings/web.md#enable-access-to-qodly-studio). +Esta opción permite al usuario acceder a [Qodly Studio](developer.4d.com/qodly/) a nivel de la aplicación 4D. Tenga en cuenta que también necesita [habilitar el acceso en cada nivel de proyecto](../settings/web.md#enable-access-to-qodly-studio). :::note From 124ac075d9450add7db17314b4cc8cc7a5a2f51c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 00:44:02 +0100 Subject: [PATCH 116/156] New translations debugging-remote.md (Spanish) --- .../current/Debugging/debugging-remote.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md index cfae860f56d22c..6b5fece98cf2f5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md @@ -19,7 +19,7 @@ Sólo un depurador puede depurar una aplicación 4D Server en un momento dado. S - el depurador local de 4D Server (por defecto) - si el servidor no está ejecutando sin interfaz. - el depurador de un cliente 4D remoto - si la sesión remota tiene acceso al modo Diseño. -- el [depurador Qodly](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) en el servidor 4D - si el servidor permite el acceso a Qodly Studio. +- el [depurador Qodly](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) en el servidor 4D - si el servidor permite el acceso a Qodly Studio. - el depurador **VS Code**, siempre que haya instalado la extensión [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode). El depurador asociado es llamado cada vez que se encuentra un 4D Server: From b4d30dcd5df7aa4fab3d3cbcde5ec2896aa1e84b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 01:01:48 +0100 Subject: [PATCH 117/156] New translations web.md (Spanish) --- i18n/es/docusaurus-plugin-content-docs/current/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md b/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md index b53f83b2e1384a..5f5d6aa87e75c2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/es/docusaurus-plugin-content-docs/current/settings/web.md @@ -326,4 +326,4 @@ Esta opción sólo aparece si la licencia de Qodly Studio está activa. ::: -Esta opción permite el acceso del usuario a [Qodly Studio](../WebServer/qodly-studio.md) para el proyecto actual. Tenga en cuenta que el acceso global debe permitirse al [nivel de la aplicación](../Admin/webAdmin.md). +Esta opción permite el acceso del usuario a [Qodly Studio](developer.4d.com/qodly/) para el proyecto actual. Tenga en cuenta que el acceso global debe permitirse al [nivel de la aplicación](../Admin/webAdmin.md). From 8e36fd04304d749653caf01414bef4614d40eb50 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 01:11:42 +0100 Subject: [PATCH 118/156] New translations webadmin.md (Spanish) --- .../version-20-R10/Admin/webAdmin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md index 3d98894fd86ba5..1ce4d05a3e3de8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md @@ -122,7 +122,7 @@ Esta opción sólo aparece si la licencia de Qodly Studio está activa. ::: -Esta opción permite al usuario acceder a [Qodly Studio](../WebServer/qodly-studio.md) a nivel de la aplicación 4D. Tenga en cuenta que también necesita [habilitar el acceso en cada nivel de proyecto](../settings/web.md#enable-access-to-qodly-studio). +Esta opción permite al usuario acceder a [Qodly Studio](developer.4d.com/qodly/) a nivel de la aplicación 4D. Tenga en cuenta que también necesita [habilitar el acceso en cada nivel de proyecto](../settings/web.md#enable-access-to-qodly-studio). ## Configuración de WebAdmin sin interfaz From 75467a39c3fa8368f2c282b0aab9fdb246d27c0a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 01:12:31 +0100 Subject: [PATCH 119/156] New translations debugger.md (Spanish) --- .../version-20-R10/Debugging/debugger.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md index e684cd82a4f2a2..eb91b201a2e04b 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md @@ -42,7 +42,7 @@ La ventana del depurador suele aparecer en la máquina donde se ejecuta el códi :::note Notas - Si el servidor se ejecuta en modo sin interfaz, no se puede mostrar ninguna ventana de depuración en el servidor, es necesario utilizar el depurador remoto. Ver [Depuración desde máquinas remotas](./debugging-remote.md). -- También puede [adjuntar el depurador de Qodly Studio a una aplicación 4D Server](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) si necesita depurar páginas Qodly en un entorno desplegado. +- También puede [adjuntar el depurador de Qodly Studio a una aplicación 4D Server](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) si necesita depurar páginas Qodly en un entorno desplegado. ::: From 081e986099d963a45eb8d22b060774e9f921751c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 01:12:32 +0100 Subject: [PATCH 120/156] New translations debugging-remote.md (Spanish) --- .../version-20-R10/Debugging/debugging-remote.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md index cfae860f56d22c..6b5fece98cf2f5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md @@ -19,7 +19,7 @@ Sólo un depurador puede depurar una aplicación 4D Server en un momento dado. S - el depurador local de 4D Server (por defecto) - si el servidor no está ejecutando sin interfaz. - el depurador de un cliente 4D remoto - si la sesión remota tiene acceso al modo Diseño. -- el [depurador Qodly](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) en el servidor 4D - si el servidor permite el acceso a Qodly Studio. +- el [depurador Qodly](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) en el servidor 4D - si el servidor permite el acceso a Qodly Studio. - el depurador **VS Code**, siempre que haya instalado la extensión [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode). El depurador asociado es llamado cada vez que se encuentra un 4D Server: From d3afa8b8046f5bcc282dfeeacb7afdd1d7a41e2c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 01:15:33 +0100 Subject: [PATCH 121/156] New translations updates.md (Spanish) --- .../version-20-R10/Notes/updates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md index 70314d25d54083..78c2fe723a9a94 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md @@ -97,7 +97,7 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), - Soporte de [singletones de sesión](../Concepts/classes.md#singleton-classes) y nueva propiedad de clase [`.isSessionSingleton`](../API/ClassClass.md#issessionsingleton). - Nueva [palabra clave función `onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) para definir funciones singleton u ORDA que pueden ser llamadas a través de [peticiones HTTP REST GET](../REST/ClassFunctions.md#function-calls). - Nueva clase [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) para que el servidor REST devuelva cualquier contenido web. -- Qodly Studio: ahora puede [adjuntar el depurador Qodly a 4D Server](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server). +- Qodly Studio: ahora puede [adjuntar el depurador Qodly a 4D Server](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server). - Nuevas llaves Build Application para que las aplicaciones 4D remotas validen las [signatures](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateAuthoritiesCertificates.300-7425900.en.html) y/o los [dominios](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateDomainName.300-7425906.en.html). - Posibilidad de [crear aplicaciones autónomas sin licencias integradas](../Desktop/building.md#licenses). - Lenguaje 4D: @@ -153,7 +153,7 @@ Lea [**Novedades en 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d-20-R5/), - Soporte de [selecciones de entidades restringidas](../ORDA/entities.md#restricting-entity-selections). - Soporte de [clases compartidas](../Concepts/classes.md#shared-classes) y de [clases singleton](../Concepts/classes.md#singleton-classes). Nuevas propiedades de clase: [`isShared`](../API/ClassClass.md#isshared), [`isSingleton`](../API/ClassClass.md#issingleton), [`me`](../API/ClassClass.md#me). - Soporte para [inicializar una propiedad de clase en su línea de declaración](../Concepts/classes.md#initializing-the-property-in-the-declaration-line). -- Nuevo modo [forzar login para peticiones REST](../REST/authUsers.md#force-login-mode) con un [soporte específico en Qodly Studio for 4D](../WebServer/qodly-studio.md#force-login). +- Nuevo modo [forzar login para peticiones REST](../REST/authUsers.md#force-login-mode) con un [soporte específico en Qodly Studio for 4D](\(developer.4d.com/qodly/4DQodlyPro/force-login\)). - Nuevo parámetro REST [$format](../REST/$format.md). - El objeto [`Session`](../commands/session.md) está ahora disponible en sesiones de usuario remotas y en sesiones de procedimientos almacenados. - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R5): lista de todos los bugs que se han corregido en 4D 20 R5. From d0c3f81fab4caee99d03b9e4eeff1249faa4b69c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 01:16:36 +0100 Subject: [PATCH 122/156] New translations authusers.md (Spanish) --- .../version-20-R10/REST/authUsers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md index 2091b0329a655e..8178a6344fff43 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md @@ -31,7 +31,7 @@ La secuencia de inicio de sesión del usuario es la siguiente: 2. Usted llama a su [función `authentify()`](#function-authentify) (creada previamente), en la que revisa las credenciales de usuario y llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) con los privilegios apropiados. `authentify()` debe ser una [función datastore class](../ORDA/ordaClasses.md#datastore-class). -3. La petición `/rest/$catalog/authentify` se envía al servidor junto con las credenciales del usuario. Este paso sólo requiere un formulario de inicio de sesión básico que no tenga acceso a datos; puede ser una [página Qodly](. /WebServer/qodly-studio.md) (llamada a través de la solicitud `/rest/$getWebForm`). +3. La petición `/rest/$catalog/authentify` se envía al servidor junto con las credenciales del usuario. This step only requires a basic login form that do not access data; it can be a [Qodly page](developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). 4. Si el usuario se autentica correctamente, se consume una licencia 4D en el servidor y se aceptan todas las peticiones REST. From a743d037225b4e1845b82213124e38ce38e42484 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 01:39:14 +0100 Subject: [PATCH 123/156] New translations web.md (Spanish) --- .../version-20-R10/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/web.md b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/web.md index 87bbf0681203ff..14d8f7f5a8b1f4 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/web.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-20-R10/settings/web.md @@ -324,4 +324,4 @@ Esta opción sólo aparece si la licencia de Qodly Studio está activa. ::: -Esta opción permite el acceso del usuario a [Qodly Studio](../WebServer/qodly-studio.md) para el proyecto actual. Tenga en cuenta que el acceso global debe permitirse al [nivel de la aplicación](../Admin/webAdmin.md). +Esta opción permite el acceso del usuario a [Qodly Studio](developer.4d.com/qodly/) para el proyecto actual. Tenga en cuenta que el acceso global debe permitirse al [nivel de la aplicación](../Admin/webAdmin.md). From 95855e7220b70043cdb793b48345def0322061b2 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 01:41:55 +0100 Subject: [PATCH 124/156] New translations webadmin.md (Spanish) --- .../docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md index 3d98894fd86ba5..1ce4d05a3e3de8 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md @@ -122,7 +122,7 @@ Esta opción sólo aparece si la licencia de Qodly Studio está activa. ::: -Esta opción permite al usuario acceder a [Qodly Studio](../WebServer/qodly-studio.md) a nivel de la aplicación 4D. Tenga en cuenta que también necesita [habilitar el acceso en cada nivel de proyecto](../settings/web.md#enable-access-to-qodly-studio). +Esta opción permite al usuario acceder a [Qodly Studio](developer.4d.com/qodly/) a nivel de la aplicación 4D. Tenga en cuenta que también necesita [habilitar el acceso en cada nivel de proyecto](../settings/web.md#enable-access-to-qodly-studio). ## Configuración de WebAdmin sin interfaz From 9d645ed6a2a6cddd6b991c16caed0acf52af152a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 01:42:45 +0100 Subject: [PATCH 125/156] New translations debugging-remote.md (Spanish) --- .../version-21/Debugging/debugging-remote.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md index cfae860f56d22c..6b5fece98cf2f5 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md @@ -19,7 +19,7 @@ Sólo un depurador puede depurar una aplicación 4D Server en un momento dado. S - el depurador local de 4D Server (por defecto) - si el servidor no está ejecutando sin interfaz. - el depurador de un cliente 4D remoto - si la sesión remota tiene acceso al modo Diseño. -- el [depurador Qodly](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) en el servidor 4D - si el servidor permite el acceso a Qodly Studio. +- el [depurador Qodly](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) en el servidor 4D - si el servidor permite el acceso a Qodly Studio. - el depurador **VS Code**, siempre que haya instalado la extensión [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode). El depurador asociado es llamado cada vez que se encuentra un 4D Server: From 7cc40612b75988ea64c47bcb469c1fec17e302f0 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 01:56:11 +0100 Subject: [PATCH 126/156] New translations web.md (Spanish) --- .../docusaurus-plugin-content-docs/version-21/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/web.md b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/web.md index b53f83b2e1384a..5f5d6aa87e75c2 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/settings/web.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/settings/web.md @@ -326,4 +326,4 @@ Esta opción sólo aparece si la licencia de Qodly Studio está activa. ::: -Esta opción permite el acceso del usuario a [Qodly Studio](../WebServer/qodly-studio.md) para el proyecto actual. Tenga en cuenta que el acceso global debe permitirse al [nivel de la aplicación](../Admin/webAdmin.md). +Esta opción permite el acceso del usuario a [Qodly Studio](developer.4d.com/qodly/) para el proyecto actual. Tenga en cuenta que el acceso global debe permitirse al [nivel de la aplicación](../Admin/webAdmin.md). From 5fab9715cda7a6ba964f763a4f11ee7058116912 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 01:56:51 +0100 Subject: [PATCH 127/156] New translations updates.md (Spanish) --- .../version-21/Notes/updates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/Notes/updates.md b/i18n/es/docusaurus-plugin-content-docs/version-21/Notes/updates.md index 870fb747b92f8e..8602fb4142da88 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/Notes/updates.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/Notes/updates.md @@ -152,7 +152,7 @@ Lea [**Novedades en 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d-20-R7/), - Soporte de [singletones de sesión](../Concepts/classes.md#singleton-classes) y nueva propiedad de clase [`.isSessionSingleton`](../API/ClassClass.md#issessionsingleton). - Nueva [palabra clave función `onHttpGet`](../ORDA/ordaClasses.md#onhttpget-keyword) para definir funciones singleton u ORDA que pueden ser llamadas a través de [peticiones HTTP REST GET](../REST/ClassFunctions.md#function-calls). - Nueva clase [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) para que el servidor REST devuelva cualquier contenido web. -- Qodly Studio: ahora puede [adjuntar el depurador Qodly a 4D Server](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server). +- Qodly Studio: ahora puede [adjuntar el depurador Qodly a 4D Server](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server). - Nuevas llaves Build Application para que las aplicaciones 4D remotas validen las [signatures](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateAuthoritiesCertificates.300-7425900.en.html) y/o los [dominios](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateDomainName.300-7425906.en.html). - Posibilidad de [crear aplicaciones autónomas sin licencias integradas](../Desktop/building.md#licenses). - Lenguaje 4D: @@ -208,7 +208,7 @@ Lea [**Novedades en 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d-20-R5/), - Soporte de [selecciones de entidades restringidas](../ORDA/entities.md#restricting-entity-selections). - Soporte de [clases compartidas](../Concepts/classes.md#shared-classes) y de [clases singleton](../Concepts/classes.md#singleton-classes). Nuevas propiedades de clase: [`isShared`](../API/ClassClass.md#isshared), [`isSingleton`](../API/ClassClass.md#issingleton), [`me`](../API/ClassClass.md#me). - Soporte para [inicializar una propiedad de clase en su línea de declaración](../Concepts/classes.md#initializing-the-property-in-the-declaration-line). -- Nuevo modo [forzar login para peticiones REST](../REST/authUsers.md#force-login-mode) con un [soporte específico en Qodly Studio for 4D](../WebServer/qodly-studio.md#force-login). +- Nuevo modo [forzar login para peticiones REST](../REST/authUsers.md#force-login-mode) con un [soporte específico en Qodly Studio for 4D](\(developer.4d.com/qodly/4DQodlyPro/force-login\)). - Nuevo parámetro REST [$format](../REST/$format.md). - El objeto [`Session`](../commands/session.md) está ahora disponible en sesiones de usuario remotas y en sesiones de procedimientos almacenados. - [**Lista de bugs corregidos**](https://bugs.4d.fr/fixedbugslist?version=20_R5): lista de todos los bugs que se han corregido en 4D 20 R5. From 27d53fed9e287ee518690d533689cd3bcfcd97f5 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 01:57:53 +0100 Subject: [PATCH 128/156] New translations authusers.md (Spanish) --- .../docusaurus-plugin-content-docs/version-21/REST/authUsers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/authUsers.md b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/authUsers.md index 2091b0329a655e..8178a6344fff43 100644 --- a/i18n/es/docusaurus-plugin-content-docs/version-21/REST/authUsers.md +++ b/i18n/es/docusaurus-plugin-content-docs/version-21/REST/authUsers.md @@ -31,7 +31,7 @@ La secuencia de inicio de sesión del usuario es la siguiente: 2. Usted llama a su [función `authentify()`](#function-authentify) (creada previamente), en la que revisa las credenciales de usuario y llama a [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) con los privilegios apropiados. `authentify()` debe ser una [función datastore class](../ORDA/ordaClasses.md#datastore-class). -3. La petición `/rest/$catalog/authentify` se envía al servidor junto con las credenciales del usuario. Este paso sólo requiere un formulario de inicio de sesión básico que no tenga acceso a datos; puede ser una [página Qodly](. /WebServer/qodly-studio.md) (llamada a través de la solicitud `/rest/$getWebForm`). +3. La petición `/rest/$catalog/authentify` se envía al servidor junto con las credenciales del usuario. This step only requires a basic login form that do not access data; it can be a [Qodly page](developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). 4. Si el usuario se autentica correctamente, se consume una licencia 4D en el servidor y se aceptan todas las peticiones REST. From 7c2053b0322ee862028c1ee16c966565ffb24e40 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 02:42:33 +0100 Subject: [PATCH 129/156] New translations webadmin.md (Japanese) --- .../ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md index 6eb22a961372e6..92f92c534003d1 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -128,7 +128,7 @@ Web 管理サーバーへの URL経由アクセスのロックを解除するに ::: -このオプションにより、4Dアプリケーションレベルでの [Qodly Studio](../WebServer/qodly-studio.md) へのユーザーアクセスができるようになります。 また、[各プロジェクトレベルでもアクセスを有効](../settings/web.md#qodly-studio-へのアクセスを有効化する) にする必要があることに注意してください。 +このオプションにより、4Dアプリケーションレベルでの [Qodly Studio](developer.4d.com/qodly/) へのユーザーアクセスができるようになります。 また、[各プロジェクトレベルでもアクセスを有効](../settings/web.md#qodly-studio-へのアクセスを有効化する) にする必要があることに注意してください。 :::note From 381a17e97489c9a0efb12ac23f1fcff719fb284b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 02:43:21 +0100 Subject: [PATCH 130/156] New translations debugging-remote.md (Japanese) --- .../current/Debugging/debugging-remote.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md index ca1cdb271913f1..a2a12b29da54ff 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md @@ -19,7 +19,7 @@ title: リモートマシンからのデバッグ - ローカルの 4D Serverデバッガー (デフォルト) - サーバーがヘッドレス実行されていない場合 - リモート4Dクライアントのデバッガー - リモートセッションがデザインモードにアクセス可能な場合 -- 4D Server 上の [Qodly デバッガー](../WebServer/qodly-studio.md#4d-server-で-qodlyデバッガーを使用する) - Qodly Studio へのアクセスがサーバーで許可されている場合。 +- the [Qodly debugger](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) on 4D Server - if the server allows access to Qodly Studio. - **VS Code** デバッガーは、[4D-Debugger](https://github.com/4d/4D-Debugger-VSCode) 拡張機能をインストールしていた場合に提供されます。 有効化済デバッガーは、4D Server が次のいずれかに遭遇した場合に呼び出されます: From 7982eabd3c8dd5beb66ff40adfb91ebce1c09b7c Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 03:01:26 +0100 Subject: [PATCH 131/156] New translations web.md (Japanese) --- i18n/ja/docusaurus-plugin-content-docs/current/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/current/settings/web.md b/i18n/ja/docusaurus-plugin-content-docs/current/settings/web.md index 5f4c17e5e218a7..0bec8a200237ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/ja/docusaurus-plugin-content-docs/current/settings/web.md @@ -316,4 +316,4 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co ::: -このオプションにより、ユーザーはカレントプロジェクトの [Qodly Studio](../WebServer/qodly-studio.md) にアクセスできるようになります。 [アプリケーションレベル](../Admin/webAdmin.md) でグローバルアクセスが許可されている必要があることに注意してください。 +このオプションにより、ユーザーはカレントプロジェクトの [Qodly Studio](developer.4d.com/qodly/) にアクセスできるようになります。 [アプリケーションレベル](../Admin/webAdmin.md) でグローバルアクセスが許可されている必要があることに注意してください。 From bea80f26854f23834349b99849ce84dd4d7b44e9 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 03:11:13 +0100 Subject: [PATCH 132/156] New translations webadmin.md (Japanese) --- .../version-20-R10/Admin/webAdmin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md index 81090d6fc2c115..71448780972e0a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md @@ -120,7 +120,7 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ::: -このオプションにより、4Dアプリケーションレベルでの [Qodly Studio](../WebServer/qodly-studio.md) へのユーザーアクセスができるようになります。 また、[各プロジェクトレベルでもアクセスを有効](../settings/web.md#qodly-studio-へのアクセスを有効化する) にする必要があることに注意してください。 +このオプションにより、4Dアプリケーションレベルでの [Qodly Studio](developer.4d.com/qodly/) へのユーザーアクセスができるようになります。 また、[各プロジェクトレベルでもアクセスを有効](../settings/web.md#qodly-studio-へのアクセスを有効化する) にする必要があることに注意してください。 ## WebAdmin のヘッドレス設定 From c59fbce0ed60bfc91b4f5153d6eee11ccab6c770 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 03:12:01 +0100 Subject: [PATCH 133/156] New translations debugger.md (Japanese) --- .../version-20-R10/Debugging/debugger.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md index ce82ec00c69164..3d5b2c4a4265db 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md @@ -42,7 +42,7 @@ title: デバッガー :::note 注記 - ヘッドレスモードで実行中のサーバーでは、デバッガーウィンドウを表示することはできません。この場合はリモートデバッガーを使用する必要があります。 [リモートマシンからのデバッグ](./debugging-remote.md) 参照。 -- 運用環境で Qodlyページをデバッグする必要がある場合は、[Qodly Studio のデバッガーを 4D Server アプリケーションで有効化する](../WebServer/qodly-studio.md#4d-server-で-qodlyデバッガーを使用する) こともできます。 +- 運用環境で Qodlyページをデバッグする必要がある場合は、[Qodly Studio のデバッガーを 4D Server アプリケーションで有効化する](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) こともできます。 ::: From 2f3917240e88c838aac6577b2ec6ecd6137d1f1a Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 03:12:02 +0100 Subject: [PATCH 134/156] New translations debugging-remote.md (Japanese) --- .../version-20-R10/Debugging/debugging-remote.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md index ca1cdb271913f1..a2a12b29da54ff 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md @@ -19,7 +19,7 @@ title: リモートマシンからのデバッグ - ローカルの 4D Serverデバッガー (デフォルト) - サーバーがヘッドレス実行されていない場合 - リモート4Dクライアントのデバッガー - リモートセッションがデザインモードにアクセス可能な場合 -- 4D Server 上の [Qodly デバッガー](../WebServer/qodly-studio.md#4d-server-で-qodlyデバッガーを使用する) - Qodly Studio へのアクセスがサーバーで許可されている場合。 +- the [Qodly debugger](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) on 4D Server - if the server allows access to Qodly Studio. - **VS Code** デバッガーは、[4D-Debugger](https://github.com/4d/4D-Debugger-VSCode) 拡張機能をインストールしていた場合に提供されます。 有効化済デバッガーは、4D Server が次のいずれかに遭遇した場合に呼び出されます: From 2ee3746f874a6c90bf8b854b271c96465b1ba91b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 03:15:00 +0100 Subject: [PATCH 135/156] New translations updates.md (Japanese) --- .../version-20-R10/Notes/updates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md index b3db37de349b19..e5ef2e19f8b152 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md @@ -97,7 +97,7 @@ title: リリースノート - [セッションシングルトン](../Concepts/classes.md#シングルトンクラス) と、新しい [`.isSessionSingleton`](../API/ClassClass.md#issessionsingleton) クラスプロパティをサポート。 - 新しい[`onHTTPGet` 関数キーワード](../ORDA/ordaClasses.md#onhttpget-keyword) を使用して[HTTP REST GET requests](../REST/ClassFunctions.md#function-calls) 経由で呼び出し可能なシングルトンまたはORDA 関数を定義できるようになりました。 - 新しい [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) クラスを使用してREST サーバーがあらゆるWeb コンテンツを返すようになりました。 -- Qodly Studio: [Qodly Studio デバッガーを 4D Server で有効化](../WebServer/qodly-studio.md#4d-server-で-qodlyデバッガーを使用する) できるようになりました。 +- Qodly Studio: You can now [attach the Qodly debugger to 4D Server](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server). - 4Dクライアントアプリケーション用の新しいアプリケーションビルド XMLキー: 接続時にサーバーから送信される証明書について、認証局の 署名 や [ドメイン](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateDomainName.300-7425906.ja.html) を検証するためのキーが追加されました。 - [埋め込みライセンスなしでスタンドアロンアプリケーションをビルドすること](../Desktop/building.md#licenses) が可能になりました。 @@ -154,7 +154,7 @@ title: リリースノート - [制限付エンティティセレクション](../ORDA/entities.md#制限付エンティティセレクション) をサポート。 - [共有クラス](../Concepts/classes.md#共有クラス) と [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) をサポート。 新しいクラスプロパティ: [`.isShared`](../API/ClassClass.md#isshared), [`.isSingleton`](../API/ClassClass.md#issingleton), [`.me`](../API/ClassClass.md#me). - [クラスプロパティを宣言の行において初期化すること](../Concepts/classes.md#initializing-the-property-in-the-declaration-line) がサポートされるようになりました。 -- RESTリクエスト用の新しい [強制ログインモード](../REST/authUsers.md#強制ログインモード) と、[Qodly Studio for 4D での専用サポート](../WebServer/qodly-studio.md#強制ログイン)。 +- New [force login mode for REST requests](../REST/authUsers.md#force-login-mode) with a [specific support in Qodly Studio for 4D](\(developer.4d.com/qodly/4DQodlyPro/force-login\)). - 新しい [$format](../REST/$format.md) RESTパラメーター。 - [`Session`](../commands/session.md) オブジェクトはリモートユーザーセッションおよびすトアドプロシージャーセッションにおいても利用可能になりました。 - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R5): 4D 20 R5 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/122/release-note-version-20r5/))。 From 516ccc2047110a6ba360760a33f889f20124f307 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 03:16:02 +0100 Subject: [PATCH 136/156] New translations authusers.md (Japanese) --- .../version-20-R10/REST/authUsers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md index 030382ad872a89..c6e26d56bacc4b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md @@ -29,7 +29,7 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 2. 事前に用意した [`authentify()` 関数](#function-authentify) を呼び出し、ユーザーの資格情報をチェックして、適切な権限で[`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出します。 `authentify()` は公開された [データストアクラス関数](../ORDA/ordaClasses.md#datastore-クラス) でなければなりません。 -3. `/rest/$catalog/authentify` リクエストは、ユーザーの資格情報と共にサーバーに送信されます。 このステップでは、データにアクセスしない基本的なログインフォームのみが必要です。`/rest/$getWebForm`リクエストを介して呼び出される [Qodlyページ](../WebServer/qodly-studio.md) を利用できます。 +3. `/rest/$catalog/authentify` リクエストは、ユーザーの資格情報と共にサーバーに送信されます。 このステップでは、データにアクセスしない基本的なログインフォームのみが必要です。`/rest/$getWebForm`リクエストを介して呼び出される [Qodlyページ](developer.4d.com/qodly/) を利用できます。 4. ユーザーが正常に認証された場合、4Dライセンスがサーバー上で消費され、すべての RESTリクエストが受け入れられます。 From 2e2eea73a16db5dbbfce25823b9904528b75faaa Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 03:37:53 +0100 Subject: [PATCH 137/156] New translations web.md (Japanese) --- .../version-20-R10/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/web.md b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/web.md index fdf86e820851e7..0497aadb35e88f 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/web.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-20-R10/settings/web.md @@ -316,4 +316,4 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co ::: -このオプションにより、ユーザーはカレントプロジェクトの [Qodly Studio](../WebServer/qodly-studio.md) にアクセスできるようになります。 [アプリケーションレベル](../Admin/webAdmin.md) でグローバルアクセスが許可されている必要があることに注意してください。 +このオプションにより、ユーザーはカレントプロジェクトの [Qodly Studio](developer.4d.com/qodly/) にアクセスできるようになります。 [アプリケーションレベル](../Admin/webAdmin.md) でグローバルアクセスが許可されている必要があることに注意してください。 From 973a3609a2735731755a12180ae9d2557beccab7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 03:40:30 +0100 Subject: [PATCH 138/156] New translations webadmin.md (Japanese) --- .../docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md index 81090d6fc2c115..71448780972e0a 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md @@ -120,7 +120,7 @@ HTTPリクエストログファイル (アプリケーションの "Logs" フォ ::: -このオプションにより、4Dアプリケーションレベルでの [Qodly Studio](../WebServer/qodly-studio.md) へのユーザーアクセスができるようになります。 また、[各プロジェクトレベルでもアクセスを有効](../settings/web.md#qodly-studio-へのアクセスを有効化する) にする必要があることに注意してください。 +このオプションにより、4Dアプリケーションレベルでの [Qodly Studio](developer.4d.com/qodly/) へのユーザーアクセスができるようになります。 また、[各プロジェクトレベルでもアクセスを有効](../settings/web.md#qodly-studio-へのアクセスを有効化する) にする必要があることに注意してください。 ## WebAdmin のヘッドレス設定 From 171440d9a63c02678852a6ff6f2cbb93c381bfc7 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 03:41:16 +0100 Subject: [PATCH 139/156] New translations debugging-remote.md (Japanese) --- .../version-21/Debugging/debugging-remote.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md index ca1cdb271913f1..a2a12b29da54ff 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md @@ -19,7 +19,7 @@ title: リモートマシンからのデバッグ - ローカルの 4D Serverデバッガー (デフォルト) - サーバーがヘッドレス実行されていない場合 - リモート4Dクライアントのデバッガー - リモートセッションがデザインモードにアクセス可能な場合 -- 4D Server 上の [Qodly デバッガー](../WebServer/qodly-studio.md#4d-server-で-qodlyデバッガーを使用する) - Qodly Studio へのアクセスがサーバーで許可されている場合。 +- the [Qodly debugger](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) on 4D Server - if the server allows access to Qodly Studio. - **VS Code** デバッガーは、[4D-Debugger](https://github.com/4d/4D-Debugger-VSCode) 拡張機能をインストールしていた場合に提供されます。 有効化済デバッガーは、4D Server が次のいずれかに遭遇した場合に呼び出されます: From 1d6a04c4ac686276b4f8f9be60ef012fc4d82b7e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 03:54:24 +0100 Subject: [PATCH 140/156] New translations web.md (Japanese) --- .../docusaurus-plugin-content-docs/version-21/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/web.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/web.md index 5f4c17e5e218a7..0bec8a200237ec 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/web.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/settings/web.md @@ -316,4 +316,4 @@ See [Users and sessions](../REST/authUsers.md) to know the recommended way to co ::: -このオプションにより、ユーザーはカレントプロジェクトの [Qodly Studio](../WebServer/qodly-studio.md) にアクセスできるようになります。 [アプリケーションレベル](../Admin/webAdmin.md) でグローバルアクセスが許可されている必要があることに注意してください。 +このオプションにより、ユーザーはカレントプロジェクトの [Qodly Studio](developer.4d.com/qodly/) にアクセスできるようになります。 [アプリケーションレベル](../Admin/webAdmin.md) でグローバルアクセスが許可されている必要があることに注意してください。 From cf7827e3dfb3cfa6ff9815fe46d9e3f5ad1ba378 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 03:55:03 +0100 Subject: [PATCH 141/156] New translations updates.md (Japanese) --- .../version-21/Notes/updates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/Notes/updates.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/Notes/updates.md index 2fe7def7cbd574..7818c4c2e8c09b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/Notes/updates.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/Notes/updates.md @@ -152,7 +152,7 @@ title: リリースノート - [セッションシングルトン](../Concepts/classes.md#シングルトンクラス) と、新しい [`.isSessionSingleton`](../API/ClassClass.md#issessionsingleton) クラスプロパティをサポート。 - 新しい[`onHTTPGet` 関数キーワード](../ORDA/ordaClasses.md#onhttpget-keyword) を使用して[HTTP REST GET requests](../REST/ClassFunctions.md#function-calls) 経由で呼び出し可能なシングルトンまたはORDA 関数を定義できるようになりました。 - 新しい [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) クラスを使用してREST サーバーがあらゆるWeb コンテンツを返すようになりました。 -- Qodly Studio: [Qodly Studio デバッガーを 4D Server で有効化](../WebServer/qodly-studio.md#4d-server-で-qodlyデバッガーを使用する) できるようになりました。 +- Qodly Studio: You can now [attach the Qodly debugger to 4D Server](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server). - 4Dクライアントアプリケーション用の新しいアプリケーションビルド XMLキー: 接続時にサーバーから送信される証明書について、認証局の 署名 や [ドメイン](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateDomainName.300-7425906.ja.html) を検証するためのキーが追加されました。 - [埋め込みライセンスなしでスタンドアロンアプリケーションをビルドすること](../Desktop/building.md#licenses) が可能になりました。 @@ -209,7 +209,7 @@ title: リリースノート - [制限付エンティティセレクション](../ORDA/entities.md#制限付エンティティセレクション) をサポート。 - [共有クラス](../Concepts/classes.md#共有クラス) と [シングルトンクラス](../Concepts/classes.md#シングルトンクラス) をサポート。 新しいクラスプロパティ: [`.isShared`](../API/ClassClass.md#isshared), [`.isSingleton`](../API/ClassClass.md#issingleton), [`.me`](../API/ClassClass.md#me). - [クラスプロパティを宣言の行において初期化すること](../Concepts/classes.md#initializing-the-property-in-the-declaration-line) がサポートされるようになりました。 -- RESTリクエスト用の新しい [強制ログインモード](../REST/authUsers.md#強制ログインモード) と、[Qodly Studio for 4D での専用サポート](../WebServer/qodly-studio.md#強制ログイン)。 +- New [force login mode for REST requests](../REST/authUsers.md#force-login-mode) with a [specific support in Qodly Studio for 4D](\(developer.4d.com/qodly/4DQodlyPro/force-login\)). - 新しい [$format](../REST/$format.md) RESTパラメーター。 - [`Session`](../commands/session.md) オブジェクトはリモートユーザーセッションおよびすトアドプロシージャーセッションにおいても利用可能になりました。 - [**修正リスト**](https://bugs.4d.fr/fixedbugslist?version=20_R5): 4D 20 R5 で修正されたバグのリストです ([日本語版はこちら](https://4d-jp.github.io/2024/122/release-note-version-20r5/))。 From 5922750010d447a6c9aa09cfdbac6c5d30aa838d Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 03:56:05 +0100 Subject: [PATCH 142/156] New translations authusers.md (Japanese) --- .../docusaurus-plugin-content-docs/version-21/REST/authUsers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/authUsers.md b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/authUsers.md index 030382ad872a89..c6e26d56bacc4b 100644 --- a/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/authUsers.md +++ b/i18n/ja/docusaurus-plugin-content-docs/version-21/REST/authUsers.md @@ -29,7 +29,7 @@ When [scalable sessions are enabled](WebServer/sessions.md#enabling-web-sessions 2. 事前に用意した [`authentify()` 関数](#function-authentify) を呼び出し、ユーザーの資格情報をチェックして、適切な権限で[`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) を呼び出します。 `authentify()` は公開された [データストアクラス関数](../ORDA/ordaClasses.md#datastore-クラス) でなければなりません。 -3. `/rest/$catalog/authentify` リクエストは、ユーザーの資格情報と共にサーバーに送信されます。 このステップでは、データにアクセスしない基本的なログインフォームのみが必要です。`/rest/$getWebForm`リクエストを介して呼び出される [Qodlyページ](../WebServer/qodly-studio.md) を利用できます。 +3. `/rest/$catalog/authentify` リクエストは、ユーザーの資格情報と共にサーバーに送信されます。 このステップでは、データにアクセスしない基本的なログインフォームのみが必要です。`/rest/$getWebForm`リクエストを介して呼び出される [Qodlyページ](developer.4d.com/qodly/) を利用できます。 4. ユーザーが正常に認証された場合、4Dライセンスがサーバー上で消費され、すべての RESTリクエストが受け入れられます。 From ace158f87c9e4db66f1b5e959c98db0ebcdd8998 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 04:39:23 +0100 Subject: [PATCH 143/156] New translations webadmin.md (Portuguese, Brazilian) --- .../pt/docusaurus-plugin-content-docs/current/Admin/webAdmin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Admin/webAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/current/Admin/webAdmin.md index 3070c26b603d0c..931eff7c895a34 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Admin/webAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Admin/webAdmin.md @@ -129,7 +129,7 @@ Essa opção só aparece se a licença do Qodly Studio estiver ativada. ::: -Essa opção permite o acesso do usuário a [Qodly Studio](../WebServer/qodly-studio.md) no nível da aplicação 4D. Observe que você também precisa [habilitar o acesso em cada nível de projeto](../settings/web.md#enable-access-to-qodly-studio). +Essa opção permite o acesso do usuário a [Qodly Studio](developer.4d.com/qodly/) no nível da aplicação 4D. Observe que você também precisa [habilitar o acesso em cada nível de projeto](../settings/web.md#enable-access-to-qodly-studio). :::note From b63eaa7199ee235ac5a889b83270480d9de10858 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 04:40:06 +0100 Subject: [PATCH 144/156] New translations debugging-remote.md (Portuguese, Brazilian) --- .../current/Debugging/debugging-remote.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md index b1523f569623cb..d5aade84d1fd4f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/Debugging/debugging-remote.md @@ -19,7 +19,7 @@ Apenas um depurador pode depurar uma aplicação 4D Server num determinado momen - o depurador local do Servidor 4D (padrão) - se o servidor não estiver sendo executado sem interface. - o depurador de um cliente 4D remoto - se a sessão remota tiver acesso ao modo Desenho. -- o [depurador Qodly](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) no servidor 4D - se o servidor permitir acesso a Qodly Studio. +- o [depurador Qodly](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) no servidor 4D - se o servidor permitir acesso a Qodly Studio. - o depurador **VS Code**, desde que você tenha instalado a extensão [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode). O depurador anexado é chamado sempre que um 4D Server se encontra: From 0670c0c13e7b402bbd8a9df5b90b43cefc18d870 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 04:57:14 +0100 Subject: [PATCH 145/156] New translations web.md (Portuguese, Brazilian) --- i18n/pt/docusaurus-plugin-content-docs/current/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/current/settings/web.md b/i18n/pt/docusaurus-plugin-content-docs/current/settings/web.md index 0367e339700974..cae657351223f0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/current/settings/web.md +++ b/i18n/pt/docusaurus-plugin-content-docs/current/settings/web.md @@ -327,4 +327,4 @@ Essa opção só aparece se a licença do Qodly Studio estiver ativada. ::: -Essa opção permite o acesso do usuário ao [Qodly Studio](../WebServer/qodly-studio.md) para o projeto atual. Note que o acesso global deve ser permitido no [nível da aplicação](../Admin/webAdmin.md). +Essa opção permite o acesso do usuário ao [Qodly Studio](developer.4d.com/qodly/) para o projeto atual. Note que o acesso global deve ser permitido no [nível da aplicação](../Admin/webAdmin.md). From d6efc523ded11a65aaa110f0260c0d6f70a9e71e Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 05:06:50 +0100 Subject: [PATCH 146/156] New translations webadmin.md (Portuguese, Brazilian) --- .../version-20-R10/Admin/webAdmin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md index 10b9f28462322f..2e2c46be2e63d0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Admin/webAdmin.md @@ -122,7 +122,7 @@ Essa opção só aparece se a licença do Qodly Studio estiver ativada. ::: -Essa opção permite o acesso do usuário a [Qodly Studio](../WebServer/qodly-studio.md) no nível da aplicação 4D. Observe que você também precisa [habilitar o acesso em cada nível de projeto](../settings/web.md#enable-access-to-qodly-studio). +Essa opção permite o acesso do usuário a [Qodly Studio](developer.4d.com/qodly/) no nível da aplicação 4D. Observe que você também precisa [habilitar o acesso em cada nível de projeto](../settings/web.md#enable-access-to-qodly-studio). ## Configuração de WebAdmin sem interface From c6f6f9741767e6034400f75fb81672f6f86e0328 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 05:07:37 +0100 Subject: [PATCH 147/156] New translations debugger.md (Portuguese, Brazilian) --- .../version-20-R10/Debugging/debugger.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md index fa736ab799085f..8a4a62e9e895dc 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugger.md @@ -42,7 +42,7 @@ A janela do depurador é normalmente apresentada na máquina onde o código é e :::note Notas - Se o servidor estiver a funcionar sem interface, não pode ser apresentada qualquer janela do depurador no servidor, pelo ser necessário utilizar o depurador remoto. Ver [Depuración desde máquinas remotas](./debugging-remote.md). -- Você também pode [anexar o depurador do Qodly Studio a um aplicativo do Servidor 4D](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) se você precisar depurar páginas Qodly em um ambiente implantado. +- Você também pode [anexar o depurador do Qodly Studio a um aplicativo do Servidor 4D](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) se você precisar depurar páginas Qodly em um ambiente implantado. ::: From 68591b0f3ed7ba6bdf35a0e00026a75b90e54c18 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 05:07:39 +0100 Subject: [PATCH 148/156] New translations debugging-remote.md (Portuguese, Brazilian) --- .../version-20-R10/Debugging/debugging-remote.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md index b1523f569623cb..d5aade84d1fd4f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Debugging/debugging-remote.md @@ -19,7 +19,7 @@ Apenas um depurador pode depurar uma aplicação 4D Server num determinado momen - o depurador local do Servidor 4D (padrão) - se o servidor não estiver sendo executado sem interface. - o depurador de um cliente 4D remoto - se a sessão remota tiver acesso ao modo Desenho. -- o [depurador Qodly](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) no servidor 4D - se o servidor permitir acesso a Qodly Studio. +- o [depurador Qodly](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) no servidor 4D - se o servidor permitir acesso a Qodly Studio. - o depurador **VS Code**, desde que você tenha instalado a extensão [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode). O depurador anexado é chamado sempre que um 4D Server se encontra: From 330ee800e9de8a08e358d93d91c080057362028b Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 05:10:36 +0100 Subject: [PATCH 149/156] New translations updates.md (Portuguese, Brazilian) --- .../version-20-R10/Notes/updates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md index 5f6fa17c665db4..557d1dd01d507d 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/Notes/updates.md @@ -97,7 +97,7 @@ Leia [**O que há de novo no 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d- - Suporte a [Session singletons](../Concepts/classes.md#singleton-classes) e à nova propriedade de classe [`.isSessionSingleton`](../API/ClassClass.md#issessionsingleton). - New [`onHTTPGet` function keyword](../ORDA/ordaClasses.md#onhttpget-keyword) to define singleton or ORDA functions that can be called through [HTTP REST GET requests](../REST/ClassFunctions.md#function-calls). - Nova classe [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) para que o servidor REST retorne qualquer conteúdo Web. -- Qodly Studio: agora você pode [anexar o depurador Qodly a 4D Server](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server). +- Qodly Studio: agora você pode [anexar o depurador Qodly a 4D Server](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server). - New Build Application keys para aplicativos 4D remotos para validar a autoridade de certificação do servidor [signatures](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateAuthoritiesCertificates.300-7425900.en.html) e/ou [domain](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateDomainName.300-7425906.en.html). - Capacidade de [criar aplicações independentes sem licenças incorporadas](../Desktop/building.md#licenses). - Línguagem 4D: @@ -153,7 +153,7 @@ Leia [**O que há de novo no 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d- - Soporte de [selecciones de entidades restringidas](../ORDA/entities.md#restricting-entity-selections). - Soporte de [clases compartidas](../Concepts/classes.md#shared-classes) y de [clases singleton](../Concepts/classes.md#singleton-classes). Novas propriedades de classe: [`isShared`](../API/ClassClass.md#isshared), [`isSingleton`](../API/ClassClass.md#issingleton), [`me`](../API/ClassClass.md#me). - Suporte à [inicializando uma propriedade de classe em sua linha de declaração](../Concepts/classes.md#initializing-the-property-in-the-declaration-line). -- Novo modo [forçar login para solicitações REST](../REST/authUsers.md#force-login-mode) com um suporte específico [no Qodly Studio para 4D](../WebServer/qodly-studio.md#force-login). +- Novo modo [forçar login para solicitações REST](../REST/authUsers.md#force-login-mode) com um suporte específico [no Qodly Studio para 4D](\(developer.4d.com/qodly/4DQodlyPro/force-login\)). - Novo parâmetro REST [$format](../REST/$format.md). - O objeto [`Session`](../commands/session.md) agora está disponível em sessões de usuários remotos e sessões de procedimentos armazenados. - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R5): lista de todos os bugs corrigidos em 4D 20 R5. From bbdeebecb7cfc661ab71a374f65992c7f76d3eec Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 05:11:38 +0100 Subject: [PATCH 150/156] New translations authusers.md (Portuguese, Brazilian) --- .../version-20-R10/REST/authUsers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md index eea1c476f49d46..17807daef6d265 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/REST/authUsers.md @@ -29,7 +29,7 @@ A sequência de login do usuário é a seguinte: 2. Você chama sua [`authentify()`](#function-authentify) (criado previamente), na qual você verifica as credenciais do usuário e chama [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) com privilégios apropriados. `authentify()` deve ser uma [função de datastore class](../ORDA/ordaClasses.md#datastore-class) exposta. -3. La petición `/rest/$catalog/authentify` se envía al servidor junto con las credenciales del usuario. This step only requires a basic login form that do not access data; it can be a [Qodly page](../WebServer/qodly-studio.md) (called via the `/rest/$getWebForm` request). +3. La petición `/rest/$catalog/authentify` se envía al servidor junto con las credenciales del usuario. This step only requires a basic login form that do not access data; it can be a [Qodly page](developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). 4. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted. From 8a4178c4604af14241d1e7de3daf4345d7580801 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 05:33:00 +0100 Subject: [PATCH 151/156] New translations web.md (Portuguese, Brazilian) --- .../version-20-R10/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/web.md b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/web.md index 2d6ad4f28702f2..858ef40533872f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/web.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-20-R10/settings/web.md @@ -325,4 +325,4 @@ Essa opção só aparece se a licença do Qodly Studio estiver ativada. ::: -Essa opção permite o acesso do usuário ao [Qodly Studio](../WebServer/qodly-studio.md) para o projeto atual. Note que o acesso global deve ser permitido no [nível da aplicação](../Admin/webAdmin.md). +Essa opção permite o acesso do usuário ao [Qodly Studio](developer.4d.com/qodly/) para o projeto atual. Note que o acesso global deve ser permitido no [nível da aplicação](../Admin/webAdmin.md). From 26a40ac307dbd8bc180da7a19d04ee93cf3a87e2 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 05:35:41 +0100 Subject: [PATCH 152/156] New translations webadmin.md (Portuguese, Brazilian) --- .../docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md index 10b9f28462322f..2e2c46be2e63d0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Admin/webAdmin.md @@ -122,7 +122,7 @@ Essa opção só aparece se a licença do Qodly Studio estiver ativada. ::: -Essa opção permite o acesso do usuário a [Qodly Studio](../WebServer/qodly-studio.md) no nível da aplicação 4D. Observe que você também precisa [habilitar o acesso em cada nível de projeto](../settings/web.md#enable-access-to-qodly-studio). +Essa opção permite o acesso do usuário a [Qodly Studio](developer.4d.com/qodly/) no nível da aplicação 4D. Observe que você também precisa [habilitar o acesso em cada nível de projeto](../settings/web.md#enable-access-to-qodly-studio). ## Configuração de WebAdmin sem interface From 6554cb331f055585b4f66a2d991359ab9d3b78de Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 05:36:30 +0100 Subject: [PATCH 153/156] New translations debugging-remote.md (Portuguese, Brazilian) --- .../version-21/Debugging/debugging-remote.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md index b1523f569623cb..d5aade84d1fd4f 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Debugging/debugging-remote.md @@ -19,7 +19,7 @@ Apenas um depurador pode depurar uma aplicação 4D Server num determinado momen - o depurador local do Servidor 4D (padrão) - se o servidor não estiver sendo executado sem interface. - o depurador de um cliente 4D remoto - se a sessão remota tiver acesso ao modo Desenho. -- o [depurador Qodly](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server) no servidor 4D - se o servidor permitir acesso a Qodly Studio. +- o [depurador Qodly](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server) no servidor 4D - se o servidor permitir acesso a Qodly Studio. - o depurador **VS Code**, desde que você tenha instalado a extensão [4D-Debugger](https://github.com/4d/4D-Debugger-VSCode). O depurador anexado é chamado sempre que um 4D Server se encontra: From ef034c11a7e93bd17bb8776bb47e6ac67e8abc27 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 05:49:28 +0100 Subject: [PATCH 154/156] New translations web.md (Portuguese, Brazilian) --- .../docusaurus-plugin-content-docs/version-21/settings/web.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/web.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/web.md index 0367e339700974..cae657351223f0 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/web.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/settings/web.md @@ -327,4 +327,4 @@ Essa opção só aparece se a licença do Qodly Studio estiver ativada. ::: -Essa opção permite o acesso do usuário ao [Qodly Studio](../WebServer/qodly-studio.md) para o projeto atual. Note que o acesso global deve ser permitido no [nível da aplicação](../Admin/webAdmin.md). +Essa opção permite o acesso do usuário ao [Qodly Studio](developer.4d.com/qodly/) para o projeto atual. Note que o acesso global deve ser permitido no [nível da aplicação](../Admin/webAdmin.md). From 6b76848318400515e8a6a99444c9b3ae0430ec29 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 05:50:00 +0100 Subject: [PATCH 155/156] New translations updates.md (Portuguese, Brazilian) --- .../version-21/Notes/updates.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/Notes/updates.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/Notes/updates.md index b138a74deefd24..e5398e30373a88 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/Notes/updates.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/Notes/updates.md @@ -152,7 +152,7 @@ Leia [**O que há de novo no 4D 20 R7**](https://blog.4d.com/en-whats-new-in-4d- - Suporte a [Session singletons](../Concepts/classes.md#singleton-classes) e à nova propriedade de classe [`.isSessionSingleton`](../API/ClassClass.md#issessionsingleton). - New [`onHTTPGet` function keyword](../ORDA/ordaClasses.md#onhttpget-keyword) to define singleton or ORDA functions that can be called through [HTTP REST GET requests](../REST/ClassFunctions.md#function-calls). - Nova classe [`4D.OutgoingMessage`](../API/OutgoingMessageClass.md) para que o servidor REST retorne qualquer conteúdo Web. -- Qodly Studio: agora você pode [anexar o depurador Qodly a 4D Server](../WebServer/qodly-studio.md#using-qodly-debugger-on-4d-server). +- Qodly Studio: agora você pode [anexar o depurador Qodly a 4D Server](developer.4d.com/qodly/4DQodlyPro/debugging#using-qodly-debugger-on-4d-server). - New Build Application keys para aplicativos 4D remotos para validar a autoridade de certificação do servidor [signatures](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateAuthoritiesCertificates.300-7425900.en.html) e/ou [domain](https://doc.4d.com/4Dv20R7/4D/20-R7/CertificateDomainName.300-7425906.en.html). - Capacidade de [criar aplicações independentes sem licenças incorporadas](../Desktop/building.md#licenses). - Línguagem 4D: @@ -208,7 +208,7 @@ Leia [**O que há de novo no 4D 20 R5**](https://blog.4d.com/en-whats-new-in-4d- - Soporte de [selecciones de entidades restringidas](../ORDA/entities.md#restricting-entity-selections). - Soporte de [clases compartidas](../Concepts/classes.md#shared-classes) y de [clases singleton](../Concepts/classes.md#singleton-classes). Novas propriedades de classe: [`isShared`](../API/ClassClass.md#isshared), [`isSingleton`](../API/ClassClass.md#issingleton), [`me`](../API/ClassClass.md#me). - Suporte à [inicializando uma propriedade de classe em sua linha de declaração](../Concepts/classes.md#initializing-the-property-in-the-declaration-line). -- Novo modo [forçar login para solicitações REST](../REST/authUsers.md#force-login-mode) com um suporte específico [no Qodly Studio para 4D](../WebServer/qodly-studio.md#force-login). +- Novo modo [forçar login para solicitações REST](../REST/authUsers.md#force-login-mode) com um suporte específico [no Qodly Studio para 4D](\(developer.4d.com/qodly/4DQodlyPro/force-login\)). - Novo parâmetro REST [$format](../REST/$format.md). - O objeto [`Session`](../commands/session.md) agora está disponível em sessões de usuários remotos e sessões de procedimentos armazenados. - [**Lista de erros corrigida**](https://bugs.4d.fr/fixedbugslist?version=20_R5): lista de todos os bugs corrigidos em 4D 20 R5. From 0b23b7c4d14f23a05ea8ad0616cec4ba08d30019 Mon Sep 17 00:00:00 2001 From: arnaud-4d Date: Thu, 1 Jan 2026 05:50:59 +0100 Subject: [PATCH 156/156] New translations authusers.md (Portuguese, Brazilian) --- .../docusaurus-plugin-content-docs/version-21/REST/authUsers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/authUsers.md b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/authUsers.md index eea1c476f49d46..17807daef6d265 100644 --- a/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/authUsers.md +++ b/i18n/pt/docusaurus-plugin-content-docs/version-21/REST/authUsers.md @@ -29,7 +29,7 @@ A sequência de login do usuário é a seguinte: 2. Você chama sua [`authentify()`](#function-authentify) (criado previamente), na qual você verifica as credenciais do usuário e chama [`Session.setPrivileges()`](../API/SessionClass.md#setprivileges) com privilégios apropriados. `authentify()` deve ser uma [função de datastore class](../ORDA/ordaClasses.md#datastore-class) exposta. -3. La petición `/rest/$catalog/authentify` se envía al servidor junto con las credenciales del usuario. This step only requires a basic login form that do not access data; it can be a [Qodly page](../WebServer/qodly-studio.md) (called via the `/rest/$getWebForm` request). +3. La petición `/rest/$catalog/authentify` se envía al servidor junto con las credenciales del usuario. This step only requires a basic login form that do not access data; it can be a [Qodly page](developer.4d.com/qodly/) (called via the `/rest/$getWebForm` request). 4. If the user is successfully authentified, a 4D license is consumed on the server and all REST requests are accepted.